From: rexim Date: Sat, 8 Feb 2020 18:10:52 +0000 (+0700) Subject: (#1251) Introduce "icons" for tool buttons X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=27f68b09a91487a68b677147d1eec8d709eadfd1;p=nothing.git (#1251) Introduce "icons" for tool buttons --- diff --git a/src/game/level/level_editor/rect_layer.c b/src/game/level/level_editor/rect_layer.c index cae9ee8d..20f21ee8 100644 --- a/src/game/level/level_editor/rect_layer.c +++ b/src/game/level/level_editor/rect_layer.c @@ -278,6 +278,8 @@ static int calc_resize_mask(Vec2f point, Rect rect) #define TOOL_BUTTON_WIDTH 50.0f #define TOOL_BUTTON_HEIGHT 50.0f #define TOOL_BAR_PADDING 20.0f +#define TOOL_BAR_BACKGROUND rgba(0.8f, 0.8f, 0.8f, 1.0f) +#define TOOL_BAR_FOREGROUND rgba(0.2f, 0.2f, 0.2f, 1.0f) static Rect subtract_tool_button_rect(const Camera *camera) @@ -1073,6 +1075,30 @@ void rect_layer_load(RectLayer *layer, Memory *memory, String *input) } } +static +void render_tool_bar_button(const Camera *camera, + Rect button_rect, const char *text, + Color background_color, + Color foreground_color) +{ + const Vec2f text_size = vec(5.0f, 5.0f); + const Rect text_rect = sprite_font_boundary_box( + vec(0.0f, 0.0f), text_size, text); + camera_fill_rect_screen( + camera, + button_rect, + background_color); + camera_render_text_screen( + camera, + text, + text_size, + foreground_color, + vec( + button_rect.x + (button_rect.w - text_rect.w) * 0.5f, + button_rect.y + (button_rect.h - text_rect.h) * 0.5f)); +} + + int rect_layer_render(const RectLayer *layer, const Camera *camera, int active) { trace_assert(layer); @@ -1185,15 +1211,15 @@ int rect_layer_render(const RectLayer *layer, const Camera *camera, int active) // Tool bar if (active) { - // TODO(#1251): subtract and snapping tools don't have any icons - camera_fill_rect_screen( - camera, - subtract_tool_button_rect(camera), - layer->subtract_enabled ? COLOR_RED : rgba(0.2f, 0.2f, 0.2f, 1.0f)); - camera_fill_rect_screen( - camera, - snapping_tool_button_rect(camera), - layer->snapping_enabled ? COLOR_RED : rgba(0.2f, 0.2f, 0.2f, 1.0f)); + render_tool_bar_button( + camera, subtract_tool_button_rect(camera), "/", + layer->subtract_enabled ? TOOL_BAR_BACKGROUND : TOOL_BAR_FOREGROUND, + layer->subtract_enabled ? TOOL_BAR_FOREGROUND : TOOL_BAR_BACKGROUND); + + render_tool_bar_button( + camera, snapping_tool_button_rect(camera), "S", + layer->snapping_enabled ? TOOL_BAR_BACKGROUND : TOOL_BAR_FOREGROUND, + layer->snapping_enabled ? TOOL_BAR_FOREGROUND : TOOL_BAR_BACKGROUND); } return 0;