=?UTF-8?Q?Gabriel=20Iv=C4=83ncescu=20?=: comctl32/button: Implement BCM_GETSPLITINFO.

Alexandre Julliard julliard at winehq.org
Wed Apr 3 15:26:19 CDT 2019


Module: wine
Branch: master
Commit: 4e08a7e5d700a5796ccd4873a8c715748d09c5e8
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=4e08a7e5d700a5796ccd4873a8c715748d09c5e8

Author: Gabriel Ivăncescu <gabrielopcode at gmail.com>
Date:   Mon Apr  1 15:19:39 2019 +0300

comctl32/button: Implement BCM_GETSPLITINFO.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode at gmail.com>
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/comctl32/button.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/dlls/comctl32/button.c b/dlls/comctl32/button.c
index 4b8a8f4..213ab29 100644
--- a/dlls/comctl32/button.c
+++ b/dlls/comctl32/button.c
@@ -466,6 +466,9 @@ static LRESULT CALLBACK BUTTON_WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, L
         infoPtr->hwnd = hWnd;
         infoPtr->parent = cs->hwndParent;
         infoPtr->style = cs->style;
+        infoPtr->split_style = BCSS_STRETCH;
+        infoPtr->glyph = (HIMAGELIST)0x36;  /* Marlett down arrow char code */
+        infoPtr->glyph_size.cx = get_default_glyph_size(infoPtr);
         return DefWindowProcW(hWnd, uMsg, wParam, lParam);
     }
 
@@ -880,6 +883,22 @@ static LRESULT CALLBACK BUTTON_WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, L
         return TRUE;
     }
 
+    case BCM_GETSPLITINFO:
+    {
+        BUTTON_SPLITINFO *info = (BUTTON_SPLITINFO*)lParam;
+
+        if (!info) return FALSE;
+
+        if (info->mask & BCSIF_STYLE)
+            info->uSplitStyle = infoPtr->split_style;
+        if (info->mask & (BCSIF_GLYPH | BCSIF_IMAGE))
+            info->himlGlyph = infoPtr->glyph;
+        if (info->mask & BCSIF_SIZE)
+            info->size = infoPtr->glyph_size;
+
+        return TRUE;
+    }
+
     case BM_GETCHECK:
         return infoPtr->state & 3;
 




More information about the wine-cvs mailing list