mirror of
https://github.com/wesnoth/wesnoth
synced 2025-05-19 06:45:38 +00:00

Previously, I had implemented the hint text ("Search)" and image (the magnifying glass) as a custom text box definition. This caused some problems, though. Since the string was hard-coded as part of a WFL formula, it couldn't be translated (see #2709 and #2732). It also wasn't expandable to any other usecase. Instead, I've added two new hint_text= and hint_image= keys to [text_box], wrapped the "Search" text and magnifying image path in a helper macro, and refactored the default definition to display the hint text and image when appropriate. This also fixes a minor issue where selected text wouldn't remain highlighted when the box wasn't focused when using the filter definition (it did with the default one). This should fix the untranslatable "Search" text issue mentioned in both issues above. The new string is in the wesnoth-lib textdomain. (cherry-picked from commit db5abb7e637fd87699fce49a9543faafc3f58068)
227 lines
4.8 KiB
INI
227 lines
4.8 KiB
INI
#textdomain wesnoth-lib
|
|
###
|
|
### Definition of a single line text box.
|
|
###
|
|
|
|
#define _GUI_DRAW_BACKGROUND COLOR
|
|
[rectangle]
|
|
x = 0
|
|
y = 0
|
|
w = "(width)"
|
|
h = "(height)"
|
|
|
|
fill_color = {COLOR}
|
|
|
|
[/rectangle]
|
|
#enddef
|
|
|
|
#define _GUI_TEXTBOX_BACKGROUND_ENABLED
|
|
{_GUI_DRAW_BACKGROUND ({GUI__BACKGROUND_COLOR_ENABLED})}
|
|
#enddef
|
|
|
|
#define _GUI_TEXTBOX_BACKGROUND_DISABLED
|
|
{_GUI_DRAW_BACKGROUND ({GUI__BACKGROUND_COLOR_DISABLED})}
|
|
#enddef
|
|
|
|
#define _GUI_DRAW_BORDER COLOR
|
|
[rectangle]
|
|
x = 0
|
|
y = 0
|
|
w = "(width)"
|
|
h = "(height)"
|
|
|
|
border_thickness = 1
|
|
border_color = {COLOR}
|
|
|
|
[/rectangle]
|
|
#enddef
|
|
|
|
#define _GUI_DRAW_TEXT SIZE COLOR
|
|
[rectangle]
|
|
x = "(text_x_offset + selection_offset)"
|
|
y = "(text_y_offset)"
|
|
w = "(selection_width)"
|
|
h = "(text_font_height)"
|
|
|
|
border_thickness = 0
|
|
fill_color = "21, 53, 80, 255"
|
|
[/rectangle]
|
|
|
|
[text]
|
|
x = "(text_x_offset)"
|
|
y = "(text_y_offset)"
|
|
w = "(text_width)"
|
|
h = "(text_height)"
|
|
maximum_width = "(text_maximum_width)"
|
|
font_size = {SIZE}
|
|
color = {COLOR}
|
|
text = "(text)"
|
|
[/text]
|
|
#enddef
|
|
|
|
#
|
|
# The preprocessor can't process GUI__FONT_COLOR_DISABLED__DEFAULT as part of string
|
|
# concatenation for some reason. Perhaps it's the optional argument. So I'm just copying
|
|
# it here. Though the lack of quotes means I don't need to use concatenation anyway.
|
|
#
|
|
# -- vultraz, 2018-03-26
|
|
#
|
|
#define __DISABLED_COLOR_PREPROCESSOR_WORKAROUND
|
|
128, 128, 128, 255 #enddef
|
|
|
|
#define _GUI_DRAW_TEXT_OR_HINT SIZE COLOR
|
|
[rectangle]
|
|
x = "(text_x_offset + selection_offset)"
|
|
y = "(text_y_offset)"
|
|
w = "(selection_width)"
|
|
h = "(text_font_height)"
|
|
|
|
border_thickness = 0
|
|
fill_color = "21, 53, 80, 255"
|
|
[/rectangle]
|
|
|
|
[text]
|
|
x = "(text_x_offset)"
|
|
y = "(text_y_offset)"
|
|
w = "(text_width)"
|
|
h = "(text_height)"
|
|
maximum_width = "(text_maximum_width)"
|
|
|
|
font_size = "(
|
|
if(text = '' and hint_text != '', hint_size, reg_size) where
|
|
hint_size = {GUI_FONT_SIZE_SMALL},
|
|
reg_size = {SIZE}
|
|
)"
|
|
|
|
color = "(
|
|
if(text = '' and hint_text != '', hint_color, reg_color) where
|
|
hint_color = [{__DISABLED_COLOR_PREPROCESSOR_WORKAROUND}],
|
|
reg_color = [{COLOR}]
|
|
)"
|
|
|
|
text = "(
|
|
if(text = '' and hint_text != '', hint_text, text))"
|
|
[/text]
|
|
|
|
[image]
|
|
x = "(width - image_width)"
|
|
y = 0
|
|
name = "(if(text = '' and hint_image != '', hint_image, ''))"
|
|
[/image]
|
|
#enddef
|
|
|
|
#define _GUI_DRAW_CURSOR X_OFFSET
|
|
[line]
|
|
x1 = "(cursor_offset + {X_OFFSET})"
|
|
y1 = "(text_y_offset + 2)"
|
|
x2 = "(cursor_offset + {X_OFFSET})"
|
|
y2 = "(text_y_offset + text_font_height - 2)"
|
|
color = "([255, 255, 255, cursor_alpha])"
|
|
thickness = 1
|
|
[/line]
|
|
|
|
[rectangle]
|
|
x = "(composition_offset + {X_OFFSET})"
|
|
y = "(text_y_offset + text_font_height - 2)"
|
|
w = "(composition_width)"
|
|
h = "2"
|
|
fill_color = "([140, 140, 0, if(composition_width > 0, 255, 0)])"
|
|
border_thickness = 0
|
|
[/rectangle]
|
|
#enddef
|
|
|
|
#define _GUI_RESOLUTION RESOLUTION MIN_WIDTH DEFAULT_WIDTH HEIGHT X_OFFSET EXTRA_WIDTH FONT_SIZE BACKGROUND_ENABLED BACKGROUND_DISABLED
|
|
[resolution]
|
|
|
|
{RESOLUTION}
|
|
|
|
min_width = {MIN_WIDTH}
|
|
min_height = {HEIGHT}
|
|
|
|
default_width = {DEFAULT_WIDTH}
|
|
default_height = {HEIGHT}
|
|
|
|
max_width = 0
|
|
max_height = {HEIGHT}
|
|
|
|
text_font_size = {FONT_SIZE}
|
|
text_x_offset = {X_OFFSET}
|
|
text_y_offset = "(if(text_font_height <= height, (height - text_font_height) / 2, 0))"
|
|
text_extra_width = {EXTRA_WIDTH}
|
|
|
|
#functions = "(def show_hint_text() (text = '' and hint_text != '');)"
|
|
|
|
[state_enabled]
|
|
|
|
[draw]
|
|
|
|
{BACKGROUND_ENABLED}
|
|
|
|
{_GUI_DRAW_BORDER ({GUI__BORDER_COLOR_DARK}) }
|
|
|
|
{_GUI_DRAW_TEXT_OR_HINT ({FONT_SIZE}) ({GUI__FONT_COLOR_ENABLED__DEFAULT}) }
|
|
|
|
[/draw]
|
|
|
|
[/state_enabled]
|
|
|
|
[state_disabled]
|
|
|
|
[draw]
|
|
|
|
{BACKGROUND_DISABLED}
|
|
|
|
{_GUI_DRAW_BORDER ({GUI__FONT_COLOR_DISABLED_DARK__DEFAULT}) }
|
|
|
|
{_GUI_DRAW_TEXT_OR_HINT ({FONT_SIZE}) ({GUI__FONT_COLOR_DISABLED__DEFAULT}) }
|
|
|
|
[/draw]
|
|
|
|
[/state_disabled]
|
|
|
|
[state_focused]
|
|
|
|
[draw]
|
|
|
|
{BACKGROUND_ENABLED}
|
|
|
|
{_GUI_DRAW_BORDER ({GUI__BORDER_COLOR}) }
|
|
|
|
# We never draw the hint text or image if focused
|
|
{_GUI_DRAW_TEXT ({FONT_SIZE}) ({GUI__FONT_COLOR_ENABLED__DEFAULT}) }
|
|
|
|
{_GUI_DRAW_CURSOR ({X_OFFSET}) }
|
|
|
|
[/draw]
|
|
|
|
[/state_focused]
|
|
|
|
[/resolution]
|
|
|
|
#enddef
|
|
|
|
[text_box_definition]
|
|
id = "default"
|
|
description = "Default text box"
|
|
|
|
{_GUI_RESOLUTION () 40 250 25 5 10 ({GUI_FONT_SIZE_DEFAULT}) ({_GUI_TEXTBOX_BACKGROUND_ENABLED}) ({_GUI_TEXTBOX_BACKGROUND_DISABLED})}
|
|
|
|
[/text_box_definition]
|
|
|
|
[text_box_definition]
|
|
id = "transparent"
|
|
description = "Background-less text box, used for WML messages"
|
|
|
|
{_GUI_RESOLUTION () 40 250 25 5 10 ({GUI_FONT_SIZE_DEFAULT}) () ()}
|
|
|
|
[/text_box_definition]
|
|
|
|
#undef _GUI_RESOLUTION
|
|
#undef _GUI_DRAW_CURSOR
|
|
#undef _GUI_DRAW_TEXT
|
|
#undef _GUI_DRAW_BORDER
|
|
#undef _GUI_DRAW_BACKGROUND
|
|
#undef _GUI_TEXTBOX_BACKGROUND_ENABLED
|
|
#undef _GUI_TEXTBOX_BACKGROUND_DISABLED
|
|
#undef __DISABLED_COLOR_PREPROCESSOR_WORKAROUND
|