summaryrefslogtreecommitdiff
path: root/src/ui/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/util.c')
-rw-r--r--src/ui/util.c22
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) {
297iWidget *makeTabs_Widget(iWidget *parent) { 297iWidget *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
314static void addTabPage_Widget_(iWidget *tabs, enum iWidgetAddPos addPos, iWidget *page, 313static 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
341iWidget *removeTabPage_Widget(iWidget *tabs, size_t index) { 342iWidget *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