provided easy access to layout size and state

This commit is contained in:
vurtun 2015-06-23 16:43:16 +02:00
parent 5b1ae5553c
commit dd04899f18
2 changed files with 28 additions and 0 deletions

21
gui.c
View File

@ -3610,6 +3610,9 @@ gui_layout_end(struct gui_layout *layout)
struct gui_layout_slot *center;
gui_float centerh, centerv;
GUI_ASSERT(layout);
if (!layout) return;
top = &layout->slots[GUI_SLOT_TOP];
bottom = &layout->slots[GUI_SLOT_BOTTOM];
left = &layout->slots[GUI_SLOT_LEFT];
@ -3632,3 +3635,21 @@ gui_layout_end(struct gui_layout *layout)
layout->slots[GUI_SLOT_CENTER].offset = gui_vec2(left->value, top->value);
}
void
gui_layout_update_size(struct gui_layout *layout, gui_size width, gui_size height)
{
GUI_ASSERT(layout);
if (!layout) return;
layout->width = width;
layout->height = height;
}
void
gui_layout_update_state(struct gui_layout *layout, gui_uint state)
{
GUI_ASSERT(layout);
if (!layout) return;
if (!state) layout->flags |= GUI_LAYOUT_INACTIVE;
else layout->flags &= (gui_flags)~GUI_LAYOUT_INACTIVE;
}

7
gui.h
View File

@ -2129,6 +2129,11 @@ struct gui_layout_slot {
/* panel filling layout */
};
enum gui_layout_state {
GUI_LAYOUT_DEACTIVATE,
GUI_LAYOUT_ACTIVATE
};
enum gui_layout_flags {
GUI_LAYOUT_INACTIVE = 0x01,
/* tiled layout is inactive and cannot be updated by the user */
@ -2153,6 +2158,8 @@ void gui_layout_begin(struct gui_layout*, gui_size width, gui_size height, gui_f
void gui_layout_slot(struct gui_layout*, enum gui_layout_slot_index,
gui_float ratio, enum gui_layout_format, gui_size panel_count);
void gui_layout_end(struct gui_layout*);
void gui_layout_update_size(struct gui_layout*, gui_size width, gui_size height);
void gui_layout_update_state(struct gui_layout*, gui_uint state);
#ifdef __cplusplus
}