From 1eb4b235852394d37ad1ddbd88d2de09e479b91a Mon Sep 17 00:00:00 2001 From: Aaron Giles Date: Sun, 24 Oct 2010 21:06:19 +0000 Subject: Fix for previous fix. --- src/emu/ui.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src/emu/ui.c') diff --git a/src/emu/ui.c b/src/emu/ui.c index 7eb1fff1664..e99b1d3bb1f 100644 --- a/src/emu/ui.c +++ b/src/emu/ui.c @@ -723,12 +723,13 @@ void ui_draw_text_full(render_container *container, const char *origs, float x, void ui_draw_text_box(render_container *container, const char *text, int justify, float xpos, float ypos, rgb_t backcolor) { float line_height = ui_get_line_height(container->manager().machine()); - float target_width = 2.0f - ((xpos <= 0.5f) ? xpos : 1.0f - xpos) - 2.0f * UI_BOX_LR_BORDER; + float max_width = 2.0f * ((xpos <= 0.5f) ? xpos : 1.0f - xpos) - 2.0f * UI_BOX_LR_BORDER; + float target_width = max_width; float target_height = line_height; float target_x, target_y; float last_target_height = 0; - do + while (1) { /* determine the target location */ target_x = xpos - 0.5f * target_width; @@ -745,20 +746,23 @@ void ui_draw_text_box(render_container *container, const char *text, int justify target_y = 1.0f - UI_BOX_TB_BORDER - target_height; /* compute the multi-line target width/height */ - last_target_height = target_height; - ui_draw_text_full(container, text, target_x, target_y, target_width + 0.00001, + ui_draw_text_full(container, text, target_x, target_y, target_width + 0.00001f, justify, WRAP_WORD, DRAW_NONE, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, &target_width, &target_height); if (target_height > 1.0f - 2.0f * UI_BOX_TB_BORDER) target_height = floor((1.0f - 2.0f * UI_BOX_TB_BORDER) / line_height) * line_height; - } while (target_height != last_target_height); + /* if we match our last value, we're done */ + if (target_height == last_target_height) + break; + last_target_height = target_height; + } /* add a box around that */ ui_draw_outlined_box(container, target_x - UI_BOX_LR_BORDER, target_y - UI_BOX_TB_BORDER, target_x + target_width + UI_BOX_LR_BORDER, target_y + target_height + UI_BOX_TB_BORDER, backcolor); - ui_draw_text_full(container, text, target_x, target_y, target_width + 0.00001, + ui_draw_text_full(container, text, target_x, target_y, target_width + 0.00001f, justify, WRAP_WORD, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, NULL, NULL); } -- cgit v1.2.3-70-g09d2