diff --git a/nuklear.h b/nuklear.h index 17ead62..659ad8d 100644 --- a/nuklear.h +++ b/nuklear.h @@ -433,11 +433,14 @@ enum nk_widget_layout_states { /* widget states */ enum nk_widget_states { - NK_WIDGET_STATE_INACTIVE = NK_FLAG(0), /* widget is neither active nor hovered */ - NK_WIDGET_STATE_ENTERED = NK_FLAG(1), /* widget has been hovered on the current frame */ - NK_WIDGET_STATE_HOVERED = NK_FLAG(2), /* widget is being hovered */ - NK_WIDGET_STATE_LEFT = NK_FLAG(3), /* widget is from this frame on not hovered anymore */ - NK_WIDGET_STATE_ACTIVE = NK_FLAG(4) /* widget is currently activated */ + NK_WIDGET_STATE_MODIFIED = NK_FLAG(1), + NK_WIDGET_STATE_INACTIVE = NK_FLAG(2), /* widget is neither active nor hovered */ + NK_WIDGET_STATE_ENTERED = NK_FLAG(3), /* widget has been hovered on the current frame */ + NK_WIDGET_STATE_HOVER = NK_FLAG(4), /* widget is being hovered */ + NK_WIDGET_STATE_ACTIVED = NK_FLAG(5),/* widget is currently activated */ + NK_WIDGET_STATE_LEFT = NK_FLAG(6), /* widget is from this frame on not hovered anymore */ + NK_WIDGET_STATE_HOVERED = NK_WIDGET_STATE_HOVER|NK_WIDGET_STATE_MODIFIED, /* widget is being hovered */ + NK_WIDGET_STATE_ACTIVE = NK_WIDGET_STATE_ACTIVED|NK_WIDGET_STATE_MODIFIED /* widget is currently activated */ }; /* text alignment */ @@ -531,6 +534,7 @@ NK_API int nk_window_is_closed(struct nk_context*, const ch NK_API int nk_window_is_active(struct nk_context*, const char*); NK_API int nk_window_is_hovered(struct nk_context*); NK_API int nk_window_is_any_hovered(struct nk_context*); +NK_API int nk_item_is_any_active(struct nk_context*); NK_API void nk_window_set_bounds(struct nk_context*, struct nk_rect); NK_API void nk_window_set_position(struct nk_context*, struct nk_vec2); @@ -669,12 +673,12 @@ NK_API void nk_popup_end(struct nk_context*); /* Combobox */ NK_API int nk_combo(struct nk_context*, const char **items, int count, int selected, int item_height); -NK_API int nk_combo_seperator(struct nk_context*, const char *items_seperated_by_seperator, int seperator, int selected, int count, int item_height); -NK_API int nk_combo_string(struct nk_context*, const char *items_seperated_by_zeros, int selected, int count, int item_height); +NK_API int nk_combo_separator(struct nk_context*, const char *items_separated_by_separator, int separator, int selected, int count, int item_height); +NK_API int nk_combo_string(struct nk_context*, const char *items_separated_by_zeros, int selected, int count, int item_height); NK_API int nk_combo_callback(struct nk_context*, void(*item_getter)(void*, int, const char**), void *userdata, int selected, int count, int item_height); NK_API void nk_combobox(struct nk_context*, const char **items, int count, int *selected, int item_height); -NK_API void nk_combobox_string(struct nk_context*, const char *items_seperated_by_zeros, int *selected, int count, int item_height); -NK_API void nk_combobox_seperator(struct nk_context*, const char *items_seperated_by_seperator, int seperator,int *selected, int count, int item_height); +NK_API void nk_combobox_string(struct nk_context*, const char *items_separated_by_zeros, int *selected, int count, int item_height); +NK_API void nk_combobox_separator(struct nk_context*, const char *items_separated_by_separator, int separator,int *selected, int count, int item_height); NK_API void nk_combobox_callback(struct nk_context*, void(*item_getter)(void*, int, const char**), void*, int *selected, int count, int item_height); /* Combobox: abstract */ @@ -11211,6 +11215,11 @@ nk_textedit_free(struct nk_text_edit *state) * TEXT WIDGET * * ===============================================================*/ +#define nk_widget_state_reset(s)\ + if ((*(s)) & NK_WIDGET_STATE_MODIFIED)\ + (*(s)) = NK_WIDGET_STATE_INACTIVE|NK_WIDGET_STATE_MODIFIED;\ + else (*(s)) = NK_WIDGET_STATE_INACTIVE; + struct nk_text { struct nk_vec2 padding; struct nk_color background; @@ -11368,8 +11377,8 @@ nk_button_behavior(nk_flags *state, struct nk_rect r, const struct nk_input *i, enum nk_button_behavior behavior) { int ret = 0; - *state = NK_WIDGET_STATE_INACTIVE; if (!i) return 0; + nk_widget_state_reset(state); if (nk_input_is_mouse_hovering_rect(i, r)) { *state = NK_WIDGET_STATE_HOVERED; if (nk_input_is_mouse_down(i, NK_BUTTON_LEFT)) @@ -11384,7 +11393,7 @@ nk_button_behavior(nk_flags *state, struct nk_rect r, #endif } } - if (*state == NK_WIDGET_STATE_HOVERED && !nk_input_is_mouse_prev_hovering_rect(i, r)) + if (*state & NK_WIDGET_STATE_HOVER && !nk_input_is_mouse_prev_hovering_rect(i, r)) *state |= NK_WIDGET_STATE_ENTERED; else if (nk_input_is_mouse_prev_hovering_rect(i, r)) *state |= NK_WIDGET_STATE_LEFT; @@ -11397,9 +11406,9 @@ nk_draw_button(struct nk_command_buffer *out, const struct nk_style_button *style) { const struct nk_style_item *background; - if (state & NK_WIDGET_STATE_HOVERED) + if (state & NK_WIDGET_STATE_HOVER) background = &style->hover; - else if (state & NK_WIDGET_STATE_ACTIVE) + else if (state & NK_WIDGET_STATE_ACTIVED) background = &style->active; else background = &style->normal; @@ -11453,9 +11462,9 @@ nk_draw_button_text(struct nk_command_buffer *out, if (background->type == NK_STYLE_ITEM_COLOR) text.background = background->data.color; else text.background = style->text_background; - if (state & NK_WIDGET_STATE_HOVERED) + if (state & NK_WIDGET_STATE_HOVER) text.text = style->text_hover; - else if (state & NK_WIDGET_STATE_ACTIVE) + else if (state & NK_WIDGET_STATE_ACTIVED) text.text = style->text_active; else text.text = style->text_normal; @@ -11509,9 +11518,9 @@ nk_draw_button_symbol(struct nk_command_buffer *out, bg = background->data.color; else bg = style->text_background; - if (state & NK_WIDGET_STATE_HOVERED) + if (state & NK_WIDGET_STATE_HOVER) sym = style->text_hover; - else if (state & NK_WIDGET_STATE_ACTIVE) + else if (state & NK_WIDGET_STATE_ACTIVED) sym = style->text_active; else sym = style->text_normal; nk_draw_symbol(out, type, *content, bg, sym, 1, font); @@ -11603,10 +11612,10 @@ nk_draw_button_text_symbol(struct nk_command_buffer *out, else text.background = style->text_background; /* select correct text colors */ - if (state & NK_WIDGET_STATE_HOVERED) { + if (state & NK_WIDGET_STATE_HOVER) { sym = style->text_hover; text.text = style->text_hover; - } else if (state & NK_WIDGET_STATE_ACTIVE) { + } else if (state & NK_WIDGET_STATE_ACTIVED) { sym = style->text_active; text.text = style->text_active; } else { @@ -11672,9 +11681,9 @@ nk_draw_button_text_image(struct nk_command_buffer *out, if (background->type == NK_STYLE_ITEM_COLOR) text.background = background->data.color; else text.background = style->text_background; - if (state & NK_WIDGET_STATE_HOVERED) + if (state & NK_WIDGET_STATE_HOVER) text.text = style->text_hover; - else if (state & NK_WIDGET_STATE_ACTIVE) + else if (state & NK_WIDGET_STATE_ACTIVED) text.text = style->text_active; else text.text = style->text_normal; @@ -11740,12 +11749,12 @@ NK_INTERN int nk_toggle_behavior(const struct nk_input *in, struct nk_rect select, nk_flags *state, int active) { - *state = NK_WIDGET_STATE_INACTIVE; + nk_widget_state_reset(state); if (nk_button_behavior(state, select, in, NK_BUTTON_DEFAULT)) { *state = NK_WIDGET_STATE_ACTIVE; active = !active; } - if (*state == NK_WIDGET_STATE_HOVERED && !nk_input_is_mouse_prev_hovering_rect(in, select)) + if (*state & NK_WIDGET_STATE_HOVER && !nk_input_is_mouse_prev_hovering_rect(in, select)) *state |= NK_WIDGET_STATE_ENTERED; else if (nk_input_is_mouse_prev_hovering_rect(in, select)) *state |= NK_WIDGET_STATE_LEFT; @@ -11764,11 +11773,11 @@ nk_draw_checkbox(struct nk_command_buffer *out, struct nk_text text; /* select correct colors/images */ - if (state & NK_WIDGET_STATE_HOVERED) { + if (state & NK_WIDGET_STATE_HOVER) { background = &style->hover; cursor = &style->cursor_hover; text.text = style->text_hover; - } else if (state & NK_WIDGET_STATE_ACTIVE) { + } else if (state & NK_WIDGET_STATE_ACTIVED) { background = &style->hover; cursor = &style->cursor_hover; text.text = style->text_active; @@ -11806,11 +11815,11 @@ nk_draw_option(struct nk_command_buffer *out, struct nk_text text; /* select correct colors/images */ - if (state & NK_WIDGET_STATE_HOVERED) { + if (state & NK_WIDGET_STATE_HOVER) { background = &style->hover; cursor = &style->cursor_hover; text.text = style->text_hover; - } else if (state & NK_WIDGET_STATE_ACTIVE) { + } else if (state & NK_WIDGET_STATE_ACTIVED) { background = &style->hover; cursor = &style->cursor_hover; text.text = style->text_active; @@ -11930,10 +11939,10 @@ nk_draw_selectable(struct nk_command_buffer *out, /* select correct colors/images */ if (!active) { - if (state & NK_WIDGET_STATE_ACTIVE) { + if (state & NK_WIDGET_STATE_ACTIVED) { background = &style->pressed; text.text = style->text_pressed; - } else if (state & NK_WIDGET_STATE_HOVERED) { + } else if (state & NK_WIDGET_STATE_HOVER) { background = &style->hover; text.text = style->text_hover; } else { @@ -11941,10 +11950,10 @@ nk_draw_selectable(struct nk_command_buffer *out, text.text = style->text_normal; } } else { - if (state & NK_WIDGET_STATE_ACTIVE) { + if (state & NK_WIDGET_STATE_ACTIVED) { background = &style->pressed_active; text.text = style->text_pressed_active; - } else if (state & NK_WIDGET_STATE_HOVERED) { + } else if (state & NK_WIDGET_STATE_HOVER) { background = &style->hover_active; text.text = style->text_hover_active; } else { @@ -12035,7 +12044,7 @@ nk_slider_behavior(nk_flags *state, struct nk_rect *cursor, /* check if visual cursor is being dragged */ - *state = NK_WIDGET_STATE_INACTIVE; + nk_widget_state_reset(state); left_mouse_down = in && in->mouse.buttons[NK_BUTTON_LEFT].down; left_mouse_click_in_cursor = in && nk_input_has_mouse_click_down_in_rect(in, NK_BUTTON_LEFT, visual_cursor, nk_true); @@ -12061,7 +12070,7 @@ nk_slider_behavior(nk_flags *state, struct nk_rect *cursor, /* slider widget state */ if (nk_input_is_mouse_hovering_rect(in, bounds)) *state = NK_WIDGET_STATE_HOVERED; - if (*state == NK_WIDGET_STATE_HOVERED && + if (*state & NK_WIDGET_STATE_HOVER && !nk_input_is_mouse_prev_hovering_rect(in, bounds)) *state |= NK_WIDGET_STATE_ENTERED; else if (nk_input_is_mouse_prev_hovering_rect(in, bounds)) @@ -12082,11 +12091,11 @@ nk_draw_slider(struct nk_command_buffer *out, nk_flags state, /* select correct slider images/colors */ struct nk_color bar_color; const struct nk_style_item *cursor; - if (state & NK_WIDGET_STATE_ACTIVE) { + if (state & NK_WIDGET_STATE_ACTIVED) { background = &style->active; bar_color = style->bar_active; cursor = &style->cursor_active; - } else if (state & NK_WIDGET_STATE_HOVERED) { + } else if (state & NK_WIDGET_STATE_HOVER) { background = &style->hover; bar_color = style->bar_hover; cursor = &style->cursor_hover; @@ -12225,7 +12234,7 @@ NK_INTERN nk_size nk_progress_behavior(nk_flags *state, const struct nk_input *in, struct nk_rect r, nk_size max, nk_size value, int modifiable) { - *state = NK_WIDGET_STATE_INACTIVE; + nk_widget_state_reset(state); if (in && modifiable && nk_input_is_mouse_hovering_rect(in, r)) { int left_mouse_down = in->mouse.buttons[NK_BUTTON_LEFT].down; int left_mouse_click_in_cursor = nk_input_has_mouse_click_down_in_rect(in, @@ -12239,7 +12248,7 @@ nk_progress_behavior(nk_flags *state, const struct nk_input *in, } /* set progressbar widget state */ - if (*state == NK_WIDGET_STATE_HOVERED && !nk_input_is_mouse_prev_hovering_rect(in, r)) + if (*state & NK_WIDGET_STATE_HOVER && !nk_input_is_mouse_prev_hovering_rect(in, r)) *state |= NK_WIDGET_STATE_ENTERED; else if (nk_input_is_mouse_prev_hovering_rect(in, r)) *state |= NK_WIDGET_STATE_LEFT; @@ -12261,10 +12270,10 @@ nk_draw_progress(struct nk_command_buffer *out, nk_flags state, NK_UNUSED(value); /* select correct colors/images to draw */ - if (state & NK_WIDGET_STATE_ACTIVE) { + if (state & NK_WIDGET_STATE_ACTIVED) { background = &style->active; cursor = &style->cursor_active; - } else if (state & NK_WIDGET_STATE_HOVERED){ + } else if (state & NK_WIDGET_STATE_HOVER){ background = &style->hover; cursor = &style->cursor_hover; } else { @@ -12334,7 +12343,7 @@ nk_scrollbar_behavior(nk_flags *state, struct nk_input *in, int left_mouse_click_in_cursor; if (!in) return scroll_offset; - *state = NK_WIDGET_STATE_INACTIVE; + nk_widget_state_reset(state); left_mouse_down = in->mouse.buttons[NK_BUTTON_LEFT].down; left_mouse_click_in_cursor = nk_input_has_mouse_click_down_in_rect(in, NK_BUTTON_LEFT, cursor, nk_true); @@ -12369,7 +12378,7 @@ nk_scrollbar_behavior(nk_flags *state, struct nk_input *in, scroll_offset = NK_CLAMP(0, scroll_offset, target - scroll.h); else scroll_offset = NK_CLAMP(0, scroll_offset, target - scroll.w); } - if (*state == NK_WIDGET_STATE_HOVERED && !nk_input_is_mouse_prev_hovering_rect(in, scroll)) + if (*state & NK_WIDGET_STATE_HOVER && !nk_input_is_mouse_prev_hovering_rect(in, scroll)) *state |= NK_WIDGET_STATE_ENTERED; else if (nk_input_is_mouse_prev_hovering_rect(in, scroll)) *state |= NK_WIDGET_STATE_LEFT; @@ -12385,10 +12394,10 @@ nk_draw_scrollbar(struct nk_command_buffer *out, nk_flags state, const struct nk_style_item *cursor; /* select correct colors/images to draw */ - if (state & NK_WIDGET_STATE_ACTIVE) { + if (state & NK_WIDGET_STATE_ACTIVED) { background = &style->active; cursor = &style->cursor_active; - } else if (state & NK_WIDGET_STATE_HOVERED) { + } else if (state & NK_WIDGET_STATE_HOVER) { background = &style->hover; cursor = &style->cursor_hover; } else { @@ -12867,7 +12876,8 @@ nk_do_edit(nk_flags *state, struct nk_command_buffer *out, /* set widget state */ if (edit->active) *state = NK_WIDGET_STATE_ACTIVE; - else *state = NK_WIDGET_STATE_INACTIVE; + else nk_widget_state_reset(state); + if (is_hovered) *state |= NK_WIDGET_STATE_HOVERED; @@ -12879,9 +12889,9 @@ nk_do_edit(nk_flags *state, struct nk_command_buffer *out, {/* select background colors/images */ const struct nk_style_item *background; - if (*state & NK_WIDGET_STATE_ACTIVE) + if (*state & NK_WIDGET_STATE_ACTIVED) background = &style->active; - else if (*state & NK_WIDGET_STATE_HOVERED) + else if (*state & NK_WIDGET_STATE_HOVER) background = &style->hover; else background = &style->normal; @@ -13072,14 +13082,14 @@ nk_do_edit(nk_flags *state, struct nk_command_buffer *out, const struct nk_style_item *background; /* select correct colors to draw */ - if (*state & NK_WIDGET_STATE_ACTIVE) { + if (*state & NK_WIDGET_STATE_ACTIVED) { background = &style->active; text_color = style->text_active; sel_text_color = style->selected_text_hover; sel_background_color = style->selected_hover; cursor_color = style->cursor_hover; cursor_text_color = style->cursor_text_hover; - } else if (*state & NK_WIDGET_STATE_HOVERED) { + } else if (*state & NK_WIDGET_STATE_HOVER) { background = &style->hover; text_color = style->text_hover; sel_text_color = style->selected_text_hover; @@ -13190,10 +13200,10 @@ nk_do_edit(nk_flags *state, struct nk_command_buffer *out, const struct nk_style_item *background; struct nk_color background_color; struct nk_color text_color; - if (*state & NK_WIDGET_STATE_ACTIVE) { + if (*state & NK_WIDGET_STATE_ACTIVED) { background = &style->active; text_color = style->text_active; - } else if (*state & NK_WIDGET_STATE_HOVERED) { + } else if (*state & NK_WIDGET_STATE_HOVER) { background = &style->hover; text_color = style->text_hover; } else { @@ -13235,7 +13245,7 @@ nk_drag_behavior(nk_flags *state, const struct nk_input *in, int left_mouse_click_in_cursor = in && nk_input_has_mouse_click_down_in_rect(in, NK_BUTTON_LEFT, drag, nk_true); - *state = NK_WIDGET_STATE_INACTIVE; + nk_widget_state_reset(state); if (nk_input_is_mouse_hovering_rect(in, drag)) *state = NK_WIDGET_STATE_HOVERED; @@ -13247,7 +13257,7 @@ nk_drag_behavior(nk_flags *state, const struct nk_input *in, val = NK_CLAMP(min, val, max); *state = NK_WIDGET_STATE_ACTIVE; } - if (*state == NK_WIDGET_STATE_HOVERED && !nk_input_is_mouse_prev_hovering_rect(in, drag)) + if (*state & NK_WIDGET_STATE_HOVER && !nk_input_is_mouse_prev_hovering_rect(in, drag)) *state |= NK_WIDGET_STATE_ENTERED; else if (nk_input_is_mouse_prev_hovering_rect(in, drag)) *state |= NK_WIDGET_STATE_LEFT; @@ -13271,7 +13281,7 @@ nk_property_behavior(nk_flags *ws, const struct nk_input *in, } if (*state == NK_PROPERTY_DRAG) { value = nk_drag_behavior(ws, in, property, min, value, max, inc_per_pixel); - if (!(*ws & NK_WIDGET_STATE_ACTIVE)) *state = NK_PROPERTY_DEFAULT; + if (!(*ws & NK_WIDGET_STATE_ACTIVED)) *state = NK_PROPERTY_DEFAULT; } return value; } @@ -13285,10 +13295,10 @@ nk_draw_property(struct nk_command_buffer *out, const struct nk_style_property * const struct nk_style_item *background; /* select correct background and text color */ - if (state & NK_WIDGET_STATE_ACTIVE) { + if (state & NK_WIDGET_STATE_ACTIVED) { background = &style->active; text.text = style->label_active; - } else if (state & NK_WIDGET_STATE_HOVERED) { + } else if (state & NK_WIDGET_STATE_HOVER) { background = &style->hover; text.text = style->label_hover; } else { @@ -13498,7 +13508,7 @@ nk_color_picker_behavior(nk_flags *state, } } - *state = NK_WIDGET_STATE_INACTIVE; + nk_widget_state_reset(state); if (hsv_changed) { *color = nk_hsva_fv(hsva); *state = NK_WIDGET_STATE_ACTIVE; @@ -13511,7 +13521,7 @@ nk_color_picker_behavior(nk_flags *state, /* set color picker widget state */ if (nk_input_is_mouse_hovering_rect(in, *bounds)) *state = NK_WIDGET_STATE_HOVERED; - if (*state == NK_WIDGET_STATE_HOVERED && !nk_input_is_mouse_prev_hovering_rect(in, *bounds)) + if (*state & NK_WIDGET_STATE_HOVER && !nk_input_is_mouse_prev_hovering_rect(in, *bounds)) *state |= NK_WIDGET_STATE_ENTERED; else if (nk_input_is_mouse_prev_hovering_rect(in, *bounds)) *state |= NK_WIDGET_STATE_LEFT; @@ -15023,7 +15033,6 @@ nk_end(struct nk_context *ctx) } nk_panel_end(ctx); ctx->current = 0; - ctx->last_widget_state = 0; } NK_API struct nk_rect @@ -15159,6 +15168,14 @@ nk_window_is_any_hovered(struct nk_context *ctx) return 0; } +NK_API int +nk_item_is_any_active(struct nk_context *ctx) +{ + int any_hovered = nk_window_is_any_hovered(ctx); + int any_active = (ctx->last_widget_state & NK_WIDGET_STATE_MODIFIED); + return any_hovered || any_active; +} + NK_API int nk_window_is_collapsed(struct nk_context *ctx, const char *name) { @@ -16882,7 +16899,6 @@ nk_text_wrap_colored(struct nk_context *ctx, const char *str, text.background = style->window.background; text.text = color; nk_widget_text_wrap(&win->buffer, bounds, str, len, &text, &style->font); - ctx->last_widget_state = 0; } #ifdef NK_INCLUDE_STANDARD_IO @@ -17016,7 +17032,6 @@ nk_image(struct nk_context *ctx, struct nk_image img) win = ctx->current; if (!nk_widget(&bounds, ctx)) return; nk_draw_image(&win->buffer, bounds, &img); - ctx->last_widget_state = 0; } /*---------------------------------------------------------------- @@ -18678,10 +18693,10 @@ nk_combo_begin_text(struct nk_context *ctx, struct nk_panel *layout, is_clicked = nk_true; /* draw combo box header background and border */ - if (ctx->last_widget_state & NK_WIDGET_STATE_ACTIVE) { + if (ctx->last_widget_state & NK_WIDGET_STATE_ACTIVED) { background = &style->combo.active; text.text = style->combo.label_active; - } else if (ctx->last_widget_state & NK_WIDGET_STATE_HOVERED) { + } else if (ctx->last_widget_state & NK_WIDGET_STATE_HOVER) { background = &style->combo.hover; text.text = style->combo.label_hover; } else { @@ -18704,7 +18719,7 @@ nk_combo_begin_text(struct nk_context *ctx, struct nk_panel *layout, struct nk_rect content; enum nk_symbol_type sym; - if (ctx->last_widget_state & NK_WIDGET_STATE_HOVERED) + if (ctx->last_widget_state & NK_WIDGET_STATE_HOVER) sym = style->combo.sym_hover; else if (is_clicked) sym = style->combo.sym_active; @@ -18771,9 +18786,9 @@ nk_combo_begin_color(struct nk_context *ctx, struct nk_panel *layout, is_clicked = nk_true; /* draw combo box header background and border */ - if (ctx->last_widget_state & NK_WIDGET_STATE_ACTIVE) + if (ctx->last_widget_state & NK_WIDGET_STATE_ACTIVED) background = &style->combo.active; - else if (ctx->last_widget_state & NK_WIDGET_STATE_HOVERED) + else if (ctx->last_widget_state & NK_WIDGET_STATE_HOVER) background = &style->combo.hover; else background = &style->combo.normal; @@ -18790,7 +18805,7 @@ nk_combo_begin_color(struct nk_context *ctx, struct nk_panel *layout, struct nk_rect bounds; enum nk_symbol_type sym; - if (ctx->last_widget_state & NK_WIDGET_STATE_HOVERED) + if (ctx->last_widget_state & NK_WIDGET_STATE_HOVER) sym = style->combo.sym_hover; else if (is_clicked) sym = style->combo.sym_active; @@ -18853,10 +18868,10 @@ nk_combo_begin_symbol(struct nk_context *ctx, struct nk_panel *layout, is_clicked = nk_true; /* draw combo box header background and border */ - if (ctx->last_widget_state & NK_WIDGET_STATE_ACTIVE) { + if (ctx->last_widget_state & NK_WIDGET_STATE_ACTIVED) { background = &style->combo.active; symbol_color = style->combo.symbol_active; - } else if (ctx->last_widget_state & NK_WIDGET_STATE_HOVERED) { + } else if (ctx->last_widget_state & NK_WIDGET_STATE_HOVER) { background = &style->combo.hover; symbol_color = style->combo.symbol_hover; } else { @@ -18879,7 +18894,7 @@ nk_combo_begin_symbol(struct nk_context *ctx, struct nk_panel *layout, struct nk_rect button; enum nk_symbol_type sym; - if (ctx->last_widget_state & NK_WIDGET_STATE_HOVERED) + if (ctx->last_widget_state & NK_WIDGET_STATE_HOVER) sym = style->combo.sym_hover; else if (is_clicked) sym = style->combo.sym_active; @@ -18942,11 +18957,11 @@ nk_combo_begin_symbol_text(struct nk_context *ctx, struct nk_panel *layout, is_clicked = nk_true; /* draw combo box header background and border */ - if (ctx->last_widget_state & NK_WIDGET_STATE_ACTIVE) { + if (ctx->last_widget_state & NK_WIDGET_STATE_ACTIVED) { background = &style->combo.active; symbol_color = style->combo.symbol_active; text.text = style->combo.label_active; - } else if (ctx->last_widget_state & NK_WIDGET_STATE_HOVERED) { + } else if (ctx->last_widget_state & NK_WIDGET_STATE_HOVER) { background = &style->combo.hover; symbol_color = style->combo.symbol_hover; text.text = style->combo.label_hover; @@ -18971,7 +18986,7 @@ nk_combo_begin_symbol_text(struct nk_context *ctx, struct nk_panel *layout, struct nk_rect image; enum nk_symbol_type sym; - if (ctx->last_widget_state & NK_WIDGET_STATE_HOVERED) + if (ctx->last_widget_state & NK_WIDGET_STATE_HOVER) sym = style->combo.sym_hover; else if (is_clicked) sym = style->combo.sym_active; @@ -19039,9 +19054,9 @@ nk_combo_begin_image(struct nk_context *ctx, struct nk_panel *layout, is_clicked = nk_true; /* draw combo box header background and border */ - if (ctx->last_widget_state & NK_WIDGET_STATE_ACTIVE) + if (ctx->last_widget_state & NK_WIDGET_STATE_ACTIVED) background = &style->combo.active; - else if (ctx->last_widget_state & NK_WIDGET_STATE_HOVERED) + else if (ctx->last_widget_state & NK_WIDGET_STATE_HOVER) background = &style->combo.hover; else background = &style->combo.normal; @@ -19058,7 +19073,7 @@ nk_combo_begin_image(struct nk_context *ctx, struct nk_panel *layout, struct nk_rect button; enum nk_symbol_type sym; - if (ctx->last_widget_state & NK_WIDGET_STATE_HOVERED) + if (ctx->last_widget_state & NK_WIDGET_STATE_HOVER) sym = style->combo.sym_hover; else if (is_clicked) sym = style->combo.sym_active; @@ -19119,10 +19134,10 @@ nk_combo_begin_image_text(struct nk_context *ctx, struct nk_panel *layout, is_clicked = nk_true; /* draw combo box header background and border */ - if (ctx->last_widget_state & NK_WIDGET_STATE_ACTIVE) { + if (ctx->last_widget_state & NK_WIDGET_STATE_ACTIVED) { background = &style->combo.active; text.text = style->combo.label_active; - } else if (ctx->last_widget_state & NK_WIDGET_STATE_HOVERED) { + } else if (ctx->last_widget_state & NK_WIDGET_STATE_HOVER) { background = &style->combo.hover; text.text = style->combo.label_hover; } else { @@ -19145,7 +19160,7 @@ nk_combo_begin_image_text(struct nk_context *ctx, struct nk_panel *layout, struct nk_rect image; enum nk_symbol_type sym; - if (ctx->last_widget_state & NK_WIDGET_STATE_HOVERED) + if (ctx->last_widget_state & NK_WIDGET_STATE_HOVER) sym = style->combo.sym_hover; else if (is_clicked) sym = style->combo.sym_active; @@ -19248,8 +19263,8 @@ nk_combo(struct nk_context *ctx, const char **items, int count, } NK_API int -nk_combo_seperator(struct nk_context *ctx, const char *items_seperated_by_seperator, - int seperator, int selected, int count, int item_height) +nk_combo_separator(struct nk_context *ctx, const char *items_separated_by_separator, + int separator, int selected, int count, int item_height) { int i; int max_height; @@ -19261,8 +19276,8 @@ nk_combo_seperator(struct nk_context *ctx, const char *items_seperated_by_sepera int length = 0; NK_ASSERT(ctx); - NK_ASSERT(items_seperated_by_seperator); - if (!ctx || !items_seperated_by_seperator) + NK_ASSERT(items_separated_by_separator); + if (!ctx || !items_separated_by_separator) return selected; /* calculate popup window */ @@ -19271,20 +19286,20 @@ nk_combo_seperator(struct nk_context *ctx, const char *items_seperated_by_sepera max_height = (count+1) * item_height + (int)item_padding * 3 + (int)window_padding * 2; /* find selected item */ - current_item = items_seperated_by_seperator; + current_item = items_separated_by_separator; for (i = 0; i < selected; ++i) { iter = current_item; - while (*iter != seperator) iter++; + while (*iter != separator) iter++; length = (int)(iter - current_item); current_item = iter + 1; } if (nk_combo_begin_text(ctx, &combo, current_item, length, max_height)) { - current_item = items_seperated_by_seperator; + current_item = items_separated_by_separator; nk_layout_row_dynamic(ctx, (float)item_height, 1); for (i = 0; i < count; ++i) { iter = current_item; - while (*iter != seperator) iter++; + while (*iter != separator) iter++; length = (int)(iter - current_item); if (nk_combo_item_text(ctx, current_item, length, NK_TEXT_LEFT)) selected = i; @@ -19296,9 +19311,9 @@ nk_combo_seperator(struct nk_context *ctx, const char *items_seperated_by_sepera } NK_API int -nk_combo_string(struct nk_context *ctx, const char *items_seperated_by_zeros, +nk_combo_string(struct nk_context *ctx, const char *items_separated_by_zeros, int selected, int count, int item_height) -{return nk_combo_seperator(ctx, items_seperated_by_zeros, '\0', selected, count, item_height);} +{return nk_combo_separator(ctx, items_separated_by_zeros, '\0', selected, count, item_height);} NK_API int nk_combo_callback(struct nk_context *ctx, void(*item_getter)(void*, int, const char**), @@ -19338,13 +19353,13 @@ NK_API void nk_combobox(struct nk_context *ctx, const char **items, int count, int *selected, int item_height) {*selected = nk_combo(ctx, items, count, *selected, item_height);} -NK_API void nk_combobox_string(struct nk_context *ctx, const char *items_seperated_by_zeros, +NK_API void nk_combobox_string(struct nk_context *ctx, const char *items_separated_by_zeros, int *selected, int count, int item_height) -{*selected = nk_combo_string(ctx, items_seperated_by_zeros, *selected, count, item_height);} +{*selected = nk_combo_string(ctx, items_separated_by_zeros, *selected, count, item_height);} -NK_API void nk_combobox_seperator(struct nk_context *ctx, const char *items_seperated_by_seperator, - int seperator,int *selected, int count, int item_height) -{*selected = nk_combo_seperator(ctx, items_seperated_by_seperator, seperator, +NK_API void nk_combobox_separator(struct nk_context *ctx, const char *items_separated_by_separator, + int separator,int *selected, int count, int item_height) +{*selected = nk_combo_separator(ctx, items_separated_by_separator, separator, *selected, count, item_height);} NK_API void nk_combobox_callback(struct nk_context *ctx,