summaryrefslogtreecommitdiff
path: root/widgetfactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'widgetfactory.cpp')
-rw-r--r--widgetfactory.cpp49
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"));