tiger_lib/gui/
categories.rs

1//! Categories bind containers and properties together.
2//! A property can be inside a container if it shares a category with that container.
3
4use bitflags::bitflags;
5
6use crate::gui::{BuiltinWidget, WidgetProperty};
7
8bitflags! {
9/// Categories bind containers and properties together.
10/// A property can be inside a container if it shares a category with that container.
11///
12/// There is a special category `Unknown` for where we don't know the categories.
13/// An `Unknown` property will fit into any container, and an `Unknown` container can hold any property.
14// LAST UPDATED CK3 VERSION 1.9.2
15// LAST UPDATED VIC3 VERSION 1.6.0
16// LAST UPDATED IR VERSION 2.0.3
17#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
18    pub struct GuiCategories: u8 {
19        // Properties that are accepted in all widget types
20        const Widget = 0x01;
21
22        const Unknown = 0xff;
23    }
24}
25
26impl GuiCategories {
27    pub fn property_as_container(prop: WidgetProperty) -> Self {
28        #[allow(clippy::match_same_arms)] // keep them alphabetic
29        match prop {
30            // These are the ComplexProperty properties
31            WidgetProperty::animation => GuiCategories::Unknown,
32            WidgetProperty::attachto => GuiCategories::Unknown,
33            WidgetProperty::click_modifiers => GuiCategories::Unknown,
34            WidgetProperty::end_sound | WidgetProperty::start_sound => GuiCategories::Unknown,
35            WidgetProperty::glow => GuiCategories::Unknown,
36            WidgetProperty::glow_generation_rules => GuiCategories::Unknown,
37            WidgetProperty::modify_texture => GuiCategories::Unknown,
38            WidgetProperty::rightclick_modifiers => GuiCategories::Unknown,
39            WidgetProperty::soundparam => GuiCategories::Unknown,
40            WidgetProperty::state => GuiCategories::Unknown,
41
42            _ => GuiCategories::Unknown,
43        }
44    }
45
46    pub fn property_in_container(prop: WidgetProperty) -> Self {
47        #[allow(clippy::match_same_arms)] // keep them alphabetic
48        match prop {
49            WidgetProperty::accept_tabs => GuiCategories::Unknown,
50            WidgetProperty::acceptance => GuiCategories::Unknown,
51            WidgetProperty::action_tooltip => GuiCategories::Unknown,
52            WidgetProperty::active_item => GuiCategories::Unknown,
53            WidgetProperty::activeframe => GuiCategories::Unknown,
54            WidgetProperty::actor => GuiCategories::Unknown,
55            WidgetProperty::addcolumn => GuiCategories::Unknown,
56            WidgetProperty::addrow => GuiCategories::Unknown,
57            WidgetProperty::align => GuiCategories::Unknown,
58            WidgetProperty::allow_outside => GuiCategories::Widget,
59            WidgetProperty::alpha => GuiCategories::Widget,
60            WidgetProperty::alwaystransparent => GuiCategories::Widget,
61            WidgetProperty::animate_negative_changes => GuiCategories::Unknown,
62            WidgetProperty::animation => GuiCategories::Unknown,
63            WidgetProperty::animation_speed => GuiCategories::Unknown,
64            WidgetProperty::attachto => GuiCategories::Widget,
65            WidgetProperty::autoresize => GuiCategories::Unknown,
66            WidgetProperty::autoresize_axis => GuiCategories::Unknown,
67            WidgetProperty::autoresize_slider => GuiCategories::Unknown,
68            WidgetProperty::autoresizescrollarea => GuiCategories::Unknown,
69            WidgetProperty::autoresizeviewport => GuiCategories::Unknown,
70            WidgetProperty::axis_label => GuiCategories::Unknown,
71            WidgetProperty::background_texture => GuiCategories::Unknown,
72            WidgetProperty::bezier => GuiCategories::Unknown,
73            WidgetProperty::blend_mode => GuiCategories::Unknown,
74            WidgetProperty::bottomtotop => GuiCategories::Unknown,
75            WidgetProperty::button_ignore => GuiCategories::Unknown,
76            WidgetProperty::button_tooltip_override => GuiCategories::Unknown,
77            WidgetProperty::button_trigger => GuiCategories::Unknown,
78            WidgetProperty::buttontext => GuiCategories::Unknown,
79            WidgetProperty::camera_fov_y_degrees => GuiCategories::Unknown,
80            WidgetProperty::camera_look_at => GuiCategories::Unknown,
81            WidgetProperty::camera_near_far => GuiCategories::Unknown,
82            WidgetProperty::camera_position => GuiCategories::Unknown,
83            WidgetProperty::camera_rotation_pitch_limits => GuiCategories::Unknown,
84            WidgetProperty::camera_translation_limits => GuiCategories::Unknown,
85            WidgetProperty::camera_zoom_limits => GuiCategories::Unknown,
86            WidgetProperty::cameracontrolwidget_entity_view => GuiCategories::Unknown,
87            WidgetProperty::checked => GuiCategories::Unknown,
88            WidgetProperty::clamp_pan_position => GuiCategories::Unknown,
89            WidgetProperty::clear_color => GuiCategories::Unknown,
90            WidgetProperty::click_mode => GuiCategories::Unknown,
91            WidgetProperty::click_modifier => GuiCategories::Unknown,
92            WidgetProperty::click_modifiers => GuiCategories::Unknown,
93            WidgetProperty::click_type => GuiCategories::Unknown,
94            WidgetProperty::clicksound => GuiCategories::Unknown,
95            WidgetProperty::clicksoundlater => GuiCategories::Unknown,
96            WidgetProperty::close_on_click_outside => GuiCategories::Unknown,
97            WidgetProperty::close_sound => GuiCategories::Unknown,
98            WidgetProperty::coat_of_arms => GuiCategories::Unknown,
99            WidgetProperty::coat_of_arms_mask => GuiCategories::Unknown,
100            WidgetProperty::coat_of_arms_offset => GuiCategories::Unknown,
101            WidgetProperty::coat_of_arms_scale => GuiCategories::Unknown,
102            WidgetProperty::coat_of_arms_slot => GuiCategories::Widget,
103            WidgetProperty::color => GuiCategories::Unknown,
104            WidgetProperty::colormap_coordinates => GuiCategories::Unknown,
105            WidgetProperty::colorpicker_reticule_icon => GuiCategories::Unknown,
106            WidgetProperty::conditions => GuiCategories::Unknown,
107            WidgetProperty::confirmation => GuiCategories::Unknown,
108            WidgetProperty::constantbuffers => GuiCategories::Widget,
109            WidgetProperty::contextmenu_enabled => GuiCategories::Unknown,
110            WidgetProperty::contextmenu_widget => GuiCategories::Unknown,
111            WidgetProperty::cost => GuiCategories::Unknown,
112            WidgetProperty::cursor => GuiCategories::Unknown,
113            WidgetProperty::cursorcolor => GuiCategories::Unknown,
114            WidgetProperty::datacontext => GuiCategories::Widget,
115            WidgetProperty::datamodel => GuiCategories::Widget,
116            WidgetProperty::datamodel_reuse_widgets => GuiCategories::Widget,
117            WidgetProperty::datamodel_wrap => GuiCategories::Widget,
118            WidgetProperty::debug_text => GuiCategories::Unknown,
119            WidgetProperty::dec_button => GuiCategories::Unknown,
120            WidgetProperty::default_clicksound => GuiCategories::Widget,
121            WidgetProperty::default_format => GuiCategories::Unknown,
122            WidgetProperty::delay => GuiCategories::Unknown,
123            WidgetProperty::description => GuiCategories::Unknown,
124            WidgetProperty::direction => GuiCategories::Unknown,
125            WidgetProperty::disable_common_context => GuiCategories::Unknown,
126            WidgetProperty::disable_input_fallthrough => GuiCategories::Unknown,
127            WidgetProperty::disableframe => GuiCategories::Unknown,
128            WidgetProperty::distance => GuiCategories::Unknown,
129            WidgetProperty::distribute_visual_state => GuiCategories::Unknown,
130            WidgetProperty::down => GuiCategories::Unknown,
131            WidgetProperty::downframe => GuiCategories::Unknown,
132            WidgetProperty::downhoverframe => GuiCategories::Unknown,
133            WidgetProperty::downpressedframe => GuiCategories::Unknown,
134            WidgetProperty::drag_drop_args => GuiCategories::Widget,
135            WidgetProperty::drag_drop_base_type => GuiCategories::Unknown,
136            WidgetProperty::drag_drop_data => GuiCategories::Widget,
137            WidgetProperty::drag_drop_id => GuiCategories::Unknown,
138            WidgetProperty::dragdropargs => GuiCategories::Unknown,
139            WidgetProperty::dragdropid => GuiCategories::Unknown,
140            WidgetProperty::draggable_behavior => GuiCategories::Unknown,
141            WidgetProperty::draggable_by => GuiCategories::Unknown,
142            WidgetProperty::drop_target => GuiCategories::Unknown,
143            WidgetProperty::droptarget => GuiCategories::Widget,
144            WidgetProperty::duration => GuiCategories::Unknown,
145            WidgetProperty::effect => GuiCategories::Unknown,
146            WidgetProperty::effectname => GuiCategories::Widget,
147            WidgetProperty::effects => GuiCategories::Unknown,
148            WidgetProperty::elide => GuiCategories::Unknown,
149            WidgetProperty::enabled => GuiCategories::Widget,
150            WidgetProperty::enabled_input => GuiCategories::Unknown,
151            WidgetProperty::enabled_post_effects => GuiCategories::Widget,
152            WidgetProperty::end_sound => GuiCategories::Unknown,
153            WidgetProperty::endangle => GuiCategories::Unknown,
154            WidgetProperty::entity_enable_sound => GuiCategories::Unknown,
155            WidgetProperty::entity_instance => GuiCategories::Unknown,
156            WidgetProperty::even_row_widget => GuiCategories::Unknown,
157            WidgetProperty::expand_item => GuiCategories::Unknown,
158            WidgetProperty::expandbutton => GuiCategories::Widget,
159            WidgetProperty::fade_from_point => GuiCategories::Unknown,
160            WidgetProperty::fade_to_point => GuiCategories::Unknown,
161            WidgetProperty::filter_mouse => GuiCategories::Widget,
162            WidgetProperty::fittype => GuiCategories::Unknown,
163            WidgetProperty::flipdirection => GuiCategories::Unknown,
164            WidgetProperty::focus_on_visible => GuiCategories::Widget,
165            WidgetProperty::focuspolicy => GuiCategories::Widget,
166            WidgetProperty::font => GuiCategories::Unknown,
167            WidgetProperty::fontcolor => GuiCategories::Unknown,
168            WidgetProperty::fontsize => GuiCategories::Unknown,
169            WidgetProperty::fontsize_min => GuiCategories::Unknown,
170            WidgetProperty::fonttintcolor => GuiCategories::Unknown,
171            WidgetProperty::fontweight => GuiCategories::Unknown,
172            WidgetProperty::force_data_properties_update => GuiCategories::Widget,
173            WidgetProperty::forcedown => GuiCategories::Unknown,
174            WidgetProperty::format_override => GuiCategories::Unknown,
175            WidgetProperty::frame => GuiCategories::Unknown,
176            WidgetProperty::frame_grid => GuiCategories::Unknown,
177            WidgetProperty::frame_tier => GuiCategories::Unknown,
178            WidgetProperty::framesize => GuiCategories::Unknown,
179            WidgetProperty::from => GuiCategories::Widget,
180            WidgetProperty::gfx_environment_file => GuiCategories::Unknown,
181            WidgetProperty::gfxtype => GuiCategories::Widget,
182            WidgetProperty::glow => GuiCategories::Unknown,
183            WidgetProperty::glow_alpha => GuiCategories::Unknown,
184            WidgetProperty::glow_alpha_mask => GuiCategories::Unknown,
185            WidgetProperty::glow_blur_passes => GuiCategories::Unknown,
186            WidgetProperty::glow_generation_rules => GuiCategories::Unknown,
187            WidgetProperty::glow_ignore_inside_pixels => GuiCategories::Unknown,
188            WidgetProperty::glow_radius => GuiCategories::Unknown,
189            WidgetProperty::glow_texture_downscale => GuiCategories::Unknown,
190            WidgetProperty::grayscale => GuiCategories::Unknown,
191            WidgetProperty::grid_entity_name => GuiCategories::Unknown,
192            WidgetProperty::header_height => GuiCategories::Unknown,
193            WidgetProperty::highlightchecked => GuiCategories::Unknown,
194            WidgetProperty::hold_time_factor => GuiCategories::Unknown,
195            WidgetProperty::ignore_in_debug_draw => GuiCategories::Widget,
196            WidgetProperty::ignore_layout => GuiCategories::Unknown,
197            WidgetProperty::ignore_unset_buttons => GuiCategories::Unknown,
198            WidgetProperty::ignoreinvisible => GuiCategories::Unknown,
199            WidgetProperty::inc_button => GuiCategories::Unknown,
200            WidgetProperty::indent => GuiCategories::Unknown,
201            WidgetProperty::index => GuiCategories::Unknown,
202            WidgetProperty::inherit_data_context => GuiCategories::Unknown,
203            WidgetProperty::inherit_visibility => GuiCategories::Unknown,
204            WidgetProperty::inherit_visual_state => GuiCategories::Unknown,
205            WidgetProperty::input_action => GuiCategories::Widget,
206            WidgetProperty::input_context => GuiCategories::Widget,
207            WidgetProperty::intersectionmask => GuiCategories::Widget,
208            WidgetProperty::intersectionmask_texture => GuiCategories::Unknown,
209            WidgetProperty::invert_reticule_color => GuiCategories::Unknown,
210            WidgetProperty::invertprogress => GuiCategories::Unknown,
211            WidgetProperty::is_local_scale_fixed => GuiCategories::Unknown,
212            WidgetProperty::item => GuiCategories::Widget,
213            WidgetProperty::keyframe_editor_lane_container => GuiCategories::Unknown,
214            WidgetProperty::layer => GuiCategories::Widget,
215            WidgetProperty::layoutanchor => GuiCategories::Unknown,
216            WidgetProperty::layoutpolicy_horizontal => GuiCategories::Widget,
217            WidgetProperty::layoutpolicy_vertical => GuiCategories::Widget,
218            WidgetProperty::layoutstretchfactor_horizontal => GuiCategories::Widget,
219            WidgetProperty::layoutstretchfactor_vertical => GuiCategories::Widget,
220            WidgetProperty::left_action => GuiCategories::Unknown,
221            WidgetProperty::left_click_and_hold_action => GuiCategories::Unknown,
222            WidgetProperty::line_cap => GuiCategories::Unknown,
223            WidgetProperty::line_feather_distance => GuiCategories::Unknown,
224            WidgetProperty::line_type => GuiCategories::Unknown,
225            WidgetProperty::list => GuiCategories::Unknown,
226            WidgetProperty::Loop => GuiCategories::Unknown,
227            WidgetProperty::loopinterval => GuiCategories::Unknown,
228            WidgetProperty::lowpriotextcontext => GuiCategories::Unknown,
229            WidgetProperty::margin => GuiCategories::Unknown,
230            WidgetProperty::margin_bottom => GuiCategories::Unknown,
231            WidgetProperty::margin_left => GuiCategories::Unknown,
232            WidgetProperty::margin_right => GuiCategories::Unknown,
233            WidgetProperty::margin_top => GuiCategories::Unknown,
234            WidgetProperty::marker => GuiCategories::Unknown,
235            WidgetProperty::mask => GuiCategories::Unknown,
236            WidgetProperty::mask_uv_scale => GuiCategories::Unknown,
237            WidgetProperty::max => GuiCategories::Unknown,
238            WidgetProperty::max_aspect_ratio => GuiCategories::Unknown,
239            WidgetProperty::max_height => GuiCategories::Widget,
240            WidgetProperty::max_update_rate => GuiCategories::Unknown,
241            WidgetProperty::max_width => GuiCategories::Widget,
242            WidgetProperty::maxcharacters => GuiCategories::Unknown,
243            WidgetProperty::maxhorizontalslots => GuiCategories::Unknown,
244            WidgetProperty::maximumsize => GuiCategories::Widget,
245            WidgetProperty::maxverticalslots => GuiCategories::Unknown,
246            WidgetProperty::min => GuiCategories::Unknown,
247            WidgetProperty::min_dist_from_screen_edge => GuiCategories::Unknown,
248            WidgetProperty::min_height => GuiCategories::Widget,
249            WidgetProperty::min_width => GuiCategories::Widget,
250            WidgetProperty::minimumsize => GuiCategories::Widget,
251            WidgetProperty::mipmaplodbias => GuiCategories::Unknown,
252            WidgetProperty::mirror => GuiCategories::Unknown,
253            WidgetProperty::modal => GuiCategories::Widget,
254            WidgetProperty::modality => GuiCategories::Widget,
255            WidgetProperty::modify_texture => GuiCategories::Unknown,
256            WidgetProperty::movable => GuiCategories::Unknown,
257            WidgetProperty::multiline => GuiCategories::Unknown,
258            WidgetProperty::name => GuiCategories::Widget,
259            WidgetProperty::next => GuiCategories::Unknown,
260            WidgetProperty::noprogresstexture => GuiCategories::Unknown,
261            WidgetProperty::odd_row_widget => GuiCategories::Unknown,
262            WidgetProperty::on_action => GuiCategories::Unknown,
263            WidgetProperty::on_action_with_params => GuiCategories::Unknown,
264            WidgetProperty::on_escape_pressed => GuiCategories::Unknown,
265            WidgetProperty::on_finish => GuiCategories::Unknown,
266            WidgetProperty::on_input_action_shortcut => GuiCategories::Unknown,
267            WidgetProperty::on_keyframe_move => GuiCategories::Unknown,
268            WidgetProperty::on_start => GuiCategories::Unknown,
269            WidgetProperty::onalt => GuiCategories::Unknown,
270            WidgetProperty::onchangefinish => GuiCategories::Unknown,
271            WidgetProperty::onchangestart => GuiCategories::Unknown,
272            WidgetProperty::onclick => GuiCategories::Unknown,
273            WidgetProperty::oncolorchanged => GuiCategories::Unknown,
274            WidgetProperty::oncoloredited => GuiCategories::Unknown,
275            WidgetProperty::oncreate => GuiCategories::Widget,
276            WidgetProperty::onctrl => GuiCategories::Unknown,
277            WidgetProperty::ondatacontextchanged => GuiCategories::Unknown,
278            WidgetProperty::ondefault => GuiCategories::Unknown,
279            WidgetProperty::ondoubleclick => GuiCategories::Unknown,
280            WidgetProperty::oneditingfinished => GuiCategories::Unknown,
281            WidgetProperty::oneditingfinished_with_changes => GuiCategories::Unknown,
282            WidgetProperty::oneditingstart => GuiCategories::Unknown,
283            WidgetProperty::onenter_signal => GuiCategories::Unknown,
284            WidgetProperty::onfocusout => GuiCategories::Unknown,
285            WidgetProperty::onleave_signal => GuiCategories::Unknown,
286            WidgetProperty::onmousedragfinished => GuiCategories::Unknown,
287            WidgetProperty::onmousedragged => GuiCategories::Unknown,
288            WidgetProperty::onmousedragstarted => GuiCategories::Unknown,
289            WidgetProperty::onmousehierarchyenter => GuiCategories::Widget,
290            WidgetProperty::onmousehierarchyleave => GuiCategories::Widget,
291            WidgetProperty::onpressed => GuiCategories::Unknown,
292            WidgetProperty::onreleased => GuiCategories::Unknown,
293            WidgetProperty::onreturnpressed => GuiCategories::Unknown,
294            WidgetProperty::onrightclick => GuiCategories::Unknown,
295            WidgetProperty::onrightpressed => GuiCategories::Unknown,
296            WidgetProperty::onrightreleased => GuiCategories::Unknown,
297            WidgetProperty::onselectionchanged => GuiCategories::Unknown,
298            WidgetProperty::onshift => GuiCategories::Unknown,
299            WidgetProperty::ontextchanged => GuiCategories::Unknown,
300            WidgetProperty::ontextcontextchanged => GuiCategories::Unknown,
301            WidgetProperty::ontextedited => GuiCategories::Unknown,
302            WidgetProperty::onvaluechanged => GuiCategories::Unknown,
303            WidgetProperty::open_sound => GuiCategories::Unknown,
304            WidgetProperty::overframe => GuiCategories::Unknown,
305            WidgetProperty::oversound => GuiCategories::Unknown,
306            WidgetProperty::page => GuiCategories::Unknown,
307            WidgetProperty::pan_position => GuiCategories::Unknown,
308            WidgetProperty::parameter => GuiCategories::Unknown,
309            WidgetProperty::params => GuiCategories::Unknown,
310            WidgetProperty::parentanchor => GuiCategories::Widget,
311            WidgetProperty::password => GuiCategories::Unknown,
312            WidgetProperty::plotpoints => GuiCategories::Widget,
313            WidgetProperty::plotrect => GuiCategories::Unknown,
314            WidgetProperty::points => GuiCategories::Widget,
315            WidgetProperty::pop_out => GuiCategories::Unknown,
316            WidgetProperty::pop_out_v => GuiCategories::Unknown,
317            WidgetProperty::portrait_context => GuiCategories::Widget,
318            WidgetProperty::portrait_offset => GuiCategories::Unknown,
319            WidgetProperty::portrait_scale => GuiCategories::Unknown,
320            WidgetProperty::portrait_texture => GuiCategories::Unknown,
321            WidgetProperty::position => GuiCategories::Widget,
322            WidgetProperty::position_x => GuiCategories::Unknown,
323            WidgetProperty::position_y => GuiCategories::Unknown,
324            WidgetProperty::preferscrollwidgetsize => GuiCategories::Unknown,
325            WidgetProperty::primary_color => GuiCategories::Unknown,
326            WidgetProperty::progress_change_to_duration_curve => GuiCategories::Unknown,
327            WidgetProperty::progresstexture => GuiCategories::Unknown,
328            WidgetProperty::proposer => GuiCategories::Unknown,
329            WidgetProperty::pseudo_localization_enabled => GuiCategories::Unknown,
330            WidgetProperty::ranged_slider => GuiCategories::Unknown,
331            WidgetProperty::raw_text => GuiCategories::Widget,
332            WidgetProperty::raw_tooltip => GuiCategories::Widget,
333            WidgetProperty::realtime => GuiCategories::Unknown,
334            WidgetProperty::recursive => GuiCategories::Unknown,
335            WidgetProperty::render_pass => GuiCategories::Unknown,
336            WidgetProperty::reorder_on_mouse => GuiCategories::Unknown,
337            WidgetProperty::resizable => GuiCategories::Unknown,
338            WidgetProperty::resizeparent => GuiCategories::Widget,
339            WidgetProperty::resizetofit => GuiCategories::Unknown,
340            WidgetProperty::restart_on_show => GuiCategories::Unknown,
341            WidgetProperty::restrictparent_min => GuiCategories::Unknown,
342            WidgetProperty::reuse_widgets => GuiCategories::Unknown,
343            WidgetProperty::right_action => GuiCategories::Unknown,
344            WidgetProperty::right_click_and_hold_action => GuiCategories::Unknown,
345            WidgetProperty::rightclick_modifiers => GuiCategories::Unknown,
346            WidgetProperty::rightclicksound => GuiCategories::Unknown,
347            WidgetProperty::righttoleft => GuiCategories::Unknown,
348            WidgetProperty::rotate_uv => GuiCategories::Unknown,
349            WidgetProperty::row_height => GuiCategories::Unknown,
350            WidgetProperty::scale => GuiCategories::Widget,
351            WidgetProperty::scale_mode => GuiCategories::Unknown,
352            WidgetProperty::scene => GuiCategories::Unknown,
353            WidgetProperty::scissor => GuiCategories::Widget,
354            WidgetProperty::screen_grab => GuiCategories::Unknown,
355            WidgetProperty::scrollbar_horizontal => GuiCategories::Unknown,
356            WidgetProperty::scrollbar_vertical => GuiCategories::Unknown,
357            WidgetProperty::scrollbaralign_horizontal => GuiCategories::Unknown,
358            WidgetProperty::scrollbaralign_vertical => GuiCategories::Unknown,
359            WidgetProperty::scrollbarpolicy_horizontal => GuiCategories::Unknown,
360            WidgetProperty::scrollbarpolicy_vertical => GuiCategories::Unknown,
361            WidgetProperty::scrollwidget => GuiCategories::Unknown,
362            WidgetProperty::secondary_color => GuiCategories::Unknown,
363            WidgetProperty::selectallonfocus => GuiCategories::Unknown,
364            WidgetProperty::selectedindex => GuiCategories::Widget,
365            WidgetProperty::selectioncolor => GuiCategories::Unknown,
366            WidgetProperty::set_parent_dimension_to_minimum => GuiCategories::Unknown,
367            WidgetProperty::set_parent_size_to_minimum => GuiCategories::Unknown,
368            WidgetProperty::setitemsizefromcell => GuiCategories::Unknown,
369            WidgetProperty::shaderfile => GuiCategories::Widget,
370            WidgetProperty::shortcut => GuiCategories::Widget,
371            WidgetProperty::size => GuiCategories::Widget,
372            WidgetProperty::skip_initial_animation => GuiCategories::Unknown,
373            WidgetProperty::slider => GuiCategories::Unknown,
374            WidgetProperty::snap_to_pixels => GuiCategories::Unknown,
375            WidgetProperty::soundeffect => GuiCategories::Unknown,
376            WidgetProperty::soundparam => GuiCategories::Unknown,
377            WidgetProperty::spacing => GuiCategories::Unknown,
378            WidgetProperty::speed => GuiCategories::Unknown,
379            WidgetProperty::spriteborder => GuiCategories::Unknown,
380            WidgetProperty::spriteborder_bottom => GuiCategories::Unknown,
381            WidgetProperty::spriteborder_left => GuiCategories::Unknown,
382            WidgetProperty::spriteborder_right => GuiCategories::Unknown,
383            WidgetProperty::spriteborder_top => GuiCategories::Unknown,
384            WidgetProperty::spritetype => GuiCategories::Widget,
385            WidgetProperty::stackmode => GuiCategories::Unknown,
386            WidgetProperty::start_sound => GuiCategories::Unknown,
387            WidgetProperty::startangle => GuiCategories::Unknown,
388            WidgetProperty::state => GuiCategories::Widget,
389            WidgetProperty::step => GuiCategories::Unknown,
390            WidgetProperty::sticky => GuiCategories::Unknown,
391            WidgetProperty::tabfocusroot => GuiCategories::Widget,
392            WidgetProperty::tagtooltip_enabled => GuiCategories::Unknown,
393            WidgetProperty::tertiary_color => GuiCategories::Unknown,
394            WidgetProperty::text => GuiCategories::Widget,
395            WidgetProperty::text_selectable => GuiCategories::Unknown,
396            WidgetProperty::text_validator => GuiCategories::Widget,
397            WidgetProperty::textcontext => GuiCategories::Unknown,
398            WidgetProperty::texture => GuiCategories::Unknown,
399            WidgetProperty::texture_density => GuiCategories::Unknown,
400            WidgetProperty::timeline_line_direction => GuiCategories::Unknown,
401            WidgetProperty::timeline_line_height => GuiCategories::Unknown,
402            WidgetProperty::timeline_texts => GuiCategories::Unknown,
403            WidgetProperty::timeline_time_points => GuiCategories::Unknown,
404            WidgetProperty::tintcolor => GuiCategories::Unknown,
405            WidgetProperty::title => GuiCategories::Unknown,
406            WidgetProperty::to => GuiCategories::Unknown,
407            WidgetProperty::tooltip => GuiCategories::Widget,
408            WidgetProperty::tooltip_enabled => GuiCategories::Widget,
409            WidgetProperty::tooltip_horizontalbehavior => GuiCategories::Widget,
410            WidgetProperty::tooltip_offset => GuiCategories::Widget,
411            WidgetProperty::tooltip_parentanchor => GuiCategories::Widget,
412            WidgetProperty::tooltip_type => GuiCategories::Widget,
413            WidgetProperty::tooltip_verticalbehavior => GuiCategories::Widget,
414            WidgetProperty::tooltip_visible => GuiCategories::Widget,
415            WidgetProperty::tooltip_when_disabled => GuiCategories::Widget,
416            WidgetProperty::tooltip_widgetanchor => GuiCategories::Widget,
417            WidgetProperty::tooltipmeta => GuiCategories::Unknown,
418            WidgetProperty::tooltipwidget => GuiCategories::Widget,
419            WidgetProperty::track => GuiCategories::Unknown,
420            WidgetProperty::track_highlight => GuiCategories::Unknown,
421            WidgetProperty::track_range => GuiCategories::Unknown,
422            WidgetProperty::tracknavigation => GuiCategories::Unknown,
423            WidgetProperty::translate_uv => GuiCategories::Unknown,
424            WidgetProperty::trigger_on_create => GuiCategories::Unknown,
425            WidgetProperty::trigger_when => GuiCategories::Unknown,
426            WidgetProperty::upframe => GuiCategories::Unknown,
427            WidgetProperty::uphoverframe => GuiCategories::Unknown,
428            WidgetProperty::uppressedframe => GuiCategories::Unknown,
429            WidgetProperty::url => GuiCategories::Unknown,
430            WidgetProperty::use_for_loading_screen => GuiCategories::Unknown,
431            WidgetProperty::use_global_input_instance => GuiCategories::Unknown,
432            WidgetProperty::useragent => GuiCategories::Unknown,
433            WidgetProperty::uv_scale => GuiCategories::Unknown,
434            WidgetProperty::value => GuiCategories::Unknown,
435            WidgetProperty::video => GuiCategories::Unknown,
436            WidgetProperty::viewportwidget => GuiCategories::Unknown,
437            WidgetProperty::visible => GuiCategories::Widget,
438            WidgetProperty::visible_at_creation => GuiCategories::Widget,
439            WidgetProperty::wheelstep => GuiCategories::Unknown,
440            WidgetProperty::widgetanchor => GuiCategories::Widget,
441            WidgetProperty::widgetid => GuiCategories::Widget,
442            WidgetProperty::width => GuiCategories::Unknown,
443            WidgetProperty::wrap_count => GuiCategories::Unknown,
444            WidgetProperty::wrap_length => GuiCategories::Unknown,
445            WidgetProperty::zoom => GuiCategories::Unknown,
446            WidgetProperty::zoom_max => GuiCategories::Unknown,
447            WidgetProperty::zoom_min => GuiCategories::Unknown,
448            WidgetProperty::zoom_speed => GuiCategories::Unknown,
449            WidgetProperty::zoom_step => GuiCategories::Unknown,
450            WidgetProperty::zoomwidget => GuiCategories::Unknown,
451        }
452    }
453
454    pub fn widget_as_container(builtin: BuiltinWidget) -> Self {
455        #[allow(clippy::match_same_arms)] // keep them alphabetic
456        match builtin {
457            BuiltinWidget::axis => GuiCategories::Unknown,
458            BuiltinWidget::background => GuiCategories::Unknown,
459            BuiltinWidget::button => GuiCategories::Unknown,
460            BuiltinWidget::button_group => GuiCategories::Unknown,
461            BuiltinWidget::cameracontrolwidget => GuiCategories::Unknown,
462            BuiltinWidget::checkbutton => GuiCategories::Unknown,
463            BuiltinWidget::colormap_picker => GuiCategories::Unknown,
464            BuiltinWidget::colorpicker => GuiCategories::Unknown,
465            BuiltinWidget::container => GuiCategories::Unknown,
466            BuiltinWidget::contextmenu => GuiCategories::Unknown,
467            BuiltinWidget::datacontext_from_model => GuiCategories::Unknown,
468            BuiltinWidget::dockable_container => GuiCategories::Unknown,
469            BuiltinWidget::drag_drop_icon => GuiCategories::Unknown,
470            BuiltinWidget::drag_drop_target => GuiCategories::Unknown,
471            BuiltinWidget::dragdropicon => GuiCategories::Unknown,
472            BuiltinWidget::dragdroptarget => GuiCategories::Unknown,
473            BuiltinWidget::dropdown => GuiCategories::Unknown,
474            BuiltinWidget::dynamicgridbox => GuiCategories::Unknown,
475            BuiltinWidget::editbox => GuiCategories::Unknown,
476            BuiltinWidget::fixedgridbox => GuiCategories::Unknown,
477            BuiltinWidget::flowcontainer => GuiCategories::Unknown,
478            BuiltinWidget::game_button => GuiCategories::Unknown,
479            BuiltinWidget::hbox => GuiCategories::Unknown,
480            BuiltinWidget::icon => GuiCategories::Unknown,
481            BuiltinWidget::line => GuiCategories::Unknown,
482            BuiltinWidget::line_deprecated => GuiCategories::Unknown,
483            BuiltinWidget::margin_widget => GuiCategories::Unknown,
484            BuiltinWidget::mini_map => GuiCategories::Unknown,
485            BuiltinWidget::minimap => GuiCategories::Unknown,
486            BuiltinWidget::minimap_window => GuiCategories::Unknown,
487            BuiltinWidget::overlappingitembox => GuiCategories::Unknown,
488            BuiltinWidget::piechart => GuiCategories::Unknown,
489            BuiltinWidget::pieslice => GuiCategories::Unknown,
490            BuiltinWidget::plotline => GuiCategories::Unknown,
491            BuiltinWidget::portrait_button => GuiCategories::Unknown,
492            BuiltinWidget::progressbar => GuiCategories::Unknown,
493            BuiltinWidget::right_click_menu_widget => GuiCategories::Unknown,
494            BuiltinWidget::scrollarea => GuiCategories::Unknown,
495            BuiltinWidget::scrollbar => GuiCategories::Unknown,
496            BuiltinWidget::taborder => GuiCategories::Unknown,
497            BuiltinWidget::target => GuiCategories::Unknown,
498            BuiltinWidget::text_occluder => GuiCategories::Unknown,
499            BuiltinWidget::textbox => GuiCategories::Unknown,
500            BuiltinWidget::tools_dragdrop_widget => GuiCategories::Unknown,
501            BuiltinWidget::tools_keyframe_button => GuiCategories::Unknown,
502            BuiltinWidget::tools_keyframe_editor => GuiCategories::Unknown,
503            BuiltinWidget::tools_keyframe_editor_lane => GuiCategories::Unknown,
504            BuiltinWidget::tools_player_timeline => GuiCategories::Unknown,
505            BuiltinWidget::tools_table => GuiCategories::Unknown,
506            BuiltinWidget::tree => GuiCategories::Unknown,
507            BuiltinWidget::treemapchart => GuiCategories::Unknown,
508            BuiltinWidget::treemapslice => GuiCategories::Unknown,
509            BuiltinWidget::vbox => GuiCategories::Unknown,
510            BuiltinWidget::webwindow => GuiCategories::Unknown,
511            BuiltinWidget::widget => GuiCategories::Widget,
512            BuiltinWidget::window => GuiCategories::Unknown,
513            BuiltinWidget::zoomarea => GuiCategories::Unknown,
514        }
515    }
516}