https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f9d29319a6e172752e163…
commit f9d29319a6e172752e16379f29de619a1d303aa9
Author:     Stanislav Motylkov <x86corez(a)gmail.com>
AuthorDate: Sat Feb 23 23:34:22 2019 +0300
Commit:     Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito(a)reactos.org>
CommitDate: Sun Feb 24 15:52:49 2019 +0100
    [MSGINA] Implement rotation bar animation
    Based on initial work by Bisoc George. Rotation bar image by Zcooger. CORE-15215
---
 dll/win32/msgina/gui.c              |  84 ++++++++++++++++++++++++
 dll/win32/msgina/lang/bg-BG.rc      |   5 +-
 dll/win32/msgina/lang/cs-CZ.rc      |   5 +-
 dll/win32/msgina/lang/de-DE.rc      |   5 +-
 dll/win32/msgina/lang/en-US.rc      |   5 +-
 dll/win32/msgina/lang/es-ES.rc      |   5 +-
 dll/win32/msgina/lang/fr-FR.rc      |   5 +-
 dll/win32/msgina/lang/he-IL.rc      |   5 +-
 dll/win32/msgina/lang/id-ID.rc      |   5 +-
 dll/win32/msgina/lang/it-IT.rc      |   5 +-
 dll/win32/msgina/lang/ja-JP.rc      |   5 +-
 dll/win32/msgina/lang/no-NO.rc      |   5 +-
 dll/win32/msgina/lang/pl-PL.rc      |   5 +-
 dll/win32/msgina/lang/ro-RO.rc      |   5 +-
 dll/win32/msgina/lang/ru-RU.rc      |   5 +-
 dll/win32/msgina/lang/sk-SK.rc      |   5 +-
 dll/win32/msgina/lang/sq-AL.rc      |   5 +-
 dll/win32/msgina/lang/tr-TR.rc      |   5 +-
 dll/win32/msgina/lang/uk-UA.rc      |   5 +-
 dll/win32/msgina/lang/zh-CN.rc      |   5 +-
 dll/win32/msgina/lang/zh-TW.rc      |   5 +-
 dll/win32/msgina/msgina.rc          |   1 +
 dll/win32/msgina/resource.h         |   2 +
 dll/win32/msgina/resources/line.bmp | Bin 0 -> 6254 bytes
 dll/win32/msgina/resources/line.svg | 123 ++++++++++++++++++++++++++++++++++++
 25 files changed, 270 insertions(+), 40 deletions(-)
diff --git a/dll/win32/msgina/gui.c b/dll/win32/msgina/gui.c
index cafced9aa2..bf0a16057e 100644
--- a/dll/win32/msgina/gui.c
+++ b/dll/win32/msgina/gui.c
@@ -31,6 +31,11 @@ typedef struct _DLG_DATA
 {
     PGINA_CONTEXT pgContext;
     HBITMAP hBitmap;
+    HBITMAP hBarBitmap;
+    UINT_PTR TimerID;
+    DWORD BarCounter;
+    DWORD BarWidth;
+    DWORD BarHeight;
 } DLG_DATA, *PDLG_DATA;
 static BOOL
@@ -111,8 +116,11 @@ StatusDialogProc(
     IN WPARAM wParam,
     IN LPARAM lParam)
 {
+    PDLG_DATA pDlgData;
     UNREFERENCED_PARAMETER(wParam);
+    pDlgData = (PDLG_DATA)GetWindowLongPtrW(hwndDlg, GWLP_USERDATA);
+
     switch (uMsg)
     {
         case WM_INITDIALOG:
@@ -127,6 +135,82 @@ StatusDialogProc(
                 SetWindowTextW(hwndDlg, msg->pTitle);
             SetDlgItemTextW(hwndDlg, IDC_STATUS_MESSAGE, msg->pMessage);
             SetEvent(msg->StartupEvent);
+
+            pDlgData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DLG_DATA));
+            SetWindowLongPtrW(hwndDlg, GWLP_USERDATA, (LONG_PTR)pDlgData);
+
+            if (pDlgData == NULL)
+                return FALSE;
+
+            /* Load the bar bitmap */
+            pDlgData->hBarBitmap = LoadImageW(hDllInstance, MAKEINTRESOURCEW(IDI_BAR),
IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR);
+            if (pDlgData->hBarBitmap)
+            {
+                BITMAP bm;
+
+                GetObject(pDlgData->hBarBitmap, sizeof(BITMAP), &bm);
+                pDlgData->BarWidth = bm.bmWidth;
+                pDlgData->BarHeight = bm.bmHeight;
+                pDlgData->TimerID = SetTimer(hwndDlg, -1, 20, NULL);
+            }
+            return TRUE;
+        }
+
+        case WM_TIMER:
+        {
+            if (pDlgData)
+            {
+                /*
+                 * Default rotation bar image width is 413 (same as logo)
+                 * We can divide 413 by 7 without remainder
+                 */
+                pDlgData->BarCounter = (pDlgData->BarCounter + 7) %
pDlgData->BarWidth;
+                InvalidateRect(hwndDlg, NULL, FALSE);
+                UpdateWindow(hwndDlg);
+            }
+            return TRUE;
+        }
+
+        case WM_DRAWITEM:
+        {
+            LPDRAWITEMSTRUCT lpDis = (LPDRAWITEMSTRUCT)lParam;
+
+            if (lpDis->CtlID != IDC_BAR)
+            {
+                return FALSE;
+            }
+
+            if (pDlgData && pDlgData->hBarBitmap)
+            {
+                HDC hdcMem;
+                HGDIOBJ hOld;
+                DWORD off = pDlgData->BarCounter;
+                DWORD iw = pDlgData->BarWidth;
+                DWORD ih = pDlgData->BarHeight;
+
+                hdcMem = CreateCompatibleDC(lpDis->hDC);
+                hOld = SelectObject(hdcMem, pDlgData->hBarBitmap);
+                BitBlt(lpDis->hDC, off, 0, iw - off, ih, hdcMem, 0, 0, SRCCOPY);
+                BitBlt(lpDis->hDC, 0, 0, off, ih, hdcMem, iw - off, 0, SRCCOPY);
+                SelectObject(hdcMem, hOld);
+                DeleteDC(hdcMem);
+
+                return TRUE;
+            }
+            return FALSE;
+        }
+
+        case WM_DESTROY:
+        {
+            if (pDlgData)
+            {
+                if (pDlgData->hBarBitmap)
+                {
+                    KillTimer(hwndDlg, pDlgData->TimerID);
+                    DeleteObject(pDlgData->hBarBitmap);
+                }
+                HeapFree(GetProcessHeap(), 0, pDlgData);
+            }
             return TRUE;
         }
     }
diff --git a/dll/win32/msgina/lang/bg-BG.rc b/dll/win32/msgina/lang/bg-BG.rc
index 97da77a593..e0895a300b 100644
--- a/dll/win32/msgina/lang/bg-BG.rc
+++ b/dll/win32/msgina/lang/bg-BG.rc
@@ -1,12 +1,13 @@
 LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
-IDD_STATUS DIALOGEX 0, 0, 275, 80
+IDD_STATUS DIALOGEX 0, 0, 275, 78
 STYLE NOT WS_VISIBLE | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_BORDER | WS_CAPTION
| WS_DLGFRAME | WS_POPUP
 CAPTION "Почакайте..."
 FONT 8, "MS Shell Dlg", 400, 0, 1
 BEGIN
     CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54
-    LTEXT "", IDC_STATUS_MESSAGE, 7, 62, 261, 12, SS_WORDELLIPSIS
+    CONTROL "", IDC_BAR, "Static", SS_OWNERDRAW, 0, 44, 275, 4
+    LTEXT "", IDC_STATUS_MESSAGE, 7, 59, 261, 12, SS_WORDELLIPSIS
 END
 IDD_WELCOME DIALOGEX 0, 0, 275, 80
diff --git a/dll/win32/msgina/lang/cs-CZ.rc b/dll/win32/msgina/lang/cs-CZ.rc
index e80492613b..76f25dc507 100644
--- a/dll/win32/msgina/lang/cs-CZ.rc
+++ b/dll/win32/msgina/lang/cs-CZ.rc
@@ -5,13 +5,14 @@
 LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
-IDD_STATUS DIALOGEX 0, 0, 275, 80
+IDD_STATUS DIALOGEX 0, 0, 275, 78
 STYLE NOT WS_VISIBLE | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_BORDER | WS_CAPTION
| WS_DLGFRAME | WS_POPUP
 CAPTION "Prosím čekejte..."
 FONT 8, "MS Shell Dlg", 400, 0, 1
 BEGIN
     CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54
-    LTEXT "", IDC_STATUS_MESSAGE, 7, 62, 261, 12, SS_WORDELLIPSIS
+    CONTROL "", IDC_BAR, "Static", SS_OWNERDRAW, 0, 44, 275, 4
+    LTEXT "", IDC_STATUS_MESSAGE, 7, 59, 261, 12, SS_WORDELLIPSIS
 END
 IDD_WELCOME DIALOGEX 0, 0, 275, 80
diff --git a/dll/win32/msgina/lang/de-DE.rc b/dll/win32/msgina/lang/de-DE.rc
index 5308a8e468..cd14ffc66e 100644
--- a/dll/win32/msgina/lang/de-DE.rc
+++ b/dll/win32/msgina/lang/de-DE.rc
@@ -1,12 +1,13 @@
 LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
-IDD_STATUS DIALOGEX 0, 0, 275, 80
+IDD_STATUS DIALOGEX 0, 0, 275, 78
 STYLE NOT WS_VISIBLE | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_BORDER | WS_CAPTION
| WS_DLGFRAME | WS_POPUP
 CAPTION "Bitte warten..."
 FONT 8, "MS Shell Dlg", 400, 0, 1
 BEGIN
     CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54
-    LTEXT "", IDC_STATUS_MESSAGE, 7, 62, 261, 12, SS_WORDELLIPSIS
+    CONTROL "", IDC_BAR, "Static", SS_OWNERDRAW, 0, 44, 275, 4
+    LTEXT "", IDC_STATUS_MESSAGE, 7, 59, 261, 12, SS_WORDELLIPSIS
 END
 IDD_WELCOME DIALOGEX 0, 0, 275, 80
diff --git a/dll/win32/msgina/lang/en-US.rc b/dll/win32/msgina/lang/en-US.rc
index b7c5e92260..ba8979fd70 100644
--- a/dll/win32/msgina/lang/en-US.rc
+++ b/dll/win32/msgina/lang/en-US.rc
@@ -1,12 +1,13 @@
 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-IDD_STATUS DIALOGEX 0, 0, 275, 80
+IDD_STATUS DIALOGEX 0, 0, 275, 78
 STYLE NOT WS_VISIBLE | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_BORDER | WS_CAPTION
| WS_DLGFRAME | WS_POPUP
 CAPTION "Please wait..."
 FONT 8, "MS Shell Dlg", 400, 0, 1
 BEGIN
     CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54
-    LTEXT "", IDC_STATUS_MESSAGE, 7, 62, 261, 12, SS_WORDELLIPSIS
+    CONTROL "", IDC_BAR, "Static", SS_OWNERDRAW, 0, 44, 275, 4
+    LTEXT "", IDC_STATUS_MESSAGE, 7, 59, 261, 12, SS_WORDELLIPSIS
 END
 IDD_WELCOME DIALOGEX 0, 0, 275, 80
diff --git a/dll/win32/msgina/lang/es-ES.rc b/dll/win32/msgina/lang/es-ES.rc
index 02c1e2cb4f..f3f1061afe 100644
--- a/dll/win32/msgina/lang/es-ES.rc
+++ b/dll/win32/msgina/lang/es-ES.rc
@@ -8,13 +8,14 @@
 LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
-IDD_STATUS DIALOGEX 0, 0, 275, 80
+IDD_STATUS DIALOGEX 0, 0, 275, 78
 STYLE NOT WS_VISIBLE | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_BORDER | WS_CAPTION
| WS_DLGFRAME | WS_POPUP
 CAPTION "Espere un momento..."
 FONT 8, "MS Shell Dlg", 400, 0, 1
 BEGIN
     CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54
-    LTEXT "", IDC_STATUS_MESSAGE, 7, 62, 261, 12, SS_WORDELLIPSIS
+    CONTROL "", IDC_BAR, "Static", SS_OWNERDRAW, 0, 44, 275, 4
+    LTEXT "", IDC_STATUS_MESSAGE, 7, 59, 261, 12, SS_WORDELLIPSIS
 END
 IDD_WELCOME DIALOGEX 0, 0, 275, 80
diff --git a/dll/win32/msgina/lang/fr-FR.rc b/dll/win32/msgina/lang/fr-FR.rc
index 98c9916875..07eab457a0 100644
--- a/dll/win32/msgina/lang/fr-FR.rc
+++ b/dll/win32/msgina/lang/fr-FR.rc
@@ -1,12 +1,13 @@
 LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
-IDD_STATUS DIALOGEX 0, 0, 275, 80
+IDD_STATUS DIALOGEX 0, 0, 275, 78
 STYLE NOT WS_VISIBLE | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_BORDER | WS_CAPTION
| WS_DLGFRAME | WS_POPUP
 CAPTION "Veuillez patienter..."
 FONT 8, "MS Shell Dlg", 400, 0, 1
 BEGIN
     CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54
-    LTEXT "", IDC_STATUS_MESSAGE, 7, 62, 261, 12, SS_WORDELLIPSIS
+    CONTROL "", IDC_BAR, "Static", SS_OWNERDRAW, 0, 44, 275, 4
+    LTEXT "", IDC_STATUS_MESSAGE, 7, 59, 261, 12, SS_WORDELLIPSIS
 END
 IDD_WELCOME DIALOGEX 0, 0, 275, 80
diff --git a/dll/win32/msgina/lang/he-IL.rc b/dll/win32/msgina/lang/he-IL.rc
index 23c24f9985..dfcadc3b92 100644
--- a/dll/win32/msgina/lang/he-IL.rc
+++ b/dll/win32/msgina/lang/he-IL.rc
@@ -1,12 +1,13 @@
 LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT
-IDD_STATUS DIALOGEX 0, 0, 275, 80
+IDD_STATUS DIALOGEX 0, 0, 275, 78
 STYLE NOT WS_VISIBLE | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_BORDER | WS_CAPTION
| WS_DLGFRAME | WS_POPUP
 CAPTION "נא להמתין..."
 FONT 8, "MS Shell Dlg", 400, 0, 1
 BEGIN
     CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54
-    LTEXT "", IDC_STATUS_MESSAGE, 7, 62, 261, 12, SS_WORDELLIPSIS
+    CONTROL "", IDC_BAR, "Static", SS_OWNERDRAW, 0, 44, 275, 4
+    LTEXT "", IDC_STATUS_MESSAGE, 7, 59, 261, 12, SS_WORDELLIPSIS
 END
 IDD_WELCOME DIALOGEX 0, 0, 275, 80
diff --git a/dll/win32/msgina/lang/id-ID.rc b/dll/win32/msgina/lang/id-ID.rc
index 02660b5dd2..686ac7bb85 100644
--- a/dll/win32/msgina/lang/id-ID.rc
+++ b/dll/win32/msgina/lang/id-ID.rc
@@ -1,12 +1,13 @@
 LANGUAGE LANG_INDONESIAN, SUBLANG_DEFAULT
-IDD_STATUS DIALOGEX 0, 0, 275, 80
+IDD_STATUS DIALOGEX 0, 0, 275, 78
 STYLE NOT WS_VISIBLE | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_BORDER | WS_CAPTION
| WS_DLGFRAME | WS_POPUP
 CAPTION "Harap menunggu..."
 FONT 8, "MS Shell Dlg", 400, 0, 1
 BEGIN
     CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54
-    LTEXT "", IDC_STATUS_MESSAGE, 7, 62, 261, 12, SS_WORDELLIPSIS
+    CONTROL "", IDC_BAR, "Static", SS_OWNERDRAW, 0, 44, 275, 4
+    LTEXT "", IDC_STATUS_MESSAGE, 7, 59, 261, 12, SS_WORDELLIPSIS
 END
 IDD_WELCOME DIALOGEX 0, 0, 275, 80
diff --git a/dll/win32/msgina/lang/it-IT.rc b/dll/win32/msgina/lang/it-IT.rc
index 866f037547..ad93ddef15 100644
--- a/dll/win32/msgina/lang/it-IT.rc
+++ b/dll/win32/msgina/lang/it-IT.rc
@@ -9,13 +9,14 @@
 LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
-IDD_STATUS DIALOGEX 0, 0, 275, 80
+IDD_STATUS DIALOGEX 0, 0, 275, 78
 STYLE NOT WS_VISIBLE | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_BORDER | WS_CAPTION
| WS_DLGFRAME | WS_POPUP
 CAPTION "Attendere..."
 FONT 8, "MS Shell Dlg", 400, 0, 1
 BEGIN
     CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54
-    LTEXT "", IDC_STATUS_MESSAGE, 7, 62, 261, 12, SS_WORDELLIPSIS
+    CONTROL "", IDC_BAR, "Static", SS_OWNERDRAW, 0, 44, 275, 4
+    LTEXT "", IDC_STATUS_MESSAGE, 7, 59, 261, 12, SS_WORDELLIPSIS
 END
 IDD_WELCOME DIALOGEX 0, 0, 275, 80
diff --git a/dll/win32/msgina/lang/ja-JP.rc b/dll/win32/msgina/lang/ja-JP.rc
index 38de8b4abb..df22e8453b 100644
--- a/dll/win32/msgina/lang/ja-JP.rc
+++ b/dll/win32/msgina/lang/ja-JP.rc
@@ -1,12 +1,13 @@
 LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
-IDD_STATUS DIALOGEX 0, 0, 275, 80
+IDD_STATUS DIALOGEX 0, 0, 275, 78
 STYLE NOT WS_VISIBLE | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_BORDER | WS_CAPTION
| WS_DLGFRAME | WS_POPUP
 CAPTION "お待ちください..."
 FONT 9, "MS UI Gothic", 400, 0, 1
 BEGIN
     CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54
-    LTEXT "", IDC_STATUS_MESSAGE, 7, 62, 261, 12, SS_WORDELLIPSIS
+    CONTROL "", IDC_BAR, "Static", SS_OWNERDRAW, 0, 44, 275, 4
+    LTEXT "", IDC_STATUS_MESSAGE, 7, 59, 261, 12, SS_WORDELLIPSIS
 END
 IDD_WELCOME DIALOGEX 0, 0, 275, 80
diff --git a/dll/win32/msgina/lang/no-NO.rc b/dll/win32/msgina/lang/no-NO.rc
index f3b6bf9670..b7fb47250b 100644
--- a/dll/win32/msgina/lang/no-NO.rc
+++ b/dll/win32/msgina/lang/no-NO.rc
@@ -1,12 +1,13 @@
 LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL
-IDD_STATUS DIALOGEX 0, 0, 275, 80
+IDD_STATUS DIALOGEX 0, 0, 275, 78
 STYLE NOT WS_VISIBLE | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_BORDER | WS_CAPTION
| WS_DLGFRAME | WS_POPUP
 CAPTION "Vent litt..."
 FONT 8, "MS Shell Dlg", 400, 0, 1
 BEGIN
     CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54
-    LTEXT "", IDC_STATUS_MESSAGE, 7, 62, 261, 12, SS_WORDELLIPSIS
+    CONTROL "", IDC_BAR, "Static", SS_OWNERDRAW, 0, 44, 275, 4
+    LTEXT "", IDC_STATUS_MESSAGE, 7, 59, 261, 12, SS_WORDELLIPSIS
 END
 IDD_WELCOME DIALOGEX 0, 0, 275, 80
diff --git a/dll/win32/msgina/lang/pl-PL.rc b/dll/win32/msgina/lang/pl-PL.rc
index 93d86eca86..11e484a9ab 100644
--- a/dll/win32/msgina/lang/pl-PL.rc
+++ b/dll/win32/msgina/lang/pl-PL.rc
@@ -10,13 +10,14 @@
 LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
-IDD_STATUS DIALOGEX 0, 0, 275, 80
+IDD_STATUS DIALOGEX 0, 0, 275, 78
 STYLE NOT WS_VISIBLE | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_BORDER | WS_CAPTION
| WS_DLGFRAME | WS_POPUP
 CAPTION "Proszę czekać..."
 FONT 8, "MS Shell Dlg", 400, 0, 1
 BEGIN
     CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54
-    LTEXT "", IDC_STATUS_MESSAGE, 7, 62, 261, 12, SS_WORDELLIPSIS
+    CONTROL "", IDC_BAR, "Static", SS_OWNERDRAW, 0, 44, 275, 4
+    LTEXT "", IDC_STATUS_MESSAGE, 7, 59, 261, 12, SS_WORDELLIPSIS
 END
 IDD_WELCOME DIALOGEX 0, 0, 275, 80
diff --git a/dll/win32/msgina/lang/ro-RO.rc b/dll/win32/msgina/lang/ro-RO.rc
index ff9a0af2d6..a777f4a45c 100644
--- a/dll/win32/msgina/lang/ro-RO.rc
+++ b/dll/win32/msgina/lang/ro-RO.rc
@@ -9,13 +9,14 @@
 LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
-IDD_STATUS DIALOGEX 0, 0, 275, 80
+IDD_STATUS DIALOGEX 0, 0, 275, 78
 STYLE NOT WS_VISIBLE | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_BORDER | WS_CAPTION
| WS_DLGFRAME | WS_POPUP
 CAPTION "Așteptați…"
 FONT 8, "MS Shell Dlg", 400, 0, 1
 BEGIN
     CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54
-    LTEXT "", IDC_STATUS_MESSAGE, 7, 62, 261, 12, SS_WORDELLIPSIS
+    CONTROL "", IDC_BAR, "Static", SS_OWNERDRAW, 0, 44, 275, 4
+    LTEXT "", IDC_STATUS_MESSAGE, 7, 59, 261, 12, SS_WORDELLIPSIS
 END
 IDD_WELCOME DIALOGEX 0, 0, 275, 80
diff --git a/dll/win32/msgina/lang/ru-RU.rc b/dll/win32/msgina/lang/ru-RU.rc
index 7891fa040f..e876310017 100644
--- a/dll/win32/msgina/lang/ru-RU.rc
+++ b/dll/win32/msgina/lang/ru-RU.rc
@@ -2,13 +2,14 @@
 LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
-IDD_STATUS DIALOGEX 0, 0, 275, 80
+IDD_STATUS DIALOGEX 0, 0, 275, 78
 STYLE NOT WS_VISIBLE | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_BORDER | WS_CAPTION
| WS_DLGFRAME | WS_POPUP
 CAPTION "Пожалуйста, подождите..."
 FONT 8, "MS Shell Dlg", 400, 0, 1
 BEGIN
     CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54
-    LTEXT "", IDC_STATUS_MESSAGE, 7, 62, 261, 12, SS_WORDELLIPSIS
+    CONTROL "", IDC_BAR, "Static", SS_OWNERDRAW, 0, 44, 275, 4
+    LTEXT "", IDC_STATUS_MESSAGE, 7, 59, 261, 12, SS_WORDELLIPSIS
 END
 IDD_WELCOME DIALOGEX 0, 0, 275, 80
diff --git a/dll/win32/msgina/lang/sk-SK.rc b/dll/win32/msgina/lang/sk-SK.rc
index 789443de47..331b00c29b 100644
--- a/dll/win32/msgina/lang/sk-SK.rc
+++ b/dll/win32/msgina/lang/sk-SK.rc
@@ -5,13 +5,14 @@
 LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
-IDD_STATUS DIALOGEX 0, 0, 275, 80
+IDD_STATUS DIALOGEX 0, 0, 275, 78
 STYLE NOT WS_VISIBLE | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_BORDER | WS_CAPTION
| WS_DLGFRAME | WS_POPUP
 CAPTION "Počkajte, prosím ..."
 FONT 8, "MS Shell Dlg", 400, 0, 1
 BEGIN
     CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54
-    LTEXT "", IDC_STATUS_MESSAGE, 7, 62, 261, 12, SS_WORDELLIPSIS
+    CONTROL "", IDC_BAR, "Static", SS_OWNERDRAW, 0, 44, 275, 4
+    LTEXT "", IDC_STATUS_MESSAGE, 7, 59, 261, 12, SS_WORDELLIPSIS
 END
 IDD_WELCOME DIALOGEX 0, 0, 275, 80
diff --git a/dll/win32/msgina/lang/sq-AL.rc b/dll/win32/msgina/lang/sq-AL.rc
index b4474db1b7..7f3d9ff26a 100644
--- a/dll/win32/msgina/lang/sq-AL.rc
+++ b/dll/win32/msgina/lang/sq-AL.rc
@@ -4,13 +4,14 @@
 LANGUAGE LANG_ALBANIAN, SUBLANG_NEUTRAL
-IDD_STATUS DIALOGEX 0, 0, 275, 80
+IDD_STATUS DIALOGEX 0, 0, 275, 78
 STYLE NOT WS_VISIBLE | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_BORDER | WS_CAPTION
| WS_DLGFRAME | WS_POPUP
 CAPTION "Ju Lutem Prisni..."
 FONT 8, "MS Shell Dlg", 400, 0, 1
 BEGIN
     CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54
-    LTEXT "", IDC_STATUS_MESSAGE, 7, 62, 261, 12, SS_WORDELLIPSIS
+    CONTROL "", IDC_BAR, "Static", SS_OWNERDRAW, 0, 44, 275, 4
+    LTEXT "", IDC_STATUS_MESSAGE, 7, 59, 261, 12, SS_WORDELLIPSIS
 END
 IDD_WELCOME DIALOGEX 0, 0, 275, 80
diff --git a/dll/win32/msgina/lang/tr-TR.rc b/dll/win32/msgina/lang/tr-TR.rc
index de1b088d46..92218040ff 100644
--- a/dll/win32/msgina/lang/tr-TR.rc
+++ b/dll/win32/msgina/lang/tr-TR.rc
@@ -2,13 +2,14 @@
 LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
-IDD_STATUS DIALOGEX 0, 0, 275, 80
+IDD_STATUS DIALOGEX 0, 0, 275, 78
 STYLE NOT WS_VISIBLE | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_BORDER | WS_CAPTION
| WS_DLGFRAME | WS_POPUP
 CAPTION "Lütfen Bekleyiniz..."
 FONT 8, "MS Shell Dlg", 400, 0, 1
 BEGIN
     CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54
-    LTEXT "", IDC_STATUS_MESSAGE, 7, 62, 261, 12, SS_WORDELLIPSIS
+    CONTROL "", IDC_BAR, "Static", SS_OWNERDRAW, 0, 44, 275, 4
+    LTEXT "", IDC_STATUS_MESSAGE, 7, 59, 261, 12, SS_WORDELLIPSIS
 END
 IDD_WELCOME DIALOGEX 0, 0, 275, 80
diff --git a/dll/win32/msgina/lang/uk-UA.rc b/dll/win32/msgina/lang/uk-UA.rc
index af2cb61762..7647b7aad6 100644
--- a/dll/win32/msgina/lang/uk-UA.rc
+++ b/dll/win32/msgina/lang/uk-UA.rc
@@ -8,13 +8,14 @@
 LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
-IDD_STATUS DIALOGEX 0, 0, 275, 80
+IDD_STATUS DIALOGEX 0, 0, 275, 78
 STYLE NOT WS_VISIBLE | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_BORDER | WS_CAPTION
| WS_DLGFRAME | WS_POPUP
 CAPTION "Зачекайте..."
 FONT 8, "MS Shell Dlg", 400, 0, 1
 BEGIN
     CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54
-    LTEXT "", IDC_STATUS_MESSAGE, 7, 62, 261, 12, SS_WORDELLIPSIS
+    CONTROL "", IDC_BAR, "Static", SS_OWNERDRAW, 0, 44, 275, 4
+    LTEXT "", IDC_STATUS_MESSAGE, 7, 59, 261, 12, SS_WORDELLIPSIS
 END
 IDD_WELCOME DIALOGEX 0, 0, 275, 80
diff --git a/dll/win32/msgina/lang/zh-CN.rc b/dll/win32/msgina/lang/zh-CN.rc
index dfc9e1b946..22fa0f61f8 100644
--- a/dll/win32/msgina/lang/zh-CN.rc
+++ b/dll/win32/msgina/lang/zh-CN.rc
@@ -3,13 +3,14 @@
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
-IDD_STATUS DIALOGEX 0, 0, 275, 80
+IDD_STATUS DIALOGEX 0, 0, 275, 78
 STYLE NOT WS_VISIBLE | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_BORDER | WS_CAPTION
| WS_DLGFRAME | WS_POPUP
 CAPTION "请稍候..."
 FONT 9, "宋体", 400, 0, 1
 BEGIN
     CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54
-    LTEXT "", IDC_STATUS_MESSAGE, 7, 62, 261, 12, SS_WORDELLIPSIS
+    CONTROL "", IDC_BAR, "Static", SS_OWNERDRAW, 0, 44, 275, 4
+    LTEXT "", IDC_STATUS_MESSAGE, 7, 59, 261, 12, SS_WORDELLIPSIS
 END
 IDD_WELCOME DIALOGEX 0, 0, 275, 80
diff --git a/dll/win32/msgina/lang/zh-TW.rc b/dll/win32/msgina/lang/zh-TW.rc
index 0ee86535ce..1198a48e75 100644
--- a/dll/win32/msgina/lang/zh-TW.rc
+++ b/dll/win32/msgina/lang/zh-TW.rc
@@ -2,13 +2,14 @@
 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
-IDD_STATUS DIALOGEX 0, 0, 275, 80
+IDD_STATUS DIALOGEX 0, 0, 275, 78
 STYLE NOT WS_VISIBLE | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_BORDER | WS_CAPTION
| WS_DLGFRAME | WS_POPUP
 CAPTION "請稍候..."
 FONT 9, "新細明體", 400, 0, 1
 BEGIN
     CONTROL IDI_ROSLOGO, IDC_ROSLOGO, "Static", SS_BITMAP, 0, 0, 275, 54
-    LTEXT "", IDC_STATUS_MESSAGE, 7, 62, 261, 12, SS_WORDELLIPSIS
+    CONTROL "", IDC_BAR, "Static", SS_OWNERDRAW, 0, 44, 275, 4
+    LTEXT "", IDC_STATUS_MESSAGE, 7, 59, 261, 12, SS_WORDELLIPSIS
 END
 IDD_WELCOME DIALOGEX 0, 0, 275, 80
diff --git a/dll/win32/msgina/msgina.rc b/dll/win32/msgina/msgina.rc
index 9d455ab8cf..739b98071d 100644
--- a/dll/win32/msgina/msgina.rc
+++ b/dll/win32/msgina/msgina.rc
@@ -19,6 +19,7 @@ IDI_LOCKICON ICON "resources/115.ico"
 /* Bitmaps */
 IDI_ROSLOGO BITMAP "resources/reactos.bmp"
+IDI_BAR BITMAP "resources/line.bmp"
 /* UTF-8 */
 #pragma code_page(65001)
diff --git a/dll/win32/msgina/resource.h b/dll/win32/msgina/resource.h
index cdba2c0b66..e23da85878 100644
--- a/dll/win32/msgina/resource.h
+++ b/dll/win32/msgina/resource.h
@@ -55,9 +55,11 @@
 #define IDC_LEGALNOTICE_TEXT     2101
 #define IDC_ROSLOGO              1007
+#define IDC_BAR                  1008
 #define IDI_ROSLOGO         20000
+#define IDI_BAR             20001
 #define IDI_NOT_CONNECTED 13
 #define IDI_LOGOFF        21
diff --git a/dll/win32/msgina/resources/line.bmp b/dll/win32/msgina/resources/line.bmp
new file mode 100644
index 0000000000..08717d3cbe
Binary files /dev/null and b/dll/win32/msgina/resources/line.bmp differ
diff --git a/dll/win32/msgina/resources/line.svg b/dll/win32/msgina/resources/line.svg
new file mode 100644
index 0000000000..82be5cdcde
--- /dev/null
+++ b/dll/win32/msgina/resources/line.svg
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"
standalone="no"?>
+<!-- Created with Inkscape (
http://www.inkscape.org/) -->
+
+<svg
+   
xmlns:dc="http://purl.org/dc/elements/1.1/"
+   
xmlns:cc="http://creativecommons.org/ns#"
+   
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   
xmlns:svg="http://www.w3.org/2000/svg"
+   
xmlns="http://www.w3.org/2000/svg"
+   
xmlns:xlink="http://www.w3.org/1999/xlink"
+   
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd&quo…
+   
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   id="svg2"
+   width="413"
+   height="5"
+   viewBox="0 0 413 5"
+   sodipodi:docname="animation_gradient.svg"
+
inkscape:export-filename="C:\Users\Administrator\Desktop\animation_gradient.png"
+   inkscape:export-xdpi="96"
+   inkscape:export-ydpi="96"
+   inkscape:version="0.92.3 (2405546, 2018-03-11)">
+  <metadata
+     id="metadata8">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient823">
+      <stop
+         style="stop-color:#305067;stop-opacity:1"
+         offset="0"
+         id="stop819" />
+      <stop
+         id="stop835"
+         offset="0.10352668"
+         style="stop-color:#587787;stop-opacity:1" />
+      <stop
+         id="stop833"
+         offset="0.2"
+         style="stop-color:#98a7a8;stop-opacity:1" />
+      <stop
+         id="stop831"
+         offset="0.30179006"
+         style="stop-color:#a0b7c7;stop-opacity:1" />
+      <stop
+         id="stop829"
+         offset="0.40238672"
+         style="stop-color:#cfd8e0;stop-opacity:1" />
+      <stop
+         id="stop827"
+         offset="0.5"
+         style="stop-color:#ffffff;stop-opacity:1" />
+      <stop
+         style="stop-color:#cfd8e0;stop-opacity:1"
+         offset="0.60000002"
+         id="stop837" />
+      <stop
+         id="stop839"
+         offset="0.69999999"
+         style="stop-color:#a0b7c7;stop-opacity:1" />
+      <stop
+         style="stop-color:#98a7a8;stop-opacity:1"
+         offset="0.80000001"
+         id="stop841" />
+      <stop
+         id="stop843"
+         offset="0.89999998"
+         style="stop-color:#587787;stop-opacity:1" />
+      <stop
+         style="stop-color:#305067;stop-opacity:1"
+         offset="1"
+         id="stop821" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient823"
+       id="linearGradient825"
+       x1="0"
+       y1="5"
+       x2="413"
+       y2="5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(1.5852051e-7,-5)" />
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1542"
+     inkscape:window-height="881"
+     id="namedview4"
+     showgrid="false"
+     inkscape:zoom="2.479154"
+     inkscape:cx="183.50151"
+     inkscape:cy="-19.138918"
+     inkscape:window-x="54"
+     inkscape:window-y="-4"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <rect
+
style="opacity:1;fill:url(#linearGradient825);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:12;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:markers
stroke fill"
+     id="rect817"
+     width="413"
+     height="5"
+     x="0"
+     y="0" />
+</svg>