From 536ea04c34ba761d7031eeabb6d50adab0f0f2bd Mon Sep 17 00:00:00 2001 From: Jonas Kümmerlin Date: Thu, 16 Apr 2020 18:17:56 +0200 Subject: rework grid layout Fractional expand is now supported like Qt, and also per row/column instead of as a widget attribute. Instead of margins, you're now supposed to use empty rows/columns instead. Spacer is also gone, use empty rows/columns with minimum size. Layout engine is prepared to directly calculate edit, button, etc. sizes without subclassing these controls --- widgetfactory.cpp | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) (limited to 'widgetfactory.cpp') diff --git a/widgetfactory.cpp b/widgetfactory.cpp index eec3192..dc343e6 100644 --- a/widgetfactory.cpp +++ b/widgetfactory.cpp @@ -128,18 +128,18 @@ WinMain (HMENU)ID_LBLHELLO, hInstance, NULL); - ALF_AddWidget(win, 0, 0, hwndLabel, 5000, 1000, ALF_INHERITFONT); + ALF_AddWidget(win, 0, 0, hwndLabel, 5000, 1000, ALF_LAYOUT_INHERITFONT); ALF_AddLabel(win, ID_LBL3, 0, 1, TEXT("Good Morning my &Angel!")); ALF_AddEdit(win, ID_ED1, 1, 1, TEXT("Happy Birthday!")); - ALF_AddButton(win, ID_B1, 2, 1, TEXT("&Go Go Go!")); + ALF_AddButton(win, ID_B1, 3, 1, TEXT("&Go Go Go!")); ALF_AddButton(win, ID_B2, 0, 2, TEXT("Oh m&y god,\r\nwho the hell cares?")); ALF_AddLabel(win, ID_LBL4, 0, 3, TEXT("&Editable Combo Box:")); HWND hwndCombo1 = ALF_AddEditableComboBox(win, ID_COMBO1, 1, 3, TEXT("Hello!")); - ALF_AddButton(win, ID_B3, 2, 3, TEXT("Ok")); + ALF_AddButton(win, ID_B3, 3, 3, TEXT("Ok")); ALF_ComboBoxInsertString(hwndCombo1, 0, TEXT("Hello World!")); ALF_ComboBoxInsertString(hwndCombo1, -1, TEXT("Goodbye World!")); @@ -147,7 +147,7 @@ WinMain ALF_AddLabel(win, ID_LBL5, 0, 4, TEXT("Selection-Only Combo Box:")); HWND hwndCombo2 = ALF_AddSelectionOnlyComboBox(win, ID_COMBO2, 1, 4); - ALF_AddButton(win, ID_B4, 2, 4, TEXT("Lol")); + ALF_AddButton(win, ID_B4, 3, 4, TEXT("Lol")); /*HWND b4 = ALF_WidgetAtLayoutPosition(win, 2, 4); ALF_SetWidgetLayoutSize(win, b4, 6427, 0);*/ @@ -165,7 +165,8 @@ WinMain ALF_AddButton(panel, ID_BC1, 0, 0, TEXT("1")); ALF_AddButton(panel, ID_BC2, 1, 0, TEXT("2")); ALF_AddButton(panel, ID_BC3, 2, 0, TEXT("3")); - ALF_AddSpacer(panel, (WORD)-1, 0, 1, 5000, 0, ALF_VEXPAND); + + ALF_LayoutSetRowExpandNumerator(panel, 1, 1); HWND hwndBc4 = CreateWindowEx(0, TEXT("BUTTON"), @@ -186,8 +187,8 @@ WinMain (HINSTANCE)GetWindowLongPtr(panel, GWLP_HINSTANCE), NULL); EnableWindow(hwndBc5, FALSE); - ALF_AddWidget(panel, 3, 0, hwndBc4, 1000, 0, ALF_INHERITFONT); - ALF_AddWidget(panel, 4, 0, hwndBc5, 1000, 0, ALF_INHERITFONT); + ALF_AddWidget(panel, 3, 0, hwndBc4, 1000, 0, ALF_LAYOUT_INHERITFONT); + ALF_AddWidget(panel, 4, 0, hwndBc5, 1000, 0, ALF_LAYOUT_INHERITFONT); EnableWindow(ALF_WidgetHwndById(win, ID_BC2), FALSE); @@ -197,10 +198,11 @@ WinMain ALF_AddLabel(hwndTabPanel1, (WORD)-1, 0, 0, TEXT("Hello World!")); ALF_AddLabel(hwndTabPanel2, (WORD)-1, 0, 0, TEXT("Goodbye, &World!")); ALF_AddEdit(hwndTabPanel2, (WORD)-1, 1, 0, TEXT("lol")); - ALF_AddWidgetLayoutFlag(win, hwndTab, ALF_VEXPAND); - HWND hwndTabLabel2 = ALF_AddLabel(hwndTabPanel1, (WORD)-1, 0, 1, TEXT("Blabla")); - ALF_AddWidgetLayoutFlag(hwndTabPanel1, hwndTabLabel2, ALF_VEXPAND); + ALF_LayoutSetRowExpandNumerator(win, 7, 1); + + ALF_AddLabel(hwndTabPanel1, (WORD)-1, 0, 1, TEXT("Blabla")); + ALF_LayoutSetRowExpandNumerator(hwndTabPanel1, 1, 1); ALF_AddLabel(hwndTabPanel1, (WORD)-1, 0, 2, TEXT("No 3")); ALF_AddEdit(hwndTabPanel1, (WORD)-1, 0, 3, TEXT("Dummy")); @@ -210,6 +212,9 @@ WinMain ALF_ComboBoxSetText(hwndCombo2, TEXT("Goodbye World!")); + ALF_LayoutSetColumnMinSize(win, 2, 825); + ALF_LayoutSetColumnExpandNumerator(win, 1, 4); + ALF_LayoutSetColumnExpandNumerator(win, 3, 1); EnableWindow(ALF_WidgetHwndById(win, ID_LBL3), FALSE); -- cgit v1.2.3