diff --git a/nuklear.h b/nuklear.h index 9a33488..933da31 100644 --- a/nuklear.h +++ b/nuklear.h @@ -2003,6 +2003,19 @@ NK_API void nk_window_show(struct nk_context*, const char *name, enum nk_show_st /// __cond__ | condition that has to be met to actually commit the visbility state change */ NK_API void nk_window_show_if(struct nk_context*, const char *name, enum nk_show_states, int cond); +/*/// #### nk_window_show_if +/// Line for visual seperation. Draws a line with thickness determined by the current row height. +/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c +/// void nk_rule_horizontal(struct nk_context *ctx, struct nk_color color, NK_BOOL rounding) +/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/// +/// Parameter | Description +/// ----------------|------------------------------------------------------- +/// __ctx__ | Must point to an previously initialized `nk_context` struct +/// __color__ | Color of the horizontal line +/// __rounding__ | Whether or not to make the line round +*/ +NK_API void nk_rule_horizontal(struct nk_context *ctx, struct nk_color color, NK_BOOL rounding) /* ============================================================================= * * LAYOUT @@ -20688,6 +20701,16 @@ nk_window_set_focus(struct nk_context *ctx, const char *name) ctx->active = win; } +NK_API void +nk_rule_horizontal(struct nk_context *ctx, struct nk_color color, NK_BOOL rounding) +{ + struct nk_rect space; + enum nk_widget_layout_states state = nk_widget(&space, ctx); + struct nk_command_buffer *canvas = nk_window_get_canvas(ctx); + if (!state) return; + nk_fill_rect(canvas, space, rounding && space.h > 1.5f ? space.h / 2.0f : 0, color); +} + @@ -29629,6 +29652,7 @@ nk_tooltipfv(struct nk_context *ctx, const char *fmt, va_list args) /// - [y]: Minor version with non-breaking API and library changes /// - [z]: Patch version with no direct changes to the API /// +/// - 2022/02/03 (4.9.7) - Added nk_rule_horizontal() widget /// - 2022/02/03 (4.9.6) - Allow overriding the NK_INV_SQRT function, similar to NK_SIN and NK_COS /// - 2021/12/22 (4.9.5) - Revert layout bounds not accounting for padding due to regressions /// - 2021/12/22 (4.9.4) - Fix checking hovering when window is minimized diff --git a/src/CHANGELOG b/src/CHANGELOG index 4be9f04..95c0879 100644 --- a/src/CHANGELOG +++ b/src/CHANGELOG @@ -7,6 +7,7 @@ /// - [y]: Minor version with non-breaking API and library changes /// - [z]: Patch version with no direct changes to the API /// +/// - 2022/04/15 (4.9.7) - Added nk_rule_horizontal() widget /// - 2022/02/03 (4.9.6) - Allow overriding the NK_INV_SQRT function, similar to NK_SIN and NK_COS /// - 2021/12/22 (4.9.5) - Revert layout bounds not accounting for padding due to regressions /// - 2021/12/22 (4.9.4) - Fix checking hovering when window is minimized diff --git a/src/nuklear.h b/src/nuklear.h index b97c95c..d9bd435 100644 --- a/src/nuklear.h +++ b/src/nuklear.h @@ -1782,6 +1782,19 @@ NK_API void nk_window_show(struct nk_context*, const char *name, enum nk_show_st /// __cond__ | condition that has to be met to actually commit the visbility state change */ NK_API void nk_window_show_if(struct nk_context*, const char *name, enum nk_show_states, int cond); +/*/// #### nk_window_show_if +/// Line for visual seperation. Draws a line with thickness determined by the current row height. +/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~c +/// void nk_rule_horizontal(struct nk_context *ctx, struct nk_color color, NK_BOOL rounding) +/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/// +/// Parameter | Description +/// ----------------|------------------------------------------------------- +/// __ctx__ | Must point to an previously initialized `nk_context` struct +/// __color__ | Color of the horizontal line +/// __rounding__ | Whether or not to make the line round +*/ +NK_API void nk_rule_horizontal(struct nk_context *ctx, struct nk_color color, NK_BOOL rounding) /* ============================================================================= * * LAYOUT diff --git a/src/nuklear_window.c b/src/nuklear_window.c index 486b912..e5e90b7 100644 --- a/src/nuklear_window.c +++ b/src/nuklear_window.c @@ -669,3 +669,13 @@ nk_window_set_focus(struct nk_context *ctx, const char *name) } ctx->active = win; } + +NK_API void +nk_rule_horizontal(struct nk_context *ctx, struct nk_color color, NK_BOOL rounding) +{ + struct nk_rect space; + enum nk_widget_layout_states state = nk_widget(&space, ctx); + struct nk_command_buffer *canvas = nk_window_get_canvas(ctx); + if (!state) return; + nk_fill_rect(canvas, space, rounding && space.h > 1.5f ? space.h / 2.0f : 0, color); +}