summaryrefslogtreecommitdiff
path: root/alf/alflayout.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'alf/alflayout.cpp')
-rw-r--r--alf/alflayout.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/alf/alflayout.cpp b/alf/alflayout.cpp
index 7251ca6..5e207d8 100644
--- a/alf/alflayout.cpp
+++ b/alf/alflayout.cpp
@@ -315,3 +315,44 @@ ALF_Layout_WidgetAtPos(ALFLayout* layout, UINT x, UINT y)
return NULL;
}
+
+BOOL
+ALF_Layout_HandleMessage(ALFLayout *layout, HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam, LRESULT *pRet)
+{
+ *pRet = 0;
+
+ if (msg == ALF_WM_QUERYSIZE) {
+ ALF_Layout_CalcSizes(layout, hwnd);
+ SIZE *ps = (SIZE*)lparam;
+ ps->cx = layout->totalMinWidth;
+ ps->cy = layout->totalMinHeight;
+ return TRUE;
+ }
+
+ if (msg == ALF_WM_APPLYLAYOUT) {
+ ALF_Layout_Apply(layout, hwnd);
+ return TRUE;
+ }
+
+ if (msg == ALF_WM_ADDWIDGET) {
+ ALF_Layout_AddWidget(layout, hwnd, (ALFWidgetLayoutParams *)lparam);
+ return TRUE;
+ }
+
+ if (msg == ALF_WM_GETLAYOUTPARAMS) {
+ *pRet = (LRESULT)ALF_Layout_GetWidgetParams(layout, (ALFWidgetLayoutParams *)lparam, (HWND)wparam);
+ return TRUE;
+ }
+
+ if (msg == ALF_WM_SETLAYOUTPARAMS) {
+ *pRet = (LRESULT)ALF_Layout_SetWidgetParams(layout, (const ALFWidgetLayoutParams *)lparam, (HWND)wparam);
+ return TRUE;
+ }
+
+ if (msg == ALF_WM_GETWIDGETATPOS) {
+ *pRet = (LRESULT)ALF_Layout_WidgetAtPos(layout, ((UINT*)lparam)[0], ((UINT*)lparam)[1]);
+ return TRUE;
+ }
+
+ return FALSE;
+}