diff options
Diffstat (limited to 'alf/alflayout.cpp')
| -rw-r--r-- | alf/alflayout.cpp | 41 |
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; +} |
