Started integrating tab stops and control IDs. Single-control situations handled.

This commit is contained in:
Pietro Gagliardi 2015-09-02 09:18:49 -04:00
parent 42f6d0f974
commit 6be1cabf22
5 changed files with 13 additions and 2 deletions

View File

@ -123,6 +123,11 @@ void childUpdateState(struct child *c)
controlUpdateState(c->c); controlUpdateState(c->c);
} }
void childSetSoleControlID(struct child *c)
{
uiWindowsEnsureAssignControlIDZOrder(c->hwnd, 100, NULL);
}
HWND childTabPage(struct child *c) HWND childTabPage(struct child *c)
{ {
return c->tabpage; return c->tabpage;

View File

@ -102,9 +102,11 @@ void uiGroupSetChild(uiGroup *g, uiControl *child)
if (g->child != NULL) if (g->child != NULL)
childRemove(g->child); childRemove(g->child);
g->child = newChild(child, uiControl(g), g->hwnd); g->child = newChild(child, uiControl(g), g->hwnd);
if (g->child != NULL) if (g->child != NULL) {
childSetSoleControlID(g->child);
uiWindowsControlQueueRelayout(uiWindowsControl(g)); uiWindowsControlQueueRelayout(uiWindowsControl(g));
} }
}
int uiGroupMargined(uiGroup *g) int uiGroupMargined(uiGroup *g)
{ {

View File

@ -160,6 +160,7 @@ void uiTabInsertAt(uiTab *t, const char *name, uintmax_t n, uiControl *child)
// this is the only real way to do proper tab stops // this is the only real way to do proper tab stops
// it's how tabs are /supposed to/ be done, anyway // it's how tabs are /supposed to/ be done, anyway
page = newChildWithTabPage(child, uiControl(t), t->hwnd); page = newChildWithTabPage(child, uiControl(t), t->hwnd);
childSetSoleControlID(page);
ptrArrayInsertAt(t->pages, n, page); ptrArrayInsertAt(t->pages, n, page);
ZeroMemory(&item, sizeof (TCITEMW)); ZeroMemory(&item, sizeof (TCITEMW));

View File

@ -106,6 +106,7 @@ extern void childRelayout(struct child *c, intmax_t x, intmax_t y, intmax_t widt
extern void childQueueRelayout(struct child *c); extern void childQueueRelayout(struct child *c);
extern int childVisible(struct child *c); extern int childVisible(struct child *c);
extern void childUpdateState(struct child *c); extern void childUpdateState(struct child *c);
extern void childSetSoleControlID(struct child *c);
extern HWND childTabPage(struct child *c); extern HWND childTabPage(struct child *c);
extern int childMargined(struct child *c); extern int childMargined(struct child *c);
extern void childSetMargined(struct child *c, int margined); extern void childSetMargined(struct child *c, int margined);

View File

@ -190,9 +190,11 @@ void uiWindowSetChild(uiWindow *w, uiControl *child)
if (w->child != NULL) if (w->child != NULL)
childRemove(w->child); childRemove(w->child);
w->child = newChild(child, uiControl(w), w->hwnd); w->child = newChild(child, uiControl(w), w->hwnd);
if (w->child != NULL) if (w->child != NULL) {
childSetSoleControlID(w->child);
childQueueRelayout(w->child); childQueueRelayout(w->child);
} }
}
int uiWindowMargined(uiWindow *w) int uiWindowMargined(uiWindow *w)
{ {