scrollbar is mandetory
This commit is contained in:
parent
3639ce35aa
commit
12c71aabf8
13
gui.c
13
gui.c
@ -1586,6 +1586,8 @@ gui_panel_begin(struct gui_panel *panel, struct gui_draw_buffer *out,
|
||||
header_x = x + config->panel_padding.x;
|
||||
header_w = w - 2 * config->panel_padding.x;
|
||||
|
||||
if (!(panel->flags & GUI_PANEL_TAB))
|
||||
panel->flags |= GUI_PANEL_SCROLLBAR;
|
||||
if (panel->flags & GUI_PANEL_HEADER) {
|
||||
panel->header_height = panel->font->height + 3 * config->item_padding.y;
|
||||
panel->header_height += config->panel_padding.y;
|
||||
@ -1660,13 +1662,12 @@ gui_panel_begin(struct gui_panel *panel, struct gui_draw_buffer *out,
|
||||
config->colors[GUI_COLOR_TEXT], (const gui_char*)text, text_len);
|
||||
}
|
||||
|
||||
|
||||
panel->row_height = panel->header_height;
|
||||
if (panel->flags & GUI_PANEL_SCROLLBAR) {
|
||||
const struct gui_color *color = &config->colors[GUI_COLOR_PANEL];
|
||||
panel->width -= config->scrollbar_width;
|
||||
panel->height = (panel->flags & GUI_PANEL_HEADER) ? (h - panel->header_height) : h;
|
||||
if (panel->flags & GUI_PANEL_TAB)
|
||||
if (!(panel->flags & GUI_PANEL_HEADER))
|
||||
panel->height -= (config->panel_padding.y + config->item_padding.y);
|
||||
if (!panel->minimized)
|
||||
gui_draw_rectf(panel->out, x, y + panel->header_height, w,
|
||||
@ -2462,7 +2463,7 @@ gui_panel_tab_begin(struct gui_panel *panel, gui_tab *tab, const char *title)
|
||||
assert(tab);
|
||||
if (!panel || !tab) return gui_true;
|
||||
if (!panel->minimized && !(panel->flags & GUI_PANEL_HIDDEN)) {
|
||||
flags = GUI_PANEL_BORDER|GUI_PANEL_MINIMIZABLE|GUI_PANEL_HEADER;
|
||||
flags = GUI_PANEL_BORDER|GUI_PANEL_MINIMIZABLE|GUI_PANEL_HEADER|GUI_PANEL_TAB;
|
||||
} else flags = GUI_PANEL_HIDDEN;
|
||||
|
||||
old_height = panel->row_height;
|
||||
@ -2508,7 +2509,7 @@ gui_panel_group_begin(struct gui_panel *panel, gui_group *group, const char *tit
|
||||
offset = group->offset;
|
||||
gui_panel_alloc_space(&bounds, panel);
|
||||
gui_panel_init(group, panel->config, panel->font);
|
||||
flags = GUI_PANEL_BORDER|GUI_PANEL_HEADER|GUI_PANEL_SCROLLBAR;
|
||||
flags = GUI_PANEL_BORDER|GUI_PANEL_HEADER|GUI_PANEL_SCROLLBAR|GUI_PANEL_TAB;
|
||||
group->offset = offset;
|
||||
gui_panel_begin(group, panel->out, panel->in, title,
|
||||
bounds.x, bounds.y, bounds.w, bounds.h, flags);
|
||||
@ -2836,6 +2837,9 @@ gui_begin_panel(struct gui_context *ctx, struct gui_panel *panel,
|
||||
}
|
||||
}
|
||||
|
||||
if (!(flags & GUI_PANEL_TAB))
|
||||
flags |= GUI_PANEL_SCROLLBAR;
|
||||
|
||||
if (ctx->active == cpanel && (flags & GUI_PANEL_MOVEABLE) && (flags & GUI_PANEL_HEADER)) {
|
||||
gui_bool incursor;
|
||||
const gui_float header_x = cpanel->x;
|
||||
@ -2864,6 +2868,7 @@ gui_begin_panel(struct gui_context *ctx, struct gui_panel *panel,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
global = &ctx->global_buffer;
|
||||
out = &ctx->current_buffer;
|
||||
out->vertex_size = 0;
|
||||
|
19
gui.h
19
gui.h
@ -321,15 +321,16 @@ struct gui_config {
|
||||
};
|
||||
|
||||
enum gui_panel_flags {
|
||||
GUI_PANEL_TAB = 0x01,
|
||||
GUI_PANEL_HEADER = 0x02,
|
||||
GUI_PANEL_BORDER = 0x04,
|
||||
GUI_PANEL_MINIMIZABLE = 0x8,
|
||||
GUI_PANEL_CLOSEABLE = 0x10,
|
||||
GUI_PANEL_SCROLLBAR = 0x20,
|
||||
GUI_PANEL_HIDDEN = 0x40,
|
||||
GUI_PANEL_MOVEABLE = 0x80,
|
||||
GUI_PANEL_SCALEABLE = 0x100
|
||||
GUI_PANEL_HEADER = 0x01,
|
||||
GUI_PANEL_BORDER = 0x02,
|
||||
GUI_PANEL_MINIMIZABLE = 0x4,
|
||||
GUI_PANEL_CLOSEABLE = 0x8,
|
||||
GUI_PANEL_HIDDEN = 0x10,
|
||||
GUI_PANEL_MOVEABLE = 0x20,
|
||||
GUI_PANEL_SCALEABLE = 0x40,
|
||||
/* intern */
|
||||
GUI_PANEL_SCROLLBAR = 0x100,
|
||||
GUI_PANEL_TAB = 0x200
|
||||
};
|
||||
|
||||
struct gui_panel {
|
||||
|
Loading…
x
Reference in New Issue
Block a user