diff options
Diffstat (limited to 'alf/alflayout.h')
| -rw-r--r-- | alf/alflayout.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/alf/alflayout.h b/alf/alflayout.h new file mode 100644 index 0000000..4787550 --- /dev/null +++ b/alf/alflayout.h @@ -0,0 +1,70 @@ +#pragma once + +#include "alf.h" +#include "alflist.h" + +typedef struct { + ALFListHeader list; + HWND hwnd; + UINT x; + UINT y; + UINT cptWidth; + UINT cptHeight; + UINT cptMarginTop; + UINT cptMarginRight; + UINT cptMarginBottom; + UINT cptMarginLeft; + DWORD flags; +} ALFWidgetPriv; + +typedef struct { + int minWidth; + int allocatedWidth; + int allocatedPosition; + int expand : 1; +} ALFLayoutRowOrColumn; + +typedef struct { + ALFListHeader widgets; + ALFLayoutRowOrColumn *columns; + ALFLayoutRowOrColumn *rows; + int nColumns; + int nRows; + int totalMinWidth; + int totalMinHeight; + int expandoColumnCount; + int expandoRowCount; +} ALFLayout; + +void +ALF_Layout_Init(ALFLayout *layout); + +void +ALF_Layout_Clear(ALFLayout *layout); + +void +ALF_Layout_CalcSizes(ALFLayout *layout, HWND window); + +void +ALF_Layout_Apply(ALFLayout *layout, HWND window); + +void +ALF_Layout_AddWidget(ALFLayout *layout, HWND window, const ALFWidgetLayoutParams *params); + +BOOL +ALF_Layout_RemoveWidget(ALFLayout *layout, HWND window, HWND widget, BOOL destroy); + +BOOL +ALF_Layout_SetWidgetParams(ALFLayout *layout, const ALFWidgetLayoutParams *params, HWND widget); + +BOOL +ALF_Layout_GetWidgetParams(ALFLayout *layout, ALFWidgetLayoutParams *params, HWND widget); + +BOOL +ALF_Layout_HandleMessage(ALFLayout *layout, HWND window, WPARAM wparam, LPARAM lparam); + +HWND +ALF_Layout_WidgetAtPos(ALFLayout *layout, UINT x, UINT y); + +void +ALF_Layout_UpdateFonts(ALFLayout *layout, HWND window, const ALFWindowFonts *fonts); |
