mirror of
https://github.com/holub/mame
synced 2025-05-18 03:35:03 +03:00
Fix for previous fix.
This commit is contained in:
parent
504cee4992
commit
1eb4b23585
16
src/emu/ui.c
16
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)
|
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 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_height = line_height;
|
||||||
float target_x, target_y;
|
float target_x, target_y;
|
||||||
float last_target_height = 0;
|
float last_target_height = 0;
|
||||||
|
|
||||||
do
|
while (1)
|
||||||
{
|
{
|
||||||
/* determine the target location */
|
/* determine the target location */
|
||||||
target_x = xpos - 0.5f * target_width;
|
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;
|
target_y = 1.0f - UI_BOX_TB_BORDER - target_height;
|
||||||
|
|
||||||
/* compute the multi-line target width/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.00001f,
|
||||||
ui_draw_text_full(container, text, target_x, target_y, target_width + 0.00001,
|
|
||||||
justify, WRAP_WORD, DRAW_NONE, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, &target_width, &target_height);
|
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)
|
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;
|
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 */
|
/* add a box around that */
|
||||||
ui_draw_outlined_box(container, target_x - UI_BOX_LR_BORDER,
|
ui_draw_outlined_box(container, target_x - UI_BOX_LR_BORDER,
|
||||||
target_y - UI_BOX_TB_BORDER,
|
target_y - UI_BOX_TB_BORDER,
|
||||||
target_x + target_width + UI_BOX_LR_BORDER,
|
target_x + target_width + UI_BOX_LR_BORDER,
|
||||||
target_y + target_height + UI_BOX_TB_BORDER, backcolor);
|
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);
|
justify, WRAP_WORD, DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user