diff options
| -rw-r--r-- | alf/alf.cpp | 198 | ||||
| -rw-r--r-- | alf/alf.h | 147 | ||||
| -rw-r--r-- | alf/alfbutton.cpp | 4 | ||||
| -rw-r--r-- | alf/alfcombobox.cpp | 2 | ||||
| -rw-r--r-- | alf/alfedit.cpp | 2 | ||||
| -rw-r--r-- | alf/alfgroupbox.cpp | 26 | ||||
| -rw-r--r-- | alf/alflabel.cpp | 2 | ||||
| -rw-r--r-- | alf/alflayout.cpp | 420 | ||||
| -rw-r--r-- | alf/alflayout.h | 18 | ||||
| -rw-r--r-- | alf/alfnativebtn.cpp | 6 | ||||
| -rw-r--r-- | alf/alfnotebook.cpp | 18 | ||||
| -rw-r--r-- | alf/alfpanel.cpp | 14 | ||||
| -rw-r--r-- | widgetfactory.cpp | 241 |
13 files changed, 551 insertions, 547 deletions
diff --git a/alf/alf.cpp b/alf/alf.cpp index a4abca6..fbee438 100644 --- a/alf/alf.cpp +++ b/alf/alf.cpp @@ -12,26 +12,6 @@ ALF_UpdateFonts(HWND win) } void -ALF_InvalidateLayout(HWND hwnd) -{ - SendMessage(hwnd, ALF_WM_INVALIDATELAYOUT, 0, 0); -} - -void -ALF_AddWidget(HWND win, int x, int y, HWND widget, int minWidth, int minHeight, DWORD flags) -{ - ALFAddWidgetParams params; - ZeroMemory(¶ms, sizeof(params)); - params.hwnd = widget; - params.x = x; - params.y = y; - params.width = minWidth; - params.height = minHeight; - params.flags = flags; - SendMessage(win, ALF_WM_ADDWIDGET, 0, (LPARAM)¶ms); -} - -void ALF_Initialize(void) { // acquire init lock @@ -117,15 +97,15 @@ ALF_GetDpi(HWND window) return (int)SendMessage(window, ALF_WM_GETDPI, 0, 0); } -struct ALF_WidgetHwndById_Closure { +struct ALF_ControlHwndById_Closure { HWND result; WORD needle; }; static BOOL CALLBACK -ALF_WidgetHwndById_EnumChildProc(HWND hwnd, LPARAM lParam) +ALF_ControlHwndById_EnumChildProc(HWND hwnd, LPARAM lParam) { - struct ALF_WidgetHwndById_Closure *closure = (struct ALF_WidgetHwndById_Closure*)lParam; + struct ALF_ControlHwndById_Closure *closure = (struct ALF_ControlHwndById_Closure*)lParam; if ((WORD)GetWindowLongPtr(hwnd, GWLP_ID) == closure->needle) { closure->result = hwnd; return FALSE; @@ -134,10 +114,10 @@ ALF_WidgetHwndById_EnumChildProc(HWND hwnd, LPARAM lParam) } HWND -ALF_WidgetHwndById(HWND win, WORD id) +ALF_ControlHwndById(HWND win, WORD id) { - struct ALF_WidgetHwndById_Closure closure = { 0, id }; - EnumChildWindows(win, ALF_WidgetHwndById_EnumChildProc, (LPARAM)&closure); + struct ALF_ControlHwndById_Closure closure = { 0, id }; + EnumChildWindows(win, ALF_ControlHwndById_EnumChildProc, (LPARAM)&closure); return closure.result; } @@ -147,14 +127,6 @@ ALF_SetText(HWND hwnd, const TCHAR *text) SendMessage(hwnd, WM_SETTEXT, 0, (LPARAM)text); } -void -ALF_SetWidgetText(HWND parent, WORD id, const TCHAR *text) -{ - HWND h = ALF_WidgetHwndById(parent, id); - if (h) - ALF_SetText(h, text); -} - TCHAR * // free with ALF_Free ALF_Text(HWND hwnd) { @@ -171,162 +143,6 @@ ALF_Text(HWND hwnd) return ALF_New(TCHAR, 1); } -TCHAR * // free with ALF_Free -ALF_WidgetText(HWND parent, WORD id) -{ - HWND h = ALF_WidgetHwndById(parent, id); - if (h) - return ALF_Text(h); - - return NULL; -} - -DWORD -ALF_WidgetLayoutFlags(HWND parent, HWND widget) -{ - return (DWORD)SendMessage(parent, ALF_WM_LYT_GETWDGTFLAGS, (WPARAM)widget, 0); -} - -BOOL -ALF_SetWidgetLayoutFlags(HWND parent, HWND widget, DWORD flags) -{ - return (BOOL)SendMessage(parent, ALF_WM_LYT_SETWDGTFLAGS, (WPARAM)widget, (LPARAM)flags); -} - -BOOL -ALF_WidgetLayoutPosition(HWND parent, HWND widget, int *pX, int *pY) -{ - POINT p = { 0, 0 }; - - LRESULT r = SendMessage(parent, ALF_WM_LYT_GETWIDGETPOS, (WPARAM)widget, (LPARAM)&p); - *pX = p.x; - *pY = p.y; - return (BOOL)r; -} - -BOOL -ALF_SetWidgetLayoutPosition(HWND parent, HWND widget, int x, int y) -{ - POINT p = { x, y }; - return (BOOL)SendMessage(parent, ALF_WM_LYT_SETWIDGETPOS, (WPARAM)widget, (LPARAM)&p); -} - -BOOL -ALF_WidgetLayoutSpan(HWND parent, HWND widget, int *pXspan, int *pYspan) -{ - POINT p = { 0, 0 }; - - LRESULT r = SendMessage(parent, ALF_WM_LYT_GETWDGTSPAN, (WPARAM)widget, (LPARAM)&p); - *pXspan = p.x; - *pYspan = p.y; - return (BOOL)r; -} - -BOOL -ALF_SetWidgetLayoutSpan(HWND parent, HWND widget, int xspan, int yspan) -{ - POINT p = { xspan, yspan }; - return (BOOL)SendMessage(parent, ALF_WM_LYT_SETWDGTSPAN, (WPARAM)widget, (LPARAM)&p); -} - - -BOOL -ALF_WidgetLayoutMinSize(HWND parent, HWND widget, int *pWidth, int *pHeight) -{ - SIZE s = { 0, 0 }; - LRESULT r = SendMessage(parent, ALF_WM_LYT_GETWIDGTSIZE, (WPARAM)widget, (LPARAM)&s); - *pWidth = s.cx; - *pHeight = s.cy; - return (BOOL)r; -} - -BOOL -ALF_SetWidgetLayoutMinSize(HWND parent, HWND widget, int width, int height) -{ - SIZE s = { width, height }; - return (BOOL)SendMessage(parent, ALF_WM_LYT_SETWIDGTSIZE, (WPARAM)widget, (LPARAM)&s); -} - -HWND -ALF_WidgetAtLayoutPosition(HWND parent, int x, int y) -{ - int xy[2] = { x, y }; - - return (HWND)SendMessage(parent, ALF_WM_GETWIDGETATPOS, 0, (LPARAM)&xy); -} - -int -ALF_LayoutRowMinSize(HWND parent, int rowno) -{ - return (int)SendMessage(parent, ALF_WM_LYT_GETROWSIZE, (WPARAM)rowno, 0); -} - -BOOL -ALF_LayoutSetRowMinSize(HWND parent, int rowno, int rowsize) -{ - return (BOOL)SendMessage(parent, ALF_WM_LYT_SETROWSIZE, (WPARAM)rowno, (LPARAM)rowsize); -} - -int -ALF_LayoutColumnMinSize(HWND parent, int colno) -{ - return (int)SendMessage(parent, ALF_WM_LYT_GETCOLSIZE, (WPARAM)colno, 0); -} - -BOOL -ALF_LayoutSetColumnMinSize(HWND parent, int colno, int colsize) -{ - return (BOOL)SendMessage(parent, ALF_WM_LYT_SETCOLSIZE, (WPARAM)colno, (LPARAM)colsize); -} - -DWORD -ALF_LayoutRowFlags(HWND parent, int rowno) -{ - return (DWORD)SendMessage(parent, ALF_WM_LYT_GETROWFLAGS, (WPARAM)rowno, 0); -} - -BOOL -ALF_LayoutSetRowFlags(HWND parent, int rowno, DWORD flags) -{ - return (BOOL)SendMessage(parent, ALF_WM_LYT_SETROWFLAGS, (WPARAM)rowno, (LPARAM)flags); -} - -DWORD -ALF_LayoutColumnFlags(HWND parent, int colno) -{ - return (DWORD)SendMessage(parent, ALF_WM_LYT_GETCOLFLAGS, (WPARAM)colno, 0); -} - -BOOL -ALF_LayoutSetColumnFlags(HWND parent, int colno, DWORD flags) -{ - return (BOOL)SendMessage(parent, ALF_WM_LYT_SETCOLFLAGS, (WPARAM)colno, (LPARAM)flags); -} - -int -ALF_LayoutRowExpandNumerator(HWND parent, int rowno) -{ - return (int)SendMessage(parent, ALF_WM_LYT_GETROWEXPAND, (WPARAM)rowno, 0); -} - -BOOL -ALF_LayoutSetRowExpandNumerator(HWND parent, int rowno, int expand) -{ - return (BOOL)SendMessage(parent, ALF_WM_LYT_SETROWEXPAND, (WPARAM)rowno, (LPARAM)expand); -} - -int -ALF_LayoutColumnExpandNumerator(HWND parent, int colno) -{ - return (int)SendMessage(parent, ALF_WM_LYT_GETCOLEXPAND, (WPARAM)colno, 0); -} - -BOOL -ALF_LayoutSetColumnExpandNumerator(HWND parent, int colno, int expand) -{ - return (int)SendMessage(parent, ALF_WM_LYT_SETCOLEXPAND, (WPARAM)colno, (LPARAM)expand); -} - BOOL ALF_ShouldMessageBubble(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { @@ -379,7 +195,7 @@ ALF_SetBackgroundColor(HWND win, ALFColor color) { HWND parent = GetParent(win); if (parent) { - ALF_RemoveWidgetLayoutFlag(parent, win, ALF_LAYOUT_INHERITBGCOLOR); + ALF_Layout_RemoveControlFlag(parent, win, ALF_LAYOUT_INHERITBGCOLOR); } SendMessage(win, ALF_WM_SETBGCOLOR, 0, (LPARAM)color); @@ -72,11 +72,10 @@ typedef struct { // messages #define ALF_WM__BASE 0x2800 #define ALF_WM_QUERYSIZE (ALF_WM__BASE + 1) -#define ALF_WM_APPLYLAYOUT (ALF_WM__BASE + 2) #define ALF_WM_UPDATEFONTS (ALF_WM__BASE + 3) -#define ALF_WM_ADDWIDGET (ALF_WM__BASE + 4) -#define ALF_WM_WIDGETBYID (ALF_WM__BASE + 5) -#define ALF_WM_REMOVEWIDGET (ALF_WM__BASE + 6) +#define ALF_WM_ADDCONTROL (ALF_WM__BASE + 4) +#define ALF_WM_CONTROLBYID (ALF_WM__BASE + 5) +#define ALF_WM_REMOVECONTROL (ALF_WM__BASE + 6) #define ALF_WM_SETMODALRESULT (ALF_WM__BASE + 7) #define ALF_WM_GETMODALRESULT (ALF_WM__BASE + 8) #define ALF_WM_GETDPI (ALF_WM__BASE + 9) @@ -85,15 +84,15 @@ typedef struct { #define ALF_WM_APPLYSIZE (ALF_WM__BASE + 12) #define ALF_WM_SETBGCOLOR (ALF_WM__BASE + 13) #define ALF_WM_GETBGCOLOR (ALF_WM__BASE + 14) -#define ALF_WM_GETWIDGETATPOS (ALF_WM__BASE + 15) +#define ALF_WM_LYT_GETCTLATPOS (ALF_WM__BASE + 15) #define ALF_WM_INVALIDATELAYOUT (ALF_WM__BASE + 17) #define ALF_WM_VALIDATELAYOUT (ALF_WM__BASE + 18) -#define ALF_WM_LYT_GETWIDGETPOS (ALF_WM__BASE + 19) -#define ALF_WM_LYT_SETWIDGETPOS (ALF_WM__BASE + 20) -#define ALF_WM_LYT_GETWIDGTSIZE (ALF_WM__BASE + 21) -#define ALF_WM_LYT_SETWIDGTSIZE (ALF_WM__BASE + 22) -#define ALF_WM_LYT_GETWDGTFLAGS (ALF_WM__BASE + 23) -#define ALF_WM_LYT_SETWDGTFLAGS (ALF_WM__BASE + 24) +#define ALF_WM_LYT_GETCTLPOS (ALF_WM__BASE + 19) +#define ALF_WM_LYT_SETCTLPOS (ALF_WM__BASE + 20) +#define ALF_WM_LYT_GETCTLSIZE (ALF_WM__BASE + 21) +#define ALF_WM_LYT_SETCTLSIZE (ALF_WM__BASE + 22) +#define ALF_WM_LYT_GETCTLFLAGS (ALF_WM__BASE + 23) +#define ALF_WM_LYT_SETCTLFLAGS (ALF_WM__BASE + 24) #define ALF_WM_LYT_GETCOLSIZE (ALF_WM__BASE + 25) #define ALF_WM_LYT_SETCOLSIZE (ALF_WM__BASE + 26) #define ALF_WM_LYT_GETCOLEXPAND (ALF_WM__BASE + 27) @@ -109,8 +108,8 @@ typedef struct { #define ALF_WM_GETTEXTCOLOR (ALF_WM__BASE + 37) #define ALF_WM_SETTEXTCOLOR (ALF_WM__BASE + 38) #define ALF_WM_DPICHANGE (ALF_WM__BASE + 39) -#define ALF_WM_LYT_GETWDGTSPAN (ALF_WM__BASE + 40) -#define ALF_WM_LYT_SETWDGTSPAN (ALF_WM__BASE + 41) +#define ALF_WM_LYT_GETCTLSPAN (ALF_WM__BASE + 40) +#define ALF_WM_LYT_SETCTLSPAN (ALF_WM__BASE + 41) #define ALF_WM_LBL_GETSTYLE (ALF_WM__BASE + 201) #define ALF_WM_LBL_SETSTYLE (ALF_WM__BASE + 202) @@ -171,14 +170,9 @@ ALF_CentipointsToPixels(int cptValue, int dpi); int ALF_GetDpi(HWND hwnd); -void -ALF_AddWidget(HWND win, int x, int y, HWND widget, int width, int height, DWORD flags); - HWND -ALF_WidgetHwndById(HWND win, WORD id); +ALF_ControlHwndById(HWND win, WORD id); -void -ALF_InvalidateLayout(HWND win); // Sends ALF_WM_BACKGROUNDCHANGE to notify the window of a changed background // Only useful when you have overridden the window or panel pain() vfunc @@ -186,7 +180,7 @@ ALF_InvalidateLayout(HWND win); void ALF_InvalidateBackground(HWND win); -// Recalculates the window's fonts and applies them to child widgets. +// Recalculates the window's fonts and applies them to child controls. // ALF does this automatically on a DPI or settings change so you shouldn't have // to call ALF_UpdateFonts(). void @@ -194,7 +188,7 @@ ALF_UpdateFonts(HWND win); // Sets the background color of the given window // Also, if the window is a child window, disables the ALF_LAYOUT_INHERITBGCOLOR flag -// Only the following widgets have background colors: +// Only the following controls have background colors: // - Top-Level window // - Panel // - Label @@ -217,100 +211,129 @@ ALF_SetFocus(HWND target); void ALF_SetText(HWND hwnd, const TCHAR *text); -void -ALF_SetWidgetText(HWND parent, WORD id, const TCHAR *text); - TCHAR * // free with ALF_Free ALF_Text(HWND hwnd); -TCHAR * // free with ALF_Free -ALF_WidgetText(HWND parent, WORD id); +void +ALF_FillRect(HDC dc, const RECT *rc, ALFColor color); + +// wrapper for MessageBox() that handles modality for multiple toplevels with ALFApplication +int +ALF_MessageBox(HWND hwnd, const TCHAR *text, const TCHAR *caption, UINT type); + +// layout +// +// All of these functions are appropriate for every container that contains layouted children, +// i.e. toplevel, panel and groupbox +// +// Container controls which do not layout their children (e.g. notebook) might still +// support some of these functions in some ways, mostly (Set)ControlFlags so that +// background color and font inheritance can be toggled + +void +ALF_InvalidateLayout(HWND win); + +void +ALF_AddControl(HWND win, int x, int y, HWND control, int width, int height, DWORD flags); DWORD -ALF_WidgetLayoutFlags(HWND parent, HWND widget); +ALF_Layout_ControlFlags(HWND parent, HWND control); BOOL -ALF_SetWidgetLayoutFlags(HWND parent, HWND widget, DWORD flags); +ALF_Layout_SetControlFlags(HWND parent, HWND control, DWORD flags); static inline void -ALF_AddWidgetLayoutFlag(HWND parent, HWND widget, DWORD flag) +ALF_Layout_AddControlFlag(HWND parent, HWND control, DWORD flag) { - ALF_SetWidgetLayoutFlags(parent, widget, ALF_WidgetLayoutFlags(parent, widget) | flag); + ALF_Layout_SetControlFlags(parent, control, ALF_Layout_ControlFlags(parent, control) | flag); } static inline void -ALF_RemoveWidgetLayoutFlag(HWND parent, HWND widget, DWORD flag) +ALF_Layout_RemoveControlFlag(HWND parent, HWND control, DWORD flag) { - ALF_SetWidgetLayoutFlags(parent, widget, ALF_WidgetLayoutFlags(parent, widget) & ~flag); + ALF_Layout_SetControlFlags(parent, control, ALF_Layout_ControlFlags(parent, control) & ~flag); } BOOL -ALF_WidgetLayoutPosition(HWND parent, HWND widget, int *pX, int *pY); +ALF_Layout_ControlPosition(HWND parent, HWND control, int *pX, int *pY); BOOL -ALF_SetWidgetLayoutPosition(HWND parent, HWND widget, int x, int y); +ALF_Layout_SetControlPosition(HWND parent, HWND control, int x, int y); BOOL -ALF_WidgetLayoutSpan(HWND parent, HWND widget, int *pXspan, int *pYspan); +ALF_Layout_ControlSpan(HWND parent, HWND control, int *pXspan, int *pYspan); BOOL -ALF_SetWidgetLayoutSpan(HWND parent, HWND widget, int xspan, int yspan); +ALF_Layout_SetControlSpan(HWND parent, HWND control, int xspan, int yspan); BOOL -ALF_WidgetLayoutMinSize(HWND parent, HWND widget, int *pWidth, int *pheight); +ALF_Layout_ControlMinSize(HWND parent, HWND control, int *pWidth, int *pheight); BOOL -ALF_SetWidgetLayoutMinSize(HWND parent, HWND widget, int width, int height); +ALF_Layout_SetControlMinSize(HWND parent, HWND control, int width, int height); HWND -ALF_WidgetAtLayoutPosition(HWND parent, int x, int y); +ALF_Layout_ControlAtPosition(HWND parent, int x, int y); int -ALF_LayoutRowMinSize(HWND parent, int rowno); +ALF_Layout_RowMinSize(HWND parent, int rowno); BOOL -ALF_LayoutSetRowMinSize(HWND parent, int rowno, int rowsize); +ALF_Layout_SetRowMinSize(HWND parent, int rowno, int rowsize); int -ALF_LayoutColumnMinSize(HWND parent, int colno); +ALF_Layout_ColumnMinSize(HWND parent, int colno); BOOL -ALF_LayoutSetColumnMinSize(HWND parent, int colno, int colsize); +ALF_Layout_SetColumnMinSize(HWND parent, int colno, int colsize); DWORD -ALF_LayoutRowFlags(HWND parent, int rowno); +ALF_Layout_RowFlags(HWND parent, int rowno); BOOL -ALF_LayoutSetRowFlags(HWND parent, int rowno, DWORD flags); +ALF_Layout_SetRowFlags(HWND parent, int rowno, DWORD flags); + +static inline BOOL +ALF_Layout_AddRowFlag(HWND parent, int rowno, DWORD addflag) +{ + return ALF_Layout_SetRowFlags(parent, rowno, ALF_Layout_RowFlags(parent, rowno) | addflag); +} + +static inline BOOL +ALF_Layout_RemoveRowFlag(HWND parent, int rowno, DWORD removeflag) +{ + return ALF_Layout_SetRowFlags(parent, rowno, ALF_Layout_RowFlags(parent, rowno) & ~removeflag); +} DWORD -ALF_LayoutColumnFlags(HWND parent, int colno); +ALF_Layout_ColumnFlags(HWND parent, int colno); BOOL -ALF_LayoutSetColumnFlags(HWND parent, int colno, DWORD flags); +ALF_Layout_SetColumnFlags(HWND parent, int colno, DWORD flags); -int -ALF_LayoutRowExpandNumerator(HWND parent, int rowno); +static inline BOOL +ALF_Layout_AddColumnFlag(HWND parent, int colno, DWORD addflag) +{ + return ALF_Layout_SetColumnFlags(parent, colno, ALF_Layout_ColumnFlags(parent, colno) | addflag); +} -BOOL -ALF_LayoutSetRowExpandNumerator(HWND parent, int rowno, int expand); +static inline BOOL +ALF_Layout_RemoveColumnFlag(HWND parent, int colno, DWORD removeflag) +{ + return ALF_Layout_SetColumnFlags(parent, colno, ALF_Layout_ColumnFlags(parent, colno) & ~removeflag); +} int -ALF_LayoutColumnExpandNumerator(HWND parent, int colno); +ALF_Layout_RowExpandNumerator(HWND parent, int rowno); BOOL -ALF_LayoutSetColumnExpandNumerator(HWND parent, int colno, int expand); - -void -ALF_FillRect(HDC dc, const RECT *rc, ALFColor color); +ALF_Layout_SetRowExpandNumerator(HWND parent, int rowno, int expand); -void -ALF_DestroyWidget(HWND win, WORD id); - -// wrapper for MessageBox() that handles modality for multiple toplevels with ALFApplication int -ALF_MessageBox(HWND hwnd, const TCHAR *text, const TCHAR *caption, UINT type); +ALF_Layout_ColumnExpandNumerator(HWND parent, int colno); +BOOL +ALF_Layout_SetColumnExpandNumerator(HWND parent, int colno, int expand); // application @@ -434,7 +457,7 @@ ALF_Toplevel_EnsureBigEnough(HWND toplevel); // // - If no default button is specified, the default button will be the button // with the id IDOK. A WM_COMMAND message on pressing the return key will be -// sent even if no widget with the default id can be found. +// sent even if no control with the default id can be found. // - In NT 3.51, the default button must be a direct child of the window. Otherwise // the default button effect will not work. // - In Win32s on Win3.1, the default button should be a direct child of the window. diff --git a/alf/alfbutton.cpp b/alf/alfbutton.cpp index 00bd3fb..3c3e940 100644 --- a/alf/alfbutton.cpp +++ b/alf/alfbutton.cpp @@ -975,7 +975,7 @@ ALF_NtButton_Create(HWND win, WORD id, int x, int y, const TCHAR *text, DWORD ad minheight = 0; } - ALF_AddWidget(win, x, y, hwndButton, minwidth, minheight, ALF_LAYOUT_SIZE_QUERY | ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_SENDDPICHANGE | ALF_LAYOUT_INHERITBGCOLOR | ALF_LAYOUT_SENDBGCHANGE); + ALF_AddControl(win, x, y, hwndButton, minwidth, minheight, ALF_LAYOUT_SIZE_QUERY | ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_SENDDPICHANGE | ALF_LAYOUT_INHERITBGCOLOR | ALF_LAYOUT_SENDBGCHANGE); return hwndButton; } @@ -1378,7 +1378,7 @@ ALF_ClassicButton_Create(HWND win, WORD id, int x, int y, const TCHAR *text, DWO priv->origWndProc = (WNDPROC)GetWindowLongPtr(hwndButton, GWLP_WNDPROC); SetWindowLongPtr(hwndButton, GWLP_WNDPROC, (LONG_PTR)priv->thunk); - ALF_AddWidget(win, x, y, hwndButton, minwidth, minheight, ALF_LAYOUT_SIZE_QUERY | ALF_LAYOUT_INHERITFONT); + ALF_AddControl(win, x, y, hwndButton, minwidth, minheight, ALF_LAYOUT_SIZE_QUERY | ALF_LAYOUT_INHERITFONT); return hwndButton; } diff --git a/alf/alfcombobox.cpp b/alf/alfcombobox.cpp index 1a7c1c2..5350a2a 100644 --- a/alf/alfcombobox.cpp +++ b/alf/alfcombobox.cpp @@ -319,7 +319,7 @@ ALF_InternalAddComboBox(HWND win, WORD id, int x, int y, DWORD style, const TCHA if (defaultText) SetWindowText(hwndCombo, defaultText); - ALF_AddWidget(win, x, y, hwndCombo, 0, 0, ALF_LAYOUT_SIZE_QUERY | ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_SENDDPICHANGE); + ALF_AddControl(win, x, y, hwndCombo, 0, 0, ALF_LAYOUT_SIZE_QUERY | ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_SENDDPICHANGE); return hwndCombo; } diff --git a/alf/alfedit.cpp b/alf/alfedit.cpp index ae8e895..cf47d23 100644 --- a/alf/alfedit.cpp +++ b/alf/alfedit.cpp @@ -28,7 +28,7 @@ ALF_AddEdit(HWND win, WORD id, int x, int y, const TCHAR *text) SetWindowPos(hwndEdit, NULL, 0, 0, 0, 0, SWP_NOZORDER | SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_FRAMECHANGED); - ALF_AddWidget(win, x, y, hwndEdit, 12000, 0, ALF_LAYOUT_SIZE_EDIT | ALF_LAYOUT_INHERITFONT); + ALF_AddControl(win, x, y, hwndEdit, 12000, 0, ALF_LAYOUT_SIZE_EDIT | ALF_LAYOUT_INHERITFONT); return hwndEdit; } diff --git a/alf/alfgroupbox.cpp b/alf/alfgroupbox.cpp index 3aed7d1..0b60d81 100644 --- a/alf/alfgroupbox.cpp +++ b/alf/alfgroupbox.cpp @@ -14,11 +14,11 @@ typedef struct { static void ALF_GroupBox_BeginCalcSizes(ALFLayout *layout, HWND hwnd); -static void ALF_GroupBox_HandleContainerWidgetSize(ALFLayout *layout, HWND groupbox, HWND child, SIZE *s); +static void ALF_GroupBox_HandleContainerControlSize(ALFLayout *layout, HWND groupbox, HWND child, SIZE *s); static void ALF_GroupBox_EndCalcSizes(ALFLayout *layout, HWND hwnd, SIZE *containerMinSize); -static void ALF_GroupBox_PreContainerWidgetApplyPos(ALFLayout *layout, HWND groupbox, HWND child, RECT *r); +static void ALF_GroupBox_PreContainerControlApplyPos(ALFLayout *layout, HWND groupbox, HWND child, RECT *r); static void ALF_GroupBox_HandleThemeChange(ALFGroupBoxPriv *priv, HWND hwnd); @@ -27,9 +27,9 @@ ALF_GroupBox_IntializePriv(ALFGroupBoxPriv *priv, HWND window, const TCHAR *text { ALF_Layout_Init(&priv->layout); priv->layout.beginCalcSizes = ALF_GroupBox_BeginCalcSizes; - priv->layout.handleContainerWidgetSize = ALF_GroupBox_HandleContainerWidgetSize; + priv->layout.handleContainerControlSize = ALF_GroupBox_HandleContainerControlSize; priv->layout.endCalcSizes = ALF_GroupBox_EndCalcSizes; - priv->layout.preApplyLayoutToContainerWidget = ALF_GroupBox_PreContainerWidgetApplyPos; + priv->layout.preApplyLayoutToContainerControl = ALF_GroupBox_PreContainerControlApplyPos; priv->label = ALF_AddLabel(window, (WORD)-1, -1, -1, text); ALF_Label_SetStyle(priv->label, ALF_LABEL_ALIGN_LEFT | ALF_LABEL_ALIGN_TOP); @@ -155,7 +155,7 @@ ALF_GroupBox_BeginCalcSizes(ALFLayout *layout, HWND hwnd) } static void -ALF_GroupBox_HandleContainerWidgetSize(ALFLayout *layout, HWND groupbox, HWND child, SIZE *s) +ALF_GroupBox_HandleContainerControlSize(ALFLayout *layout, HWND groupbox, HWND child, SIZE *s) { ALFGroupBoxPriv *priv = (ALFGroupBoxPriv *)layout; (void)groupbox; @@ -180,7 +180,7 @@ static void ALF_GroupBox_EndCalcSizes(ALFLayout *layout, HWND hwnd, SIZE *contai containerMinSize->cy = priv->layout.containerMargins.top + priv->layout.containerMargins.bottom; } -static void ALF_GroupBox_PreContainerWidgetApplyPos(ALFLayout *layout, HWND groupbox, HWND child, RECT *r) +static void ALF_GroupBox_PreContainerControlApplyPos(ALFLayout *layout, HWND groupbox, HWND child, RECT *r) { ALFGroupBoxPriv *priv = (ALFGroupBoxPriv *)layout; @@ -288,23 +288,23 @@ ALF_GroupBox_WindowProc(HWND window, UINT msg, WPARAM wparam, LPARAM lparam) RECT c; GetClientRect(window, &c); - if (c.right > priv->layout.allocatedWidgetRect.right + priv->layout.containerMargins.right) { + if (c.right > priv->layout.allocatedControlRect.right + priv->layout.containerMargins.right) { // enlarged to the right -> invalidate place occupied by old border - RECT i = { priv->layout.allocatedWidgetRect.right, + RECT i = { priv->layout.allocatedControlRect.right, 0, c.right, c.bottom }; InvalidateRect(window, &i, TRUE); } - if (c.bottom > priv->layout.allocatedWidgetRect.bottom + priv->layout.containerMargins.bottom) { + if (c.bottom > priv->layout.allocatedControlRect.bottom + priv->layout.containerMargins.bottom) { // enlarged to the bottom -> invalidate place occupied by old border RECT i = { 0, - priv->layout.allocatedWidgetRect.bottom, + priv->layout.allocatedControlRect.bottom, c.right, c.bottom }; InvalidateRect(window, &i, TRUE); } - if (c.right < priv->layout.allocatedWidgetRect.right + priv->layout.containerMargins.right) { + if (c.right < priv->layout.allocatedControlRect.right + priv->layout.containerMargins.right) { // shrunk horizontally -> invalidate place now occupied by new border RECT i = { c.right - priv->layout.containerMargins.right, 0, @@ -312,7 +312,7 @@ ALF_GroupBox_WindowProc(HWND window, UINT msg, WPARAM wparam, LPARAM lparam) c.bottom }; InvalidateRect(window, &i, TRUE); } - if (c.bottom < priv->layout.allocatedWidgetRect.bottom + priv->layout.containerMargins.bottom) { + if (c.bottom < priv->layout.allocatedControlRect.bottom + priv->layout.containerMargins.bottom) { // shrunk vertically -> invalidate place now ocuupied by new border RECT i = { 0, c.bottom - priv->layout.containerMargins.bottom, @@ -356,7 +356,7 @@ ALF_AddGroupBox(HWND parent, WORD id, int x, int y, const TCHAR *text) ALF_GroupBox_WindowProc, NULL); - ALF_AddWidget(parent, x, y, hwndPanel, 0, 0, ALF_LAYOUT_SIZE_QUERY | ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_INHERITBGCOLOR | ALF_LAYOUT_SENDBGCHANGE | ALF_LAYOUT_SENDDPICHANGE); + ALF_AddControl(parent, x, y, hwndPanel, 0, 0, ALF_LAYOUT_SIZE_QUERY | ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_INHERITBGCOLOR | ALF_LAYOUT_SENDBGCHANGE | ALF_LAYOUT_SENDDPICHANGE); return hwndPanel; } diff --git a/alf/alflabel.cpp b/alf/alflabel.cpp index 05bd35e..b3a87c4 100644 --- a/alf/alflabel.cpp +++ b/alf/alflabel.cpp @@ -307,7 +307,7 @@ ALF_AddLabel(HWND win, WORD id, int x, int y, const TCHAR *text) priv->dpi = 96; SetWindowLongPtr(hwndLabel, 0, (LONG_PTR)priv); - ALF_AddWidget(win, x, y, hwndLabel, 0, 0, ALF_LAYOUT_SIZE_QUERY | ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_INHERITBGCOLOR | ALF_LAYOUT_SENDBGCHANGE | ALF_LAYOUT_SENDDPICHANGE); + ALF_AddControl(win, x, y, hwndLabel, 0, 0, ALF_LAYOUT_SIZE_QUERY | ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_INHERITBGCOLOR | ALF_LAYOUT_SENDBGCHANGE | ALF_LAYOUT_SENDDPICHANGE); return hwndLabel; } diff --git a/alf/alflayout.cpp b/alf/alflayout.cpp index a390890..6f35345 100644 --- a/alf/alflayout.cpp +++ b/alf/alflayout.cpp @@ -10,58 +10,58 @@ static void ALF_Layout_EnsureColumnExists(ALFLayout *layout, int colno); static BOOL -ALF_Layout_GetWidgetPos(ALFLayout *layout, HWND window, HWND needle, POINT *p); +ALF_Layout_GetControlPosPriv(ALFLayout *layout, HWND window, HWND needle, POINT *p); static BOOL -ALF_Layout_SetWidgetPos(ALFLayout *layout, HWND window, HWND needle, POINT *p); +ALF_Layout_SetControlPosPriv(ALFLayout *layout, HWND window, HWND needle, POINT *p); static BOOL -ALF_Layout_GetWidgetSize(ALFLayout *layout, HWND window, HWND needle, SIZE *s); +ALF_Layout_GetControlSizePriv(ALFLayout *layout, HWND window, HWND needle, SIZE *s); static BOOL -ALF_Layout_SetWidgetSize(ALFLayout *layout, HWND window, HWND needle, SIZE *s); +ALF_Layout_SetControlSizePriv(ALFLayout *layout, HWND window, HWND needle, SIZE *s); static DWORD -ALF_Layout_GetWidgetFlags(ALFLayout *layout, HWND window, HWND needle); +ALF_Layout_GetControlFlagsPriv(ALFLayout *layout, HWND window, HWND needle); static BOOL -ALF_Layout_SetWidgetFlags(ALFLayout *layout, HWND window, HWND needle, DWORD flags); +ALF_Layout_SetControlFlagsPriv(ALFLayout *layout, HWND window, HWND needle, DWORD flags); static int -ALF_Layout_GetColumnSize(ALFLayout *layout, HWND window, int colno); +ALF_Layout_GetColumnSizePriv(ALFLayout *layout, HWND window, int colno); static BOOL -ALF_Layout_SetColumnSize(ALFLayout *layout, HWND window, int colno, int size); +ALF_Layout_SetColumnSizePriv(ALFLayout *layout, HWND window, int colno, int size); static int -ALF_Layout_GetColumnExpand(ALFLayout *layout, HWND window, int colno); +ALF_Layout_GetColumnExpandPriv(ALFLayout *layout, HWND window, int colno); static BOOL -ALF_Layout_SetColumnExpand(ALFLayout *layout, HWND window, int colno, int expand); +ALF_Layout_SetColumnExpandPriv(ALFLayout *layout, HWND window, int colno, int expand); static DWORD -ALF_Layout_GetColumnFlags(ALFLayout *layout, HWND window, int colno); +ALF_Layout_GetColumnFlagsPriv(ALFLayout *layout, HWND window, int colno); static BOOL -ALF_Layout_SetColumnFlags(ALFLayout *layout, HWND window, int colno, DWORD flags); +ALF_Layout_SetColumnFlagsPriv(ALFLayout *layout, HWND window, int colno, DWORD flags); static int -ALF_Layout_GetRowSize(ALFLayout *layout, HWND window, int rowno); +ALF_Layout_GetRowSizePriv(ALFLayout *layout, HWND window, int rowno); static BOOL -ALF_Layout_SetRowSize(ALFLayout *layout, HWND window, int rowno, int size); +ALF_Layout_SetRowSizePriv(ALFLayout *layout, HWND window, int rowno, int size); static int -ALF_Layout_GetRowExpand(ALFLayout *layout, HWND window, int rowno); +ALF_Layout_GetRowExpandPriv(ALFLayout *layout, HWND window, int rowno); static BOOL -ALF_Layout_SetRowExpand(ALFLayout *layout, HWND window, int rowno, int expand); +ALF_Layout_SetRowExpandPriv(ALFLayout *layout, HWND window, int rowno, int expand); static DWORD -ALF_Layout_GetRowFlags(ALFLayout *layout, HWND window, int rowno); +ALF_Layout_GetRowFlagsPriv(ALFLayout *layout, HWND window, int rowno); static BOOL -ALF_Layout_SetRowFlags(ALFLayout *layout, HWND window, int rowno, DWORD flags); +ALF_Layout_SetRowFlagsPriv(ALFLayout *layout, HWND window, int rowno, DWORD flags); static void ALF_Layout_HandleBackgroundChange(ALFLayout *layout, HWND window); @@ -70,7 +70,7 @@ void ALF_Layout_Init(ALFLayout *layout) { ZeroMemory(layout, sizeof(*layout)); - ALF_ListInit(&layout->widgets); + ALF_ListInit(&layout->controls); layout->nRows = 1; layout->rows = ALF_New(ALFLayoutRowOrColumn, (SIZE_T)layout->nRows); @@ -83,10 +83,10 @@ ALF_Layout_Init(ALFLayout *layout) void ALF_Layout_Clear(ALFLayout *layout) { - ALF_FOR_LIST(ALFWidgetPriv, list, &layout->widgets, w) { + ALF_FOR_LIST(ALFControlPriv, list, &layout->controls, w) { ALF_Free(w); } - ALF_ListInit(&layout->widgets); + ALF_ListInit(&layout->controls); ALF_Free(layout->columns); ALF_Free(layout->rows); layout->columns = NULL; @@ -96,12 +96,12 @@ ALF_Layout_Clear(ALFLayout *layout) } static void -ALF_Layout_ForwardFontToWidget(ALFLayout *layout, HWND window, ALFWidgetPriv *widget, HFONT font, LPARAM redraw) +ALF_Layout_ForwardFontToControl(ALFLayout *layout, HWND window, ALFControlPriv *control, HFONT font, LPARAM redraw) { - if (widget->flags & ALF_LAYOUT_INHERITFONT) { - SendMessage(widget->hwnd, WM_SETFONT, (WPARAM)font, redraw); + if (control->flags & ALF_LAYOUT_INHERITFONT) { + SendMessage(control->hwnd, WM_SETFONT, (WPARAM)font, redraw); - switch (widget->flags & ALF_LAYOUT_SIZETYPE_MASK) { + switch (control->flags & ALF_LAYOUT_SIZETYPE_MASK) { case ALF_LAYOUT_SIZE_EDIT: case ALF_LAYOUT_SIZE_CHECKBOX: ALF_Layout_Invalidate(layout, window); @@ -118,8 +118,8 @@ ALF_Layout_ForwardFont(ALFLayout *layout, HWND window, HFONT font, LPARAM redraw { (void)window; - ALF_FOR_LIST(ALFWidgetPriv, list, &layout->widgets, i) { - ALF_Layout_ForwardFontToWidget(layout, window, i, font, redraw); + ALF_FOR_LIST(ALFControlPriv, list, &layout->controls, i) { + ALF_Layout_ForwardFontToControl(layout, window, i, font, redraw); } } @@ -128,7 +128,7 @@ ALF_Layout_ForwardBgColor(ALFLayout *layout, HWND window, WPARAM wparam, LPARAM { (void)window; - ALF_FOR_LIST(ALFWidgetPriv, list, &layout->widgets, i) { + ALF_FOR_LIST(ALFControlPriv, list, &layout->controls, i) { if (i->flags & ALF_LAYOUT_INHERITBGCOLOR) { SendMessage(i->hwnd, ALF_WM_SETBGCOLOR, wparam, lparam); } @@ -138,7 +138,7 @@ ALF_Layout_ForwardBgColor(ALFLayout *layout, HWND window, WPARAM wparam, LPARAM static void ALF_Layout_ForwardDpiChange(ALFLayout *layout, HWND window, WPARAM wparam, LPARAM lparam) { - ALF_FOR_LIST(ALFWidgetPriv, list, &layout->widgets, i) { + ALF_FOR_LIST(ALFControlPriv, list, &layout->controls, i) { if (i->flags & ALF_LAYOUT_SENDDPICHANGE) { SendMessage(i->hwnd, ALF_WM_DPICHANGE, wparam, lparam); } @@ -154,7 +154,7 @@ ALF_Layout_HandleBackgroundChange(ALFLayout *layout, HWND window) { (void)window; - ALF_FOR_LIST(ALFWidgetPriv, list, &layout->widgets, i) { + ALF_FOR_LIST(ALFControlPriv, list, &layout->controls, i) { if (i->flags & ALF_LAYOUT_TRANSPARENTBG) { InvalidateRect(i->hwnd, NULL, TRUE); } @@ -297,7 +297,7 @@ ALF_Layout_CalcButtonSize(HWND hwndWindow, ALFLayout *layout, HWND hwndButton, S } static void -ALF_Layout_CalcMinWidgetSize(ALFLayout *layout, ALFWidgetPriv *c, HWND window) +ALF_Layout_CalcMinControlSize(ALFLayout *layout, ALFControlPriv *c, HWND window) { if (c->flags & ALF_LAYOUT_SIZE_PX) { c->calculatedSize.cx = c->width; @@ -366,12 +366,12 @@ ALF_Layout_CalcSizes(ALFLayout* layout, HWND window) layout->biggestRowNo = i; } - ALF_FOR_LIST(ALFWidgetPriv, list, &layout->widgets, c) { - ALF_Layout_CalcMinWidgetSize(layout, c, window); + ALF_FOR_LIST(ALFControlPriv, list, &layout->controls, c) { + ALF_Layout_CalcMinControlSize(layout, c, window); if (c->x < 0 || c->y < 0) { - if (layout->handleContainerWidgetSize) - layout->handleContainerWidgetSize(layout, window, c->hwnd, &c->calculatedSize); + if (layout->handleContainerControlSize) + layout->handleContainerControlSize(layout, window, c->hwnd, &c->calculatedSize); } else { if (c->xspan <= 1) { ALF_Layout_EnsureColumnExists(layout, c->x); @@ -390,7 +390,7 @@ ALF_Layout_CalcSizes(ALFLayout* layout, HWND window) } // second pass for spanning cells - ALF_FOR_LIST(ALFWidgetPriv, list, &layout->widgets, c) { + ALF_FOR_LIST(ALFControlPriv, list, &layout->controls, c) { if (c->xspan > 1) { ALF_Layout_EnsureColumnExists(layout, c->x + c->xspan - 1); @@ -529,26 +529,26 @@ ALF_Layout_Apply(ALFLayout* layout, HWND window) if (layout->layoutValididityFlags & ALF_LAYOUT_NEED_RECALC) ALF_Layout_CalcSizes(layout, window); - GetClientRect(window, &layout->allocatedWidgetRect); - layout->allocatedWidgetRect.left += layout->containerMargins.left; - layout->allocatedWidgetRect.right -= layout->containerMargins.right; - layout->allocatedWidgetRect.top += layout->containerMargins.top; - layout->allocatedWidgetRect.bottom -= layout->containerMargins.bottom; + GetClientRect(window, &layout->allocatedControlRect); + layout->allocatedControlRect.left += layout->containerMargins.left; + layout->allocatedControlRect.right -= layout->containerMargins.right; + layout->allocatedControlRect.top += layout->containerMargins.top; + layout->allocatedControlRect.bottom -= layout->containerMargins.bottom; // FIXME! can that happen? - if (layout->allocatedWidgetRect.right < layout->allocatedWidgetRect.left) - layout->allocatedWidgetRect.right = layout->allocatedWidgetRect.left; - if (layout->allocatedWidgetRect.bottom < layout->allocatedWidgetRect.top) - layout->allocatedWidgetRect.bottom = layout->allocatedWidgetRect.top; + if (layout->allocatedControlRect.right < layout->allocatedControlRect.left) + layout->allocatedControlRect.right = layout->allocatedControlRect.left; + if (layout->allocatedControlRect.bottom < layout->allocatedControlRect.top) + layout->allocatedControlRect.bottom = layout->allocatedControlRect.top; // distribute extra space int extraWidth = 0; int extraHeight = 0; - if (layout->allocatedWidgetRect.right - layout->allocatedWidgetRect.left > layout->totalMinWidth) - extraWidth = layout->allocatedWidgetRect.right - layout->allocatedWidgetRect.left - layout->totalMinWidth; - if (layout->allocatedWidgetRect.bottom - layout->allocatedWidgetRect.top > layout->totalMinHeight) - extraHeight = layout->allocatedWidgetRect.bottom - layout->allocatedWidgetRect.top - layout->totalMinHeight; + if (layout->allocatedControlRect.right - layout->allocatedControlRect.left > layout->totalMinWidth) + extraWidth = layout->allocatedControlRect.right - layout->allocatedControlRect.left - layout->totalMinWidth; + if (layout->allocatedControlRect.bottom - layout->allocatedControlRect.top > layout->totalMinHeight) + extraHeight = layout->allocatedControlRect.bottom - layout->allocatedControlRect.top - layout->totalMinHeight; int extraWidthLeft = extraWidth; for (int i = 0; i < layout->nColumns; ++i) { @@ -581,21 +581,21 @@ ALF_Layout_Apply(ALFLayout* layout, HWND window) layout->rows[layout->biggestRowNo].calculatedMinWidth + extraHeightLeft; // set row/column positions - int x = layout->allocatedWidgetRect.left; + int x = layout->allocatedControlRect.left; for (int i = 0; i < layout->nColumns; ++i) { layout->columns[i].allocatedPosition = x; x += layout->columns[i].allocatedWidth; } - int y = layout->allocatedWidgetRect.top; + int y = layout->allocatedControlRect.top; for (int i = 0; i < layout->nRows; ++i) { layout->rows[i].allocatedPosition = y; y += layout->rows[i].allocatedWidth; } - // now apply positions to widgets + // now apply positions to controls HDWP hdwp = BeginDeferWindowPos(layout->nColumns * layout->nRows); - ALF_FOR_LIST(ALFWidgetPriv, list, &layout->widgets, c) { + ALF_FOR_LIST(ALFControlPriv, list, &layout->controls, c) { int col = c->x; int row = c->y; int colspan = c->xspan; @@ -609,8 +609,8 @@ ALF_Layout_Apply(ALFLayout* layout, HWND window) RECT r = { 0,0,0,0 }; if (row < 0 || col < 0) { - if (layout->preApplyLayoutToContainerWidget) - layout->preApplyLayoutToContainerWidget(layout, window, c->hwnd, &r); + if (layout->preApplyLayoutToContainerControl) + layout->preApplyLayoutToContainerControl(layout, window, c->hwnd, &r); } else { r.left = layout->columns[col].allocatedPosition; r.right = layout->columns[col+colspan-1].allocatedPosition + layout->columns[col+colspan-1].allocatedWidth; @@ -627,7 +627,7 @@ ALF_Layout_Apply(ALFLayout* layout, HWND window) if (!ALF_Compat_IsMinWindowsVersion(4, 0)) flags |= SWP_NOCOPYBITS; - // transparent background: invalidate if widget moved + // transparent background: invalidate if control moved if (layout->bgcolor == ALF_COLOR_TRANSPARENT) { RECT oldR; GetWindowRect(c->hwnd, &oldR); @@ -656,9 +656,9 @@ ALF_Layout_Apply(ALFLayout* layout, HWND window) } void -ALF_Layout_AddWidget(ALFLayout* layout, HWND window, const ALFAddWidgetParams* params) +ALF_Layout_AddControl(ALFLayout* layout, HWND window, const ALFAddControlParams* params) { - ALFWidgetPriv *w = ALF_New(ALFWidgetPriv, 1); + ALFControlPriv *w = ALF_New(ALFControlPriv, 1); w->hwnd = params->hwnd; w->x = params->x; w->y = params->y; @@ -670,7 +670,7 @@ ALF_Layout_AddWidget(ALFLayout* layout, HWND window, const ALFAddWidgetParams* p SetParent(w->hwnd, window); if (w->flags & ALF_LAYOUT_INHERITFONT) { - ALF_Layout_ForwardFontToWidget(layout, window, w, layout->font, 0); + ALF_Layout_ForwardFontToControl(layout, window, w, layout->font, 0); } if (w->flags & ALF_LAYOUT_INHERITBGCOLOR) { SendMessage(w->hwnd, ALF_WM_SETBGCOLOR, 0, (LPARAM)layout->bgcolor); @@ -679,15 +679,15 @@ ALF_Layout_AddWidget(ALFLayout* layout, HWND window, const ALFAddWidgetParams* p SendMessage(w->hwnd, ALF_WM_DPICHANGE, 0, (LPARAM)layout->dpi); } - ALF_ListInsert(layout->widgets.prev, &w->list); + ALF_ListInsert(layout->controls.prev, &w->list); ALF_Layout_Invalidate(layout, window); } HWND -ALF_Layout_WidgetAtPos(ALFLayout* layout, int x, int y) +ALF_Layout_ControlAtPosPriv(ALFLayout* layout, int x, int y) { - ALF_FOR_LIST(ALFWidgetPriv, list, &layout->widgets, w) { + ALF_FOR_LIST(ALFControlPriv, list, &layout->controls, w) { if (w->x == x && w->y == y) { return w->hwnd; } @@ -743,11 +743,11 @@ ALF_Layout_GetMinSize(ALFLayout *layout, HWND window, SIZE *size) } BOOL -ALF_Layout_GetWidgetPos(ALFLayout *layout, HWND window, HWND needle, POINT *p) +ALF_Layout_GetControlPosPriv(ALFLayout *layout, HWND window, HWND needle, POINT *p) { (void)window; - ALF_FOR_LIST(ALFWidgetPriv, list, &layout->widgets, w) { + ALF_FOR_LIST(ALFControlPriv, list, &layout->controls, w) { if (w->hwnd == needle) { p->x = w->x; p->y = w->y; @@ -759,9 +759,9 @@ ALF_Layout_GetWidgetPos(ALFLayout *layout, HWND window, HWND needle, POINT *p) } static BOOL -ALF_Layout_SetWidgetPos(ALFLayout *layout, HWND window, HWND needle, POINT *p) +ALF_Layout_SetControlPosPriv(ALFLayout *layout, HWND window, HWND needle, POINT *p) { - ALF_FOR_LIST(ALFWidgetPriv, list, &layout->widgets, w) { + ALF_FOR_LIST(ALFControlPriv, list, &layout->controls, w) { if (w->hwnd == needle) { w->x = p->x; w->y = p->y; @@ -776,11 +776,11 @@ ALF_Layout_SetWidgetPos(ALFLayout *layout, HWND window, HWND needle, POINT *p) } BOOL -ALF_Layout_GetWidgetSpan(ALFLayout *layout, HWND window, HWND needle, POINT *p) +ALF_Layout_GetControlSpanPriv(ALFLayout *layout, HWND window, HWND needle, POINT *p) { (void)window; - ALF_FOR_LIST(ALFWidgetPriv, list, &layout->widgets, w) { + ALF_FOR_LIST(ALFControlPriv, list, &layout->controls, w) { if (w->hwnd == needle) { p->x = w->xspan; p->y = w->yspan; @@ -792,9 +792,9 @@ ALF_Layout_GetWidgetSpan(ALFLayout *layout, HWND window, HWND needle, POINT *p) } static BOOL -ALF_Layout_SetWidgetSpan(ALFLayout *layout, HWND window, HWND needle, POINT *p) +ALF_Layout_SetControlSpanPriv(ALFLayout *layout, HWND window, HWND needle, POINT *p) { - ALF_FOR_LIST(ALFWidgetPriv, list, &layout->widgets, w) { + ALF_FOR_LIST(ALFControlPriv, list, &layout->controls, w) { if (w->hwnd == needle) { w->xspan = p->x; w->yspan = p->y; @@ -809,11 +809,11 @@ ALF_Layout_SetWidgetSpan(ALFLayout *layout, HWND window, HWND needle, POINT *p) } static BOOL -ALF_Layout_GetWidgetSize(ALFLayout *layout, HWND window, HWND needle, SIZE *s) +ALF_Layout_GetControlSizePriv(ALFLayout *layout, HWND window, HWND needle, SIZE *s) { (void)window; - ALF_FOR_LIST(ALFWidgetPriv, list, &layout->widgets, w) { + ALF_FOR_LIST(ALFControlPriv, list, &layout->controls, w) { if (w->hwnd == needle) { s->cx = w->width; s->cy = w->height; @@ -825,9 +825,9 @@ ALF_Layout_GetWidgetSize(ALFLayout *layout, HWND window, HWND needle, SIZE *s) } static BOOL -ALF_Layout_SetWidgetSize(ALFLayout *layout, HWND window, HWND needle, SIZE *s) +ALF_Layout_SetControlSizePriv(ALFLayout *layout, HWND window, HWND needle, SIZE *s) { - ALF_FOR_LIST(ALFWidgetPriv, list, &layout->widgets, w) { + ALF_FOR_LIST(ALFControlPriv, list, &layout->controls, w) { if (w->hwnd == needle) { w->width = s->cx; w->height = s->cy; @@ -842,11 +842,11 @@ ALF_Layout_SetWidgetSize(ALFLayout *layout, HWND window, HWND needle, SIZE *s) } static DWORD -ALF_Layout_GetWidgetFlags(ALFLayout *layout, HWND window, HWND needle) +ALF_Layout_GetControlFlagsPriv(ALFLayout *layout, HWND window, HWND needle) { (void)window; - ALF_FOR_LIST(ALFWidgetPriv, list, &layout->widgets, w) { + ALF_FOR_LIST(ALFControlPriv, list, &layout->controls, w) { if (w->hwnd == needle) { return w->flags; } @@ -856,14 +856,14 @@ ALF_Layout_GetWidgetFlags(ALFLayout *layout, HWND window, HWND needle) } static BOOL -ALF_Layout_SetWidgetFlags(ALFLayout *layout, HWND window, HWND needle, DWORD flags) +ALF_Layout_SetControlFlagsPriv(ALFLayout *layout, HWND window, HWND needle, DWORD flags) { - ALF_FOR_LIST(ALFWidgetPriv, list, &layout->widgets, w) { + ALF_FOR_LIST(ALFControlPriv, list, &layout->controls, w) { if (w->hwnd == needle) { w->flags = flags; if (flags & ALF_LAYOUT_INHERITFONT) - ALF_Layout_ForwardFontToWidget(layout, window, w, layout->font, 0); + ALF_Layout_ForwardFontToControl(layout, window, w, layout->font, 0); if (flags & ALF_LAYOUT_INHERITBGCOLOR) SendMessage(w->hwnd, ALF_WM_SETBGCOLOR, 0, (LPARAM)layout->bgcolor); if (flags & ALF_LAYOUT_SENDDPICHANGE) @@ -879,7 +879,7 @@ ALF_Layout_SetWidgetFlags(ALFLayout *layout, HWND window, HWND needle, DWORD fla } int -ALF_Layout_GetColumnSize(ALFLayout *layout, HWND window, int colno) +ALF_Layout_GetColumnSizePriv(ALFLayout *layout, HWND window, int colno) { (void)window; @@ -890,7 +890,7 @@ ALF_Layout_GetColumnSize(ALFLayout *layout, HWND window, int colno) } BOOL -ALF_Layout_SetColumnSize(ALFLayout *layout, HWND window, int colno, int size) +ALF_Layout_SetColumnSizePriv(ALFLayout *layout, HWND window, int colno, int size) { ALF_Layout_EnsureColumnExists(layout, colno); @@ -902,7 +902,7 @@ ALF_Layout_SetColumnSize(ALFLayout *layout, HWND window, int colno, int size) } int -ALF_Layout_GetColumnExpand(ALFLayout *layout, HWND window, int colno) +ALF_Layout_GetColumnExpandPriv(ALFLayout *layout, HWND window, int colno) { (void)window; @@ -913,7 +913,7 @@ ALF_Layout_GetColumnExpand(ALFLayout *layout, HWND window, int colno) } static BOOL -ALF_Layout_SetColumnExpand(ALFLayout *layout, HWND window, int colno, int expand) +ALF_Layout_SetColumnExpandPriv(ALFLayout *layout, HWND window, int colno, int expand) { ALF_Layout_EnsureColumnExists(layout, colno); @@ -925,7 +925,7 @@ ALF_Layout_SetColumnExpand(ALFLayout *layout, HWND window, int colno, int expand } static DWORD -ALF_Layout_GetColumnFlags(ALFLayout *layout, HWND window, int colno) +ALF_Layout_GetColumnFlagsPriv(ALFLayout *layout, HWND window, int colno) { (void)window; @@ -936,7 +936,7 @@ ALF_Layout_GetColumnFlags(ALFLayout *layout, HWND window, int colno) } static BOOL -ALF_Layout_SetColumnFlags(ALFLayout *layout, HWND window, int colno, DWORD flags) +ALF_Layout_SetColumnFlagsPriv(ALFLayout *layout, HWND window, int colno, DWORD flags) { ALF_Layout_EnsureColumnExists(layout, colno); @@ -948,7 +948,7 @@ ALF_Layout_SetColumnFlags(ALFLayout *layout, HWND window, int colno, DWORD flags } static int -ALF_Layout_GetRowSize(ALFLayout *layout, HWND window, int rowno) +ALF_Layout_GetRowSizePriv(ALFLayout *layout, HWND window, int rowno) { (void)window; @@ -959,7 +959,7 @@ ALF_Layout_GetRowSize(ALFLayout *layout, HWND window, int rowno) } static BOOL -ALF_Layout_SetRowSize(ALFLayout *layout, HWND window, int rowno, int size) +ALF_Layout_SetRowSizePriv(ALFLayout *layout, HWND window, int rowno, int size) { ALF_Layout_EnsureRowExists(layout, rowno); @@ -971,7 +971,7 @@ ALF_Layout_SetRowSize(ALFLayout *layout, HWND window, int rowno, int size) } static int -ALF_Layout_GetRowExpand(ALFLayout *layout, HWND window, int rowno) +ALF_Layout_GetRowExpandPriv(ALFLayout *layout, HWND window, int rowno) { (void)window; @@ -982,7 +982,7 @@ ALF_Layout_GetRowExpand(ALFLayout *layout, HWND window, int rowno) } static BOOL -ALF_Layout_SetRowExpand(ALFLayout *layout, HWND window, int rowno, int expand) +ALF_Layout_SetRowExpandPriv(ALFLayout *layout, HWND window, int rowno, int expand) { ALF_Layout_EnsureRowExists(layout, rowno); @@ -994,7 +994,7 @@ ALF_Layout_SetRowExpand(ALFLayout *layout, HWND window, int rowno, int expand) } static DWORD -ALF_Layout_GetRowFlags(ALFLayout *layout, HWND window, int rowno) +ALF_Layout_GetRowFlagsPriv(ALFLayout *layout, HWND window, int rowno) { (void)window; @@ -1005,7 +1005,7 @@ ALF_Layout_GetRowFlags(ALFLayout *layout, HWND window, int rowno) } static BOOL -ALF_Layout_SetRowFlags(ALFLayout *layout, HWND window, int rowno, DWORD flags) +ALF_Layout_SetRowFlagsPriv(ALFLayout *layout, HWND window, int rowno, DWORD flags) { ALF_Layout_EnsureRowExists(layout, rowno); @@ -1031,18 +1031,13 @@ ALF_Layout_HandleMessage(ALFLayout *layout, HWND hwnd, UINT msg, WPARAM wparam, return TRUE; } - if (msg == ALF_WM_APPLYLAYOUT) { - ALF_Layout_Apply(layout, hwnd); + if (msg == ALF_WM_ADDCONTROL) { + ALF_Layout_AddControl(layout, hwnd, (ALFAddControlParams *)lparam); return TRUE; } - if (msg == ALF_WM_ADDWIDGET) { - ALF_Layout_AddWidget(layout, hwnd, (ALFAddWidgetParams *)lparam); - return TRUE; - } - - if (msg == ALF_WM_GETWIDGETATPOS) { - *pRet = (LRESULT)ALF_Layout_WidgetAtPos(layout, ((int*)lparam)[0], ((int*)lparam)[1]); + if (msg == ALF_WM_LYT_GETCTLATPOS) { + *pRet = (LRESULT)ALF_Layout_ControlAtPosPriv(layout, ((int*)lparam)[0], ((int*)lparam)[1]); return TRUE; } @@ -1112,105 +1107,274 @@ ALF_Layout_HandleMessage(ALFLayout *layout, HWND hwnd, UINT msg, WPARAM wparam, return TRUE; } - if (msg == ALF_WM_LYT_GETWIDGETPOS) { - *pRet = (LRESULT)ALF_Layout_GetWidgetPos(layout, hwnd, (HWND)wparam, (POINT *)lparam); + if (msg == ALF_WM_LYT_GETCTLPOS) { + *pRet = (LRESULT)ALF_Layout_GetControlPosPriv(layout, hwnd, (HWND)wparam, (POINT *)lparam); return TRUE; } - if (msg == ALF_WM_LYT_SETWIDGETPOS) { - *pRet = (LRESULT)ALF_Layout_SetWidgetPos(layout, hwnd, (HWND)wparam, (POINT *)lparam); + if (msg == ALF_WM_LYT_SETCTLPOS) { + *pRet = (LRESULT)ALF_Layout_SetControlPosPriv(layout, hwnd, (HWND)wparam, (POINT *)lparam); return TRUE; } - if (msg == ALF_WM_LYT_GETWDGTSPAN) { - *pRet = (LRESULT)ALF_Layout_GetWidgetSpan(layout, hwnd, (HWND)wparam, (POINT *)lparam); + if (msg == ALF_WM_LYT_GETCTLSPAN) { + *pRet = (LRESULT)ALF_Layout_GetControlSpanPriv(layout, hwnd, (HWND)wparam, (POINT *)lparam); return TRUE; } - if (msg == ALF_WM_LYT_SETWDGTSPAN) { - *pRet = (LRESULT)ALF_Layout_SetWidgetSpan(layout, hwnd, (HWND)wparam, (POINT *)lparam); + if (msg == ALF_WM_LYT_SETCTLSPAN) { + *pRet = (LRESULT)ALF_Layout_SetControlSpanPriv(layout, hwnd, (HWND)wparam, (POINT *)lparam); return TRUE; } - if (msg == ALF_WM_LYT_GETWIDGTSIZE) { - *pRet = (LRESULT)ALF_Layout_GetWidgetSize(layout, hwnd, (HWND)wparam, (SIZE *)lparam); + if (msg == ALF_WM_LYT_GETCTLSIZE) { + *pRet = (LRESULT)ALF_Layout_GetControlSizePriv(layout, hwnd, (HWND)wparam, (SIZE *)lparam); return TRUE; } - if (msg == ALF_WM_LYT_SETWIDGTSIZE) { - *pRet = (LRESULT)ALF_Layout_SetWidgetSize(layout, hwnd, (HWND)wparam, (SIZE *)lparam); + if (msg == ALF_WM_LYT_SETCTLSIZE) { + *pRet = (LRESULT)ALF_Layout_SetControlSizePriv(layout, hwnd, (HWND)wparam, (SIZE *)lparam); return TRUE; } - if (msg == ALF_WM_LYT_GETWDGTFLAGS) { - *pRet = (LRESULT)ALF_Layout_GetWidgetFlags(layout, hwnd, (HWND)wparam); + if (msg == ALF_WM_LYT_GETCTLFLAGS) { + *pRet = (LRESULT)ALF_Layout_GetControlFlagsPriv(layout, hwnd, (HWND)wparam); return TRUE; } - if (msg == ALF_WM_LYT_SETWDGTFLAGS) { - *pRet = (LRESULT)ALF_Layout_SetWidgetFlags(layout, hwnd, (HWND)wparam, (DWORD)lparam); + if (msg == ALF_WM_LYT_SETCTLFLAGS) { + *pRet = (LRESULT)ALF_Layout_SetControlFlagsPriv(layout, hwnd, (HWND)wparam, (DWORD)lparam); return TRUE; } if (msg == ALF_WM_LYT_GETCOLSIZE) { - *pRet = (LRESULT)ALF_Layout_GetColumnSize(layout, hwnd, (int)wparam); + *pRet = (LRESULT)ALF_Layout_GetColumnSizePriv(layout, hwnd, (int)wparam); return TRUE; } if (msg == ALF_WM_LYT_SETCOLSIZE) { - *pRet = (LRESULT)ALF_Layout_SetColumnSize(layout, hwnd, (int)wparam, (int)lparam); + *pRet = (LRESULT)ALF_Layout_SetColumnSizePriv(layout, hwnd, (int)wparam, (int)lparam); return TRUE; } if (msg == ALF_WM_LYT_GETCOLEXPAND) { - *pRet = (LRESULT)ALF_Layout_GetColumnExpand(layout, hwnd, (int)wparam); + *pRet = (LRESULT)ALF_Layout_GetColumnExpandPriv(layout, hwnd, (int)wparam); return TRUE; } if (msg == ALF_WM_LYT_SETCOLEXPAND) { - *pRet = (LRESULT)ALF_Layout_SetColumnExpand(layout, hwnd, (int)wparam, (int)lparam); + *pRet = (LRESULT)ALF_Layout_SetColumnExpandPriv(layout, hwnd, (int)wparam, (int)lparam); return TRUE; } if (msg == ALF_WM_LYT_GETCOLFLAGS) { - *pRet = (LRESULT)ALF_Layout_GetColumnFlags(layout, hwnd, (int)wparam); + *pRet = (LRESULT)ALF_Layout_GetColumnFlagsPriv(layout, hwnd, (int)wparam); return TRUE; } if (msg == ALF_WM_LYT_SETCOLFLAGS) { - *pRet = (LRESULT)ALF_Layout_SetColumnFlags(layout, hwnd, (int)wparam, (DWORD)lparam); + *pRet = (LRESULT)ALF_Layout_SetColumnFlagsPriv(layout, hwnd, (int)wparam, (DWORD)lparam); return TRUE; } if (msg == ALF_WM_LYT_GETROWSIZE) { - *pRet = (LRESULT)ALF_Layout_GetRowSize(layout, hwnd, (int)wparam); + *pRet = (LRESULT)ALF_Layout_GetRowSizePriv(layout, hwnd, (int)wparam); return TRUE; } if (msg == ALF_WM_LYT_SETROWSIZE) { - *pRet = (LRESULT)ALF_Layout_SetRowSize(layout, hwnd, (int)wparam, (int)lparam); + *pRet = (LRESULT)ALF_Layout_SetRowSizePriv(layout, hwnd, (int)wparam, (int)lparam); return TRUE; } if (msg == ALF_WM_LYT_GETROWEXPAND) { - *pRet = (LRESULT)ALF_Layout_GetRowExpand(layout, hwnd, (int)wparam); + *pRet = (LRESULT)ALF_Layout_GetRowExpandPriv(layout, hwnd, (int)wparam); return TRUE; } if (msg == ALF_WM_LYT_SETROWEXPAND) { - *pRet = (LRESULT)ALF_Layout_SetRowExpand(layout, hwnd, (int)wparam, (int)lparam); + *pRet = (LRESULT)ALF_Layout_SetRowExpandPriv(layout, hwnd, (int)wparam, (int)lparam); return TRUE; } if (msg == ALF_WM_LYT_GETROWFLAGS) { - *pRet = (LRESULT)ALF_Layout_GetRowFlags(layout, hwnd, (int)wparam); + *pRet = (LRESULT)ALF_Layout_GetRowFlagsPriv(layout, hwnd, (int)wparam); return TRUE; } if (msg == ALF_WM_LYT_SETROWFLAGS) { - *pRet = (LRESULT)ALF_Layout_SetRowFlags(layout, hwnd, (int)wparam, (DWORD)lparam); + *pRet = (LRESULT)ALF_Layout_SetRowFlagsPriv(layout, hwnd, (int)wparam, (DWORD)lparam); return TRUE; } return FALSE; } + +// public api + +DWORD +ALF_Layout_ControlFlags(HWND parent, HWND control) +{ + return (DWORD)SendMessage(parent, ALF_WM_LYT_GETCTLFLAGS, (WPARAM)control, 0); +} + +BOOL +ALF_Layout_SetControlFlags(HWND parent, HWND control, DWORD flags) +{ + return (BOOL)SendMessage(parent, ALF_WM_LYT_SETCTLFLAGS, (WPARAM)control, (LPARAM)flags); +} + +BOOL +ALF_Layout_ControlPosition(HWND parent, HWND control, int *pX, int *pY) +{ + POINT p = { 0, 0 }; + + LRESULT r = SendMessage(parent, ALF_WM_LYT_GETCTLPOS, (WPARAM)control, (LPARAM)&p); + *pX = p.x; + *pY = p.y; + return (BOOL)r; +} + +BOOL +ALF_Layout_SetControlPosition(HWND parent, HWND control, int x, int y) +{ + POINT p = { x, y }; + return (BOOL)SendMessage(parent, ALF_WM_LYT_SETCTLPOS, (WPARAM)control, (LPARAM)&p); +} + +BOOL +ALF_Layout_ControlSpan(HWND parent, HWND control, int *pXspan, int *pYspan) +{ + POINT p = { 0, 0 }; + + LRESULT r = SendMessage(parent, ALF_WM_LYT_GETCTLSPAN, (WPARAM)control, (LPARAM)&p); + *pXspan = p.x; + *pYspan = p.y; + return (BOOL)r; +} + +BOOL +ALF_Layout_SetControlSpan(HWND parent, HWND control, int xspan, int yspan) +{ + POINT p = { xspan, yspan }; + return (BOOL)SendMessage(parent, ALF_WM_LYT_SETCTLSPAN, (WPARAM)control, (LPARAM)&p); +} + + +BOOL +ALF_Layout_ControlMinSize(HWND parent, HWND control, int *pWidth, int *pHeight) +{ + SIZE s = { 0, 0 }; + LRESULT r = SendMessage(parent, ALF_WM_LYT_GETCTLSIZE, (WPARAM)control, (LPARAM)&s); + *pWidth = s.cx; + *pHeight = s.cy; + return (BOOL)r; +} + +BOOL +ALF_Layout_SetControlMinSize(HWND parent, HWND control, int width, int height) +{ + SIZE s = { width, height }; + return (BOOL)SendMessage(parent, ALF_WM_LYT_SETCTLSIZE, (WPARAM)control, (LPARAM)&s); +} + +HWND +ALF_Layout_ControlAtPosition(HWND parent, int x, int y) +{ + int xy[2] = { x, y }; + + return (HWND)SendMessage(parent, ALF_WM_LYT_GETCTLATPOS, 0, (LPARAM)&xy); +} + +int +ALF_Layout_RowMinSize(HWND parent, int rowno) +{ + return (int)SendMessage(parent, ALF_WM_LYT_GETROWSIZE, (WPARAM)rowno, 0); +} + +BOOL +ALF_Layout_SetRowMinSize(HWND parent, int rowno, int rowsize) +{ + return (BOOL)SendMessage(parent, ALF_WM_LYT_SETROWSIZE, (WPARAM)rowno, (LPARAM)rowsize); +} + +int +ALF_Layout_ColumnMinSize(HWND parent, int colno) +{ + return (int)SendMessage(parent, ALF_WM_LYT_GETCOLSIZE, (WPARAM)colno, 0); +} + +BOOL +ALF_Layout_SetColumnMinSize(HWND parent, int colno, int colsize) +{ + return (BOOL)SendMessage(parent, ALF_WM_LYT_SETCOLSIZE, (WPARAM)colno, (LPARAM)colsize); +} + +DWORD +ALF_Layout_RowFlags(HWND parent, int rowno) +{ + return (DWORD)SendMessage(parent, ALF_WM_LYT_GETROWFLAGS, (WPARAM)rowno, 0); +} + +BOOL +ALF_Layout_SetRowFlags(HWND parent, int rowno, DWORD flags) +{ + return (BOOL)SendMessage(parent, ALF_WM_LYT_SETROWFLAGS, (WPARAM)rowno, (LPARAM)flags); +} + +DWORD +ALF_Layout_ColumnFlags(HWND parent, int colno) +{ + return (DWORD)SendMessage(parent, ALF_WM_LYT_GETCOLFLAGS, (WPARAM)colno, 0); +} + +BOOL +ALF_Layout_SetColumnFlags(HWND parent, int colno, DWORD flags) +{ + return (BOOL)SendMessage(parent, ALF_WM_LYT_SETCOLFLAGS, (WPARAM)colno, (LPARAM)flags); +} + +int +ALF_Layout_RowExpandNumerator(HWND parent, int rowno) +{ + return (int)SendMessage(parent, ALF_WM_LYT_GETROWEXPAND, (WPARAM)rowno, 0); +} + +BOOL +ALF_Layout_SetRowExpandNumerator(HWND parent, int rowno, int expand) +{ + return (BOOL)SendMessage(parent, ALF_WM_LYT_SETROWEXPAND, (WPARAM)rowno, (LPARAM)expand); +} + +int +ALF_Layout_ColumnExpandNumerator(HWND parent, int colno) +{ + return (int)SendMessage(parent, ALF_WM_LYT_GETCOLEXPAND, (WPARAM)colno, 0); +} + +BOOL +ALF_Layout_SetColumnExpandNumerator(HWND parent, int colno, int expand) +{ + return (int)SendMessage(parent, ALF_WM_LYT_SETCOLEXPAND, (WPARAM)colno, (LPARAM)expand); +} + +void +ALF_InvalidateLayout(HWND hwnd) +{ + SendMessage(hwnd, ALF_WM_INVALIDATELAYOUT, 0, 0); +} + +void +ALF_AddControl(HWND win, int x, int y, HWND control, int minWidth, int minHeight, DWORD flags) +{ + ALFAddControlParams params; + ZeroMemory(¶ms, sizeof(params)); + params.hwnd = control; + params.x = x; + params.y = y; + params.width = minWidth; + params.height = minHeight; + params.flags = flags; + SendMessage(win, ALF_WM_ADDCONTROL, 0, (LPARAM)¶ms); +} + diff --git a/alf/alflayout.h b/alf/alflayout.h index 8bcc592..b290956 100644 --- a/alf/alflayout.h +++ b/alf/alflayout.h @@ -14,7 +14,7 @@ typedef struct { int yspan; DWORD flags; SIZE calculatedSize; -} ALFWidgetPriv; +} ALFControlPriv; typedef struct { HWND hwnd; @@ -23,7 +23,7 @@ typedef struct { int width; int height; DWORD flags; -} ALFAddWidgetParams; +} ALFAddControlParams; typedef struct { // properties set by user @@ -45,7 +45,7 @@ typedef struct { #define ALF_LAYOUT_NEED_RECALC_CONTAINER ((DWORD)4) typedef struct tagALFLayout { - ALFListHeader widgets; + ALFListHeader controls; ALFLayoutRowOrColumn *columns; ALFLayoutRowOrColumn *rows; int nColumns; @@ -62,10 +62,10 @@ typedef struct tagALFLayout { ALFColor bgcolor; RECT containerMargins; // may be written to by the following functions void (*beginCalcSizes)(struct tagALFLayout *layout, HWND hwnd); - void (*handleContainerWidgetSize)(struct tagALFLayout *layout, HWND hwnd, HWND hwndContainerWidget, SIZE *s); + void (*handleContainerControlSize)(struct tagALFLayout *layout, HWND hwnd, HWND hwndContainerControl, SIZE *s); void (*endCalcSizes)(struct tagALFLayout *layout, HWND hwnd, SIZE *minSize); - RECT allocatedWidgetRect; - void (*preApplyLayoutToContainerWidget)(struct tagALFLayout *layout, HWND hwnd, HWND hwndContainerWidget, RECT *pos); // should modify pos + RECT allocatedControlRect; + void (*preApplyLayoutToContainerControl)(struct tagALFLayout *layout, HWND hwnd, HWND hwndContainerControl, RECT *pos); // should modify pos } ALFLayout; void @@ -81,16 +81,16 @@ void ALF_Layout_Apply(ALFLayout *layout, HWND window); void -ALF_Layout_AddWidget(ALFLayout *layout, HWND window, const ALFAddWidgetParams *params); +ALF_Layout_AddControl(ALFLayout *layout, HWND window, const ALFAddControlParams *params); BOOL -ALF_Layout_RemoveWidget(ALFLayout *layout, HWND window, HWND widget, BOOL destroy); +ALF_Layout_RemoveControl(ALFLayout *layout, HWND window, HWND control, BOOL destroy); BOOL ALF_Layout_HandleMessage(ALFLayout *layout, HWND window, UINT msg, WPARAM wparam, LPARAM lparam, LRESULT *ret); HWND -ALF_Layout_WidgetAtPos(ALFLayout *layout, int x, int y); +ALF_Layout_ControlAtPosPriv(ALFLayout *layout, int x, int y); void ALF_Layout_Invalidate(ALFLayout *layout, HWND window); diff --git a/alf/alfnativebtn.cpp b/alf/alfnativebtn.cpp index 8c73e5d..3b35321 100644 --- a/alf/alfnativebtn.cpp +++ b/alf/alfnativebtn.cpp @@ -12,7 +12,7 @@ ALF_AddNativeButton(HWND win, WORD id, int x, int y, const TCHAR *text) (HMENU)(ULONG_PTR)id, ALF_HINSTANCE, NULL); - ALF_AddWidget(win, x, y, hwndBtn, 5625, 1725, ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG | ALF_LAYOUT_SIZE_PUSHBUTTON); + ALF_AddControl(win, x, y, hwndBtn, 5625, 1725, ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG | ALF_LAYOUT_SIZE_PUSHBUTTON); return hwndBtn; } @@ -30,7 +30,7 @@ ALF_AddNativeCheckbox(HWND parent, WORD id, int x, int y, const TCHAR *text) ALF_HINSTANCE, NULL); - ALF_AddWidget(parent, x, y, hwnd, 0, 0, ALF_LAYOUT_SIZE_CHECKBOX | ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); + ALF_AddControl(parent, x, y, hwnd, 0, 0, ALF_LAYOUT_SIZE_CHECKBOX | ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); return hwnd; } @@ -48,7 +48,7 @@ ALF_AddNativeRadioButton(HWND parent, WORD id, int x, int y, const TCHAR *text) ALF_HINSTANCE, NULL); - ALF_AddWidget(parent, x, y, hwnd, 0, 0, ALF_LAYOUT_SIZE_CHECKBOX | ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); + ALF_AddControl(parent, x, y, hwnd, 0, 0, ALF_LAYOUT_SIZE_CHECKBOX | ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); return hwnd; } diff --git a/alf/alfnotebook.cpp b/alf/alfnotebook.cpp index 494cbee..8bf6b5e 100644 --- a/alf/alfnotebook.cpp +++ b/alf/alfnotebook.cpp @@ -327,7 +327,7 @@ ALF_Notebook_InternalPaint(HWND hwnd, ALFNotebookPriv *priv, HDC dc, RECT *f) } static DWORD -ALF_Notebook_GetWidgetFlags(HWND hwndNotebook, ALFNotebookPriv *priv, HWND widget) +ALF_Notebook_GetControlFlags(HWND hwndNotebook, ALFNotebookPriv *priv, HWND control) { int n = ALF_Notebook_InternalTabCount(hwndNotebook, priv->hwndTabCtrl); for (int i = 0; i < n; ++i) { @@ -336,7 +336,7 @@ ALF_Notebook_GetWidgetFlags(HWND hwndNotebook, ALFNotebookPriv *priv, HWND widge p.header.mask = TCIF_PARAM; if (TabCtrl_GetItem(priv->hwndTabCtrl, i, &p)) { - if (p.panel == widget) { + if (p.panel == control) { return p.layoutFlags; } } @@ -346,7 +346,7 @@ ALF_Notebook_GetWidgetFlags(HWND hwndNotebook, ALFNotebookPriv *priv, HWND widge } static BOOL -ALF_Notebook_SetWidgetFlags(HWND hwndNotebook, ALFNotebookPriv *priv, HWND widget, DWORD flags) +ALF_Notebook_SetControlFlags(HWND hwndNotebook, ALFNotebookPriv *priv, HWND control, DWORD flags) { int n = ALF_Notebook_InternalTabCount(hwndNotebook, priv->hwndTabCtrl); for (int i = 0; i < n; ++i) { @@ -355,7 +355,7 @@ ALF_Notebook_SetWidgetFlags(HWND hwndNotebook, ALFNotebookPriv *priv, HWND widge p.header.mask = TCIF_PARAM; if (TabCtrl_GetItem(priv->hwndTabCtrl, i, &p)) { - if (p.panel == widget) { + if (p.panel == control) { if (p.layoutFlags == flags) return TRUE; @@ -538,10 +538,10 @@ ALF_Notebook_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) if ((oldFlags & ALF_NOTEBOOK_SOLID_TAB_BACKGROUND) != (priv->flags & ALF_NOTEBOOK_SOLID_TAB_BACKGROUND)) { ALF_Notebook_InternalHandleThemeChange(hwnd, priv); } - } else if (uMsg == ALF_WM_LYT_GETWDGTFLAGS) { - return (LRESULT)ALF_Notebook_GetWidgetFlags(hwnd, priv, (HWND)wParam); - } else if (uMsg == ALF_WM_LYT_SETWDGTFLAGS) { - return (LRESULT)ALF_Notebook_SetWidgetFlags(hwnd, priv, (HWND)wParam, (DWORD)lParam); + } else if (uMsg == ALF_WM_LYT_GETCTLFLAGS) { + return (LRESULT)ALF_Notebook_GetControlFlags(hwnd, priv, (HWND)wParam); + } else if (uMsg == ALF_WM_LYT_SETCTLFLAGS) { + return (LRESULT)ALF_Notebook_SetControlFlags(hwnd, priv, (HWND)wParam, (DWORD)lParam); } else if (uMsg == ALF_WM_DPICHANGE) { priv->dpi = (int)lParam; ALF_Notebook_PropagateDpiChange(hwnd, priv, wParam, lParam); @@ -564,7 +564,7 @@ ALF_AddNotebook(HWND parent, WORD id, int x, int y) ALF_Notebook_WindowProc, NULL); - ALF_AddWidget(parent, x, y, hwndNtbk, 0, 0, ALF_LAYOUT_SIZE_QUERY | ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_SENDDPICHANGE); + ALF_AddControl(parent, x, y, hwndNtbk, 0, 0, ALF_LAYOUT_SIZE_QUERY | ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_SENDDPICHANGE); return hwndNtbk; } diff --git a/alf/alfpanel.cpp b/alf/alfpanel.cpp index 7bb3f61..62bac1e 100644 --- a/alf/alfpanel.cpp +++ b/alf/alfpanel.cpp @@ -161,23 +161,23 @@ ALF_Panel_DefWindowProc(HWND window, UINT msg, WPARAM wparam, LPARAM lparam) RECT c; GetClientRect(window, &c); - if (c.right > priv->layout.allocatedWidgetRect.right + priv->layout.containerMargins.right) { + if (c.right > priv->layout.allocatedControlRect.right + priv->layout.containerMargins.right) { // enlarged to the right -> invalidate place occupied by old border - RECT i = { priv->layout.allocatedWidgetRect.right, + RECT i = { priv->layout.allocatedControlRect.right, 0, c.right, c.bottom }; InvalidateRect(window, &i, TRUE); } - if (c.bottom > priv->layout.allocatedWidgetRect.bottom + priv->layout.containerMargins.bottom) { + if (c.bottom > priv->layout.allocatedControlRect.bottom + priv->layout.containerMargins.bottom) { // enlarged to the bottom -> invalidate place occupied by old border RECT i = { 0, - priv->layout.allocatedWidgetRect.bottom, + priv->layout.allocatedControlRect.bottom, c.right, c.bottom }; InvalidateRect(window, &i, TRUE); } - if (c.right < priv->layout.allocatedWidgetRect.right + priv->layout.containerMargins.right) { + if (c.right < priv->layout.allocatedControlRect.right + priv->layout.containerMargins.right) { // shrunk horizontally -> invalidate place now occupied by new border RECT i = { c.right - priv->layout.containerMargins.right, 0, @@ -185,7 +185,7 @@ ALF_Panel_DefWindowProc(HWND window, UINT msg, WPARAM wparam, LPARAM lparam) c.bottom }; InvalidateRect(window, &i, TRUE); } - if (c.bottom < priv->layout.allocatedWidgetRect.bottom + priv->layout.containerMargins.bottom) { + if (c.bottom < priv->layout.allocatedControlRect.bottom + priv->layout.containerMargins.bottom) { // shrunk vertically -> invalidate place now ocuupied by new border RECT i = { 0, c.bottom - priv->layout.containerMargins.bottom, @@ -266,7 +266,7 @@ ALF_AddPanel(HWND parent, WORD id, int x, int y) { HWND hwndPanel = ALF_CreatePanelWindow(parent, id); - ALF_AddWidget(parent, x, y, hwndPanel, 0, 0, ALF_LAYOUT_SIZE_QUERY | ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_INHERITBGCOLOR | ALF_LAYOUT_SENDBGCHANGE | ALF_LAYOUT_SENDDPICHANGE); + ALF_AddControl(parent, x, y, hwndPanel, 0, 0, ALF_LAYOUT_SIZE_QUERY | ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_INHERITBGCOLOR | ALF_LAYOUT_SENDBGCHANGE | ALF_LAYOUT_SENDDPICHANGE); return hwndPanel; } diff --git a/widgetfactory.cpp b/widgetfactory.cpp index 7c63191..29c7475 100644 --- a/widgetfactory.cpp +++ b/widgetfactory.cpp @@ -160,7 +160,7 @@ commonPanelMessage(void *closure, HWND hwnd, UINT msg, WPARAM wparam, LPARAM lpa switch (priv->bgmode) { case BG_INHERIT: - ALF_AddWidgetLayoutFlag(GetParent(hwnd), hwnd, ALF_LAYOUT_INHERITBGCOLOR); + ALF_Layout_AddControlFlag(GetParent(hwnd), hwnd, ALF_LAYOUT_INHERITBGCOLOR); ALF_InvalidateBackground(hwnd); break; case BG_GRADIENT: @@ -212,10 +212,10 @@ buttonPanelAttach(void *closure, HWND outerPanel) ALF_AddLabel(panel, (WORD)-1, 0, 6, TEXT("layout dummy")); b = ALF_AddButton(panel, (WORD)-1, 2, 2, TEXT("Hello, World!")); - ALF_SetWidgetLayoutMinSize(panel, b, 0, 0); + ALF_Layout_SetControlMinSize(panel, b, 0, 0); b = ALF_AddButton(panel, (WORD)-1, 2, 4, TEXT("Hello, World!")); EnableWindow(b, FALSE); - ALF_SetWidgetLayoutMinSize(panel, b, 0, 0); + ALF_Layout_SetControlMinSize(panel, b, 0, 0); HWND hwndNb1 = CreateWindowEx(0, @@ -238,14 +238,14 @@ buttonPanelAttach(void *closure, HWND outerPanel) NULL); EnableWindow(hwndNb2, FALSE); - 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_AddControl(panel, 4, 2, hwndNb1, 0, 0, ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); + ALF_AddControl(panel, 4, 4, hwndNb2, 0, 0, ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); b = ALF_AddButton(panel, (WORD)-1, 4, 6, TEXT("Hello, World!")); - ALF_SetWidgetLayoutMinSize(panel, b, 0, 0); + ALF_Layout_SetControlMinSize(panel, b, 0, 0); b = ALF_AddButton(panel, (WORD)-1, 2, 8, TEXT("Multiline\r\nButton")); - ALF_SetWidgetLayoutMinSize(panel, b, 0, 0); + ALF_Layout_SetControlMinSize(panel, b, 0, 0); HWND hwndNb3 = CreateWindowEx(0, TEXT("BUTTON"), @@ -257,17 +257,17 @@ buttonPanelAttach(void *closure, HWND outerPanel) (HINSTANCE)GetModuleHandle(NULL), NULL); - ALF_AddWidget(panel, 4, 8, hwndNb3, 0, 0, ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); + ALF_AddControl(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_Layout_SetRowMinSize(panel, 1, 825); + ALF_Layout_SetRowMinSize(panel, 3, 825); + ALF_Layout_SetRowMinSize(panel, 5, 825); + ALF_Layout_SetRowMinSize(panel, 7, 825); + ALF_Layout_SetRowMinSize(panel, 9, 825); + ALF_Layout_SetColumnMinSize(panel, 1, 825); + ALF_Layout_SetColumnMinSize(panel, 3, 825); - ALF_LayoutSetColumnExpandNumerator(panel, 9, 1); + ALF_Layout_SetColumnExpandNumerator(panel, 9, 1); ALF_Panel_SetEdge(panel, BDR_RAISEDINNER); @@ -284,7 +284,7 @@ buttonPanelAttach(void *closure, HWND outerPanel) (HMENU)(WORD)-1, (HINSTANCE)GetModuleHandle(NULL), NULL); - ALF_AddWidget(panel, 4, 2, hwndNb4, 5625, 1725, ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); + ALF_AddControl(panel, 4, 2, hwndNb4, 5625, 1725, ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); ALF_AddButton(panel, (WORD)-1, 2, 4, TEXT("Expanding")); @@ -297,7 +297,7 @@ buttonPanelAttach(void *closure, HWND outerPanel) (HMENU)(WORD)-1, (HINSTANCE)GetModuleHandle(NULL), NULL); - ALF_AddWidget(panel, 4, 4, hwndNb5, 0, 0, ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); + ALF_AddControl(panel, 4, 4, hwndNb5, 0, 0, ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); ALF_AddButton(panel, (WORD)-1, 2, 6, TEXT("Expanding\r\nMultiline")); @@ -310,22 +310,22 @@ buttonPanelAttach(void *closure, HWND outerPanel) (HMENU)(WORD)-1, (HINSTANCE)GetModuleHandle(NULL), NULL); - ALF_AddWidget(panel, 4, 6, hwndNb6, 0, 0, ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); + ALF_AddControl(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_Layout_SetRowMinSize(panel, 1, 825); + ALF_Layout_SetRowMinSize(panel, 3, 825); + ALF_Layout_SetRowMinSize(panel, 5, 825); + ALF_Layout_SetRowMinSize(panel, 7, 825); + ALF_Layout_SetColumnMinSize(panel, 1, 825); + ALF_Layout_SetColumnMinSize(panel, 3, 825); - ALF_LayoutSetColumnExpandNumerator(panel, 9, 1); - ALF_LayoutSetRowExpandNumerator(panel, 4, 1); - ALF_LayoutSetRowExpandNumerator(panel, 6, 1); + ALF_Layout_SetColumnExpandNumerator(panel, 9, 1); + ALF_Layout_SetRowExpandNumerator(panel, 4, 1); + ALF_Layout_SetRowExpandNumerator(panel, 6, 1); ALF_Panel_SetEdge(panel, BDR_RAISEDINNER); - ALF_LayoutSetRowExpandNumerator(outerPanel, 1, 1); + ALF_Layout_SetRowExpandNumerator(outerPanel, 1, 1); // TODO: recreate old button box @@ -355,8 +355,8 @@ buttonPanelAttach(void *closure, HWND outerPanel) (HINSTANCE)GetWindowLongPtr(panel, GWLP_HINSTANCE), NULL); EnableWindow(hwndBc5, FALSE); - ALF_AddWidget(panel, 3, 0, hwndBc4, 1000, 0, ALF_LAYOUT_INHERITFONT); - ALF_AddWidget(panel, 4, 0, hwndBc5, 1000, 0, ALF_LAYOUT_INHERITFONT);*/ + ALF_AddControl(panel, 3, 0, hwndBc4, 1000, 0, ALF_LAYOUT_INHERITFONT); + ALF_AddControl(panel, 4, 0, hwndBc5, 1000, 0, ALF_LAYOUT_INHERITFONT);*/ } static ALFPanelVTable buttonPanelVtbl = { @@ -378,7 +378,7 @@ buttonPanelInit(HWND panel) /* label panel */ -//FIXME! replace with real widget +//FIXME! replace with real control static HWND makeSeparator(HWND parent, int x, int y) { @@ -421,9 +421,9 @@ labelPanelAttach(void *closure, HWND panel) makeSeparator(g, 4, 1); makeSeparator(g, 4, 3); - ALF_LayoutSetRowExpandNumerator(g, 0, 1); - ALF_LayoutSetRowExpandNumerator(g, 2, 1); - ALF_LayoutSetRowExpandNumerator(g, 4, 1); + ALF_Layout_SetRowExpandNumerator(g, 0, 1); + ALF_Layout_SetRowExpandNumerator(g, 2, 1); + ALF_Layout_SetRowExpandNumerator(g, 4, 1); makeSeparator(g, 1, 0); makeSeparator(g, 1, 2); @@ -432,9 +432,9 @@ labelPanelAttach(void *closure, HWND panel) makeSeparator(g, 3, 2); makeSeparator(g, 3, 4); - ALF_LayoutSetColumnExpandNumerator(g, 0, 1); - ALF_LayoutSetColumnExpandNumerator(g, 2, 1); - ALF_LayoutSetColumnExpandNumerator(g, 4, 1); + ALF_Layout_SetColumnExpandNumerator(g, 0, 1); + ALF_Layout_SetColumnExpandNumerator(g, 2, 1); + ALF_Layout_SetColumnExpandNumerator(g, 4, 1); g = ALF_AddGroupBox(panel, (WORD)-1, 1, 0, TEXT("Like Edit")); ALF_AddLabel(g, (WORD)-1, 1, 2, TEXT("Bas&eline")); @@ -449,7 +449,7 @@ labelPanelAttach(void *closure, HWND panel) l = ALF_AddLabel(g, (WORD)-1, 0, 1, TEXT("Disabled")); EnableWindow(l, FALSE); - ALF_LayoutSetRowExpandNumerator(panel, 0, 1); + ALF_Layout_SetRowExpandNumerator(panel, 0, 1); } static ALFPanelVTable labelPanelVtbl = { @@ -495,14 +495,14 @@ comboPanelAttach(void *closure, HWND panel) ALF_ComboBox_SetText(hwndCombo2, TEXT("Goodbye World!")); - 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, 2, 1); - ALF_LayoutSetRowExpandNumerator(panel, 9, 1); + ALF_Layout_SetRowMinSize(panel, 1, 825); + ALF_Layout_SetRowMinSize(panel, 3, 825); + ALF_Layout_SetRowMinSize(panel, 5, 825); + ALF_Layout_SetRowMinSize(panel, 7, 825); + ALF_Layout_SetColumnMinSize(panel, 1, 825); + ALF_Layout_SetColumnMinSize(panel, 3, 825); + ALF_Layout_SetColumnExpandNumerator(panel, 2, 1); + ALF_Layout_SetRowExpandNumerator(panel, 9, 1); } static ALFPanelVTable comboPanelVtbl = { @@ -540,15 +540,15 @@ notebookPanelAttach(void *closure, HWND panel) ALF_AddButton(hwndTabPanel0, ID_B_TABBGSOLID, 0, 0, TEXT("Solid tab background")); ALF_AddButton(hwndTabPanel0, ID_B_TABBGTEXTURE, 0, 1, TEXT("Textured tab background")); - ALF_LayoutSetRowExpandNumerator(hwndTabPanel0, 2, 1); - ALF_LayoutSetColumnExpandNumerator(hwndTabPanel0, 1, 1); + ALF_Layout_SetRowExpandNumerator(hwndTabPanel0, 2, 1); + ALF_Layout_SetColumnExpandNumerator(hwndTabPanel0, 1, 1); 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_AddLabel(hwndTabPanel1, (WORD)-1, 0, 1, TEXT("Blabla")); - ALF_LayoutSetRowExpandNumerator(hwndTabPanel1, 1, 1); + ALF_Layout_SetRowExpandNumerator(hwndTabPanel1, 1, 1); ALF_AddLabel(hwndTabPanel1, (WORD)-1, 0, 2, TEXT("No 3")); ALF_AddEdit(hwndTabPanel1, (WORD)-1, 0, 3, TEXT("Dummy")); @@ -592,11 +592,11 @@ checkboxPanelAttach(void *closure, HWND outerPanel) HWND c = ALF_AddCheckbox(panel, (WORD)-1, 1, 8, TEXT("Disabled Checkbox")); EnableWindow(c, FALSE); - ALF_LayoutSetRowMinSize(panel, 3, 525); - ALF_LayoutSetRowMinSize(panel, 5, 525); - ALF_LayoutSetRowMinSize(panel, 7, 525); - ALF_LayoutSetColumnExpandNumerator(panel, 9, 1); - ALF_LayoutSetRowExpandNumerator(panel, 9, 1); + ALF_Layout_SetRowMinSize(panel, 3, 525); + ALF_Layout_SetRowMinSize(panel, 5, 525); + ALF_Layout_SetRowMinSize(panel, 7, 525); + ALF_Layout_SetColumnExpandNumerator(panel, 9, 1); + ALF_Layout_SetRowExpandNumerator(panel, 9, 1); panel = ALF_AddGroupBox(outerPanel, (WORD)-1, 3, 1, TEXT("Nat&ive Checkbox")); @@ -604,10 +604,10 @@ checkboxPanelAttach(void *closure, HWND outerPanel) HWND hwnd = ALF_AddNativeCheckbox(panel, (WORD)-1, 1, 3, TEXT("Native disabled Chec&kbox")); EnableWindow(hwnd, FALSE); - ALF_LayoutSetRowMinSize(panel, 2, 525); - ALF_LayoutSetRowMinSize(panel, 4, 525); - ALF_LayoutSetColumnExpandNumerator(panel, 9, 1); - ALF_LayoutSetRowExpandNumerator(panel, 9, 1); + ALF_Layout_SetRowMinSize(panel, 2, 525); + ALF_Layout_SetRowMinSize(panel, 4, 525); + ALF_Layout_SetColumnExpandNumerator(panel, 9, 1); + ALF_Layout_SetRowExpandNumerator(panel, 9, 1); panel = ALF_AddGroupBox(outerPanel, (WORD)-1, 1, 3, TEXT("ALF Radio Button")); @@ -618,11 +618,11 @@ checkboxPanelAttach(void *closure, HWND outerPanel) SendMessage(hwnd, BM_SETCHECK, BST_CHECKED, 0); - ALF_LayoutSetRowMinSize(panel, 3, 525); - ALF_LayoutSetRowMinSize(panel, 5, 525); - ALF_LayoutSetRowMinSize(panel, 7, 525); - ALF_LayoutSetColumnExpandNumerator(panel, 9, 1); - ALF_LayoutSetRowExpandNumerator(panel, 9, 1); + ALF_Layout_SetRowMinSize(panel, 3, 525); + ALF_Layout_SetRowMinSize(panel, 5, 525); + ALF_Layout_SetRowMinSize(panel, 7, 525); + ALF_Layout_SetColumnExpandNumerator(panel, 9, 1); + ALF_Layout_SetRowExpandNumerator(panel, 9, 1); panel = ALF_AddGroupBox(outerPanel, (WORD)-1, 3, 3, TEXT("Native Radio")); @@ -631,19 +631,19 @@ checkboxPanelAttach(void *closure, HWND outerPanel) ALF_AddNativeRadioButton(panel, (WORD)-1, 1, 3, TEXT("Native Radio B&utton #2")); - ALF_LayoutSetRowMinSize(panel, 2, 525); - ALF_LayoutSetRowMinSize(panel, 4, 525); - ALF_LayoutSetColumnExpandNumerator(panel, 9, 1); - ALF_LayoutSetRowExpandNumerator(panel, 9, 1); - - ALF_LayoutSetRowMinSize(outerPanel, 0, 825); - ALF_LayoutSetRowMinSize(outerPanel, 2, 825); - ALF_LayoutSetColumnMinSize(outerPanel, 0, 825); - ALF_LayoutSetColumnMinSize(outerPanel, 2, 825); - ALF_LayoutSetColumnMinSize(outerPanel, 4, 825); - ALF_LayoutSetColumnExpandNumerator(outerPanel, 1, 1); - ALF_LayoutSetColumnExpandNumerator(outerPanel, 3, 1); - ALF_LayoutSetRowExpandNumerator(outerPanel, 1, 1); + ALF_Layout_SetRowMinSize(panel, 2, 525); + ALF_Layout_SetRowMinSize(panel, 4, 525); + ALF_Layout_SetColumnExpandNumerator(panel, 9, 1); + ALF_Layout_SetRowExpandNumerator(panel, 9, 1); + + ALF_Layout_SetRowMinSize(outerPanel, 0, 825); + ALF_Layout_SetRowMinSize(outerPanel, 2, 825); + ALF_Layout_SetColumnMinSize(outerPanel, 0, 825); + ALF_Layout_SetColumnMinSize(outerPanel, 2, 825); + ALF_Layout_SetColumnMinSize(outerPanel, 4, 825); + ALF_Layout_SetColumnExpandNumerator(outerPanel, 1, 1); + ALF_Layout_SetColumnExpandNumerator(outerPanel, 3, 1); + ALF_Layout_SetRowExpandNumerator(outerPanel, 1, 1); } static ALFPanelVTable checkboxPanelVtbl = { @@ -684,7 +684,7 @@ groupboxPanelAttach(void *closure, HWND panel) (HMENU)(WORD)-1, (HINSTANCE)GetModuleHandle(NULL), NULL); - ALF_AddWidget(panel, 3, 3, hwndGb1, 0, 0, ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); + ALF_AddControl(panel, 3, 3, hwndGb1, 0, 0, ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); ALF_AddEdit(hwndGb0, (WORD)-1, 0, 0, TEXT("Dummy")); @@ -700,20 +700,20 @@ groupboxPanelAttach(void *closure, HWND panel) (HMENU)(WORD)-1, (HINSTANCE)GetModuleHandle(NULL), NULL); - ALF_AddWidget(panel, 3, 5, hwndGb2, 0, 0, ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); + ALF_AddControl(panel, 3, 5, hwndGb2, 0, 0, ALF_LAYOUT_INHERITFONT | ALF_LAYOUT_TRANSPARENTBG); EnableWindow(hwndGb2, FALSE); - ALF_LayoutSetRowMinSize(panel, 0, 825); - ALF_LayoutSetRowMinSize(panel, 2, 825); - ALF_LayoutSetRowMinSize(panel, 4, 825); - ALF_LayoutSetRowMinSize(panel, 6, 825); - ALF_LayoutSetColumnMinSize(panel, 0, 825); - ALF_LayoutSetColumnMinSize(panel, 2, 825); - ALF_LayoutSetColumnMinSize(panel, 4, 825); - ALF_LayoutSetRowExpandNumerator(panel, 3, 1); - ALF_LayoutSetRowExpandNumerator(panel, 5, 1); - ALF_LayoutSetColumnExpandNumerator(panel, 1, 1); - ALF_LayoutSetColumnExpandNumerator(panel, 3, 1); + ALF_Layout_SetRowMinSize(panel, 0, 825); + ALF_Layout_SetRowMinSize(panel, 2, 825); + ALF_Layout_SetRowMinSize(panel, 4, 825); + ALF_Layout_SetRowMinSize(panel, 6, 825); + ALF_Layout_SetColumnMinSize(panel, 0, 825); + ALF_Layout_SetColumnMinSize(panel, 2, 825); + ALF_Layout_SetColumnMinSize(panel, 4, 825); + ALF_Layout_SetRowExpandNumerator(panel, 3, 1); + ALF_Layout_SetRowExpandNumerator(panel, 5, 1); + ALF_Layout_SetColumnExpandNumerator(panel, 1, 1); + ALF_Layout_SetColumnExpandNumerator(panel, 3, 1); } static ALFPanelVTable groupboxPanelVtbl = { @@ -766,23 +766,24 @@ handleCommand(void *closure, HWND window, WORD notificationcode, WORD sourceid, if (notificationcode == CBN_SELCHANGE && sourceid == ID_COMBO2) { TCHAR *text = ALF_ComboBox_CurrentText(control); - ALF_SetWidgetText(window, ID_LBLCOMBOTEXT, text); + HWND hwndLbl = ALF_ControlHwndById(window, ID_LBLCOMBOTEXT); + ALF_SetText(hwndLbl, text); ALF_Free(text); } if (control != NULL && sourceid == ID_BTNCOMBOCLEAR) { - HWND combo = ALF_WidgetHwndById(window, ID_COMBO2); + HWND combo = ALF_ControlHwndById(window, ID_COMBO2); ALF_ComboBox_SetCurrentIndex(combo, -1); } if (sourceid == ID_HELLO) { ALF_MessageBox(window, TEXT("Hello World!"), TEXT("Hello"), MB_ICONASTERISK|MB_OK); } if (control != NULL && sourceid == ID_B_TABBGSOLID) { - HWND nb = ALF_WidgetHwndById(window, ID_NOTEBOOK); + HWND nb = ALF_ControlHwndById(window, ID_NOTEBOOK); ALF_Notebook_AddFlag(nb, ALF_NOTEBOOK_SOLID_TAB_BACKGROUND); } if (control != NULL && sourceid == ID_B_TABBGTEXTURE) { - HWND nb = ALF_WidgetHwndById(window, ID_NOTEBOOK); + HWND nb = ALF_ControlHwndById(window, ID_NOTEBOOK); ALF_Notebook_RemoveFlag(nb, ALF_NOTEBOOK_SOLID_TAB_BACKGROUND); } @@ -791,32 +792,32 @@ handleCommand(void *closure, HWND window, WORD notificationcode, WORD sourceid, } if (sourceid == IDM_BACKGROUND_BLUE) { - HWND nb = ALF_WidgetHwndById(window, ID_NOTEBOOK); + HWND nb = ALF_ControlHwndById(window, ID_NOTEBOOK); HWND panel = ALF_Notebook_SelectedPanel(nb); SendMessage(panel, FM_PANEL_SET_BGMODE, 0, (LPARAM)BG_SOLID_BLUE); } if (sourceid == IDM_BACKGROUND_GREEN) { - HWND nb = ALF_WidgetHwndById(window, ID_NOTEBOOK); + HWND nb = ALF_ControlHwndById(window, ID_NOTEBOOK); HWND panel = ALF_Notebook_SelectedPanel(nb); SendMessage(panel, FM_PANEL_SET_BGMODE, 0, (LPARAM)BG_SOLID_GREEN); } if (sourceid == IDM_BACKGROUND_INHERIT) { - HWND nb = ALF_WidgetHwndById(window, ID_NOTEBOOK); + HWND nb = ALF_ControlHwndById(window, ID_NOTEBOOK); HWND panel = ALF_Notebook_SelectedPanel(nb); SendMessage(panel, FM_PANEL_SET_BGMODE, 0, (LPARAM)BG_INHERIT); } if (sourceid == IDM_BACKGROUND_GRADIENT) { - HWND nb = ALF_WidgetHwndById(window, ID_NOTEBOOK); + HWND nb = ALF_ControlHwndById(window, ID_NOTEBOOK); HWND panel = ALF_Notebook_SelectedPanel(nb); SendMessage(panel, FM_PANEL_SET_BGMODE, 0, (LPARAM)BG_GRADIENT); } if (sourceid >= IDM_PANES && sourceid < IDM_PANES__MAX) { int paneId = sourceid - IDM_PANES; - HWND nb = ALF_WidgetHwndById(window, ID_NOTEBOOK); + HWND nb = ALF_ControlHwndById(window, ID_NOTEBOOK); addPaneToNotebook(nb, paneId); } @@ -842,12 +843,12 @@ wfModalDialogInit(void *closure, HWND dialog) ALF_SetText(dialog, g_paneLabels[paneid]); - ALF_LayoutSetColumnExpandNumerator(dialog, 1, 1); - ALF_LayoutSetRowExpandNumerator(dialog, 1, 1); - ALF_LayoutSetRowMinSize(dialog, 0, 525); - ALF_LayoutSetRowMinSize(dialog, 2, 525); - ALF_LayoutSetColumnMinSize(dialog, 0, 525); - ALF_LayoutSetColumnMinSize(dialog, 2, 525); + ALF_Layout_SetColumnExpandNumerator(dialog, 1, 1); + ALF_Layout_SetRowExpandNumerator(dialog, 1, 1); + ALF_Layout_SetRowMinSize(dialog, 0, 525); + ALF_Layout_SetRowMinSize(dialog, 2, 525); + ALF_Layout_SetColumnMinSize(dialog, 0, 525); + ALF_Layout_SetColumnMinSize(dialog, 2, 525); return TRUE; } @@ -895,12 +896,12 @@ wfModelessDialogInit(void *closure, HWND dialog) ALF_SetText(dialog, g_paneLabels[paneid]); - ALF_LayoutSetColumnExpandNumerator(dialog, 1, 1); - ALF_LayoutSetRowExpandNumerator(dialog, 1, 1); - ALF_LayoutSetRowMinSize(dialog, 0, 525); - ALF_LayoutSetRowMinSize(dialog, 2, 525); - ALF_LayoutSetColumnMinSize(dialog, 0, 525); - ALF_LayoutSetColumnMinSize(dialog, 2, 525); + ALF_Layout_SetColumnExpandNumerator(dialog, 1, 1); + ALF_Layout_SetRowExpandNumerator(dialog, 1, 1); + ALF_Layout_SetRowMinSize(dialog, 0, 525); + ALF_Layout_SetRowMinSize(dialog, 2, 525); + ALF_Layout_SetColumnMinSize(dialog, 0, 525); + ALF_Layout_SetColumnMinSize(dialog, 2, 525); return TRUE; } @@ -979,7 +980,7 @@ WinMain ALF_SetText(win, TEXT("Widget Factory")); HWND hwndNtbk = ALF_AddNotebook(win, ID_NOTEBOOK, 1, 1); - ALF_SetWidgetLayoutSpan(win, hwndNtbk, 4, 1); + ALF_Layout_SetControlSpan(win, hwndNtbk, 4, 1); addPaneToNotebook(hwndNtbk, PANE_BUTTONS); addPaneToNotebook(hwndNtbk, PANE_LABEL); @@ -991,14 +992,14 @@ WinMain ALF_AddNativeButton(win, ID_HELLO, 1, 3, TEXT("&Hello World!")); ALF_AddNativeButton(win, (WORD)-1, 3, 3, TEXT("Goodbye, World")); - ALF_LayoutSetRowMinSize(win, 2, 525); - ALF_LayoutSetRowMinSize(win, 0, 525); - ALF_LayoutSetRowMinSize(win, 4, 525); - ALF_LayoutSetColumnMinSize(win, 0, 525); - ALF_LayoutSetColumnMinSize(win, 2, 525); - ALF_LayoutSetColumnMinSize(win, 5, 525); - ALF_LayoutSetRowExpandNumerator(win, 1, 1); - ALF_LayoutSetColumnExpandNumerator(win, 4, 1); + ALF_Layout_SetRowMinSize(win, 2, 525); + ALF_Layout_SetRowMinSize(win, 0, 525); + ALF_Layout_SetRowMinSize(win, 4, 525); + ALF_Layout_SetColumnMinSize(win, 0, 525); + ALF_Layout_SetColumnMinSize(win, 2, 525); + ALF_Layout_SetColumnMinSize(win, 5, 525); + ALF_Layout_SetRowExpandNumerator(win, 1, 1); + ALF_Layout_SetColumnExpandNumerator(win, 4, 1); ALF_Toplevel_SetDefaultButton(win, ID_HELLO); ALF_SetFocus(GetNextDlgTabItem(win, win, FALSE)); |
