removed need for string length in api
This commit is contained in:
parent
4e7f37243c
commit
667b4bcf29
@ -377,7 +377,6 @@ main(int argc, char *argv[])
|
|||||||
if (SDL_Init(SDL_INIT_VIDEO) < 0)
|
if (SDL_Init(SDL_INIT_VIDEO) < 0)
|
||||||
die("[SDL] unabled to initialize\n");
|
die("[SDL] unabled to initialize\n");
|
||||||
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
|
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
|
||||||
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24);
|
|
||||||
win = SDL_CreateWindow("clone",
|
win = SDL_CreateWindow("clone",
|
||||||
0, 0, WIN_WIDTH, WIN_HEIGHT, SDL_WINDOW_OPENGL|SDL_WINDOW_SHOWN);
|
0, 0, WIN_WIDTH, WIN_HEIGHT, SDL_WINDOW_OPENGL|SDL_WINDOW_SHOWN);
|
||||||
if (!win) die("[SDL] unable to create window\n");
|
if (!win) die("[SDL] unable to create window\n");
|
||||||
@ -427,12 +426,12 @@ main(int argc, char *argv[])
|
|||||||
GUI_PANEL_HEADER|GUI_PANEL_CLOSEABLE|GUI_PANEL_MINIMIZABLE|
|
GUI_PANEL_HEADER|GUI_PANEL_CLOSEABLE|GUI_PANEL_MINIMIZABLE|
|
||||||
GUI_PANEL_MOVEABLE|GUI_PANEL_SCROLLBAR|GUI_PANEL_SCALEABLE);
|
GUI_PANEL_MOVEABLE|GUI_PANEL_SCROLLBAR|GUI_PANEL_SCALEABLE);
|
||||||
gui_panel_layout(panel, 30, 1);
|
gui_panel_layout(panel, 30, 1);
|
||||||
if (gui_panel_button_text(panel, "button", 6, GUI_BUTTON_SWITCH))
|
if (gui_panel_button_text(panel, "button", GUI_BUTTON_SWITCH))
|
||||||
fprintf(stdout, "button pressed!\n");
|
fprintf(stdout, "button pressed!\n");
|
||||||
check = gui_panel_check(panel, "advanced", 8, check);
|
check = gui_panel_check(panel, "advanced", check);
|
||||||
gui_panel_layout(panel, 30, 2);
|
gui_panel_layout(panel, 30, 2);
|
||||||
if (gui_panel_option(panel, "easy", 4, option == 0)) option = 0;
|
if (gui_panel_option(panel, "easy", option == 0)) option = 0;
|
||||||
if (gui_panel_option(panel, "hard", 4, option == 1)) option = 1;
|
if (gui_panel_option(panel, "hard", option == 1)) option = 1;
|
||||||
gui_panel_layout(panel, 30, 1);
|
gui_panel_layout(panel, 30, 1);
|
||||||
slider = gui_panel_slider(panel, 0, slider, 10, 1.0f, GUI_HORIZONTAL);
|
slider = gui_panel_slider(panel, 0, slider, 10, 1.0f, GUI_HORIZONTAL);
|
||||||
prog = gui_panel_progress(panel, prog, 100, gui_true, GUI_HORIZONTAL);
|
prog = gui_panel_progress(panel, prog, 100, gui_true, GUI_HORIZONTAL);
|
||||||
@ -448,8 +447,8 @@ main(int argc, char *argv[])
|
|||||||
gui_begin_panel(ctx, subpanel, "Error",
|
gui_begin_panel(ctx, subpanel, "Error",
|
||||||
GUI_PANEL_HEADER|GUI_PANEL_BORDER|GUI_PANEL_MOVEABLE);
|
GUI_PANEL_HEADER|GUI_PANEL_BORDER|GUI_PANEL_MOVEABLE);
|
||||||
gui_panel_layout(subpanel, 30, 2);
|
gui_panel_layout(subpanel, 30, 2);
|
||||||
if (gui_panel_button_text(subpanel, "ok", 2, GUI_BUTTON_SWITCH)) break;
|
if (gui_panel_button_text(subpanel, "ok", GUI_BUTTON_SWITCH)) break;
|
||||||
if (gui_panel_button_text(subpanel, "cancel", 6, GUI_BUTTON_SWITCH)) break;
|
if (gui_panel_button_text(subpanel, "cancel", GUI_BUTTON_SWITCH)) break;
|
||||||
gui_end_panel(ctx, subpanel, NULL);
|
gui_end_panel(ctx, subpanel, NULL);
|
||||||
gui_end(ctx, &output, NULL);
|
gui_end(ctx, &output, NULL);
|
||||||
/* ---------------------------------------------------------*/
|
/* ---------------------------------------------------------*/
|
||||||
|
29
gui.c
29
gui.c
@ -1773,12 +1773,13 @@ gui_panel_text(struct gui_panel *panel, const char *str, gui_size len)
|
|||||||
}
|
}
|
||||||
|
|
||||||
gui_bool
|
gui_bool
|
||||||
gui_panel_button_text(struct gui_panel *panel, const char *str, gui_size len,
|
gui_panel_button_text(struct gui_panel *panel, const char *str,
|
||||||
enum gui_button_behavior behavior)
|
enum gui_button_behavior behavior)
|
||||||
{
|
{
|
||||||
struct gui_rect bounds;
|
struct gui_rect bounds;
|
||||||
struct gui_button button;
|
struct gui_button button;
|
||||||
const struct gui_config *config;
|
const struct gui_config *config;
|
||||||
|
gui_size len;
|
||||||
|
|
||||||
assert(panel);
|
assert(panel);
|
||||||
assert(panel->config);
|
assert(panel->config);
|
||||||
@ -1789,6 +1790,7 @@ gui_panel_button_text(struct gui_panel *panel, const char *str, gui_size len,
|
|||||||
if (panel->minimized || (panel->flags & GUI_PANEL_HIDDEN)) return 0;
|
if (panel->minimized || (panel->flags & GUI_PANEL_HIDDEN)) return 0;
|
||||||
gui_panel_alloc_space(&bounds, panel);
|
gui_panel_alloc_space(&bounds, panel);
|
||||||
config = panel->config;
|
config = panel->config;
|
||||||
|
len = strsiz(str);
|
||||||
|
|
||||||
button.x = bounds.x;
|
button.x = bounds.x;
|
||||||
button.y = bounds.y;
|
button.y = bounds.y;
|
||||||
@ -1900,12 +1902,12 @@ gui_panel_button_icon(struct gui_panel *panel, gui_texture tex,
|
|||||||
}
|
}
|
||||||
|
|
||||||
gui_bool
|
gui_bool
|
||||||
gui_panel_button_toggle(struct gui_panel *panel, const char *str, gui_size len,
|
gui_panel_button_toggle(struct gui_panel *panel, const char *str, gui_bool value)
|
||||||
gui_bool value)
|
|
||||||
{
|
{
|
||||||
struct gui_rect bounds;
|
struct gui_rect bounds;
|
||||||
struct gui_button button;
|
struct gui_button button;
|
||||||
const struct gui_config *config;
|
const struct gui_config *config;
|
||||||
|
gui_size len;
|
||||||
|
|
||||||
assert(panel);
|
assert(panel);
|
||||||
assert(panel->config);
|
assert(panel->config);
|
||||||
@ -1916,6 +1918,7 @@ gui_panel_button_toggle(struct gui_panel *panel, const char *str, gui_size len,
|
|||||||
if (panel->minimized || (panel->flags & GUI_PANEL_HIDDEN)) return 0;
|
if (panel->minimized || (panel->flags & GUI_PANEL_HIDDEN)) return 0;
|
||||||
gui_panel_alloc_space(&bounds, panel);
|
gui_panel_alloc_space(&bounds, panel);
|
||||||
config = panel->config;
|
config = panel->config;
|
||||||
|
len = strsiz(str);
|
||||||
|
|
||||||
button.x = bounds.x;
|
button.x = bounds.x;
|
||||||
button.y = bounds.y;
|
button.y = bounds.y;
|
||||||
@ -1943,12 +1946,12 @@ gui_panel_button_toggle(struct gui_panel *panel, const char *str, gui_size len,
|
|||||||
}
|
}
|
||||||
|
|
||||||
gui_bool
|
gui_bool
|
||||||
gui_panel_check(struct gui_panel *panel, const char *text, gui_size length,
|
gui_panel_check(struct gui_panel *panel, const char *text, gui_bool is_active)
|
||||||
gui_bool is_active)
|
|
||||||
{
|
{
|
||||||
struct gui_rect bounds;
|
struct gui_rect bounds;
|
||||||
struct gui_toggle toggle;
|
struct gui_toggle toggle;
|
||||||
const struct gui_config *config;
|
const struct gui_config *config;
|
||||||
|
gui_size length;
|
||||||
|
|
||||||
assert(panel);
|
assert(panel);
|
||||||
assert(panel->config);
|
assert(panel->config);
|
||||||
@ -1959,6 +1962,7 @@ gui_panel_check(struct gui_panel *panel, const char *text, gui_size length,
|
|||||||
if (panel->minimized || (panel->flags & GUI_PANEL_HIDDEN)) return is_active;
|
if (panel->minimized || (panel->flags & GUI_PANEL_HIDDEN)) return is_active;
|
||||||
gui_panel_alloc_space(&bounds, panel);
|
gui_panel_alloc_space(&bounds, panel);
|
||||||
config = panel->config;
|
config = panel->config;
|
||||||
|
length = strsiz(text);
|
||||||
|
|
||||||
toggle.x = bounds.x;
|
toggle.x = bounds.x;
|
||||||
toggle.y = bounds.y;
|
toggle.y = bounds.y;
|
||||||
@ -1977,12 +1981,12 @@ gui_panel_check(struct gui_panel *panel, const char *text, gui_size length,
|
|||||||
}
|
}
|
||||||
|
|
||||||
gui_bool
|
gui_bool
|
||||||
gui_panel_option(struct gui_panel *panel, const char *text, gui_size length,
|
gui_panel_option(struct gui_panel *panel, const char *text, gui_bool is_active)
|
||||||
gui_bool is_active)
|
|
||||||
{
|
{
|
||||||
struct gui_rect bounds;
|
struct gui_rect bounds;
|
||||||
struct gui_toggle toggle;
|
struct gui_toggle toggle;
|
||||||
const struct gui_config *config;
|
const struct gui_config *config;
|
||||||
|
gui_size length;
|
||||||
|
|
||||||
assert(panel);
|
assert(panel);
|
||||||
assert(panel->config);
|
assert(panel->config);
|
||||||
@ -1993,6 +1997,7 @@ gui_panel_option(struct gui_panel *panel, const char *text, gui_size length,
|
|||||||
if (panel->minimized || (panel->flags & GUI_PANEL_HIDDEN)) return is_active;
|
if (panel->minimized || (panel->flags & GUI_PANEL_HIDDEN)) return is_active;
|
||||||
gui_panel_alloc_space(&bounds, panel);
|
gui_panel_alloc_space(&bounds, panel);
|
||||||
config = panel->config;
|
config = panel->config;
|
||||||
|
length = strsiz(text);
|
||||||
|
|
||||||
toggle.x = bounds.x;
|
toggle.x = bounds.x;
|
||||||
toggle.y = bounds.y;
|
toggle.y = bounds.y;
|
||||||
@ -2423,10 +2428,8 @@ gui_panel_list(struct gui_panel *panel, gui_bool *selection,
|
|||||||
config.panel_padding.x = 0.0f;
|
config.panel_padding.x = 0.0f;
|
||||||
config.item_spacing.y = 0.0f;
|
config.item_spacing.y = 0.0f;
|
||||||
gui_panel_layout(&list, item_height, 1);
|
gui_panel_layout(&list, item_height, 1);
|
||||||
for (i = 0; i < item_count; i++) {
|
for (i = 0; i < item_count; i++)
|
||||||
selection[i] = gui_panel_button_toggle(&list, items[i],
|
selection[i] = gui_panel_button_toggle(&list, items[i] , selection[i]);
|
||||||
strsiz(items[i]), selection[i]);
|
|
||||||
}
|
|
||||||
gui_panel_end(&list);
|
gui_panel_end(&list);
|
||||||
return list.offset;
|
return list.offset;
|
||||||
}
|
}
|
||||||
@ -2494,6 +2497,7 @@ gui_new(const struct gui_memory *memory, const struct gui_input *input)
|
|||||||
struct gui_context *ctx;
|
struct gui_context *ctx;
|
||||||
static const gui_size align_panels = ALIGNOF(struct gui_context_panel);
|
static const gui_size align_panels = ALIGNOF(struct gui_context_panel);
|
||||||
static const gui_size align_list = ALIGNOF(struct gui_draw_call_list**);
|
static const gui_size align_list = ALIGNOF(struct gui_draw_call_list**);
|
||||||
|
|
||||||
assert(memory);
|
assert(memory);
|
||||||
assert(input);
|
assert(input);
|
||||||
if (!memory || !input)
|
if (!memory || !input)
|
||||||
@ -2575,6 +2579,7 @@ gui_rm_draw_list(struct gui_context *ctx, struct gui_draw_call_list *list)
|
|||||||
if (ctx->panel_lists[i] == list)
|
if (ctx->panel_lists[i] == list)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i == ctx->panel_size) return;
|
if (i == ctx->panel_size) return;
|
||||||
if (i < ctx->panel_size-1) {
|
if (i < ctx->panel_size-1) {
|
||||||
for (n = i+1; n < ctx->panel_size; n++, i++)
|
for (n = i+1; n < ctx->panel_size; n++, i++)
|
||||||
@ -2634,9 +2639,11 @@ gui_begin_panel(struct gui_context *ctx, struct gui_panel *panel,
|
|||||||
struct gui_context_panel *cpanel;
|
struct gui_context_panel *cpanel;
|
||||||
struct gui_draw_buffer *out;
|
struct gui_draw_buffer *out;
|
||||||
struct gui_draw_buffer *global;
|
struct gui_draw_buffer *global;
|
||||||
|
|
||||||
assert(ctx);
|
assert(ctx);
|
||||||
assert(panel);
|
assert(panel);
|
||||||
assert(title);
|
assert(title);
|
||||||
|
|
||||||
if (!ctx || !panel || !title)
|
if (!ctx || !panel || !title)
|
||||||
return gui_false;
|
return gui_false;
|
||||||
if (panel->flags & GUI_PANEL_HIDDEN)
|
if (panel->flags & GUI_PANEL_HIDDEN)
|
||||||
|
16
gui.h
16
gui.h
@ -404,19 +404,15 @@ gui_bool gui_panel_begin(struct gui_panel*, struct gui_draw_buffer*,
|
|||||||
void gui_panel_layout(struct gui_panel*, gui_float height, gui_size cols);
|
void gui_panel_layout(struct gui_panel*, gui_float height, gui_size cols);
|
||||||
void gui_panel_seperator(struct gui_panel*, gui_size cols);
|
void gui_panel_seperator(struct gui_panel*, gui_size cols);
|
||||||
void gui_panel_text(struct gui_panel*, const char *str, gui_size len);
|
void gui_panel_text(struct gui_panel*, const char *str, gui_size len);
|
||||||
gui_bool gui_panel_check(struct gui_panel*, const char*, gui_size, gui_bool active);
|
gui_bool gui_panel_check(struct gui_panel*, const char*, gui_bool active);
|
||||||
gui_bool gui_panel_option(struct gui_panel*, const char*, gui_size, gui_bool active);
|
gui_bool gui_panel_option(struct gui_panel*, const char*, gui_bool active);
|
||||||
gui_bool gui_panel_button_text(struct gui_panel*, const char*, gui_size,
|
gui_bool gui_panel_button_text(struct gui_panel*, const char*, enum gui_button_behavior);
|
||||||
enum gui_button_behavior);
|
gui_bool gui_panel_button_color(struct gui_panel*, const struct gui_color, enum gui_button_behavior);
|
||||||
gui_bool gui_panel_button_color(struct gui_panel*, const struct gui_color,
|
gui_bool gui_panel_button_triangle(struct gui_panel*, enum gui_heading, enum gui_button_behavior);
|
||||||
enum gui_button_behavior);
|
gui_bool gui_panel_button_toggle(struct gui_panel*, const char*, gui_bool value);
|
||||||
gui_bool gui_panel_button_triangle(struct gui_panel*, enum gui_heading,
|
|
||||||
enum gui_button_behavior);
|
|
||||||
gui_bool gui_panel_button_icon(struct gui_panel*, gui_texture,
|
gui_bool gui_panel_button_icon(struct gui_panel*, gui_texture,
|
||||||
struct gui_texCoord from, struct gui_texCoord to,
|
struct gui_texCoord from, struct gui_texCoord to,
|
||||||
enum gui_button_behavior);
|
enum gui_button_behavior);
|
||||||
gui_bool gui_panel_button_toggle(struct gui_panel*, const char*, gui_size,
|
|
||||||
gui_bool value);
|
|
||||||
gui_float gui_panel_slider(struct gui_panel*, gui_float min, gui_float val,
|
gui_float gui_panel_slider(struct gui_panel*, gui_float min, gui_float val,
|
||||||
gui_float max, gui_float step, enum gui_direction);
|
gui_float max, gui_float step, enum gui_direction);
|
||||||
gui_size gui_panel_progress(struct gui_panel*, gui_size cur, gui_size max,
|
gui_size gui_panel_progress(struct gui_panel*, gui_size cur, gui_size max,
|
||||||
|
Loading…
Reference in New Issue
Block a user