From f82fbb2e36bcacc781561e6034813f808df1648f Mon Sep 17 00:00:00 2001 From: joshhuelsman Date: Fri, 30 Jan 2015 17:55:03 -0500 Subject: [PATCH] stbte: layername button grows/shrinks Layer name buttons grow to fill box --- stb_tilemap_editor.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/stb_tilemap_editor.h b/stb_tilemap_editor.h index e751980..0a8339b 100644 --- a/stb_tilemap_editor.h +++ b/stb_tilemap_editor.h @@ -938,6 +938,7 @@ struct stbte_tilemap int tileinfo_dirty; stbte__layer layerinfo[STBTE_MAX_LAYERS]; int has_layer_names; + int layername_width; int layer_scroll; int propmode; int solo_layer; @@ -1016,6 +1017,7 @@ stbte_tilemap *stbte_create_map(int map_x, int map_y, int map_layers, int spacin tm->layer_scroll = 0; tm->propmode = 0; tm->has_layer_names = 0; + tm->layername_width = 0; tm->undo_available_valid = 0; for (i=0; i < tm->num_layers; ++i) { @@ -1088,12 +1090,16 @@ void stbte_define_tile(stbte_tilemap *tm, unsigned short id, unsigned int layerm tm->tileinfo_dirty = 1; } +static int stbte__text_width(const char *str); + void stbte_set_layername(stbte_tilemap *tm, int layer, const char *layername) { STBTE_ASSERT(layer >= 0 && layer < tm->num_layers); if (layer >= 0 && layer < tm->num_layers) { tm->layerinfo[layer].name = layername; tm->has_layer_names = 1; + int width = stbte__text_width(layername); + tm->layername_width = (width > tm->layername_width ? width : tm->layername_width); } } @@ -3385,7 +3391,9 @@ static void stbte__layers(stbte_tilemap *tm, int x0, int y0, int w, int h) int i, y, n; int x1 = x0+w; int y1 = y0+h; - int xoff = tm->has_layer_names ? 50 : 20; + int side = stbte__ui.panel[STBTE__layer].side; + int xoff = tm->has_layer_names ? stbte__region[side].width - 42 : 20; + xoff = (xoff < tm->layername_width + 10 ? xoff : tm->layername_width + 10); static char *propmodes[3] = { "default", "always", "never" };