static bool zarch_zui_button(zui_t *zui, int x1, int y1, const char *label) { if (!zui || !zui->font) return false; return zarch_zui_button_full(zui, x1, y1, x1 + zarch_zui_strwidth(zui->font, label, 1.0) + 24, y1 + 64, label); }
static bool zarch_zui_tab(zui_t *zui, struct zui_tabbed *tab, const char *label, unsigned tab_id) { bool active; int x1, y1, x2, y2; unsigned id = zarch_zui_hash(zui, label); int width = tab->tab_width; const float *bg = zui_bg_panel; bool selected = tab->tab_selection == tab_id; /* TODO/FIXME */ if (!zui || !tab ) return false; if (!width) { if (!zui->fb_buf) return false; width = zarch_zui_strwidth(zui->fb_buf, label, 1.0) + 24; } x1 = tab->x; y1 = tab->y; x2 = x1 + width; y2 = y1 + 60; active = zarch_zui_check_button_up(zui, id, x1, y1, x2, y2); tab->prev_id = tab->active_id; if (zui->item.active == id || tab->active_id == ~0U || !tab->inited) tab->active_id = id; else if (id > tab->active_id) { tab->next_id = id; } if (!tab->inited) tab->inited = true; if (tab->active_id == id || zui->item.active == id || zui->item.hot == id) bg = zui_bg_hilite; else if (selected) bg = zui_bg_pad_hilite; zarch_zui_push_quad(zui->width, zui->height, bg, &zui->ca, x1+0, y1+0, x2, y2); zarch_zui_draw_text(zui, ZUI_FG_NORMAL, x1+12, y1 + 41, label); if (tab->vertical) tab->y += y2 - y1; else tab->x = x2; return active || (tab->active_id == id); }
static bool zarch_zui_button(zui_t *zui, int x1, int y1, const char *label) { return zarch_zui_button_full(zui, x1, y1, x1 + zarch_zui_strwidth(zui->fb_buf, label, 1.0) + 24, y1 + 64, label); }