https://git.reactos.org/?p=reactos.git;a=commitdiff;h=cc99d3ad5ffe06d351024e207d5f0b39ec9ef30d

commit cc99d3ad5ffe06d351024e207d5f0b39ec9ef30d
Author:     Stanislav Motylkov <[email protected]>
AuthorDate: Sat Mar 23 20:53:01 2019 +0300
Commit:     Hermès BÉLUSCA - MAÏTO <[email protected]>
CommitDate: Sat Mar 23 19:11:28 2019 +0100

    [SHELL32] Add line bar to About dialog for consistence
    
    Addendum to f9d2931. CORE-15215
---
 dll/win32/shell32/bitmap_res.rc        |   1 +
 dll/win32/shell32/res/bitmaps/line.bmp | Bin 0 -> 6254 bytes
 dll/win32/shell32/shresdef.h           |   1 +
 dll/win32/shell32/wine/shell32_main.c  |  19 ++++++++++++++-----
 4 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/dll/win32/shell32/bitmap_res.rc b/dll/win32/shell32/bitmap_res.rc
index f267eb74b1..80dfa6f0ed 100644
--- a/dll/win32/shell32/bitmap_res.rc
+++ b/dll/win32/shell32/bitmap_res.rc
@@ -1,4 +1,5 @@
 IDB_REACTOS BITMAP "res/bitmaps/reactos.bmp"
+IDB_LINEBAR BITMAP "res/bitmaps/line.bmp"
 
 IDB_SHELL_IEXPLORE_LG        BITMAP "res/bitmaps/204.bmp"
 IDB_SHELL_IEXPLORE_LG_HOT    BITMAP "res/bitmaps/205.bmp"
diff --git a/dll/win32/shell32/res/bitmaps/line.bmp 
b/dll/win32/shell32/res/bitmaps/line.bmp
new file mode 100644
index 0000000000..08717d3cbe
Binary files /dev/null and b/dll/win32/shell32/res/bitmaps/line.bmp differ
diff --git a/dll/win32/shell32/shresdef.h b/dll/win32/shell32/shresdef.h
index 0a8cb724ac..9f7d6747cf 100644
--- a/dll/win32/shell32/shresdef.h
+++ b/dll/win32/shell32/shresdef.h
@@ -27,6 +27,7 @@
 
 /* Bitmaps */
 #define IDB_REACTOS                 131
+#define IDB_LINEBAR                 138
 #define IDB_SHELL_IEXPLORE_LG       204
 #define IDB_SHELL_IEXPLORE_LG_HOT   205
 #define IDB_SHELL_IEXPLORE_SM       206
diff --git a/dll/win32/shell32/wine/shell32_main.c 
b/dll/win32/shell32/wine/shell32_main.c
index 5b9ca5eae8..4ae3ea0d50 100644
--- a/dll/win32/shell32/wine/shell32_main.c
+++ b/dll/win32/shell32/wine/shell32_main.c
@@ -1132,8 +1132,8 @@ INT_PTR CALLBACK AboutAuthorsDlgProc( HWND hWnd, UINT 
msg, WPARAM wParam, LPARAM
 static INT_PTR CALLBACK AboutDlgProc( HWND hWnd, UINT msg, WPARAM wParam, 
LPARAM lParam )
 {
     static DWORD   cxLogoBmp;
-    static DWORD   cyLogoBmp;
-    static HBITMAP hLogoBmp;
+    static DWORD   cyLogoBmp, cyLineBmp;
+    static HBITMAP hLogoBmp, hLineBmp;
     static HWND    hWndAuthors;
 
     switch(msg)
@@ -1153,8 +1153,9 @@ static INT_PTR CALLBACK AboutDlgProc( HWND hWnd, UINT 
msg, WPARAM wParam, LPARAM
 
                 // Preload the ROS bitmap
                 hLogoBmp = (HBITMAP)LoadImage(shell32_hInstance, 
MAKEINTRESOURCE(IDB_REACTOS), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR);
+                hLineBmp = (HBITMAP)LoadImage(shell32_hInstance, 
MAKEINTRESOURCE(IDB_LINEBAR), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR);
 
-                if(hLogoBmp)
+                if(hLogoBmp && hLineBmp)
                 {
                     BITMAP bmpLogo;
 
@@ -1162,6 +1163,9 @@ static INT_PTR CALLBACK AboutDlgProc( HWND hWnd, UINT 
msg, WPARAM wParam, LPARAM
 
                     cxLogoBmp = bmpLogo.bmWidth;
                     cyLogoBmp = bmpLogo.bmHeight;
+
+                    GetObject( hLineBmp, sizeof(BITMAP), &bmpLogo );
+                    cyLineBmp = bmpLogo.bmHeight;
                 }
 
                 // Set App-specific stuff (icon, app name, szOtherStuff string)
@@ -1258,20 +1262,25 @@ static INT_PTR CALLBACK AboutDlgProc( HWND hWnd, UINT 
msg, WPARAM wParam, LPARAM
 
         case WM_PAINT:
         {
-            if(hLogoBmp)
+            if(hLogoBmp && hLineBmp)
             {
                 PAINTSTRUCT ps;
                 HDC hdc;
                 HDC hdcMem;
+                HGDIOBJ hOldObj;
 
                 hdc = BeginPaint(hWnd, &ps);
                 hdcMem = CreateCompatibleDC(hdc);
 
                 if(hdcMem)
                 {
-                    SelectObject(hdcMem, hLogoBmp);
+                    hOldObj = SelectObject(hdcMem, hLogoBmp);
                     BitBlt(hdc, 0, 0, cxLogoBmp, cyLogoBmp, hdcMem, 0, 0, 
SRCCOPY);
 
+                    SelectObject(hdcMem, hLineBmp);
+                    BitBlt(hdc, 0, cyLogoBmp, cxLogoBmp, cyLineBmp, hdcMem, 0, 
0, SRCCOPY);
+
+                    SelectObject(hdcMem, hOldObj);
                     DeleteDC(hdcMem);
                 }
 

Reply via email to