From d752fd2f1ff39fc27b8703fdb8c7f0d68dd87c53 Mon Sep 17 00:00:00 2001 From: Jonas Kümmerlin Date: Wed, 29 Apr 2020 13:45:30 +0200 Subject: button: use default min size and fixup order vertical centering --- widgetfactory.cpp | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 85 insertions(+), 7 deletions(-) (limited to 'widgetfactory.cpp') diff --git a/widgetfactory.cpp b/widgetfactory.cpp index 2273806..3e8dceb 100644 --- a/widgetfactory.cpp +++ b/widgetfactory.cpp @@ -230,19 +230,27 @@ commonPanelDestroy(void *closure, HWND window) /* button panel */ static void -buttonPanelAttach(void *closure, HWND panel) +buttonPanelAttach(void *closure, HWND outerPanel) { (void)closure; + HWND b; + HWND panel; + + panel = ALF_AddPanel(outerPanel, (WORD)-1, 0, 0); + ALF_AddLabel(panel, (WORD)-1, 0, 2, TEXT("normal")); ALF_AddLabel(panel, (WORD)-1, 0, 4, TEXT("disabled")); ALF_AddLabel(panel, (WORD)-1, 2, 0, TEXT("ALF")); ALF_AddLabel(panel, (WORD)-1, 4, 0, TEXT("native")); ALF_AddLabel(panel, (WORD)-1, 0, 6, TEXT("layout dummy")); - ALF_AddButton(panel, ID_HELLO, 2, 2, TEXT("&Hello, World!")); - HWND bDisabled = ALF_AddButton(panel, (WORD)-1, 2, 4, TEXT("Hello, World!")); - EnableWindow(bDisabled, FALSE); + b = ALF_AddButton(panel, ID_HELLO, 2, 2, TEXT("&Hello, World!")); + ALF_SetWidgetLayoutMinSize(panel, b, 0, 0); + b = ALF_AddButton(panel, (WORD)-1, 2, 4, TEXT("Hello, World!")); + EnableWindow(b, FALSE); + ALF_SetWidgetLayoutMinSize(panel, b, 0, 0); + HWND hwndNb1 = CreateWindowEx(0, TEXT("BUTTON"), @@ -267,18 +275,88 @@ buttonPanelAttach(void *closure, HWND panel) ALF_AddWidget(panel, 4, 2, hwndNb1, 0, 0, ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); ALF_AddWidget(panel, 4, 4, hwndNb2, 0, 0, ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); - ALF_AddButton(panel, (WORD)-1, 4, 6, TEXT("Hello, World!")); + b = ALF_AddButton(panel, (WORD)-1, 4, 6, TEXT("Hello, World!")); + ALF_SetWidgetLayoutMinSize(panel, b, 0, 0); - ALF_AddButton(panel, (WORD)-1, 4, 8, TEXT("Multiline\r\nButton")); + b = ALF_AddButton(panel, (WORD)-1, 2, 8, TEXT("Multiline\r\nButton")); + ALF_SetWidgetLayoutMinSize(panel, b, 0, 0); + + HWND hwndNb3 = CreateWindowEx(0, + TEXT("BUTTON"), + TEXT("Multiline\r\nButton"), + WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON | BS_MULTILINE, + 0, 0, 100, 100, + panel, + (HMENU)(WORD)-1, + (HINSTANCE)GetModuleHandle(NULL), + NULL); + + ALF_AddWidget(panel, 4, 8, hwndNb3, 0, 0, ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); ALF_LayoutSetRowMinSize(panel, 1, 825); ALF_LayoutSetRowMinSize(panel, 3, 825); ALF_LayoutSetRowMinSize(panel, 5, 825); ALF_LayoutSetRowMinSize(panel, 7, 825); + ALF_LayoutSetRowMinSize(panel, 9, 825); ALF_LayoutSetColumnMinSize(panel, 1, 825); ALF_LayoutSetColumnMinSize(panel, 3, 825); + ALF_LayoutSetColumnExpandNumerator(panel, 9, 1); - ALF_LayoutSetRowExpandNumerator(panel, 9, 1); + + panel = ALF_AddPanel(outerPanel, (WORD)-1, 0, 1); + + ALF_AddButton(panel, (WORD)-1, 2, 2, TEXT("Standard")); + + HWND hwndNb4 = CreateWindowEx(0, + TEXT("BUTTON"), + TEXT("Standard"), + WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, + 0, 0, 100, 100, + panel, + (HMENU)(WORD)-1, + (HINSTANCE)GetModuleHandle(NULL), + NULL); + ALF_AddWidget(panel, 4, 2, hwndNb4, 5625, 1725, ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); + + ALF_AddButton(panel, (WORD)-1, 2, 4, TEXT("Expanding")); + + HWND hwndNb5 = CreateWindowEx(0, + TEXT("BUTTON"), + TEXT("Expanding"), + WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, + 0, 0, 100, 100, + panel, + (HMENU)(WORD)-1, + (HINSTANCE)GetModuleHandle(NULL), + NULL); + ALF_AddWidget(panel, 4, 4, hwndNb5, 0, 0, ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); + + ALF_AddButton(panel, (WORD)-1, 2, 6, TEXT("Expanding\r\nMultiline")); + + HWND hwndNb6 = CreateWindowEx(0, + TEXT("BUTTON"), + TEXT("Expanding\r\nMultiline"), + WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON | BS_MULTILINE, + 0, 0, 100, 100, + panel, + (HMENU)(WORD)-1, + (HINSTANCE)GetModuleHandle(NULL), + NULL); + ALF_AddWidget(panel, 4, 6, hwndNb6, 0, 0, ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); + + ALF_LayoutSetRowMinSize(panel, 1, 825); + ALF_LayoutSetRowMinSize(panel, 3, 825); + ALF_LayoutSetRowMinSize(panel, 5, 825); + ALF_LayoutSetRowMinSize(panel, 7, 825); + ALF_LayoutSetColumnMinSize(panel, 1, 825); + ALF_LayoutSetColumnMinSize(panel, 3, 825); + + ALF_LayoutSetColumnExpandNumerator(panel, 9, 1); + ALF_LayoutSetRowExpandNumerator(panel, 4, 1); + ALF_LayoutSetRowExpandNumerator(panel, 6, 1); + + ALF_LayoutSetRowExpandNumerator(outerPanel, 1, 1); + // TODO: recreate old button box /*HWND panel = ALF_AddPanel(win, (WORD)-1, 1, 2); -- cgit v1.2.3