tiger_lib/gui/
categories.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
//! Categories bind containers and properties together.
//! A property can be inside a container if it shares a category with that container.

use bitflags::bitflags;

use crate::gui::{BuiltinWidget, WidgetProperty};

bitflags! {
/// Categories bind containers and properties together.
/// A property can be inside a container if it shares a category with that container.
///
/// There is a special category `Unknown` for where we don't know the categories.
/// An `Unknown` property will fit into any container, and an `Unknown` container can hold any property.
// LAST UPDATED CK3 VERSION 1.9.2
// LAST UPDATED VIC3 VERSION 1.6.0
// LAST UPDATED IR VERSION 2.0.3
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
    pub struct GuiCategories: u8 {
        // Properties that are accepted in all widget types
        const Widget = 0x01;

        const Unknown = 0xff;
    }
}

impl GuiCategories {
    pub fn property_as_container(prop: WidgetProperty) -> Self {
        #[allow(clippy::match_same_arms)] // keep them alphabetic
        match prop {
            // These are the ComplexProperty properties
            WidgetProperty::animation => GuiCategories::Unknown,
            WidgetProperty::attachto => GuiCategories::Unknown,
            WidgetProperty::click_modifiers => GuiCategories::Unknown,
            WidgetProperty::end_sound | WidgetProperty::start_sound => GuiCategories::Unknown,
            WidgetProperty::glow => GuiCategories::Unknown,
            WidgetProperty::glow_generation_rules => GuiCategories::Unknown,
            WidgetProperty::modify_texture => GuiCategories::Unknown,
            WidgetProperty::rightclick_modifiers => GuiCategories::Unknown,
            WidgetProperty::soundparam => GuiCategories::Unknown,
            WidgetProperty::state => GuiCategories::Unknown,

            _ => GuiCategories::Unknown,
        }
    }

    pub fn property_in_container(prop: WidgetProperty) -> Self {
        #[allow(clippy::match_same_arms)] // keep them alphabetic
        match prop {
            WidgetProperty::accept_tabs => GuiCategories::Unknown,
            WidgetProperty::active_item => GuiCategories::Unknown,
            WidgetProperty::addcolumn => GuiCategories::Unknown,
            WidgetProperty::addrow => GuiCategories::Unknown,
            WidgetProperty::align => GuiCategories::Unknown,
            WidgetProperty::allow_outside => GuiCategories::Widget,
            WidgetProperty::alpha => GuiCategories::Widget,
            WidgetProperty::alwaystransparent => GuiCategories::Widget,
            WidgetProperty::animate_negative_changes => GuiCategories::Unknown,
            WidgetProperty::animation => GuiCategories::Unknown,
            WidgetProperty::animation_speed => GuiCategories::Unknown,
            WidgetProperty::attachto => GuiCategories::Widget,
            WidgetProperty::autoresize => GuiCategories::Unknown,
            WidgetProperty::autoresize_slider => GuiCategories::Unknown,
            WidgetProperty::autoresizescrollarea => GuiCategories::Unknown,
            WidgetProperty::autoresizeviewport => GuiCategories::Unknown,
            WidgetProperty::axis_label => GuiCategories::Unknown,
            WidgetProperty::background_texture => GuiCategories::Unknown,
            WidgetProperty::bezier => GuiCategories::Unknown,
            WidgetProperty::blend_mode => GuiCategories::Unknown,
            WidgetProperty::bottomtotop => GuiCategories::Unknown,
            WidgetProperty::button_ignore => GuiCategories::Unknown,
            WidgetProperty::button_trigger => GuiCategories::Unknown,
            WidgetProperty::buttontext => GuiCategories::Unknown,
            WidgetProperty::camera_fov_y_degrees => GuiCategories::Unknown,
            WidgetProperty::camera_look_at => GuiCategories::Unknown,
            WidgetProperty::camera_near_far => GuiCategories::Unknown,
            WidgetProperty::camera_position => GuiCategories::Unknown,
            WidgetProperty::camera_rotation_pitch_limits => GuiCategories::Unknown,
            WidgetProperty::camera_translation_limits => GuiCategories::Unknown,
            WidgetProperty::camera_zoom_limits => GuiCategories::Unknown,
            WidgetProperty::checked => GuiCategories::Unknown,
            WidgetProperty::click_modifiers => GuiCategories::Unknown,
            WidgetProperty::clicksound => GuiCategories::Unknown,
            WidgetProperty::coat_of_arms => GuiCategories::Unknown,
            WidgetProperty::coat_of_arms_mask => GuiCategories::Unknown,
            WidgetProperty::coat_of_arms_slot => GuiCategories::Widget,
            WidgetProperty::color => GuiCategories::Unknown,
            WidgetProperty::colorpicker_reticule_icon => GuiCategories::Unknown,
            WidgetProperty::constantbuffers => GuiCategories::Widget,
            WidgetProperty::cursorcolor => GuiCategories::Unknown,
            WidgetProperty::datacontext => GuiCategories::Widget,
            WidgetProperty::datamodel => GuiCategories::Widget,
            WidgetProperty::datamodel_reuse_widgets => GuiCategories::Widget,
            WidgetProperty::datamodel_wrap => GuiCategories::Widget,
            WidgetProperty::dec_button => GuiCategories::Unknown,
            WidgetProperty::default_clicksound => GuiCategories::Widget,
            WidgetProperty::default_format => GuiCategories::Unknown,
            WidgetProperty::delay => GuiCategories::Unknown,
            WidgetProperty::direction => GuiCategories::Unknown,
            WidgetProperty::disableframe => GuiCategories::Unknown,
            WidgetProperty::distribute_visual_state => GuiCategories::Unknown,
            WidgetProperty::down => GuiCategories::Unknown,
            WidgetProperty::downframe => GuiCategories::Unknown,
            WidgetProperty::downhoverframe => GuiCategories::Unknown,
            WidgetProperty::downpressedframe => GuiCategories::Unknown,
            WidgetProperty::drag_drop_args => GuiCategories::Widget,
            WidgetProperty::drag_drop_base_type => GuiCategories::Unknown,
            WidgetProperty::drag_drop_data => GuiCategories::Widget,
            WidgetProperty::drag_drop_id => GuiCategories::Unknown,
            WidgetProperty::dragdropargs => GuiCategories::Unknown,
            WidgetProperty::dragdropid => GuiCategories::Unknown,
            WidgetProperty::draggable_by => GuiCategories::Unknown,
            WidgetProperty::droptarget => GuiCategories::Widget,
            WidgetProperty::duration => GuiCategories::Unknown,
            WidgetProperty::effect => GuiCategories::Unknown,
            WidgetProperty::effectname => GuiCategories::Widget,
            WidgetProperty::elide => GuiCategories::Unknown,
            WidgetProperty::enabled => GuiCategories::Widget,
            WidgetProperty::end_sound => GuiCategories::Unknown,
            WidgetProperty::endangle => GuiCategories::Unknown,
            WidgetProperty::entity_enable_sound => GuiCategories::Unknown,
            WidgetProperty::entity_instance => GuiCategories::Unknown,
            WidgetProperty::even_row_widget => GuiCategories::Unknown,
            WidgetProperty::expand_item => GuiCategories::Unknown,
            WidgetProperty::expandbutton => GuiCategories::Widget,
            WidgetProperty::filter_mouse => GuiCategories::Widget,
            WidgetProperty::fittype => GuiCategories::Unknown,
            WidgetProperty::flipdirection => GuiCategories::Unknown,
            WidgetProperty::focus_on_visible => GuiCategories::Widget,
            WidgetProperty::focuspolicy => GuiCategories::Widget,
            WidgetProperty::font => GuiCategories::Unknown,
            WidgetProperty::fontcolor => GuiCategories::Unknown,
            WidgetProperty::fontsize => GuiCategories::Unknown,
            WidgetProperty::fontsize_min => GuiCategories::Unknown,
            WidgetProperty::fonttintcolor => GuiCategories::Unknown,
            WidgetProperty::fontweight => GuiCategories::Unknown,
            WidgetProperty::force_data_properties_update => GuiCategories::Widget,
            WidgetProperty::forcedown => GuiCategories::Unknown,
            WidgetProperty::format_override => GuiCategories::Unknown,
            WidgetProperty::frame => GuiCategories::Unknown,
            WidgetProperty::frame_tier => GuiCategories::Unknown,
            WidgetProperty::framesize => GuiCategories::Unknown,
            WidgetProperty::from => GuiCategories::Widget,
            WidgetProperty::gfx_environment_file => GuiCategories::Unknown,
            WidgetProperty::gfxtype => GuiCategories::Widget,
            WidgetProperty::glow => GuiCategories::Unknown,
            WidgetProperty::glow_alpha => GuiCategories::Unknown,
            WidgetProperty::glow_alpha_mask => GuiCategories::Unknown,
            WidgetProperty::glow_blur_passes => GuiCategories::Unknown,
            WidgetProperty::glow_generation_rules => GuiCategories::Unknown,
            WidgetProperty::glow_ignore_inside_pixels => GuiCategories::Unknown,
            WidgetProperty::glow_radius => GuiCategories::Unknown,
            WidgetProperty::glow_texture_downscale => GuiCategories::Unknown,
            WidgetProperty::grayscale => GuiCategories::Unknown,
            WidgetProperty::grid_entity_name => GuiCategories::Unknown,
            WidgetProperty::header_height => GuiCategories::Unknown,
            WidgetProperty::highlightchecked => GuiCategories::Unknown,
            WidgetProperty::ignore_in_debug_draw => GuiCategories::Widget,
            WidgetProperty::ignore_unset_buttons => GuiCategories::Unknown,
            WidgetProperty::ignoreinvisible => GuiCategories::Unknown,
            WidgetProperty::inc_button => GuiCategories::Unknown,
            WidgetProperty::indent => GuiCategories::Unknown,
            WidgetProperty::index => GuiCategories::Unknown,
            WidgetProperty::inherit_data_context => GuiCategories::Unknown,
            WidgetProperty::inherit_visibility => GuiCategories::Unknown,
            WidgetProperty::inherit_visual_state => GuiCategories::Unknown,
            WidgetProperty::input_action => GuiCategories::Widget,
            WidgetProperty::intersectionmask => GuiCategories::Widget,
            WidgetProperty::intersectionmask_texture => GuiCategories::Unknown,
            WidgetProperty::invert_reticule_color => GuiCategories::Unknown,
            WidgetProperty::invertprogress => GuiCategories::Unknown,
            WidgetProperty::item => GuiCategories::Widget,
            WidgetProperty::keyframe_editor_lane_container => GuiCategories::Unknown,
            WidgetProperty::layer => GuiCategories::Widget,
            WidgetProperty::layoutanchor => GuiCategories::Unknown,
            WidgetProperty::layoutpolicy_horizontal => GuiCategories::Widget,
            WidgetProperty::layoutpolicy_vertical => GuiCategories::Widget,
            WidgetProperty::layoutstretchfactor_horizontal => GuiCategories::Widget,
            WidgetProperty::layoutstretchfactor_vertical => GuiCategories::Widget,
            WidgetProperty::line_cap => GuiCategories::Unknown,
            WidgetProperty::line_feather_distance => GuiCategories::Unknown,
            WidgetProperty::line_type => GuiCategories::Unknown,
            WidgetProperty::list => GuiCategories::Unknown,
            WidgetProperty::Loop => GuiCategories::Unknown,
            WidgetProperty::loopinterval => GuiCategories::Unknown,
            WidgetProperty::margin => GuiCategories::Unknown,
            WidgetProperty::margin_bottom => GuiCategories::Unknown,
            WidgetProperty::margin_left => GuiCategories::Unknown,
            WidgetProperty::margin_right => GuiCategories::Unknown,
            WidgetProperty::margin_top => GuiCategories::Unknown,
            WidgetProperty::marker => GuiCategories::Unknown,
            WidgetProperty::mask => GuiCategories::Unknown,
            WidgetProperty::mask_uv_scale => GuiCategories::Unknown,
            WidgetProperty::max => GuiCategories::Unknown,
            WidgetProperty::max_height => GuiCategories::Widget,
            WidgetProperty::max_update_rate => GuiCategories::Unknown,
            WidgetProperty::max_width => GuiCategories::Widget,
            WidgetProperty::maxcharacters => GuiCategories::Unknown,
            WidgetProperty::maxhorizontalslots => GuiCategories::Unknown,
            WidgetProperty::maximumsize => GuiCategories::Widget,
            WidgetProperty::maxverticalslots => GuiCategories::Unknown,
            WidgetProperty::min => GuiCategories::Unknown,
            WidgetProperty::min_dist_from_screen_edge => GuiCategories::Unknown,
            WidgetProperty::min_height => GuiCategories::Widget,
            WidgetProperty::min_width => GuiCategories::Widget,
            WidgetProperty::minimumsize => GuiCategories::Widget,
            WidgetProperty::mipmaplodbias => GuiCategories::Unknown,
            WidgetProperty::mirror => GuiCategories::Unknown,
            WidgetProperty::modal => GuiCategories::Widget,
            WidgetProperty::modality => GuiCategories::Widget,
            WidgetProperty::modify_texture => GuiCategories::Unknown,
            WidgetProperty::movable => GuiCategories::Unknown,
            WidgetProperty::multiline => GuiCategories::Unknown,
            WidgetProperty::name => GuiCategories::Widget,
            WidgetProperty::next => GuiCategories::Unknown,
            WidgetProperty::noprogresstexture => GuiCategories::Unknown,
            WidgetProperty::odd_row_widget => GuiCategories::Unknown,
            WidgetProperty::on_finish => GuiCategories::Unknown,
            WidgetProperty::on_keyframe_move => GuiCategories::Unknown,
            WidgetProperty::on_start => GuiCategories::Unknown,
            WidgetProperty::onalt => GuiCategories::Unknown,
            WidgetProperty::onchangefinish => GuiCategories::Unknown,
            WidgetProperty::onchangestart => GuiCategories::Unknown,
            WidgetProperty::onclick => GuiCategories::Unknown,
            WidgetProperty::onctrl => GuiCategories::Unknown,
            WidgetProperty::oncolorchanged => GuiCategories::Unknown,
            WidgetProperty::oncoloredited => GuiCategories::Unknown,
            WidgetProperty::oncreate => GuiCategories::Widget,
            WidgetProperty::ondatacontextchanged => GuiCategories::Unknown,
            WidgetProperty::ondefault => GuiCategories::Unknown,
            WidgetProperty::ondoubleclick => GuiCategories::Unknown,
            WidgetProperty::oneditingfinished => GuiCategories::Unknown,
            WidgetProperty::oneditingfinished_with_changes => GuiCategories::Unknown,
            WidgetProperty::oneditingstart => GuiCategories::Unknown,
            WidgetProperty::onenter_signal => GuiCategories::Unknown,
            WidgetProperty::onfocusout => GuiCategories::Unknown,
            WidgetProperty::onleave_signal => GuiCategories::Unknown,
            WidgetProperty::onmousehierarchyenter => GuiCategories::Widget,
            WidgetProperty::onmousehierarchyleave => GuiCategories::Widget,
            WidgetProperty::onpressed => GuiCategories::Unknown,
            WidgetProperty::onreleased => GuiCategories::Unknown,
            WidgetProperty::onreturnpressed => GuiCategories::Unknown,
            WidgetProperty::onrightclick => GuiCategories::Unknown,
            WidgetProperty::onselectionchanged => GuiCategories::Unknown,
            WidgetProperty::onshift => GuiCategories::Unknown,
            WidgetProperty::ontextchanged => GuiCategories::Unknown,
            WidgetProperty::ontextedited => GuiCategories::Unknown,
            WidgetProperty::onvaluechanged => GuiCategories::Unknown,
            WidgetProperty::overframe => GuiCategories::Unknown,
            WidgetProperty::oversound => GuiCategories::Unknown,
            WidgetProperty::page => GuiCategories::Unknown,
            WidgetProperty::pan_position => GuiCategories::Unknown,
            WidgetProperty::parentanchor => GuiCategories::Widget,
            WidgetProperty::password => GuiCategories::Unknown,
            WidgetProperty::plotpoints => GuiCategories::Widget,
            WidgetProperty::points => GuiCategories::Widget,
            WidgetProperty::pop_out => GuiCategories::Unknown,
            WidgetProperty::pop_out_v => GuiCategories::Unknown,
            WidgetProperty::portrait_context => GuiCategories::Widget,
            WidgetProperty::portrait_offset => GuiCategories::Unknown,
            WidgetProperty::portrait_scale => GuiCategories::Unknown,
            WidgetProperty::portrait_texture => GuiCategories::Unknown,
            WidgetProperty::position => GuiCategories::Widget,
            WidgetProperty::position_x => GuiCategories::Unknown,
            WidgetProperty::position_y => GuiCategories::Unknown,
            WidgetProperty::preferscrollwidgetsize => GuiCategories::Unknown,
            WidgetProperty::progress_change_to_duration_curve => GuiCategories::Unknown,
            WidgetProperty::progresstexture => GuiCategories::Unknown,
            WidgetProperty::pseudo_localization_enabled => GuiCategories::Unknown,
            WidgetProperty::raw_text => GuiCategories::Widget,
            WidgetProperty::raw_tooltip => GuiCategories::Widget,
            WidgetProperty::realtime => GuiCategories::Unknown,
            WidgetProperty::recursive => GuiCategories::Unknown,
            WidgetProperty::reorder_on_mouse => GuiCategories::Unknown,
            WidgetProperty::resizable => GuiCategories::Unknown,
            WidgetProperty::resizeparent => GuiCategories::Widget,
            WidgetProperty::restart_on_show => GuiCategories::Unknown,
            WidgetProperty::restrictparent_min => GuiCategories::Unknown,
            WidgetProperty::reuse_widgets => GuiCategories::Unknown,
            WidgetProperty::rightclick_modifiers => GuiCategories::Unknown,
            WidgetProperty::rightclicksound => GuiCategories::Unknown,
            WidgetProperty::righttoleft => GuiCategories::Unknown,
            WidgetProperty::rotate_uv => GuiCategories::Unknown,
            WidgetProperty::row_height => GuiCategories::Unknown,
            WidgetProperty::scale => GuiCategories::Widget,
            WidgetProperty::scale_mode => GuiCategories::Unknown,
            WidgetProperty::scissor => GuiCategories::Widget,
            WidgetProperty::scrollbar_horizontal => GuiCategories::Unknown,
            WidgetProperty::scrollbar_vertical => GuiCategories::Unknown,
            WidgetProperty::scrollbaralign_horizontal => GuiCategories::Unknown,
            WidgetProperty::scrollbaralign_vertical => GuiCategories::Unknown,
            WidgetProperty::scrollbarpolicy_horizontal => GuiCategories::Unknown,
            WidgetProperty::scrollbarpolicy_vertical => GuiCategories::Unknown,
            WidgetProperty::scrollwidget => GuiCategories::Unknown,
            WidgetProperty::selectallonfocus => GuiCategories::Unknown,
            WidgetProperty::selectedindex => GuiCategories::Widget,
            WidgetProperty::selectioncolor => GuiCategories::Unknown,
            WidgetProperty::set_parent_size_to_minimum => GuiCategories::Unknown,
            WidgetProperty::setitemsizefromcell => GuiCategories::Unknown,
            WidgetProperty::shaderfile => GuiCategories::Widget,
            WidgetProperty::shortcut => GuiCategories::Widget,
            WidgetProperty::size => GuiCategories::Widget,
            WidgetProperty::skip_initial_animation => GuiCategories::Unknown,
            WidgetProperty::slider => GuiCategories::Unknown,
            WidgetProperty::snap_to_pixels => GuiCategories::Unknown,
            WidgetProperty::soundeffect => GuiCategories::Unknown,
            WidgetProperty::soundparam => GuiCategories::Unknown,
            WidgetProperty::spacing => GuiCategories::Unknown,
            WidgetProperty::spriteborder => GuiCategories::Unknown,
            WidgetProperty::spriteborder_bottom => GuiCategories::Unknown,
            WidgetProperty::spriteborder_left => GuiCategories::Unknown,
            WidgetProperty::spriteborder_right => GuiCategories::Unknown,
            WidgetProperty::spriteborder_top => GuiCategories::Unknown,
            WidgetProperty::spritetype => GuiCategories::Widget,
            WidgetProperty::stackmode => GuiCategories::Unknown,
            WidgetProperty::start_sound => GuiCategories::Unknown,
            WidgetProperty::startangle => GuiCategories::Unknown,
            WidgetProperty::state => GuiCategories::Widget,
            WidgetProperty::step => GuiCategories::Unknown,
            WidgetProperty::sticky => GuiCategories::Unknown,
            WidgetProperty::tabfocusroot => GuiCategories::Widget,
            WidgetProperty::text => GuiCategories::Widget,
            WidgetProperty::text_selectable => GuiCategories::Unknown,
            WidgetProperty::text_validator => GuiCategories::Widget,
            WidgetProperty::texture => GuiCategories::Unknown,
            WidgetProperty::texture_density => GuiCategories::Unknown,
            WidgetProperty::timeline_line_direction => GuiCategories::Unknown,
            WidgetProperty::timeline_line_height => GuiCategories::Unknown,
            WidgetProperty::timeline_texts => GuiCategories::Unknown,
            WidgetProperty::timeline_time_points => GuiCategories::Unknown,
            WidgetProperty::tintcolor => GuiCategories::Unknown,
            WidgetProperty::to => GuiCategories::Unknown,
            WidgetProperty::tooltip => GuiCategories::Widget,
            WidgetProperty::tooltip_enabled => GuiCategories::Widget,
            WidgetProperty::tooltip_horizontalbehavior => GuiCategories::Widget,
            WidgetProperty::tooltip_offset => GuiCategories::Widget,
            WidgetProperty::tooltip_parentanchor => GuiCategories::Widget,
            WidgetProperty::tooltip_type => GuiCategories::Widget,
            WidgetProperty::tooltip_verticalbehavior => GuiCategories::Widget,
            WidgetProperty::tooltip_visible => GuiCategories::Widget,
            WidgetProperty::tooltip_when_disabled => GuiCategories::Widget,
            WidgetProperty::tooltip_widgetanchor => GuiCategories::Widget,
            WidgetProperty::tooltipwidget => GuiCategories::Widget,
            WidgetProperty::track => GuiCategories::Unknown,
            WidgetProperty::tracknavigation => GuiCategories::Unknown,
            WidgetProperty::translate_uv => GuiCategories::Unknown,
            WidgetProperty::trigger_on_create => GuiCategories::Unknown,
            WidgetProperty::trigger_when => GuiCategories::Unknown,
            WidgetProperty::upframe => GuiCategories::Unknown,
            WidgetProperty::uphoverframe => GuiCategories::Unknown,
            WidgetProperty::uppressedframe => GuiCategories::Unknown,
            WidgetProperty::url => GuiCategories::Unknown,
            WidgetProperty::useragent => GuiCategories::Unknown,
            WidgetProperty::uv_scale => GuiCategories::Unknown,
            WidgetProperty::value => GuiCategories::Unknown,
            WidgetProperty::video => GuiCategories::Unknown,
            WidgetProperty::viewportwidget => GuiCategories::Unknown,
            WidgetProperty::visible => GuiCategories::Widget,
            WidgetProperty::visible_at_creation => GuiCategories::Widget,
            WidgetProperty::wheelstep => GuiCategories::Unknown,
            WidgetProperty::widgetanchor => GuiCategories::Widget,
            WidgetProperty::widgetid => GuiCategories::Widget,
            WidgetProperty::width => GuiCategories::Unknown,
            WidgetProperty::wrap_count => GuiCategories::Unknown,
            WidgetProperty::zoom => GuiCategories::Unknown,
            WidgetProperty::zoom_max => GuiCategories::Unknown,
            WidgetProperty::zoom_min => GuiCategories::Unknown,
            WidgetProperty::zoom_step => GuiCategories::Unknown,
            WidgetProperty::zoomwidget => GuiCategories::Unknown,
        }
    }

    pub fn widget_as_container(builtin: BuiltinWidget) -> Self {
        #[allow(clippy::match_same_arms)] // keep them alphabetic
        match builtin {
            BuiltinWidget::axis => GuiCategories::Unknown,
            BuiltinWidget::background => GuiCategories::Unknown,
            BuiltinWidget::button => GuiCategories::Unknown,
            BuiltinWidget::button_group => GuiCategories::Unknown,
            BuiltinWidget::cameracontrolwidget => GuiCategories::Unknown,
            BuiltinWidget::checkbutton => GuiCategories::Unknown,
            BuiltinWidget::colormap_picker => GuiCategories::Unknown,
            BuiltinWidget::colorpicker => GuiCategories::Unknown,
            BuiltinWidget::container => GuiCategories::Unknown,
            BuiltinWidget::contextmenu => GuiCategories::Unknown,
            BuiltinWidget::datacontext_from_model => GuiCategories::Unknown,
            BuiltinWidget::dockable_container => GuiCategories::Unknown,
            BuiltinWidget::drag_drop_icon => GuiCategories::Unknown,
            BuiltinWidget::drag_drop_target => GuiCategories::Unknown,
            BuiltinWidget::dragdropicon => GuiCategories::Unknown,
            BuiltinWidget::dragdroptarget => GuiCategories::Unknown,
            BuiltinWidget::dropdown => GuiCategories::Unknown,
            BuiltinWidget::dynamicgridbox => GuiCategories::Unknown,
            BuiltinWidget::editbox => GuiCategories::Unknown,
            BuiltinWidget::fixedgridbox => GuiCategories::Unknown,
            BuiltinWidget::flowcontainer => GuiCategories::Unknown,
            BuiltinWidget::game_button => GuiCategories::Unknown,
            BuiltinWidget::hbox => GuiCategories::Unknown,
            BuiltinWidget::icon => GuiCategories::Unknown,
            BuiltinWidget::line => GuiCategories::Unknown,
            BuiltinWidget::line_deprecated => GuiCategories::Unknown,
            BuiltinWidget::margin_widget => GuiCategories::Unknown,
            BuiltinWidget::mini_map => GuiCategories::Unknown,
            BuiltinWidget::minimap => GuiCategories::Unknown,
            BuiltinWidget::minimap_window => GuiCategories::Unknown,
            BuiltinWidget::overlappingitembox => GuiCategories::Unknown,
            BuiltinWidget::piechart => GuiCategories::Unknown,
            BuiltinWidget::pieslice => GuiCategories::Unknown,
            BuiltinWidget::plotline => GuiCategories::Unknown,
            BuiltinWidget::portrait_button => GuiCategories::Unknown,
            BuiltinWidget::progressbar => GuiCategories::Unknown,
            BuiltinWidget::right_click_menu_widget => GuiCategories::Unknown,
            BuiltinWidget::scrollarea => GuiCategories::Unknown,
            BuiltinWidget::scrollbar => GuiCategories::Unknown,
            BuiltinWidget::taborder => GuiCategories::Unknown,
            BuiltinWidget::target => GuiCategories::Unknown,
            BuiltinWidget::text_occluder => GuiCategories::Unknown,
            BuiltinWidget::textbox => GuiCategories::Unknown,
            BuiltinWidget::tools_dragdrop_widget => GuiCategories::Unknown,
            BuiltinWidget::tools_keyframe_button => GuiCategories::Unknown,
            BuiltinWidget::tools_keyframe_editor => GuiCategories::Unknown,
            BuiltinWidget::tools_keyframe_editor_lane => GuiCategories::Unknown,
            BuiltinWidget::tools_player_timeline => GuiCategories::Unknown,
            BuiltinWidget::tools_table => GuiCategories::Unknown,
            BuiltinWidget::tree => GuiCategories::Unknown,
            BuiltinWidget::treemapchart => GuiCategories::Unknown,
            BuiltinWidget::treemapslice => GuiCategories::Unknown,
            BuiltinWidget::vbox => GuiCategories::Unknown,
            BuiltinWidget::webwindow => GuiCategories::Unknown,
            BuiltinWidget::widget => GuiCategories::Widget,
            BuiltinWidget::window => GuiCategories::Unknown,
            BuiltinWidget::zoomarea => GuiCategories::Unknown,
        }
    }
}