diff --git a/zahnrad.c b/zahnrad.c index addc11d..a24bc44 100644 --- a/zahnrad.c +++ b/zahnrad.c @@ -70,6 +70,11 @@ struct zr_edit_box { }; enum zr_internal_window_flags { + ZR_WINDOW_HIDDEN = ZR_FLAG(10), + /* Hiddes the window and stops any window interaction and drawing can be set + * by user input or by closing the window */ + ZR_WINDOW_MINIMIZED = ZR_FLAG(11), + /* marks the window as minimized */ ZR_WINDOW_SUB = ZR_FLAG(12), /* Marks the window as subwindow of another window*/ ZR_WINDOW_GROUP = ZR_FLAG(13), @@ -6601,7 +6606,11 @@ zr_begin(struct zr_context *ctx, struct zr_layout *layout, win->bounds = bounds; win->name = title_hash; win->popup.win = 0; - } else win->seq++; + } else { + win->flags &= ~(zr_flags)(ZR_WINDOW_HIDDEN-1); + win->flags |= flags; + win->seq++; + } if (win->flags & ZR_WINDOW_HIDDEN) return 0; /* overlapping window */ @@ -6952,7 +6961,7 @@ zr_header_toggle(struct zr_context *ctx, struct zr_window_header *header, static int zr_header_flag(struct zr_context *ctx, struct zr_window_header *header, zr_rune inactive, zr_rune active, enum zr_style_header_align align, - enum zr_window_flags flag) + zr_flags flag) { struct zr_window *win = ctx->current; struct zr_layout *layout = win->layout; diff --git a/zahnrad.h b/zahnrad.h index 21a13d2..a84a61e 100644 --- a/zahnrad.h +++ b/zahnrad.h @@ -1209,34 +1209,29 @@ struct zr_menu { }; enum zr_window_flags { - ZR_WINDOW_HIDDEN = ZR_FLAG(0), - /* Hiddes the window and stops any window interaction and drawing can be set - * by user input or by closing the window */ - ZR_WINDOW_MINIMIZED = ZR_FLAG(1), - /* marks the window as minimized */ - ZR_WINDOW_BORDER = ZR_FLAG(2), + ZR_WINDOW_BORDER = ZR_FLAG(0), /* Draws a border around the window to visually seperate the window from the background */ - ZR_WINDOW_BORDER_HEADER = ZR_FLAG(3), + ZR_WINDOW_BORDER_HEADER = ZR_FLAG(1), /* Draws a border between window header and body */ - ZR_WINDOW_MOVEABLE = ZR_FLAG(4), + ZR_WINDOW_MOVEABLE = ZR_FLAG(2), /* The moveable flag inidicates that a window can be moved by user input or by * dragging the window header */ - ZR_WINDOW_SCALEABLE = ZR_FLAG(5), + ZR_WINDOW_SCALEABLE = ZR_FLAG(3), /* The scaleable flag indicates that a window can be scaled by user input * by dragging a scaler icon at the button of the window */ - ZR_WINDOW_CLOSEABLE = ZR_FLAG(6), + ZR_WINDOW_CLOSEABLE = ZR_FLAG(4), /* adds a closeable icon into the header */ - ZR_WINDOW_MINIMIZABLE = ZR_FLAG(7), + ZR_WINDOW_MINIMIZABLE = ZR_FLAG(5), /* adds a minimize icon into the header */ - ZR_WINDOW_ROM = ZR_FLAG(8), + ZR_WINDOW_ROM = ZR_FLAG(6), /* sets the window into a read only mode and does not allow input changes */ - ZR_WINDOW_DYNAMIC = ZR_FLAG(9), + ZR_WINDOW_DYNAMIC = ZR_FLAG(7), /* special type of window which grows up in height while being filled to a * certain maximum height. It is mainly used for combo boxes/menus but can be * used to create perfectly fitting windows as well */ - ZR_WINDOW_NO_SCROLLBAR = ZR_FLAG(10), + ZR_WINDOW_NO_SCROLLBAR = ZR_FLAG(8), /* Removes the scrollbar from the window */ - ZR_WINDOW_TITLE = ZR_FLAG(11) + ZR_WINDOW_TITLE = ZR_FLAG(9) /* Removes the scrollbar from the window */ };