From db2f529599cea4c86481ed6ca650a5b069c003b0 Mon Sep 17 00:00:00 2001 From: Jonas Kümmerlin Date: Sat, 5 Jan 2019 22:07:51 +0100 Subject: move layout into own file, implement expand flag --- alf/alflayout.h | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 alf/alflayout.h (limited to 'alf/alflayout.h') 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); -- cgit v1.2.3