[melonDS] uiControlSetMinSize
This commit is contained in:
parent
0de1a8ec30
commit
d5d8b7c9f2
|
@ -62,6 +62,13 @@ void uiControlSetFocus(uiControl *c)
|
||||||
(*(c->SetFocus))(c);
|
(*(c->SetFocus))(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void uiControlSetMinSize(uiControl *c, int w, int h)
|
||||||
|
{
|
||||||
|
c->MinWidth = w;
|
||||||
|
c->MinHeight = h;
|
||||||
|
(*(c->SetMinSize))(c, w, h);
|
||||||
|
}
|
||||||
|
|
||||||
#define uiprivControlSignature 0x7569436F
|
#define uiprivControlSignature 0x7569436F
|
||||||
|
|
||||||
uiControl *uiAllocControl(size_t size, uint32_t OSsig, uint32_t typesig, const char *typenamestr)
|
uiControl *uiAllocControl(size_t size, uint32_t OSsig, uint32_t typesig, const char *typenamestr)
|
||||||
|
@ -72,6 +79,10 @@ uiControl *uiAllocControl(size_t size, uint32_t OSsig, uint32_t typesig, const c
|
||||||
c->Signature = uiprivControlSignature;
|
c->Signature = uiprivControlSignature;
|
||||||
c->OSSignature = OSsig;
|
c->OSSignature = OSsig;
|
||||||
c->TypeSignature = typesig;
|
c->TypeSignature = typesig;
|
||||||
|
|
||||||
|
c->MinWidth = -1;
|
||||||
|
c->MinHeight = -1;
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
4
ui.h
4
ui.h
|
@ -92,6 +92,9 @@ struct uiControl {
|
||||||
void (*Enable)(uiControl *);
|
void (*Enable)(uiControl *);
|
||||||
void (*Disable)(uiControl *);
|
void (*Disable)(uiControl *);
|
||||||
void (*SetFocus)(uiControl *);
|
void (*SetFocus)(uiControl *);
|
||||||
|
void (*SetMinSize)(uiControl*, int, int);
|
||||||
|
|
||||||
|
int MinWidth, MinHeight;
|
||||||
};
|
};
|
||||||
// TOOD add argument names to all arguments
|
// TOOD add argument names to all arguments
|
||||||
#define uiControl(this) ((uiControl *) (this))
|
#define uiControl(this) ((uiControl *) (this))
|
||||||
|
@ -107,6 +110,7 @@ _UI_EXTERN int uiControlEnabled(uiControl *);
|
||||||
_UI_EXTERN void uiControlEnable(uiControl *);
|
_UI_EXTERN void uiControlEnable(uiControl *);
|
||||||
_UI_EXTERN void uiControlDisable(uiControl *);
|
_UI_EXTERN void uiControlDisable(uiControl *);
|
||||||
_UI_EXTERN void uiControlSetFocus(uiControl *);
|
_UI_EXTERN void uiControlSetFocus(uiControl *);
|
||||||
|
_UI_EXTERN void uiControlSetMinSize(uiControl *, int w, int h); // -1 = no minimum
|
||||||
|
|
||||||
_UI_EXTERN uiControl *uiAllocControl(size_t n, uint32_t OSsig, uint32_t typesig, const char *typenamestr);
|
_UI_EXTERN uiControl *uiAllocControl(size_t n, uint32_t OSsig, uint32_t typesig, const char *typenamestr);
|
||||||
_UI_EXTERN void uiFreeControl(uiControl *);
|
_UI_EXTERN void uiFreeControl(uiControl *);
|
||||||
|
|
|
@ -88,6 +88,11 @@ _UI_EXTERN void uiUnixControlSetContainer(uiUnixControl *, GtkContainer *, gbool
|
||||||
{ \
|
{ \
|
||||||
gtk_widget_grab_focus(type(c)->widget); \
|
gtk_widget_grab_focus(type(c)->widget); \
|
||||||
}
|
}
|
||||||
|
#define uiUnixControlDefaultSetMinSize(type) \
|
||||||
|
static void type ## SetMinSize(uiControl *c, int w, int h) \
|
||||||
|
{ \
|
||||||
|
gtk_widget_set_size_request(type(c)->widget, w, h); \
|
||||||
|
}
|
||||||
// TODO this whole addedBefore stuff is a MASSIVE HACK.
|
// TODO this whole addedBefore stuff is a MASSIVE HACK.
|
||||||
#define uiUnixControlDefaultSetContainer(type) \
|
#define uiUnixControlDefaultSetContainer(type) \
|
||||||
static void type ## SetContainer(uiUnixControl *c, GtkContainer *container, gboolean remove) \
|
static void type ## SetContainer(uiUnixControl *c, GtkContainer *container, gboolean remove) \
|
||||||
|
@ -116,6 +121,7 @@ _UI_EXTERN void uiUnixControlSetContainer(uiUnixControl *, GtkContainer *, gbool
|
||||||
uiUnixControlDefaultEnable(type) \
|
uiUnixControlDefaultEnable(type) \
|
||||||
uiUnixControlDefaultDisable(type) \
|
uiUnixControlDefaultDisable(type) \
|
||||||
uiUnixControlDefaultSetFocus(type) \
|
uiUnixControlDefaultSetFocus(type) \
|
||||||
|
uiUnixControlDefaultSetMinSize(type) \
|
||||||
uiUnixControlDefaultSetContainer(type)
|
uiUnixControlDefaultSetContainer(type)
|
||||||
|
|
||||||
#define uiUnixControlAllDefaults(type) \
|
#define uiUnixControlAllDefaults(type) \
|
||||||
|
@ -137,6 +143,7 @@ _UI_EXTERN void uiUnixControlSetContainer(uiUnixControl *, GtkContainer *, gbool
|
||||||
uiControl(var)->Enable = type ## Enable; \
|
uiControl(var)->Enable = type ## Enable; \
|
||||||
uiControl(var)->Disable = type ## Disable; \
|
uiControl(var)->Disable = type ## Disable; \
|
||||||
uiControl(var)->SetFocus = type ## SetFocus; \
|
uiControl(var)->SetFocus = type ## SetFocus; \
|
||||||
|
uiControl(var)->SetMinSize = type ## SetMinSize; \
|
||||||
uiUnixControl(var)->SetContainer = type ## SetContainer;
|
uiUnixControl(var)->SetContainer = type ## SetContainer;
|
||||||
// TODO document
|
// TODO document
|
||||||
_UI_EXTERN uiUnixControl *uiUnixAllocControl(size_t n, uint32_t typesig, const char *typenamestr);
|
_UI_EXTERN uiUnixControl *uiUnixAllocControl(size_t n, uint32_t typesig, const char *typenamestr);
|
||||||
|
|
|
@ -107,6 +107,10 @@ _UI_EXTERN void uiWindowsControlChildVisibilityChanged(uiWindowsControl *);
|
||||||
{ \
|
{ \
|
||||||
SetFocus(type(c)->hwnd); \
|
SetFocus(type(c)->hwnd); \
|
||||||
}
|
}
|
||||||
|
#define uiWindowsControlDefaultSetMinSize(type) \
|
||||||
|
static void type ## SetMinSize(uiControl *c, int w, int h) \
|
||||||
|
{ \
|
||||||
|
}
|
||||||
#define uiWindowsControlDefaultSyncEnableState(type) \
|
#define uiWindowsControlDefaultSyncEnableState(type) \
|
||||||
static void type ## SyncEnableState(uiWindowsControl *c, int enabled) \
|
static void type ## SyncEnableState(uiWindowsControl *c, int enabled) \
|
||||||
{ \
|
{ \
|
||||||
|
@ -158,6 +162,7 @@ _UI_EXTERN void uiWindowsControlChildVisibilityChanged(uiWindowsControl *);
|
||||||
uiWindowsControlDefaultEnable(type) \
|
uiWindowsControlDefaultEnable(type) \
|
||||||
uiWindowsControlDefaultDisable(type) \
|
uiWindowsControlDefaultDisable(type) \
|
||||||
uiWindowsControlDefaultSetFocus(type) \
|
uiWindowsControlDefaultSetFocus(type) \
|
||||||
|
uiWindowsControlDefaultSetMinSize(type) \
|
||||||
uiWindowsControlDefaultSyncEnableState(type) \
|
uiWindowsControlDefaultSyncEnableState(type) \
|
||||||
uiWindowsControlDefaultSetParentHWND(type) \
|
uiWindowsControlDefaultSetParentHWND(type) \
|
||||||
uiWindowsControlDefaultMinimumSizeChanged(type) \
|
uiWindowsControlDefaultMinimumSizeChanged(type) \
|
||||||
|
@ -184,6 +189,7 @@ _UI_EXTERN void uiWindowsControlChildVisibilityChanged(uiWindowsControl *);
|
||||||
uiControl(var)->Enable = type ## Enable; \
|
uiControl(var)->Enable = type ## Enable; \
|
||||||
uiControl(var)->Disable = type ## Disable; \
|
uiControl(var)->Disable = type ## Disable; \
|
||||||
uiControl(var)->SetFocus = type ## SetFocus; \
|
uiControl(var)->SetFocus = type ## SetFocus; \
|
||||||
|
uiControl(var)->SetMinSize = type ## SetMinSize; \
|
||||||
uiWindowsControl(var)->SyncEnableState = type ## SyncEnableState; \
|
uiWindowsControl(var)->SyncEnableState = type ## SyncEnableState; \
|
||||||
uiWindowsControl(var)->SetParentHWND = type ## SetParentHWND; \
|
uiWindowsControl(var)->SetParentHWND = type ## SetParentHWND; \
|
||||||
uiWindowsControl(var)->MinimumSize = type ## MinimumSize; \
|
uiWindowsControl(var)->MinimumSize = type ## MinimumSize; \
|
||||||
|
|
|
@ -51,5 +51,7 @@ uiButton *uiNewButton(const char *text)
|
||||||
g_signal_connect(b->widget, "clicked", G_CALLBACK(onClicked), b);
|
g_signal_connect(b->widget, "clicked", G_CALLBACK(onClicked), b);
|
||||||
uiButtonOnClicked(b, defaultOnClicked, NULL);
|
uiButtonOnClicked(b, defaultOnClicked, NULL);
|
||||||
|
|
||||||
|
gtk_widget_set_size_request(b->widget, 64, 1);
|
||||||
|
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,9 @@ struct uiWindow {
|
||||||
uiControl *child;
|
uiControl *child;
|
||||||
int margined;
|
int margined;
|
||||||
|
|
||||||
|
int width;
|
||||||
|
int height;
|
||||||
|
|
||||||
int (*onClosing)(uiWindow *, void *);
|
int (*onClosing)(uiWindow *, void *);
|
||||||
void *onClosingData;
|
void *onClosingData;
|
||||||
void (*onContentSizeChanged)(uiWindow *, void *);
|
void (*onContentSizeChanged)(uiWindow *, void *);
|
||||||
|
@ -101,11 +104,28 @@ uiUnixControlDefaultVisible(uiWindow)
|
||||||
static void uiWindowShow(uiControl *c)
|
static void uiWindowShow(uiControl *c)
|
||||||
{
|
{
|
||||||
uiWindow *w = uiWindow(c);
|
uiWindow *w = uiWindow(c);
|
||||||
|
int width;
|
||||||
|
int height;
|
||||||
|
|
||||||
// don't use gtk_widget_show_all() as that will show all children, regardless of user settings
|
// don't use gtk_widget_show_all() as that will show all children, regardless of user settings
|
||||||
// don't use gtk_widget_show(); that doesn't bring to front or give keyboard focus
|
// don't use gtk_widget_show(); that doesn't bring to front or give keyboard focus
|
||||||
// (gtk_window_present() does call gtk_widget_show() though)
|
// (gtk_window_present() does call gtk_widget_show() though)
|
||||||
gtk_window_present(w->window);
|
gtk_window_present(w->window);
|
||||||
|
|
||||||
|
// set the size properly
|
||||||
|
width = w->width;
|
||||||
|
height = w->height;
|
||||||
|
if (w->menubar) {
|
||||||
|
GtkRequisition min, nat;
|
||||||
|
int menuheight;
|
||||||
|
|
||||||
|
gtk_widget_get_preferred_size(w->menubar, &min, &nat);
|
||||||
|
menuheight = min.height;
|
||||||
|
if (nat.height > menuheight)
|
||||||
|
menuheight = nat.height;
|
||||||
|
height += menuheight;
|
||||||
|
}
|
||||||
|
gtk_window_resize(w->window, width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
uiUnixControlDefaultHide(uiWindow)
|
uiUnixControlDefaultHide(uiWindow)
|
||||||
|
@ -113,6 +133,7 @@ uiUnixControlDefaultEnabled(uiWindow)
|
||||||
uiUnixControlDefaultEnable(uiWindow)
|
uiUnixControlDefaultEnable(uiWindow)
|
||||||
uiUnixControlDefaultDisable(uiWindow)
|
uiUnixControlDefaultDisable(uiWindow)
|
||||||
uiUnixControlDefaultSetFocus(uiWindow)
|
uiUnixControlDefaultSetFocus(uiWindow)
|
||||||
|
uiUnixControlDefaultSetMinSize(uiWindow)
|
||||||
// TODO?
|
// TODO?
|
||||||
uiUnixControlDefaultSetContainer(uiWindow)
|
uiUnixControlDefaultSetContainer(uiWindow)
|
||||||
|
|
||||||
|
@ -253,6 +274,8 @@ uiWindow *uiNewWindow(const char *title, int width, int height, int hasMenubar)
|
||||||
if (hasMenubar) {
|
if (hasMenubar) {
|
||||||
w->menubar = uiprivMakeMenubar(uiWindow(w));
|
w->menubar = uiprivMakeMenubar(uiWindow(w));
|
||||||
gtk_container_add(w->vboxContainer, w->menubar);
|
gtk_container_add(w->vboxContainer, w->menubar);
|
||||||
|
} else {
|
||||||
|
w->menubar = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
w->childHolderWidget = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
|
w->childHolderWidget = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
|
||||||
|
|
|
@ -55,9 +55,11 @@ uiWindowsControlAllDefaults(uiArea)
|
||||||
|
|
||||||
static void uiAreaMinimumSize(uiWindowsControl *c, int *width, int *height)
|
static void uiAreaMinimumSize(uiWindowsControl *c, int *width, int *height)
|
||||||
{
|
{
|
||||||
// TODO
|
*width = c->c.MinWidth;
|
||||||
*width = 0;
|
if (*width < 1) *width = 1;
|
||||||
*height = 0;
|
|
||||||
|
*height = c->c.MinHeight;
|
||||||
|
if (*height < 1) *height = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ATOM registerAreaClass(HICON hDefaultIcon, HCURSOR hDefaultCursor)
|
ATOM registerAreaClass(HICON hDefaultIcon, HCURSOR hDefaultCursor)
|
||||||
|
|
|
@ -38,7 +38,6 @@ static void boxRelayout(uiBox *b)
|
||||||
int i;
|
int i;
|
||||||
int minimumWidth, minimumHeight;
|
int minimumWidth, minimumHeight;
|
||||||
int nVisible;
|
int nVisible;
|
||||||
uiWindowsSizing *d;
|
|
||||||
|
|
||||||
if (b->controls->size() == 0)
|
if (b->controls->size() == 0)
|
||||||
return;
|
return;
|
||||||
|
@ -165,10 +164,8 @@ static void uiBoxMinimumSize(uiWindowsControl *c, int *width, int *height)
|
||||||
// these two contain the largest minimum width and height of all stretchy controls in the box
|
// these two contain the largest minimum width and height of all stretchy controls in the box
|
||||||
// all stretchy controls will use this value to determine the final minimum size
|
// all stretchy controls will use this value to determine the final minimum size
|
||||||
int maxStretchyWidth, maxStretchyHeight;
|
int maxStretchyWidth, maxStretchyHeight;
|
||||||
int i;
|
|
||||||
int minimumWidth, minimumHeight;
|
int minimumWidth, minimumHeight;
|
||||||
int nVisible;
|
int nVisible;
|
||||||
uiWindowsSizing sizing;
|
|
||||||
|
|
||||||
*width = 0;
|
*width = 0;
|
||||||
*height = 0;
|
*height = 0;
|
||||||
|
@ -235,6 +232,12 @@ static void uiBoxMinimumSizeChanged(uiWindowsControl *c)
|
||||||
boxRelayout(b);
|
boxRelayout(b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void uiBoxSetMinSize(uiControl *c, int w, int h)
|
||||||
|
{
|
||||||
|
// checkme
|
||||||
|
uiBoxMinimumSizeChanged(uiWindowsControl(c));
|
||||||
|
}
|
||||||
|
|
||||||
uiWindowsControlDefaultLayoutRect(uiBox)
|
uiWindowsControlDefaultLayoutRect(uiBox)
|
||||||
uiWindowsControlDefaultAssignControlIDZOrder(uiBox)
|
uiWindowsControlDefaultAssignControlIDZOrder(uiBox)
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,7 @@ uiWindowsControlAllDefaultsExceptDestroy(uiButton)
|
||||||
|
|
||||||
// from http://msdn.microsoft.com/en-us/library/windows/desktop/dn742486.aspx#sizingandspacing
|
// from http://msdn.microsoft.com/en-us/library/windows/desktop/dn742486.aspx#sizingandspacing
|
||||||
#define buttonHeight 14
|
#define buttonHeight 14
|
||||||
|
#define buttonMinWidth 64
|
||||||
|
|
||||||
static void uiButtonMinimumSize(uiWindowsControl *c, int *width, int *height)
|
static void uiButtonMinimumSize(uiWindowsControl *c, int *width, int *height)
|
||||||
{
|
{
|
||||||
|
@ -45,6 +46,7 @@ static void uiButtonMinimumSize(uiWindowsControl *c, int *width, int *height)
|
||||||
size.cy = 0;
|
size.cy = 0;
|
||||||
if (SendMessageW(b->hwnd, BCM_GETIDEALSIZE, 0, (LPARAM) (&size)) != FALSE) {
|
if (SendMessageW(b->hwnd, BCM_GETIDEALSIZE, 0, (LPARAM) (&size)) != FALSE) {
|
||||||
*width = size.cx;
|
*width = size.cx;
|
||||||
|
if (*width < buttonMinWidth) *width = buttonMinWidth;
|
||||||
*height = size.cy;
|
*height = size.cy;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -53,6 +55,7 @@ static void uiButtonMinimumSize(uiWindowsControl *c, int *width, int *height)
|
||||||
// Microsoft says to use a fixed width for all buttons; this isn't good enough
|
// Microsoft says to use a fixed width for all buttons; this isn't good enough
|
||||||
// use the text width instead, with some edge padding
|
// use the text width instead, with some edge padding
|
||||||
*width = uiWindowsWindowTextWidth(b->hwnd) + (2 * GetSystemMetrics(SM_CXEDGE));
|
*width = uiWindowsWindowTextWidth(b->hwnd) + (2 * GetSystemMetrics(SM_CXEDGE));
|
||||||
|
if (*width < buttonMinWidth) *width = buttonMinWidth;
|
||||||
y = buttonHeight;
|
y = buttonHeight;
|
||||||
uiWindowsGetSizing(b->hwnd, &sizing);
|
uiWindowsGetSizing(b->hwnd, &sizing);
|
||||||
uiWindowsSizingDlgUnitsToPixels(&sizing, NULL, &y);
|
uiWindowsSizingDlgUnitsToPixels(&sizing, NULL, &y);
|
||||||
|
|
|
@ -87,7 +87,6 @@ static void hsv2RGB(double h, double s, double v, double *r, double *g, double *
|
||||||
int h60;
|
int h60;
|
||||||
double x;
|
double x;
|
||||||
double m;
|
double m;
|
||||||
double c1, c2;
|
|
||||||
|
|
||||||
c = v * s;
|
c = v * s;
|
||||||
hPrime = h * 6;
|
hPrime = h * 6;
|
||||||
|
|
|
@ -232,6 +232,12 @@ static void uiFormMinimumSizeChanged(uiWindowsControl *c)
|
||||||
formRelayout(f);
|
formRelayout(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void uiFormSetMinSize(uiControl *c, int w, int h)
|
||||||
|
{
|
||||||
|
// checkme
|
||||||
|
uiFormMinimumSizeChanged(uiWindowsControl(c));
|
||||||
|
}
|
||||||
|
|
||||||
uiWindowsControlDefaultLayoutRect(uiForm)
|
uiWindowsControlDefaultLayoutRect(uiForm)
|
||||||
uiWindowsControlDefaultAssignControlIDZOrder(uiForm)
|
uiWindowsControlDefaultAssignControlIDZOrder(uiForm)
|
||||||
|
|
||||||
|
|
|
@ -516,6 +516,12 @@ static void uiGridMinimumSizeChanged(uiWindowsControl *c)
|
||||||
gridRelayout(g);
|
gridRelayout(g);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void uiGridSetMinSize(uiControl *c, int w, int h)
|
||||||
|
{
|
||||||
|
// checkme
|
||||||
|
uiGridMinimumSizeChanged(uiWindowsControl(c));
|
||||||
|
}
|
||||||
|
|
||||||
uiWindowsControlDefaultLayoutRect(uiGrid)
|
uiWindowsControlDefaultLayoutRect(uiGrid)
|
||||||
uiWindowsControlDefaultAssignControlIDZOrder(uiGrid)
|
uiWindowsControlDefaultAssignControlIDZOrder(uiGrid)
|
||||||
|
|
||||||
|
|
|
@ -119,6 +119,12 @@ static void uiGroupMinimumSizeChanged(uiWindowsControl *c)
|
||||||
groupRelayout(g);
|
groupRelayout(g);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void uiGroupSetMinSize(uiControl *c, int w, int h)
|
||||||
|
{
|
||||||
|
// checkme
|
||||||
|
uiGroupMinimumSizeChanged(uiWindowsControl(c));
|
||||||
|
}
|
||||||
|
|
||||||
uiWindowsControlDefaultLayoutRect(uiGroup)
|
uiWindowsControlDefaultLayoutRect(uiGroup)
|
||||||
uiWindowsControlDefaultAssignControlIDZOrder(uiGroup)
|
uiWindowsControlDefaultAssignControlIDZOrder(uiGroup)
|
||||||
|
|
||||||
|
|
|
@ -164,6 +164,12 @@ static void uiTabMinimumSizeChanged(uiWindowsControl *c)
|
||||||
tabRelayout(t);
|
tabRelayout(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void uiTabSetMinSize(uiControl *c, int w, int h)
|
||||||
|
{
|
||||||
|
// checkme
|
||||||
|
uiTabMinimumSizeChanged(uiWindowsControl(c));
|
||||||
|
}
|
||||||
|
|
||||||
uiWindowsControlDefaultLayoutRect(uiTab)
|
uiWindowsControlDefaultLayoutRect(uiTab)
|
||||||
uiWindowsControlDefaultAssignControlIDZOrder(uiTab)
|
uiWindowsControlDefaultAssignControlIDZOrder(uiTab)
|
||||||
|
|
||||||
|
|
|
@ -274,6 +274,11 @@ static void uiWindowLayoutRect(uiWindowsControl *c, RECT *r)
|
||||||
uiWindowsEnsureGetClientRect(w->hwnd, r);
|
uiWindowsEnsureGetClientRect(w->hwnd, r);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void uiWindowSetMinSize(uiControl *c, int w, int h)
|
||||||
|
{
|
||||||
|
// TODO: relayout, eventually
|
||||||
|
}
|
||||||
|
|
||||||
uiWindowsControlDefaultAssignControlIDZOrder(uiWindow)
|
uiWindowsControlDefaultAssignControlIDZOrder(uiWindow)
|
||||||
|
|
||||||
static void uiWindowChildVisibilityChanged(uiWindowsControl *c)
|
static void uiWindowChildVisibilityChanged(uiWindowsControl *c)
|
||||||
|
|
Loading…
Reference in New Issue