diff options
Diffstat (limited to 'src/ui/util.c')
-rw-r--r-- | src/ui/util.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/ui/util.c b/src/ui/util.c index 5868e9d7..94528817 100644 --- a/src/ui/util.c +++ b/src/ui/util.c | |||
@@ -297,10 +297,9 @@ static iBool tabSwitcher_(iWidget *tabs, const char *cmd) { | |||
297 | iWidget *makeTabs_Widget(iWidget *parent) { | 297 | iWidget *makeTabs_Widget(iWidget *parent) { |
298 | iWidget *tabs = makeVDiv_Widget(); | 298 | iWidget *tabs = makeVDiv_Widget(); |
299 | iWidget *buttons = addChild_Widget(tabs, iClob(new_Widget())); | 299 | iWidget *buttons = addChild_Widget(tabs, iClob(new_Widget())); |
300 | buttons->rect.size.y = 2 * gap_UI + lineHeight_Text(default_FontId); | ||
301 | setFlags_Widget(buttons, | 300 | setFlags_Widget(buttons, |
302 | resizeChildren_WidgetFlag | arrangeHorizontal_WidgetFlag | | 301 | resizeWidthOfChildren_WidgetFlag | arrangeHorizontal_WidgetFlag | |
303 | fixedHeight_WidgetFlag, | 302 | arrangeHeight_WidgetFlag, |
304 | iTrue); | 303 | iTrue); |
305 | setId_Widget(buttons, "tabs.buttons"); | 304 | setId_Widget(buttons, "tabs.buttons"); |
306 | iWidget *pages = addChildFlags_Widget( | 305 | iWidget *pages = addChildFlags_Widget( |
@@ -313,12 +312,14 @@ iWidget *makeTabs_Widget(iWidget *parent) { | |||
313 | 312 | ||
314 | static void addTabPage_Widget_(iWidget *tabs, enum iWidgetAddPos addPos, iWidget *page, | 313 | static void addTabPage_Widget_(iWidget *tabs, enum iWidgetAddPos addPos, iWidget *page, |
315 | const char *label, int key, int kmods) { | 314 | const char *label, int key, int kmods) { |
316 | iWidget * pages = findChild_Widget(tabs, "tabs.pages"); | 315 | iWidget * pages = findChild_Widget(tabs, "tabs.pages"); |
317 | const iBool isSel = childCount_Widget(pages) == 0; | 316 | const iBool isSel = childCount_Widget(pages) == 0; |
318 | iWidget * button = addChildPos_Widget( | 317 | iWidget * buttons = findChild_Widget(tabs, "tabs.buttons"); |
319 | findChild_Widget(tabs, "tabs.buttons"), | 318 | iWidget * button = addChildPos_Widget( |
319 | buttons, | ||
320 | iClob(new_LabelWidget(label, key, kmods, format_CStr("tabs.switch page:%p", page))), | 320 | iClob(new_LabelWidget(label, key, kmods, format_CStr("tabs.switch page:%p", page))), |
321 | addPos); | 321 | addPos); |
322 | setFlags_Widget(buttons, hidden_WidgetFlag, iFalse); | ||
322 | setFlags_Widget(button, selected_WidgetFlag, isSel); | 323 | setFlags_Widget(button, selected_WidgetFlag, isSel); |
323 | setFlags_Widget(button, commandOnClick_WidgetFlag | expand_WidgetFlag, iTrue); | 324 | setFlags_Widget(button, commandOnClick_WidgetFlag | expand_WidgetFlag, iTrue); |
324 | addChildPos_Widget(pages, page, addPos); | 325 | addChildPos_Widget(pages, page, addPos); |
@@ -340,13 +341,16 @@ iWidget *tabPage_Widget(iWidget *tabs, size_t index) { | |||
340 | 341 | ||
341 | iWidget *removeTabPage_Widget(iWidget *tabs, size_t index) { | 342 | iWidget *removeTabPage_Widget(iWidget *tabs, size_t index) { |
342 | iWidget *buttons = findChild_Widget(tabs, "tabs.buttons"); | 343 | iWidget *buttons = findChild_Widget(tabs, "tabs.buttons"); |
343 | iWidget *pages = findChild_Widget(tabs, "tabs.pages"); | 344 | iWidget *pages = findChild_Widget(tabs, "tabs.pages"); |
344 | iWidget *button = removeChild_Widget(buttons, child_Widget(buttons, index)); | 345 | iWidget *button = removeChild_Widget(buttons, child_Widget(buttons, index)); |
345 | iRelease(button); | 346 | iRelease(button); |
346 | iWidget *page = child_Widget(pages, index); | 347 | iWidget *page = child_Widget(pages, index); |
347 | ref_Object(page); | 348 | ref_Object(page); |
348 | setFlags_Widget(page, hidden_WidgetFlag | disabled_WidgetFlag, iFalse); | 349 | setFlags_Widget(page, hidden_WidgetFlag | disabled_WidgetFlag, iFalse); |
349 | removeChild_Widget(pages, page); | 350 | removeChild_Widget(pages, page); |
351 | if (tabCount_Widget(tabs) <= 1 && flags_Widget(buttons) & collapse_WidgetFlag) { | ||
352 | setFlags_Widget(buttons, hidden_WidgetFlag, iTrue); | ||
353 | } | ||
350 | return page; | 354 | return page; |
351 | } | 355 | } |
352 | 356 | ||