dont remember
[fishladder.git] / vg / vg_ui.h
index fe46da0040a8bcd795f9628134d3519d78807b63..03647392a27ebe8cfce24e7f82b891197720066f 100644 (file)
@@ -112,6 +112,7 @@ struct ui_ctx
        u32 capture_mouse_id;
        int capture_lock;
        u32 id_base;
+       int glyph_base;
        
        // User input
        ui_px mouse[2];
@@ -176,7 +177,7 @@ ui_colourset ui_default_colours = {
 ui_ctx ui_global_ctx = { 
        .padding = 8, 
        .colours_current = &ui_default_colours, 
-       .colours_main = &ui_default_colours 
+       .colours_main = &ui_default_colours
 };
 
 
@@ -559,14 +560,30 @@ static struct ui_vert *ui_fill_rect( ui_ctx *ctx, ui_rect rect, u32 colour )
        return ui_fill_rect_uv( ctx, rect, colour, (ui_px[4]){ 4,124,4,124 } );
 }
 
-static void ui_text( ui_ctx *ctx, const char *str, ui_px scale, int alignment )
+static void ui_text_use_title( ui_ctx *ctx )
+{
+       ctx->glyph_base = 0;
+}
+
+static void ui_text_use_paragraph( ui_ctx *ctx )
+{
+       ctx->glyph_base = 6;
+}
+
+enum text_alignment
+{
+       k_text_alignment_left = 0,
+       k_text_alignment_center
+};
+
+static void ui_text( ui_ctx *ctx, const char *str, ui_px scale, enum text_alignment alignment )
 {
        ui_rect text_cursor;
 
        text_cursor[0] = ctx->cursor[0];
        text_cursor[1] = ctx->cursor[1];
-       text_cursor[2] = scale*8;
-       text_cursor[3] = scale*8;
+       text_cursor[2] = (scale*8)/2;
+       text_cursor[3] = (scale*8)/2;
 
        u32 current_colour = ctx->override_colour;
 
@@ -576,7 +593,7 @@ static void ui_text( ui_ctx *ctx, const char *str, ui_px scale, int alignment )
        {
                if( c == '\n' )
                {
-                       text_cursor[1] += 10*scale;
+                       text_cursor[1] += (7*scale)/2;
                        text_cursor[0] = ctx->cursor[0];
                        continue;
                }
@@ -584,9 +601,9 @@ static void ui_text( ui_ctx *ctx, const char *str, ui_px scale, int alignment )
                {
                        u8 glyph_base[2];
                        u8 glyph_index = c - 32;
-                       glyph_base[0] = glyph_index&0xf;
-                       glyph_base[1] = (glyph_index-glyph_base[0])>>4;
-                       
+                       glyph_base[0] = (glyph_index&0xf);
+                       glyph_base[1] = ctx->glyph_base + ((glyph_index-glyph_base[0])>>4);
+
                        glyph_base[0] *= 8;
                        glyph_base[1] *= 8;
                        
@@ -636,7 +653,7 @@ static void ui_text( ui_ctx *ctx, const char *str, ui_px scale, int alignment )
                        continue;
                }
                
-               text_cursor[0] += (ui_glyph_spacing_x*scale)/2;
+               text_cursor[0] += (ui_glyph_spacing_x*scale)/4;
        }
 }