[zr] tidy up zr_common

This commit is contained in:
radius 2016-03-06 14:13:20 -05:00
parent f41280e82c
commit 34d618238b
3 changed files with 46 additions and 36 deletions

View File

@ -88,24 +88,24 @@ static void zrmenu_main(zrmenu_handle_t *zr)
{
struct zr_context *ctx = &zr->ctx;
if (zr->window_enabled[ZRMENU_WND_MAIN])
if (zr->window[ZRMENU_WND_MAIN].open)
zrmenu_wnd_main(ctx, zr);
if (zr->window_enabled[ZRMENU_WND_CONTROL])
if (zr->window[ZRMENU_WND_CONTROL].open)
zrmenu_wnd_control(ctx, zr);
if (zr->window_enabled[ZRMENU_WND_SHADER_PARAMETERS])
if (zr->window[ZRMENU_WND_SHADER_PARAMETERS].open)
zrmenu_wnd_shader_parameters(ctx, zr);
if (zr->window_enabled[ZRMENU_WND_TEST])
if (zr->window[ZRMENU_WND_TEST].open)
zrmenu_wnd_test(ctx, zr);
if (zr->window_enabled[ZRMENU_WND_WIZARD])
if (zr->window[ZRMENU_WND_WIZARD].open)
zrmenu_wnd_wizard(ctx, zr);
zr->window_enabled[ZRMENU_WND_CONTROL] = !zr_window_is_closed(ctx, "Control");
zr->window_enabled[ZRMENU_WND_SHADER_PARAMETERS] = !zr_window_is_closed(ctx, "Shader Parameters");
zr->window_enabled[ZRMENU_WND_TEST] = !zr_window_is_closed(ctx, "Test");
zr->window_enabled[ZRMENU_WND_WIZARD] = !zr_window_is_closed(ctx, "Setup Wizard");
zr->window[ZRMENU_WND_CONTROL].open = !zr_window_is_closed(ctx, "Control");
zr->window[ZRMENU_WND_SHADER_PARAMETERS].open = !zr_window_is_closed(ctx, "Shader Parameters");
zr->window[ZRMENU_WND_TEST].open = !zr_window_is_closed(ctx, "Test");
zr->window[ZRMENU_WND_WIZARD].open = !zr_window_is_closed(ctx, "Setup Wizard");
if(zr_window_is_closed(ctx, "Setup Wizard"))
zr->window_enabled[ZRMENU_WND_MAIN] = true;
zr->window[ZRMENU_WND_MAIN].open = true;
zr_buffer_info(&zr->status, &zr->ctx.memory);
}
@ -567,11 +567,11 @@ static void zrmenu_frame(void *data)
zrmenu_input_mouse_button(&zr->ctx);
zrmenu_input_keyboard(&zr->ctx);
if (width != zr->width || height != zr->height)
if (width != zr->size.x || height != zr->size.y)
{
zr->width = width;
zr->height = height;
zr->resize = true;
zr->size.x = width;
zr->size.y = height;
zr->size_changed = true;
}
zr_input_end(&zr->ctx);
@ -655,7 +655,7 @@ static void *zrmenu_init(void **userdata)
"zahnrad", sizeof(zr->assets_directory));
zrmenu_init_device(zr);
zr->window_enabled[ZRMENU_WND_WIZARD] = true;
zr->window[ZRMENU_WND_WIZARD].open = true;
return menu;
error:

View File

@ -347,7 +347,7 @@ void zrmenu_wnd_main(struct zr_context *ctx, zrmenu_handle_t *zr)
settings_t *settings = config_get_ptr();
struct zr_panel layout;
if (zr_begin(ctx, &layout, "Main", zr_rect(-1, -1, 120, zr->height + 1),
if (zr_begin(ctx, &layout, "Main", zr_rect(-1, -1, 120, zr->size.x + 1),
ZR_WINDOW_NO_SCROLLBAR))
{
struct zr_panel menu;
@ -390,29 +390,29 @@ void zrmenu_wnd_main(struct zr_context *ctx, zrmenu_handle_t *zr)
if (zr_menu_item(ctx, ZR_TEXT_LEFT, "Control"))
{
zr_window_close(ctx, "Control");
zr->window_enabled[ZRMENU_WND_CONTROL] =
!zr->window_enabled[ZRMENU_WND_CONTROL];
zr->window[ZRMENU_WND_CONTROL].open =
!zr->window[ZRMENU_WND_CONTROL].open;
}
if (zr_menu_item(ctx, ZR_TEXT_LEFT, "Shader Parameters"))
{
zr_window_close(ctx, "Shader Parameters");
zr->window_enabled[ZRMENU_WND_SHADER_PARAMETERS] =
!zr->window_enabled[ZRMENU_WND_SHADER_PARAMETERS];
zr->window[ZRMENU_WND_SHADER_PARAMETERS].open =
!zr->window[ZRMENU_WND_SHADER_PARAMETERS].open;
}
if (zr_menu_item(ctx, ZR_TEXT_LEFT, "Test Window"))
{
zr_window_close(ctx, "Test");
zr->window_enabled[ZRMENU_WND_TEST] =
!zr->window_enabled[ZRMENU_WND_TEST];
zr->window[ZRMENU_WND_TEST].open =
!zr->window[ZRMENU_WND_TEST].open;
}
if (zr_menu_item(ctx, ZR_TEXT_LEFT, "Wizard"))
{
zr_window_close(ctx, "Test");
zr->window_enabled[ZRMENU_WND_WIZARD] =
!zr->window_enabled[ZRMENU_WND_WIZARD];
zr->window[ZRMENU_WND_WIZARD].open =
!zr->window[ZRMENU_WND_WIZARD].open;
}
zr_menu_end(ctx);
@ -422,8 +422,8 @@ void zrmenu_wnd_main(struct zr_context *ctx, zrmenu_handle_t *zr)
}
if (zr->resize)
zr_window_set_size(ctx, zr_vec2(zr_window_get_size(ctx).x, zr->height));
if (zr->size_changed)
zr_window_set_size(ctx, zr_vec2(zr_window_get_size(ctx).x, zr->size.y));
zr_end(ctx);
}
@ -437,8 +437,8 @@ void zrmenu_wnd_wizard(struct zr_context *ctx, zrmenu_handle_t *zr)
settings_t *settings = config_get_ptr();
struct zr_panel layout;
if (zr_begin(ctx, &layout, "Setup Wizard", zr_rect(zr->width/2 -width/2,
zr->height/2 - height/2, width, height),
if (zr_begin(ctx, &layout, "Setup Wizard", zr_rect(zr->size.x/2 -width/2,
zr->size.y/2 - height/2, width, height),
ZR_WINDOW_CLOSABLE|ZR_WINDOW_MINIMIZABLE|ZR_WINDOW_MOVABLE|
ZR_WINDOW_BORDER))
{

View File

@ -47,20 +47,31 @@ struct icons {
struct zr_image speaker;
};
struct window {
bool open;
struct zr_vec2 position;
struct zr_vec2 size;
};
typedef struct zrmenu_handle
{
char box_message[PATH_MAX_LENGTH];
char assets_directory[PATH_MAX_LENGTH];
bool window_enabled[5];
bool resize;
unsigned width;
unsigned height;
/* zahnrad mandatory */
void *memory;
struct zr_context ctx;
struct zr_memory_status status;
enum zrmenu_theme theme;
/* window control variables */
struct zr_vec2 size;
bool size_changed;
struct window window[5];
/* menu driver variables */
char box_message[PATH_MAX_LENGTH];
/* image & theme related variables */
char assets_directory[PATH_MAX_LENGTH];
struct icons icons;
enum zrmenu_theme theme;
struct
@ -74,7 +85,6 @@ typedef struct zrmenu_handle
void zrmenu_set_style(struct zr_context *ctx, enum zrmenu_theme theme);
void zrmenu_wnd_wizard(struct zr_context *ctx, zrmenu_handle_t *zr);
void zrmenu_wnd_shader_parameters(struct zr_context *ctx, zrmenu_handle_t *zr);
void zrmenu_wnd_control(struct zr_context *ctx, zrmenu_handle_t *zr);