More ui_windows.h work.
This commit is contained in:
parent
465d497cb6
commit
6df9ad49a1
|
@ -14,12 +14,12 @@ struct uiWindowsControl {
|
||||||
uiControl c;
|
uiControl c;
|
||||||
void (*CommitSetParent)(uiWindowsControl *, HWND);
|
void (*CommitSetParent)(uiWindowsControl *, HWND);
|
||||||
void (*MinimumSize)(uiWindowsControl *, uiWindowsSizing *, intmax_t *, intmax_t *);
|
void (*MinimumSize)(uiWindowsControl *, uiWindowsSizing *, intmax_t *, intmax_t *);
|
||||||
void (*Relayout)(uiWindowsControl *);
|
void (*Relayout)(uiWindowsControl *, intmax_t, intmax_t, intmax_t, intmax_t);
|
||||||
};
|
};
|
||||||
_UI_EXTERN uintmax_t uiWindowsControlType(void);
|
_UI_EXTERN uintmax_t uiWindowsControlType(void);
|
||||||
#define uiWindowsControl(this) ((uiWindowsControl *) uiIsA((this), uiWindowsControlType(), 1))
|
#define uiWindowsControl(this) ((uiWindowsControl *) uiIsA((this), uiWindowsControlType(), 1))
|
||||||
// TODO document
|
// TODO document
|
||||||
_UI_EXTERN void uiWindowsControlTriggerRelayout(uiWindowsControl *);
|
_UI_EXTERN void uiWindowsControlQueueRelayout(uiWindowsControl *);
|
||||||
|
|
||||||
// TODO document
|
// TODO document
|
||||||
#define uiWindowsDefineControlWithOnDestroy(type, typefn, onDestroy) \
|
#define uiWindowsDefineControlWithOnDestroy(type, typefn, onDestroy) \
|
||||||
|
@ -48,9 +48,9 @@ _UI_EXTERN void uiWindowsControlTriggerRelayout(uiWindowsControl *);
|
||||||
{ \
|
{ \
|
||||||
uiWindowsEnsureSetParent(type(c)->hwnd, parent); \
|
uiWindowsEnsureSetParent(type(c)->hwnd, parent); \
|
||||||
} \
|
} \
|
||||||
static void _ ## type ## Relayout(uiWindowsControl *c) \
|
static void _ ## type ## Relayout(uiWindowsControl *c, intmax_t x, intmax_t y, intmax_t width, intmax_t height) \
|
||||||
{ \
|
{ \
|
||||||
/* do nothing */ \
|
uiWindowsEnsureMoveWindow(type(c)->hwnd, x, y, width, height); \
|
||||||
} \
|
} \
|
||||||
static void minimumSize(uiWindowsControl *c, uiWindowsSizing *d, intmax_t *width, intmax_t *height);
|
static void minimumSize(uiWindowsControl *c, uiWindowsSizing *d, intmax_t *width, intmax_t *height);
|
||||||
|
|
||||||
|
@ -78,6 +78,9 @@ _UI_EXTERN HWND uiWindowsEnsureCreateControlHWND(DWORD dwExStyle, LPCWSTR lpClas
|
||||||
_UI_EXTERN void uiWindowsEnsureDestroyWindow(HWND hwnd);
|
_UI_EXTERN void uiWindowsEnsureDestroyWindow(HWND hwnd);
|
||||||
_UI_EXTERN void uiWindowsEnsureSetParent(HWND hwnd, HWND parent);
|
_UI_EXTERN void uiWindowsEnsureSetParent(HWND hwnd, HWND parent);
|
||||||
|
|
||||||
|
// Use this in your Relayout() implementation to move and resize HWNDs. libui handles errors for you.
|
||||||
|
_UI_EXTERN void uiWindowsEnsureMoveWindow(HWND hwnd, intmax_t x, intmax_t y, intmax_t width, intmax_t height);
|
||||||
|
|
||||||
////////////////////////////////////////////
|
////////////////////////////////////////////
|
||||||
/////////////////// TODO ///////////////////
|
/////////////////// TODO ///////////////////
|
||||||
////////////////////////////////////////////
|
////////////////////////////////////////////
|
||||||
|
@ -85,7 +88,6 @@ _UI_EXTERN void uiWindowsEnsureSetParent(HWND hwnd, HWND parent);
|
||||||
// These provide single-HWND implementations of uiControl methods you can use in yours.
|
// These provide single-HWND implementations of uiControl methods you can use in yours.
|
||||||
_UI_EXTERN void uiWindowsUtilDestroy(HWND hwnd);
|
_UI_EXTERN void uiWindowsUtilDestroy(HWND hwnd);
|
||||||
_UI_EXTERN void uiWindowsUtilSetParent(HWND hwnd, uiControl *parent);
|
_UI_EXTERN void uiWindowsUtilSetParent(HWND hwnd, uiControl *parent);
|
||||||
_UI_EXTERN void uiWindowsUtilResize(HWND hwnd, intmax_t x, intmax_t y, intmax_t width, intmax_t height, uiSizing *d);
|
|
||||||
_UI_EXTERN void uiWindowsUtilShow(HWND hwnd);
|
_UI_EXTERN void uiWindowsUtilShow(HWND hwnd);
|
||||||
_UI_EXTERN void uiWindowsUtilHide(HWND hwnd);
|
_UI_EXTERN void uiWindowsUtilHide(HWND hwnd);
|
||||||
_UI_EXTERN void uiWindowsUtilEnable(HWND hwnd);
|
_UI_EXTERN void uiWindowsUtilEnable(HWND hwnd);
|
||||||
|
|
Loading…
Reference in New Issue