summaryrefslogtreecommitdiff
path: root/alf/alfcombobox.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'alf/alfcombobox.cpp')
-rw-r--r--alf/alfcombobox.cpp44
1 files changed, 9 insertions, 35 deletions
diff --git a/alf/alfcombobox.cpp b/alf/alfcombobox.cpp
index 3ce7326..2b24fa7 100644
--- a/alf/alfcombobox.cpp
+++ b/alf/alfcombobox.cpp
@@ -11,8 +11,6 @@
#define ALF_CB_GETSTYLE (ALF_WM__BASE + 207)
#define ALF_CB_FINDSTRINGEXACT (ALF_WM__BASE + 208)
-TCHAR *_alf_comboClass = NULL;
-
typedef struct {
DWORD comboStyle;
} ALFComboCreateParams;
@@ -83,7 +81,7 @@ ALF__ComboWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
ALFComboPriv *priv = (ALFComboPriv *)GetWindowLongPtr(hwnd, 0);
if (uMsg == WM_CREATE) {
- ALFComboCreateParams *params = (ALFComboCreateParams*)((CREATESTRUCT*)lParam)->lpCreateParams;
+ ALFComboCreateParams *params = (ALFComboCreateParams*)((ALFControlCreateParams *)((CREATESTRUCT*)lParam)->lpCreateParams)->param;
priv = ALF_Combo_InitializePriv(hwnd, params);
SetWindowLongPtr(hwnd, 0, (LONG_PTR)priv);
@@ -300,44 +298,20 @@ ALF__ComboWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
}
-void
-ALF_RegisterComboClass(void)
-{
- WNDCLASS cls;
- ZeroMemory(&cls, sizeof(cls));
-
- TCHAR classNameBuf[256];
- ALF_BuildUniqueName(classNameBuf, TEXT("ALFComboBox."), (ULONG_PTR)&_alf_comboClass);
-
- cls.hInstance = ALF_HINSTANCE;
- cls.hCursor = LoadCursor(NULL, (LPTSTR)IDC_ARROW);
- cls.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1);
- cls.lpszClassName = classNameBuf;
- cls.cbWndExtra = sizeof(void*);
- cls.lpfnWndProc = ALF__ComboWindowProc;
-
- ATOM classatom = RegisterClass(&cls);
- if (!classatom)
- MessageBox(NULL, TEXT("FATAL: Could not register Combo class"), NULL, MB_OK);
-
- _alf_comboClass = MAKEINTATOM(classatom);
-}
-
static HWND
ALF_InternalAddComboBox(HWND win, WORD id, int x, int y, DWORD style, const TCHAR *defaultText)
{
ALFComboCreateParams cp;
cp.comboStyle = style;
- HWND hwndCombo = CreateWindowEx(WS_EX_CONTROLPARENT,
- _alf_comboClass,
- TEXT(""),
- WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN,
- 0, 0, 0, 0,
- win,
- (HMENU)(ULONG_PTR)id,
- ALF_HINSTANCE,
- &cp);
+ HWND hwndCombo = ALF_CreateControlWindow(WS_EX_CONTROLPARENT,
+ TEXT(""),
+ WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN,
+ 0, 0, 0, 0,
+ win,
+ (HMENU)(ULONG_PTR)id,
+ ALF__ComboWindowProc,
+ &cp);
if (defaultText)
SetWindowText(hwndCombo, defaultText);