25
25
#include " video/drawing_context.hpp"
26
26
#include " video/layer.hpp"
27
27
28
+ namespace
29
+ {
30
+ std::string anchor_points[] = { " middle" , " topleft" , " top" , " topright" , " left" , " right" , " bottomleft" , " bottom" , " bottomright" };
31
+ }
32
+
28
33
TextArea::TextArea (const ReaderMapping& mapping) :
29
34
TriggerBase(mapping),
30
35
m_once(false ),
@@ -33,7 +38,8 @@ TextArea::TextArea(const ReaderMapping& mapping) :
33
38
m_fade_delay(1 .0f ),
34
39
m_current_text(0 ),
35
40
m_status(Status::NOT_STARTED),
36
- m_timer()
41
+ m_timer(),
42
+ m_anchor(0 )
37
43
{
38
44
float w, h;
39
45
@@ -45,6 +51,7 @@ TextArea::TextArea(const ReaderMapping& mapping) :
45
51
mapping.get (" delay" , m_delay);
46
52
mapping.get (" once" , m_once);
47
53
mapping.get (" fade-delay" , m_fade_delay);
54
+ mapping.get (" anchor-point" , m_anchor, 0 );
48
55
49
56
m_col.m_bbox .set_size (w, h);
50
57
}
@@ -56,7 +63,8 @@ TextArea::TextArea(const Vector& pos) :
56
63
m_fade_delay(1 .0f ),
57
64
m_current_text(0 ),
58
65
m_status(Status::NOT_STARTED),
59
- m_timer()
66
+ m_timer(),
67
+ m_anchor(0 )
60
68
{
61
69
m_col.m_bbox .set_pos (pos);
62
70
m_col.m_bbox .set_size (32 , 32 );
@@ -88,6 +96,7 @@ TextArea::event(Player& player, EventType type)
88
96
m_current_text = 0 ;
89
97
m_status = Status::FADING_IN;
90
98
m_timer.start (m_fade_delay);
99
+ text_object.set_anchor_point (string_to_anchor_point (anchor_points[m_anchor]));
91
100
text_object.set_text (m_items[m_current_text]);
92
101
text_object.fade_in (m_fade_delay);
93
102
}
@@ -130,6 +139,7 @@ TextArea::update(float dt_sec)
130
139
{
131
140
m_status = Status::FADING_IN;
132
141
m_timer.start (m_fade_delay);
142
+ text_object.set_anchor_point (string_to_anchor_point (anchor_points[m_anchor]));
133
143
text_object.set_text (m_items[m_current_text]);
134
144
text_object.fade_in (m_fade_delay);
135
145
}
@@ -149,6 +159,8 @@ TextArea::get_settings()
149
159
settings.add_bool (_ (" Once" ), &m_once, " once" );
150
160
settings.add_float (_ (" Text change time" ), &m_delay, " delay" );
151
161
settings.add_float (_ (" Fade time" ), &m_fade_delay, " fade-delay" );
162
+ settings.add_string_select (_ (" Anchor" ), &m_anchor,
163
+ { _ (" Middle" ), _ (" Top-left" ), _ (" Top" ), _ (" Top-right" ), _ (" Left" ), _ (" Right" ), _ (" Bottom-left" ), _ (" Bottom" ), _ (" Bottom-right" ) }, 0 , " anchor-point" );
152
164
settings.add_string_array (_ (" Texts" ), " texts" , m_items);
153
165
154
166
return settings;
0 commit comments