First Commit
This commit is contained in:
commit
ae0fab9400
424 files changed
+71006
No files matched your search
@@ -0,0 +1,121 @@
|
||||
// 16 august 2015
|
||||
#include "uipriv_windows.hpp"
|
||||
|
||||
void uiWindowsControlSyncEnableState(uiWindowsControl *c, int enabled)
|
||||
{
|
||||
(*(c->SyncEnableState))(c, enabled);
|
||||
}
|
||||
|
||||
void uiWindowsControlSetParentHWND(uiWindowsControl *c, HWND parent)
|
||||
{
|
||||
(*(c->SetParentHWND))(c, parent);
|
||||
}
|
||||
|
||||
void uiWindowsControlMinimumSize(uiWindowsControl *c, int *width, int *height)
|
||||
{
|
||||
(*(c->MinimumSize))(c, width, height);
|
||||
}
|
||||
|
||||
void uiWindowsControlMinimumSizeChanged(uiWindowsControl *c)
|
||||
{
|
||||
(*(c->MinimumSizeChanged))(c);
|
||||
}
|
||||
|
||||
// TODO get rid of this
|
||||
void uiWindowsControlLayoutRect(uiWindowsControl *c, RECT *r)
|
||||
{
|
||||
(*(c->LayoutRect))(c, r);
|
||||
}
|
||||
|
||||
void uiWindowsControlAssignControlIDZOrder(uiWindowsControl *c, LONG_PTR *controlID, HWND *insertAfter)
|
||||
{
|
||||
(*(c->AssignControlIDZOrder))(c, controlID, insertAfter);
|
||||
}
|
||||
|
||||
void uiWindowsControlChildVisibilityChanged(uiWindowsControl *c)
|
||||
{
|
||||
(*(c->ChildVisibilityChanged))(c);
|
||||
}
|
||||
|
||||
HWND uiWindowsEnsureCreateControlHWND(DWORD dwExStyle, LPCWSTR lpClassName, LPCWSTR lpWindowName, DWORD dwStyle, HINSTANCE hInstance, LPVOID lpParam, BOOL useStandardControlFont)
|
||||
{
|
||||
HWND hwnd;
|
||||
|
||||
// don't let using the arrow keys in a uiRadioButtons leave the radio buttons
|
||||
if ((dwStyle & WS_TABSTOP) != 0)
|
||||
dwStyle |= WS_GROUP;
|
||||
hwnd = CreateWindowExW(dwExStyle,
|
||||
lpClassName, lpWindowName,
|
||||
dwStyle | WS_CHILD | WS_VISIBLE,
|
||||
0, 0,
|
||||
// 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(L"error creating window");
|
||||
// TODO return a decoy window
|
||||
}
|
||||
if (useStandardControlFont)
|
||||
SendMessageW(hwnd, WM_SETFONT, (WPARAM) hMessageFont, (LPARAM) TRUE);
|
||||
return hwnd;
|
||||
}
|
||||
|
||||
// choose a value distinct from uiWindowSignature
|
||||
#define uiWindowsControlSignature 0x4D53576E
|
||||
|
||||
uiWindowsControl *uiWindowsAllocControl(size_t n, uint32_t typesig, const char *typenamestr)
|
||||
{
|
||||
return uiWindowsControl(uiAllocControl(n, uiWindowsControlSignature, typesig, typenamestr));
|
||||
}
|
||||
|
||||
BOOL uiWindowsShouldStopSyncEnableState(uiWindowsControl *c, BOOL enabled)
|
||||
{
|
||||
int ce;
|
||||
|
||||
ce = uiControlEnabled(uiControl(c));
|
||||
// only stop if we're going from disabled back to enabled; don't stop under any other condition
|
||||
// (if we stop when going from enabled to disabled then enabled children of a disabled control won't get disabled at the OS level)
|
||||
if (!ce && enabled)
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void uiWindowsControlAssignSoleControlIDZOrder(uiWindowsControl *c)
|
||||
{
|
||||
LONG_PTR controlID;
|
||||
HWND insertAfter;
|
||||
|
||||
controlID = 100;
|
||||
insertAfter = NULL;
|
||||
uiWindowsControlAssignControlIDZOrder(c, &controlID, &insertAfter);
|
||||
}
|
||||
|
||||
BOOL uiWindowsControlTooSmall(uiWindowsControl *c)
|
||||
{
|
||||
RECT r;
|
||||
int width, height;
|
||||
|
||||
uiWindowsControlLayoutRect(c, &r);
|
||||
uiWindowsControlMinimumSize(c, &width, &height);
|
||||
if ((r.right - r.left) < width)
|
||||
return TRUE;
|
||||
if ((r.bottom - r.top) < height)
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void uiWindowsControlContinueMinimumSizeChanged(uiWindowsControl *c)
|
||||
{
|
||||
uiControl *parent;
|
||||
|
||||
parent = uiControlParent(uiControl(c));
|
||||
if (parent != NULL)
|
||||
uiWindowsControlMinimumSizeChanged(uiWindowsControl(parent));
|
||||
}
|
||||
|
||||
// TODO rename this nad the OS X this and hugging ones to NotifyChild
|
||||
void uiWindowsControlNotifyVisibilityChanged(uiWindowsControl *c)
|
||||
{
|
||||
// TODO we really need to figure this out; the duplication is a mess
|
||||
uiWindowsControlContinueMinimumSizeChanged(c);
|
||||
}
|
||||
Reference in new issue
Block a user