Migrated control.c, I think. Changing the current way uiControl works will wait for another branch.

This commit is contained in:
Pietro Gagliardi 2016-04-22 12:44:18 -04:00
parent dafdaa4de4
commit 277fa5d6bd
3 changed files with 40 additions and 23 deletions

View File

@ -15,13 +15,16 @@ HWND uiWindowsEnsureCreateControlHWND(DWORD dwExStyle, LPCWSTR lpClassName, LPCW
// use a nonzero initial size just in case some control breaks with a zero initial size
100, 100,
utilWindow, NULL, hInstance, lpParam);
if (hwnd == NULL)
logLastError("error creating window in uiWindowsUtilCreateControlHWND()");
if (hwnd == NULL) {
logLastError("error creating window");
// TODO return a decoy window
}
if (useStandardControlFont)
SendMessageW(hwnd, WM_SETFONT, (WPARAM) hMessageFont, (LPARAM) TRUE);
return hwnd;
}
// TODO make this unnecessary
static uintmax_t type_uiWindowsControl = 0;
uintmax_t uiWindowsControlType(void)
@ -57,27 +60,6 @@ void uiWindowsFinishControl(uiControl *c)
c->CommitHide = defaultCommitHide;
}
char *uiWindowsUtilText(HWND hwnd)
{
WCHAR *wtext;
char *text;
wtext = windowText(hwnd);
text = toUTF8(wtext);
uiFree(wtext);
return text;
}
void uiWindowsUtilSetText(HWND hwnd, const char *text)
{
WCHAR *wtext;
wtext = toUTF16(text);
if (SetWindowTextW(hwnd, wtext) == 0)
logLastError("error setting control text in uiWindowsControlSetText()");
uiFree(wtext);
}
void uiWindowsRearrangeControlIDsZOrder(uiControl *c)
{
uiWindowsControl *wc;

View File

@ -85,3 +85,23 @@ noTextOrError:
uiFree(text);
return 0;
}
char *uiWindowsWindowText(HWND hwnd)
{
WCHAR *wtext;
char *text;
wtext = windowText(hwnd);
text = toUTF8(wtext);
uiFree(wtext);
return text;
}
void uiWindowsSetWindowText(HWND hwnd, const char *text)
{
WCHAR *wtext;
wtext = toUTF16(text);
setWindowText(hwnd, wtext);
uiFree(wtext);
}

View File

@ -1,5 +1,8 @@
// 21 april 2016
// TODO document
_UI_EXTERN HWND uiWindowsEnsureCreateControlHWND(DWORD dwExStyle, LPCWSTR lpClassName, LPCWSTR lpWindowName, DWORD dwStyle, HINSTANCE hInstance, LPVOID lpParam, BOOL useStandardControlFont);
// TODO document
_UI_EXTERN void uiWindowsEnsureDestroyWindow(HWND hwnd);
@ -9,6 +12,10 @@ _UI_EXTERN void uiWindowsEnsureSetParent(HWND hwnd, HWND parent);
// TODO document
_UI_EXTERN void uiWindowsEnsureAssignControlIDZOrder(HWND hwnd, LONG_PTR controlID, HWND insertAfter);
// TODO document
_UI_EXTERN char *uiWindowsWindowText(HWND hwnd);
_UI_EXTERN void uiWindowsSetWindowText(HWND hwnd, const char *text);
// TODO document
_UI_EXTERN intmax_t uiWindowsWindowTextWidth(HWND hwnd);
@ -27,3 +34,11 @@ _UI_EXTERN void uiWindowsUnregisterWM_HSCROLLHandler(HWND hwnd);
// TODO document
_UI_EXTERN void uiWindowsRegisterReceiveWM_WININICHANGE(HWND hwnd);
_UI_EXTERN void uiWindowsUnregisterReceiveWM_WININICHANGE(HWND hwnd);
// everything below here is TODO
_UI_EXTERN void uiWindowsFinishControl(uiControl *c);
_UI_EXTERN void uiWindowsRearrangeControlIDsZOrder(uiControl *c);