diff options
Diffstat (limited to 'widgetfactory.cpp')
| -rw-r--r-- | widgetfactory.cpp | 49 |
1 files changed, 47 insertions, 2 deletions
diff --git a/widgetfactory.cpp b/widgetfactory.cpp index 67d5c5c..ab362f1 100644 --- a/widgetfactory.cpp +++ b/widgetfactory.cpp @@ -9,6 +9,7 @@ enum { PANE_NOTEBOOK, PANE_CHECKBOX, PANE_GROUPBOX, + PANE_ICONVIEW, PANE__MAX }; @@ -18,7 +19,8 @@ static const TCHAR *g_paneLabels[PANE__MAX] = { TEXT("Combo Box"), //PANE_COMBO, TEXT("Notebook"), //PANE_NOTEBOOK, TEXT("Checkbox"), //PANE_CHECKBOX, - TEXT("GroupBox") //PANE_GROUPBOX + TEXT("GroupBox"), //PANE_GROUPBOX, + TEXT("Icon View") //PANE_ICONVIEW }; enum { @@ -759,13 +761,55 @@ groupboxPanelInit(HWND panel) ALF_Panel_SetVTable(panel, &groupboxPanelVtbl, priv); } +/* iconview panel */ + +static void +iconviewPanelAttach(void *closure, HWND panel) +{ + (void)closure; + + HICON winlogo = ALF_LoadIcon(NULL, IDI_WINLOGO, 64, 64); + // FIXME! memory leak here + ALF_AddIconView(panel, (WORD)-1, 1, 3, winlogo); + + 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 iconviewPanelVtbl = { + iconviewPanelAttach, + commonPanelDestroy, + commonPanelMessage, + NULL, + NULL, + commonPanelPaint, + NULL +}; + +static void +iconviewPanelInit(HWND panel) +{ + CommonPanelPriv *priv = ALF_New(CommonPanelPriv, 1); + ALF_Panel_SetVTable(panel, &iconviewPanelVtbl, priv); +} + void (*g_paneInitTable[PANE__MAX])(HWND) = { buttonPanelInit, //PANE_BUTTONS labelPanelInit, //PANE_LABEL, comboPanelInit, //PANE_COMBO, notebookPanelInit, //PANE_NOTEBOOK, checkboxPanelInit, //PANE_CHECKBOX, - groupboxPanelInit //PANE_GROUPBOX, + groupboxPanelInit, //PANE_GROUPBOX, + iconviewPanelInit //PANE_ICONVIEW }; static void @@ -1006,6 +1050,7 @@ WinMain addPaneToNotebook(hwndNtbk, PANE_NOTEBOOK); addPaneToNotebook(hwndNtbk, PANE_COMBO); addPaneToNotebook(hwndNtbk, PANE_GROUPBOX); + addPaneToNotebook(hwndNtbk, PANE_ICONVIEW); ALF_AddNativeButton(win, ID_HELLO, 1, 3, TEXT("&Hello World!")); ALF_AddNativeButton(win, (WORD)-1, 3, 3, TEXT("Goodbye, World")); |
