summaryrefslogtreecommitdiff
path: root/widgetfactory.cpp
diff options
context:
space:
mode:
authorJonas Kümmerlin <jonas@kuemmerlin.eu>2019-01-02 16:56:43 +0100
committerJonas Kümmerlin <jonas@kuemmerlin.eu>2019-01-02 16:56:43 +0100
commit89d174ab47af8a31ba316e03e36883e6924171bf (patch)
tree25b21619207cda9a81885b4b17e2933a905453dd /widgetfactory.cpp
parentd19993c9d4891978c0b593eced6376d17aa1ffec (diff)
make combobox implementation more complete
Diffstat (limited to 'widgetfactory.cpp')
-rw-r--r--widgetfactory.cpp33
1 files changed, 30 insertions, 3 deletions
diff --git a/widgetfactory.cpp b/widgetfactory.cpp
index 57d987e..e2d631c 100644
--- a/widgetfactory.cpp
+++ b/widgetfactory.cpp
@@ -13,6 +13,7 @@ enum {
ID_LBL4,
ID_COMBO2,
ID_LBL5,
+ ID_LBL6,
ID__MAX
};
@@ -51,6 +52,26 @@ handleMessage(void *closure, HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
return ALF_DefWindowProc(hwnd, msg, wparam, lparam);
}
+static LRESULT
+handleCommand(void *closure, HWND window, WORD notificationcode, WORD sourceid, HWND control)
+{
+ (void)closure;
+
+ if (notificationcode == CBN_SELCHANGE && sourceid == ID_COMBO2) {
+ TCHAR *text = ALF_ComboBoxCurrentText(control);
+
+ ALF_SetWidgetText(window, ID_LBL6, text);
+
+ HeapFree(GetProcessHeap(), 0, text);
+ }
+ if (control != NULL && sourceid == ID_B4) {
+ HWND combo = ALF_WidgetHwndById(window, ID_COMBO2);
+ ALF_ComboBoxSetCurrentIndex(combo, -1);
+ }
+
+ return 0;
+}
+
int CALLBACK
#ifdef UNICODE
wWinMain
@@ -75,6 +96,7 @@ WinMain
//cparams.className = TEXT("DummyClass");
cparams.vtbl.message = handleMessage;
+ cparams.vtbl.command = handleCommand;
ALFAPP app = ALF_CreateApplication(hInstance);
@@ -106,9 +128,9 @@ WinMain
HWND hwndCombo1 = ALF_AddEditableComboBox(win, ID_COMBO1, 1, 3, TEXT("Hello!"));
ALF_AddButton(win, ID_B3, 2, 3, TEXT("Ok"));
- ALF_ComboBoxAddString(hwndCombo1, TEXT("Hello World!"));
- ALF_ComboBoxAddString(hwndCombo1, TEXT("Goodbye World!"));
- ALF_ComboBoxAddString(hwndCombo1, TEXT("The quick brown fox jumps over the lazy dog"));
+ ALF_ComboBoxInsertString(hwndCombo1, 0, TEXT("Hello World!"));
+ ALF_ComboBoxInsertString(hwndCombo1, -1, TEXT("Goodbye World!"));
+ ALF_ComboBoxInsertString(hwndCombo1, 1, TEXT("The quick brown fox jumps over the lazy dog"));
ALF_AddLabel(win, ID_LBL5, 0, 4, TEXT("Selection-Only Combo Box:"));
HWND hwndCombo2 = ALF_AddSelectionOnlyComboBox(win, ID_COMBO2, 1, 4);
@@ -118,9 +140,14 @@ WinMain
ALF_ComboBoxAddString(hwndCombo2, TEXT("Goodbye World!"));
ALF_ComboBoxAddString(hwndCombo2, TEXT("The quick brown fox jumps over the lazy dog"));
+ ALF_AddLabel(win, ID_LBL6, 0, 5, TEXT("[ComboBox2 value]"));
+
ALF_RecalculateLayout(win);
ALF_SetDefaultButton(win, ID_B1);
+ ALF_ComboBoxSetText(hwndCombo2, TEXT("Goodbye World!"));
+
+
//EnableWindow(ALF_WidgetHwndById(win, ID_LBL3), FALSE);
ALF_ResizeWindow(win, 1, 1);