4141#include " ekg/ui/label/label.hpp"
4242#include " ekg/ui/label/widget.hpp"
4343
44+ #include " ekg/ui/scrollbar/scrollbar.hpp"
45+ #include " ekg/ui/scrollbar/widget.hpp"
46+
4447namespace ekg ::core {
4548 void registry (ekg::property_t &property);
4649}
@@ -62,6 +65,7 @@ namespace ekg::core {
6265 ekg_core_declare_widget_case_todo (ekg::frame_t , widget_descriptor_at, ekg_core_widget_todo); \
6366 ekg_core_declare_widget_case_todo (ekg::button_t , widget_descriptor_at, ekg_core_widget_todo); \
6467 ekg_core_declare_widget_case_todo (ekg::label_t , widget_descriptor_at, ekg_core_widget_todo); \
68+ ekg_core_declare_widget_case_todo (ekg::scrollbar_t , widget_descriptor_at, ekg_core_widget_todo); \
6569 }
6670
6771#define ekg_registry_widget (widget_descriptor_t, register_widget_pool, register_property_pool, is_container, register_settings ) \
@@ -123,6 +127,9 @@ namespace ekg {
123127
124128 ekg::pool<ekg::property_t > label_property {};
125129 ekg::pool<ekg::label_t > label {};
130+
131+ ekg::pool<ekg::property_t > scrollbar_property {};
132+ ekg::pool<ekg::scrollbar_t > scrollbar {};
126133 } pools;
127134
128135 template <typename t>
@@ -156,6 +163,10 @@ namespace ekg {
156163 return ekg::io::any_static_cast<t>(
157164 &ekg::pools.label_property .query (at)
158165 );
166+ case ekg::type::scrollbar:
167+ return ekg::io::any_static_cast<t>(
168+ &ekg::pools.scrollbar_property .query (at)
169+ );
159170 }
160171 case ekg::type::button:
161172 return ekg::io::any_static_cast<t>(
@@ -169,6 +180,10 @@ namespace ekg {
169180 return ekg::io::any_static_cast<t>(
170181 &ekg::pools.label .query (at)
171182 );
183+ case ekg::type::scrollbar:
184+ return ekg::io::any_static_cast<t>(
185+ &ekg::pools.scrollbar .query (at)
186+ );
172187 }
173188
174189 return t::not_found;
@@ -186,8 +201,8 @@ namespace ekg {
186201 ekg::pools.frame_property ,
187202 true ,
188203 {
189- property.widget . is_childnizate = true ;
190- property.widget . is_children_docknizable = true ;
204+ property.is_childnizate = true ;
205+ property.is_children_docknizable = true ;
191206 widget.color_scheme = global_theme.frame_color_scheme ;
192207 }
193208 );
@@ -200,8 +215,8 @@ namespace ekg {
200215 ekg::pools.button_property ,
201216 false ,
202217 {
203- property.widget . is_childnizate = false ;
204- property.widget . is_children_docknizable = false ;
218+ property.is_childnizate = false ;
219+ property.is_children_docknizable = false ;
205220 widget.color_scheme = global_theme.button_color_scheme ;
206221 }
207222 );
@@ -212,14 +227,29 @@ namespace ekg {
212227 ekg::label_t ,
213228 ekg::pools.label ,
214229 ekg::pools.label_property ,
215- true ,
230+ false ,
216231 {
217- property.widget . is_childnizate = false ;
218- property.widget . is_children_docknizable = false ;
232+ property.is_childnizate = false ;
233+ property.is_children_docknizable = false ;
219234 widget.color_scheme = global_theme.label_color_scheme ;
220235 }
221236 );
222237 }
238+
239+ case ekg::type::scrollbar: {
240+ ekg_registry_widget (
241+ ekg::scrollbar_t ,
242+ ekg::pools.scrollbar ,
243+ ekg::pools.scrollbar_property ,
244+ false ,
245+ {
246+ property.is_childnizate = false ;
247+ property.is_children_docknizable = false ;
248+ widget.color_scheme = global_theme.scrollbar_color_scheme ;
249+ }
250+ );
251+ }
252+
223253 case ekg::type::stack: {
224254 ekg::stack_t &stack {
225255 ekg::pools.stack .push_back (
@@ -240,7 +270,7 @@ namespace ekg {
240270 )
241271 );
242272 case ekg::type::sampler:
243- return ekg::io::any_static_cast<t>(
273+ return ekg::io::any_static_cast<t>(
244274 &ekg::pools.sampler .push_back (
245275 ekg::io::any_static_cast<ekg::sampler_t >(&descriptor)
246276 )
0 commit comments