Skip to main content

azul_layout/widgets/
list_view.rs

1use alloc::vec::Vec;
2
3use azul_core::{
4    callbacks::{CoreCallbackData, Update},
5    dom::{Dom, DomVec, IdOrClass, IdOrClass::Class, IdOrClassVec, TabIndex},
6    geom::{LogicalPosition, LogicalSize},
7    menu::{Menu, OptionMenu},
8    refany::RefAny,
9};
10use azul_css::{
11    corety::OptionUsize,
12    dynamic_selector::{CssPropertyWithConditions, CssPropertyWithConditionsVec},
13    props::{
14        basic::*,
15        layout::*,
16        property::{CssProperty, *},
17        style::*,
18    },
19    *,
20};
21
22use crate::callbacks::{Callback, CallbackInfo};
23
24const STRING_16146701490593874959: AzString = AzString::from_const_str("sans-serif");
25const STYLE_BACKGROUND_CONTENT_661302523448178568_ITEMS: &[StyleBackgroundContent] =
26    &[StyleBackgroundContent::Color(ColorU {
27        r: 209,
28        g: 232,
29        b: 255,
30        a: 255,
31    })];
32const STYLE_BACKGROUND_CONTENT_2444935983575427872_ITEMS: &[StyleBackgroundContent] =
33    &[StyleBackgroundContent::Color(ColorU {
34        r: 252,
35        g: 252,
36        b: 252,
37        a: 255,
38    })];
39const STYLE_BACKGROUND_CONTENT_3010057533077499049_ITEMS: &[StyleBackgroundContent] =
40    &[StyleBackgroundContent::Color(ColorU {
41        r: 229,
42        g: 243,
43        b: 251,
44        a: 255,
45    })];
46const STYLE_BACKGROUND_CONTENT_3839348353894170136_ITEMS: &[StyleBackgroundContent] =
47    &[StyleBackgroundContent::Color(ColorU {
48        r: 249,
49        g: 250,
50        b: 251,
51        a: 255,
52    })];
53const STYLE_BACKGROUND_CONTENT_6112684430356720596_ITEMS: &[StyleBackgroundContent] =
54    &[StyleBackgroundContent::LinearGradient(LinearGradient {
55        direction: Direction::FromTo(DirectionCorners {
56            dir_from: DirectionCorner::Top,
57            dir_to: DirectionCorner::Bottom,
58        }),
59        extend_mode: ExtendMode::Clamp,
60        stops: NormalizedLinearColorStopVec::from_const_slice(
61            LINEAR_COLOR_STOP_10827796861537038040_ITEMS,
62        ),
63    })];
64const STYLE_BACKGROUND_CONTENT_7422581697888665934_ITEMS: &[StyleBackgroundContent] =
65    &[StyleBackgroundContent::LinearGradient(LinearGradient {
66        direction: Direction::FromTo(DirectionCorners {
67            dir_from: DirectionCorner::Top,
68            dir_to: DirectionCorner::Bottom,
69        }),
70        extend_mode: ExtendMode::Clamp,
71        stops: NormalizedLinearColorStopVec::from_const_slice(
72            LINEAR_COLOR_STOP_513857305091467054_ITEMS,
73        ),
74    })];
75const STYLE_BACKGROUND_CONTENT_11062356617965867290_ITEMS: &[StyleBackgroundContent] =
76    &[StyleBackgroundContent::Color(ColorU {
77        r: 240,
78        g: 240,
79        b: 240,
80        a: 255,
81    })];
82const STYLE_BACKGROUND_CONTENT_11098930083828139815_ITEMS: &[StyleBackgroundContent] =
83    &[StyleBackgroundContent::Color(ColorU {
84        r: 184,
85        g: 224,
86        b: 243,
87        a: 255,
88    })];
89const STYLE_TRANSFORM_6162542744002865382_ITEMS: &[StyleTransform] =
90    &[StyleTransform::Translate(StyleTransformTranslate2D {
91        x: PixelValue::const_px(7),
92        y: PixelValue::const_px(0),
93    })];
94const STYLE_TRANSFORM_16978981723642914576_ITEMS: &[StyleTransform] =
95    &[StyleTransform::Rotate(AngleValue::const_deg(45))];
96const STYLE_TRANSFORM_17732691695785266054_ITEMS: &[StyleTransform] = &[
97    StyleTransform::Rotate(AngleValue::const_deg(315)),
98    StyleTransform::Translate(StyleTransformTranslate2D {
99        x: PixelValue::const_px(0),
100        y: PixelValue::const_px(2),
101    }),
102];
103const STYLE_FONT_FAMILY_8122988506401935406_ITEMS: &[StyleFontFamily] =
104    &[StyleFontFamily::System(STRING_16146701490593874959)];
105const LINEAR_COLOR_STOP_513857305091467054_ITEMS: &[NormalizedLinearColorStop] = &[
106    NormalizedLinearColorStop {
107        offset: PercentageValue::const_new(0),
108        color: ColorU {
109            r: 255,
110            g: 255,
111            b: 255,
112            a: 255,
113        },
114    },
115    NormalizedLinearColorStop {
116        offset: PercentageValue::const_new(50),
117        color: ColorU {
118            r: 255,
119            g: 255,
120            b: 255,
121            a: 255,
122        },
123    },
124    NormalizedLinearColorStop {
125        offset: PercentageValue::const_new(51),
126        color: ColorU {
127            r: 247,
128            g: 248,
129            b: 250,
130            a: 255,
131        },
132    },
133    NormalizedLinearColorStop {
134        offset: PercentageValue::const_new(100),
135        color: ColorU {
136            r: 243,
137            g: 244,
138            b: 246,
139            a: 255,
140        },
141    },
142];
143const LINEAR_COLOR_STOP_10827796861537038040_ITEMS: &[NormalizedLinearColorStop] = &[
144    NormalizedLinearColorStop {
145        offset: PercentageValue::const_new(0),
146        color: ColorU {
147            r: 247,
148            g: 252,
149            b: 254,
150            a: 255,
151        },
152    },
153    NormalizedLinearColorStop {
154        offset: PercentageValue::const_new(50),
155        color: ColorU {
156            r: 247,
157            g: 252,
158            b: 254,
159            a: 255,
160        },
161    },
162    NormalizedLinearColorStop {
163        offset: PercentageValue::const_new(51),
164        color: ColorU {
165            r: 232,
166            g: 246,
167            b: 254,
168            a: 255,
169        },
170    },
171    NormalizedLinearColorStop {
172        offset: PercentageValue::const_new(100),
173        color: ColorU {
174            r: 206,
175            g: 231,
176            b: 244,
177            a: 255,
178        },
179    },
180];
181
182const CSS_MATCH_1085706216385961159_PROPERTIES: &[CssPropertyWithConditions] = &[
183    // .__azul_native-list-header-arrow-down
184    CssPropertyWithConditions::simple(CssProperty::Transform(StyleTransformVecValue::Exact(
185        StyleTransformVec::from_const_slice(STYLE_TRANSFORM_6162542744002865382_ITEMS),
186    ))),
187    CssPropertyWithConditions::simple(CssProperty::Position(LayoutPositionValue::Exact(
188        LayoutPosition::Absolute,
189    ))),
190    CssPropertyWithConditions::simple(CssProperty::PaddingRight(LayoutPaddingRightValue::Exact(
191        LayoutPaddingRight {
192            inner: PixelValue::const_px(3),
193        },
194    ))),
195    CssPropertyWithConditions::simple(CssProperty::PaddingLeft(LayoutPaddingLeftValue::Exact(
196        LayoutPaddingLeft {
197            inner: PixelValue::const_px(3),
198        },
199    ))),
200    CssPropertyWithConditions::simple(CssProperty::PaddingBottom(LayoutPaddingBottomValue::Exact(
201        LayoutPaddingBottom {
202            inner: PixelValue::const_px(3),
203        },
204    ))),
205    CssPropertyWithConditions::simple(CssProperty::PaddingTop(LayoutPaddingTopValue::Exact(
206        LayoutPaddingTop {
207            inner: PixelValue::const_px(3),
208        },
209    ))),
210    CssPropertyWithConditions::simple(CssProperty::JustifyContent(
211        LayoutJustifyContentValue::Exact(LayoutJustifyContent::Center),
212    )),
213    CssPropertyWithConditions::simple(CssProperty::FlexDirection(LayoutFlexDirectionValue::Exact(
214        LayoutFlexDirection::Row,
215    ))),
216];
217const CSS_MATCH_1085706216385961159: CssPropertyWithConditionsVec =
218    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_1085706216385961159_PROPERTIES);
219
220const CSS_MATCH_12498280255863106397_PROPERTIES: &[CssPropertyWithConditions] = &[
221    // .__azul_native-list-header-item:hover
222    CssPropertyWithConditions::on_hover(CssProperty::BorderBottomWidth(
223        LayoutBorderBottomWidthValue::Exact(LayoutBorderBottomWidth {
224            inner: PixelValue::const_px(1),
225        }),
226    )),
227    CssPropertyWithConditions::on_hover(CssProperty::BorderBottomStyle(
228        StyleBorderBottomStyleValue::Exact(StyleBorderBottomStyle {
229            inner: BorderStyle::Solid,
230        }),
231    )),
232    CssPropertyWithConditions::on_hover(CssProperty::BorderBottomColor(
233        StyleBorderBottomColorValue::Exact(StyleBorderBottomColor {
234            inner: ColorU {
235                r: 154,
236                g: 223,
237                b: 254,
238                a: 255,
239            },
240        }),
241    )),
242    CssPropertyWithConditions::on_hover(CssProperty::BackgroundContent(
243        StyleBackgroundContentVecValue::Exact(StyleBackgroundContentVec::from_const_slice(
244            STYLE_BACKGROUND_CONTENT_6112684430356720596_ITEMS,
245        )),
246    )),
247    // .__azul_native-list-header-item:active
248    CssPropertyWithConditions::on_active(CssProperty::BoxShadowBottom(StyleBoxShadowValue::Exact(
249        StyleBoxShadow {
250            offset_x: PixelValueNoPercent {
251                inner: PixelValue::const_px(0),
252            },
253            offset_y: PixelValueNoPercent {
254                inner: PixelValue::const_px(0),
255            },
256            color: ColorU {
257                r: 206,
258                g: 231,
259                b: 244,
260                a: 255,
261            },
262            blur_radius: PixelValueNoPercent {
263                inner: PixelValue::const_px(5),
264            },
265            spread_radius: PixelValueNoPercent {
266                inner: PixelValue::const_px(0),
267            },
268            clip_mode: BoxShadowClipMode::Inset,
269        },
270    ))),
271    CssPropertyWithConditions::on_active(CssProperty::BoxShadowTop(StyleBoxShadowValue::Exact(
272        StyleBoxShadow {
273            offset_x: PixelValueNoPercent {
274                inner: PixelValue::const_px(0),
275            },
276            offset_y: PixelValueNoPercent {
277                inner: PixelValue::const_px(0),
278            },
279            color: ColorU {
280                r: 206,
281                g: 231,
282                b: 244,
283                a: 255,
284            },
285            blur_radius: PixelValueNoPercent {
286                inner: PixelValue::const_px(5),
287            },
288            spread_radius: PixelValueNoPercent {
289                inner: PixelValue::const_px(0),
290            },
291            clip_mode: BoxShadowClipMode::Inset,
292        },
293    ))),
294    CssPropertyWithConditions::on_active(CssProperty::BoxShadowRight(StyleBoxShadowValue::Exact(
295        StyleBoxShadow {
296            offset_x: PixelValueNoPercent {
297                inner: PixelValue::const_px(0),
298            },
299            offset_y: PixelValueNoPercent {
300                inner: PixelValue::const_px(0),
301            },
302            color: ColorU {
303                r: 206,
304                g: 231,
305                b: 244,
306                a: 255,
307            },
308            blur_radius: PixelValueNoPercent {
309                inner: PixelValue::const_px(5),
310            },
311            spread_radius: PixelValueNoPercent {
312                inner: PixelValue::const_px(0),
313            },
314            clip_mode: BoxShadowClipMode::Inset,
315        },
316    ))),
317    CssPropertyWithConditions::on_active(CssProperty::BoxShadowLeft(StyleBoxShadowValue::Exact(
318        StyleBoxShadow {
319            offset_x: PixelValueNoPercent {
320                inner: PixelValue::const_px(0),
321            },
322            offset_y: PixelValueNoPercent {
323                inner: PixelValue::const_px(0),
324            },
325            color: ColorU {
326                r: 206,
327                g: 231,
328                b: 244,
329                a: 255,
330            },
331            blur_radius: PixelValueNoPercent {
332                inner: PixelValue::const_px(5),
333            },
334            spread_radius: PixelValueNoPercent {
335                inner: PixelValue::const_px(0),
336            },
337            clip_mode: BoxShadowClipMode::Inset,
338        },
339    ))),
340    CssPropertyWithConditions::on_active(CssProperty::BorderBottomWidth(
341        LayoutBorderBottomWidthValue::Exact(LayoutBorderBottomWidth {
342            inner: PixelValue::const_px(1),
343        }),
344    )),
345    CssPropertyWithConditions::on_active(CssProperty::BorderLeftWidth(
346        LayoutBorderLeftWidthValue::Exact(LayoutBorderLeftWidth {
347            inner: PixelValue::const_px(1),
348        }),
349    )),
350    CssPropertyWithConditions::on_active(CssProperty::BorderRightWidth(
351        LayoutBorderRightWidthValue::Exact(LayoutBorderRightWidth {
352            inner: PixelValue::const_px(1),
353        }),
354    )),
355    CssPropertyWithConditions::on_active(CssProperty::BorderTopWidth(
356        LayoutBorderTopWidthValue::Exact(LayoutBorderTopWidth {
357            inner: PixelValue::const_px(1),
358        }),
359    )),
360    CssPropertyWithConditions::on_active(CssProperty::BorderBottomStyle(
361        StyleBorderBottomStyleValue::Exact(StyleBorderBottomStyle {
362            inner: BorderStyle::Solid,
363        }),
364    )),
365    CssPropertyWithConditions::on_active(CssProperty::BorderLeftStyle(
366        StyleBorderLeftStyleValue::Exact(StyleBorderLeftStyle {
367            inner: BorderStyle::Solid,
368        }),
369    )),
370    CssPropertyWithConditions::on_active(CssProperty::BorderRightStyle(
371        StyleBorderRightStyleValue::Exact(StyleBorderRightStyle {
372            inner: BorderStyle::Solid,
373        }),
374    )),
375    CssPropertyWithConditions::on_active(CssProperty::BorderTopStyle(
376        StyleBorderTopStyleValue::Exact(StyleBorderTopStyle {
377            inner: BorderStyle::Solid,
378        }),
379    )),
380    CssPropertyWithConditions::on_active(CssProperty::BorderBottomColor(
381        StyleBorderBottomColorValue::Exact(StyleBorderBottomColor {
382            inner: ColorU {
383                r: 194,
384                g: 205,
385                b: 219,
386                a: 255,
387            },
388        }),
389    )),
390    CssPropertyWithConditions::on_active(CssProperty::BorderLeftColor(
391        StyleBorderLeftColorValue::Exact(StyleBorderLeftColor {
392            inner: ColorU {
393                r: 194,
394                g: 205,
395                b: 219,
396                a: 255,
397            },
398        }),
399    )),
400    CssPropertyWithConditions::on_active(CssProperty::BorderRightColor(
401        StyleBorderRightColorValue::Exact(StyleBorderRightColor {
402            inner: ColorU {
403                r: 194,
404                g: 205,
405                b: 219,
406                a: 255,
407            },
408        }),
409    )),
410    CssPropertyWithConditions::on_active(CssProperty::BorderTopColor(
411        StyleBorderTopColorValue::Exact(StyleBorderTopColor {
412            inner: ColorU {
413                r: 194,
414                g: 205,
415                b: 219,
416                a: 255,
417            },
418        }),
419    )),
420    CssPropertyWithConditions::on_active(CssProperty::BackgroundContent(
421        StyleBackgroundContentVecValue::Exact(StyleBackgroundContentVec::from_const_slice(
422            STYLE_BACKGROUND_CONTENT_3839348353894170136_ITEMS,
423        )),
424    )),
425    // .__azul_native-list-header-item
426    CssPropertyWithConditions::simple(CssProperty::Position(LayoutPositionValue::Exact(
427        LayoutPosition::Relative,
428    ))),
429    CssPropertyWithConditions::simple(CssProperty::PaddingLeft(LayoutPaddingLeftValue::Exact(
430        LayoutPaddingLeft {
431            inner: PixelValue::const_px(7),
432        },
433    ))),
434    CssPropertyWithConditions::simple(CssProperty::MinWidth(LayoutMinWidthValue::Exact(
435        LayoutMinWidth {
436            inner: PixelValue::const_px(100),
437        },
438    ))),
439    CssPropertyWithConditions::simple(CssProperty::FlexDirection(LayoutFlexDirectionValue::Exact(
440        LayoutFlexDirection::Column,
441    ))),
442    CssPropertyWithConditions::simple(CssProperty::BorderRightWidth(
443        LayoutBorderRightWidthValue::Exact(LayoutBorderRightWidth {
444            inner: PixelValue::const_px(1),
445        }),
446    )),
447    CssPropertyWithConditions::simple(CssProperty::BorderRightStyle(
448        StyleBorderRightStyleValue::Exact(StyleBorderRightStyle {
449            inner: BorderStyle::Solid,
450        }),
451    )),
452    CssPropertyWithConditions::simple(CssProperty::BorderRightColor(
453        StyleBorderRightColorValue::Exact(StyleBorderRightColor {
454            inner: ColorU {
455                r: 243,
456                g: 244,
457                b: 246,
458                a: 255,
459            },
460        }),
461    )),
462];
463const CSS_MATCH_12498280255863106397: CssPropertyWithConditionsVec =
464    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_12498280255863106397_PROPERTIES);
465
466const CSS_MATCH_12980082330151137475_PROPERTIES: &[CssPropertyWithConditions] = &[
467    // .__azul_native-list-rows-row-cell
468    CssPropertyWithConditions::simple(CssProperty::PaddingLeft(LayoutPaddingLeftValue::Exact(
469        LayoutPaddingLeft {
470            inner: PixelValue::const_px(7),
471        },
472    ))),
473    CssPropertyWithConditions::simple(CssProperty::MinWidth(LayoutMinWidthValue::Exact(
474        LayoutMinWidth {
475            inner: PixelValue::const_px(100),
476        },
477    ))),
478    CssPropertyWithConditions::simple(CssProperty::FontSize(StyleFontSizeValue::Exact(
479        StyleFontSize {
480            inner: PixelValue::const_px(11),
481        },
482    ))),
483    CssPropertyWithConditions::simple(CssProperty::FontFamily(StyleFontFamilyVecValue::Exact(
484        StyleFontFamilyVec::from_const_slice(STYLE_FONT_FAMILY_8122988506401935406_ITEMS),
485    ))),
486];
487const CSS_MATCH_12980082330151137475: CssPropertyWithConditionsVec =
488    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_12980082330151137475_PROPERTIES);
489
490const CSS_MATCH_13758717721055992976_PROPERTIES: &[CssPropertyWithConditions] = &[
491    // .__azul_native-list-header-arrow-down-inner
492    CssPropertyWithConditions::simple(CssProperty::Width(LayoutWidthValue::Exact(
493        LayoutWidth::Px(PixelValue::const_px(6)),
494    ))),
495    CssPropertyWithConditions::simple(CssProperty::Transform(StyleTransformVecValue::Exact(
496        StyleTransformVec::from_const_slice(STYLE_TRANSFORM_16978981723642914576_ITEMS),
497    ))),
498    CssPropertyWithConditions::simple(CssProperty::OverflowY(LayoutOverflowValue::Exact(
499        LayoutOverflow::Hidden,
500    ))),
501    CssPropertyWithConditions::simple(CssProperty::OverflowX(LayoutOverflowValue::Exact(
502        LayoutOverflow::Hidden,
503    ))),
504    CssPropertyWithConditions::simple(CssProperty::Height(LayoutHeightValue::Exact(
505        LayoutHeight::Px(PixelValue::const_px(6)),
506    ))),
507];
508const CSS_MATCH_13758717721055992976: CssPropertyWithConditionsVec =
509    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_13758717721055992976_PROPERTIES);
510
511const CSS_MATCH_15295293133676720691_PROPERTIES: &[CssPropertyWithConditions] = &[
512    // .__azul_native-list-header-dragwidth-drag
513    CssPropertyWithConditions::simple(CssProperty::Width(LayoutWidthValue::Exact(
514        LayoutWidth::Px(PixelValue::const_px(2)),
515    ))),
516    CssPropertyWithConditions::simple(CssProperty::Position(LayoutPositionValue::Exact(
517        LayoutPosition::Absolute,
518    ))),
519];
520const CSS_MATCH_15295293133676720691: CssPropertyWithConditionsVec =
521    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_15295293133676720691_PROPERTIES);
522
523const CSS_MATCH_15315949193378715186_PROPERTIES: &[CssPropertyWithConditions] = &[
524    // .__azul_native-list-header
525    CssPropertyWithConditions::simple(CssProperty::Height(LayoutHeightValue::Exact(
526        LayoutHeight::Px(PixelValue::const_px(25)),
527    ))),
528    CssPropertyWithConditions::simple(CssProperty::FlexDirection(LayoutFlexDirectionValue::Exact(
529        LayoutFlexDirection::Row,
530    ))),
531    CssPropertyWithConditions::simple(CssProperty::BackgroundContent(
532        StyleBackgroundContentVecValue::Exact(StyleBackgroundContentVec::from_const_slice(
533            STYLE_BACKGROUND_CONTENT_7422581697888665934_ITEMS,
534        )),
535    )),
536];
537const CSS_MATCH_15315949193378715186: CssPropertyWithConditionsVec =
538    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_15315949193378715186_PROPERTIES);
539
540const CSS_MATCH_15673486787900743642_PROPERTIES: &[CssPropertyWithConditions] = &[
541    // .__azul_native-list-header .__azul_native-list-header-item p
542    CssPropertyWithConditions::simple(CssProperty::FontSize(StyleFontSizeValue::Exact(
543        StyleFontSize {
544            inner: PixelValue::const_px(11),
545        },
546    ))),
547    CssPropertyWithConditions::simple(CssProperty::FontFamily(StyleFontFamilyVecValue::Exact(
548        StyleFontFamilyVec::from_const_slice(STYLE_FONT_FAMILY_8122988506401935406_ITEMS),
549    ))),
550    CssPropertyWithConditions::simple(CssProperty::FlexGrow(LayoutFlexGrowValue::Exact(
551        LayoutFlexGrow {
552            inner: FloatValue::const_new(1),
553        },
554    ))),
555    CssPropertyWithConditions::simple(CssProperty::FlexDirection(LayoutFlexDirectionValue::Exact(
556        LayoutFlexDirection::Column,
557    ))),
558    CssPropertyWithConditions::simple(CssProperty::TextColor(StyleTextColorValue::Exact(
559        StyleTextColor {
560            inner: ColorU {
561                r: 0,
562                g: 0,
563                b: 0,
564                a: 255,
565            },
566        },
567    ))),
568    CssPropertyWithConditions::simple(CssProperty::AlignItems(LayoutAlignItemsValue::Exact(
569        LayoutAlignItems::Center,
570    ))),
571];
572const CSS_MATCH_15673486787900743642: CssPropertyWithConditionsVec =
573    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_15673486787900743642_PROPERTIES);
574
575const CSS_MATCH_1574792189506859253_PROPERTIES: &[CssPropertyWithConditions] = &[
576    // .__azul_native-list-header-arrow-down-inner-deco
577    CssPropertyWithConditions::simple(CssProperty::Width(LayoutWidthValue::Exact(
578        LayoutWidth::Px(PixelValue::const_px(12)),
579    ))),
580    CssPropertyWithConditions::simple(CssProperty::Transform(StyleTransformVecValue::Exact(
581        StyleTransformVec::from_const_slice(STYLE_TRANSFORM_17732691695785266054_ITEMS),
582    ))),
583    CssPropertyWithConditions::simple(CssProperty::Height(LayoutHeightValue::Exact(
584        LayoutHeight::Px(PixelValue::const_px(12)),
585    ))),
586    CssPropertyWithConditions::simple(CssProperty::BoxShadowBottom(StyleBoxShadowValue::Exact(
587        StyleBoxShadow {
588            offset_x: PixelValueNoPercent {
589                inner: PixelValue::const_px(3),
590            },
591            offset_y: PixelValueNoPercent {
592                inner: PixelValue::const_px(3),
593            },
594            color: ColorU {
595                r: 60,
596                g: 94,
597                b: 114,
598                a: 255,
599            },
600            blur_radius: PixelValueNoPercent {
601                inner: PixelValue::const_px(10),
602            },
603            spread_radius: PixelValueNoPercent {
604                inner: PixelValue::const_px(0),
605            },
606            clip_mode: BoxShadowClipMode::Inset,
607        },
608    ))),
609    CssPropertyWithConditions::simple(CssProperty::BoxShadowTop(StyleBoxShadowValue::Exact(
610        StyleBoxShadow {
611            offset_x: PixelValueNoPercent {
612                inner: PixelValue::const_px(3),
613            },
614            offset_y: PixelValueNoPercent {
615                inner: PixelValue::const_px(3),
616            },
617            color: ColorU {
618                r: 60,
619                g: 94,
620                b: 114,
621                a: 255,
622            },
623            blur_radius: PixelValueNoPercent {
624                inner: PixelValue::const_px(10),
625            },
626            spread_radius: PixelValueNoPercent {
627                inner: PixelValue::const_px(0),
628            },
629            clip_mode: BoxShadowClipMode::Inset,
630        },
631    ))),
632    CssPropertyWithConditions::simple(CssProperty::BoxShadowRight(StyleBoxShadowValue::Exact(
633        StyleBoxShadow {
634            offset_x: PixelValueNoPercent {
635                inner: PixelValue::const_px(3),
636            },
637            offset_y: PixelValueNoPercent {
638                inner: PixelValue::const_px(3),
639            },
640            color: ColorU {
641                r: 60,
642                g: 94,
643                b: 114,
644                a: 255,
645            },
646            blur_radius: PixelValueNoPercent {
647                inner: PixelValue::const_px(10),
648            },
649            spread_radius: PixelValueNoPercent {
650                inner: PixelValue::const_px(0),
651            },
652            clip_mode: BoxShadowClipMode::Inset,
653        },
654    ))),
655    CssPropertyWithConditions::simple(CssProperty::BoxShadowLeft(StyleBoxShadowValue::Exact(
656        StyleBoxShadow {
657            offset_x: PixelValueNoPercent {
658                inner: PixelValue::const_px(3),
659            },
660            offset_y: PixelValueNoPercent {
661                inner: PixelValue::const_px(3),
662            },
663            color: ColorU {
664                r: 60,
665                g: 94,
666                b: 114,
667                a: 255,
668            },
669            blur_radius: PixelValueNoPercent {
670                inner: PixelValue::const_px(10),
671            },
672            spread_radius: PixelValueNoPercent {
673                inner: PixelValue::const_px(0),
674            },
675            clip_mode: BoxShadowClipMode::Inset,
676        },
677    ))),
678];
679const CSS_MATCH_1574792189506859253: CssPropertyWithConditionsVec =
680    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_1574792189506859253_PROPERTIES);
681
682const CSS_MATCH_17553577885456905601_PROPERTIES: &[CssPropertyWithConditions] = &[
683    // .__azul_native_list-container
684    CssPropertyWithConditions::simple(CssProperty::FlexGrow(LayoutFlexGrowValue::Exact(
685        LayoutFlexGrow {
686            inner: FloatValue::const_new(1),
687        },
688    ))),
689    CssPropertyWithConditions::simple(CssProperty::BackgroundContent(
690        StyleBackgroundContentVecValue::Exact(StyleBackgroundContentVec::from_const_slice(
691            STYLE_BACKGROUND_CONTENT_2444935983575427872_ITEMS,
692        )),
693    )),
694];
695const CSS_MATCH_17553577885456905601: CssPropertyWithConditionsVec =
696    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_17553577885456905601_PROPERTIES);
697
698const CSS_MATCH_2883986488332352590_PROPERTIES: &[CssPropertyWithConditions] = &[
699    // body
700    CssPropertyWithConditions::simple(CssProperty::PaddingRight(LayoutPaddingRightValue::Exact(
701        LayoutPaddingRight {
702            inner: PixelValue::const_px(5),
703        },
704    ))),
705    CssPropertyWithConditions::simple(CssProperty::PaddingLeft(LayoutPaddingLeftValue::Exact(
706        LayoutPaddingLeft {
707            inner: PixelValue::const_px(5),
708        },
709    ))),
710    CssPropertyWithConditions::simple(CssProperty::PaddingBottom(LayoutPaddingBottomValue::Exact(
711        LayoutPaddingBottom {
712            inner: PixelValue::const_px(5),
713        },
714    ))),
715    CssPropertyWithConditions::simple(CssProperty::PaddingTop(LayoutPaddingTopValue::Exact(
716        LayoutPaddingTop {
717            inner: PixelValue::const_px(5),
718        },
719    ))),
720    CssPropertyWithConditions::simple(CssProperty::BackgroundContent(
721        StyleBackgroundContentVecValue::Exact(StyleBackgroundContentVec::from_const_slice(
722            STYLE_BACKGROUND_CONTENT_11062356617965867290_ITEMS,
723        )),
724    )),
725];
726const CSS_MATCH_2883986488332352590: CssPropertyWithConditionsVec =
727    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_2883986488332352590_PROPERTIES);
728
729const CSS_MATCH_4852927511892172364_PROPERTIES: &[CssPropertyWithConditions] = &[
730    // .__azul_native-list-rows
731    CssPropertyWithConditions::simple(CssProperty::FlexDirection(LayoutFlexDirectionValue::Exact(
732        LayoutFlexDirection::Column,
733    ))),
734];
735const CSS_MATCH_4852927511892172364: CssPropertyWithConditionsVec =
736    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_4852927511892172364_PROPERTIES);
737
738const CSS_MATCH_6002662151290653203_PROPERTIES: &[CssPropertyWithConditions] = &[
739    // .__azul_native-list-header-dragwidth
740    CssPropertyWithConditions::simple(CssProperty::Width(LayoutWidthValue::Exact(
741        LayoutWidth::Px(PixelValue::const_px(0)),
742    ))),
743    CssPropertyWithConditions::simple(CssProperty::Position(LayoutPositionValue::Exact(
744        LayoutPosition::Relative,
745    ))),
746    CssPropertyWithConditions::simple(CssProperty::FlexGrow(LayoutFlexGrowValue::Exact(
747        LayoutFlexGrow {
748            inner: FloatValue::const_new(1),
749        },
750    ))),
751];
752const CSS_MATCH_6002662151290653203: CssPropertyWithConditionsVec =
753    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_6002662151290653203_PROPERTIES);
754
755const CSS_MATCH_6827198030119836081_PROPERTIES: &[CssPropertyWithConditions] = &[
756    // .__azul_native-list-rows-row.selected
757    CssPropertyWithConditions::simple(CssProperty::BorderBottomWidth(
758        LayoutBorderBottomWidthValue::Exact(LayoutBorderBottomWidth {
759            inner: PixelValue::const_px(1),
760        }),
761    )),
762    CssPropertyWithConditions::simple(CssProperty::BorderLeftWidth(
763        LayoutBorderLeftWidthValue::Exact(LayoutBorderLeftWidth {
764            inner: PixelValue::const_px(1),
765        }),
766    )),
767    CssPropertyWithConditions::simple(CssProperty::BorderRightWidth(
768        LayoutBorderRightWidthValue::Exact(LayoutBorderRightWidth {
769            inner: PixelValue::const_px(1),
770        }),
771    )),
772    CssPropertyWithConditions::simple(CssProperty::BorderTopWidth(
773        LayoutBorderTopWidthValue::Exact(LayoutBorderTopWidth {
774            inner: PixelValue::const_px(1),
775        }),
776    )),
777    CssPropertyWithConditions::simple(CssProperty::BorderBottomStyle(
778        StyleBorderBottomStyleValue::Exact(StyleBorderBottomStyle {
779            inner: BorderStyle::Solid,
780        }),
781    )),
782    CssPropertyWithConditions::simple(CssProperty::BorderLeftStyle(
783        StyleBorderLeftStyleValue::Exact(StyleBorderLeftStyle {
784            inner: BorderStyle::Solid,
785        }),
786    )),
787    CssPropertyWithConditions::simple(CssProperty::BorderRightStyle(
788        StyleBorderRightStyleValue::Exact(StyleBorderRightStyle {
789            inner: BorderStyle::Solid,
790        }),
791    )),
792    CssPropertyWithConditions::simple(CssProperty::BorderTopStyle(
793        StyleBorderTopStyleValue::Exact(StyleBorderTopStyle {
794            inner: BorderStyle::Solid,
795        }),
796    )),
797    CssPropertyWithConditions::simple(CssProperty::BorderBottomColor(
798        StyleBorderBottomColorValue::Exact(StyleBorderBottomColor {
799            inner: ColorU {
800                r: 102,
801                g: 167,
802                b: 232,
803                a: 255,
804            },
805        }),
806    )),
807    CssPropertyWithConditions::simple(CssProperty::BorderLeftColor(
808        StyleBorderLeftColorValue::Exact(StyleBorderLeftColor {
809            inner: ColorU {
810                r: 102,
811                g: 167,
812                b: 232,
813                a: 255,
814            },
815        }),
816    )),
817    CssPropertyWithConditions::simple(CssProperty::BorderRightColor(
818        StyleBorderRightColorValue::Exact(StyleBorderRightColor {
819            inner: ColorU {
820                r: 102,
821                g: 167,
822                b: 232,
823                a: 255,
824            },
825        }),
826    )),
827    CssPropertyWithConditions::simple(CssProperty::BorderTopColor(
828        StyleBorderTopColorValue::Exact(StyleBorderTopColor {
829            inner: ColorU {
830                r: 102,
831                g: 167,
832                b: 232,
833                a: 255,
834            },
835        }),
836    )),
837    CssPropertyWithConditions::simple(CssProperty::BackgroundContent(
838        StyleBackgroundContentVecValue::Exact(StyleBackgroundContentVec::from_const_slice(
839            STYLE_BACKGROUND_CONTENT_661302523448178568_ITEMS,
840        )),
841    )),
842    // .__azul_native-list-rows-row:hover
843    CssPropertyWithConditions::on_hover(CssProperty::BorderBottomWidth(
844        LayoutBorderBottomWidthValue::Exact(LayoutBorderBottomWidth {
845            inner: PixelValue::const_px(1),
846        }),
847    )),
848    CssPropertyWithConditions::on_hover(CssProperty::BorderLeftWidth(
849        LayoutBorderLeftWidthValue::Exact(LayoutBorderLeftWidth {
850            inner: PixelValue::const_px(1),
851        }),
852    )),
853    CssPropertyWithConditions::on_hover(CssProperty::BorderRightWidth(
854        LayoutBorderRightWidthValue::Exact(LayoutBorderRightWidth {
855            inner: PixelValue::const_px(1),
856        }),
857    )),
858    CssPropertyWithConditions::on_hover(CssProperty::BorderTopWidth(
859        LayoutBorderTopWidthValue::Exact(LayoutBorderTopWidth {
860            inner: PixelValue::const_px(1),
861        }),
862    )),
863    CssPropertyWithConditions::on_hover(CssProperty::BorderBottomStyle(
864        StyleBorderBottomStyleValue::Exact(StyleBorderBottomStyle {
865            inner: BorderStyle::Solid,
866        }),
867    )),
868    CssPropertyWithConditions::on_hover(CssProperty::BorderLeftStyle(
869        StyleBorderLeftStyleValue::Exact(StyleBorderLeftStyle {
870            inner: BorderStyle::Solid,
871        }),
872    )),
873    CssPropertyWithConditions::on_hover(CssProperty::BorderRightStyle(
874        StyleBorderRightStyleValue::Exact(StyleBorderRightStyle {
875            inner: BorderStyle::Solid,
876        }),
877    )),
878    CssPropertyWithConditions::on_hover(CssProperty::BorderTopStyle(
879        StyleBorderTopStyleValue::Exact(StyleBorderTopStyle {
880            inner: BorderStyle::Solid,
881        }),
882    )),
883    CssPropertyWithConditions::on_hover(CssProperty::BorderBottomColor(
884        StyleBorderBottomColorValue::Exact(StyleBorderBottomColor {
885            inner: ColorU {
886                r: 101,
887                g: 181,
888                b: 220,
889                a: 255,
890            },
891        }),
892    )),
893    CssPropertyWithConditions::on_hover(CssProperty::BorderLeftColor(
894        StyleBorderLeftColorValue::Exact(StyleBorderLeftColor {
895            inner: ColorU {
896                r: 101,
897                g: 181,
898                b: 220,
899                a: 255,
900            },
901        }),
902    )),
903    CssPropertyWithConditions::on_hover(CssProperty::BorderRightColor(
904        StyleBorderRightColorValue::Exact(StyleBorderRightColor {
905            inner: ColorU {
906                r: 101,
907                g: 181,
908                b: 220,
909                a: 255,
910            },
911        }),
912    )),
913    CssPropertyWithConditions::on_hover(CssProperty::BorderTopColor(
914        StyleBorderTopColorValue::Exact(StyleBorderTopColor {
915            inner: ColorU {
916                r: 101,
917                g: 181,
918                b: 220,
919                a: 255,
920            },
921        }),
922    )),
923    CssPropertyWithConditions::on_hover(CssProperty::BackgroundContent(
924        StyleBackgroundContentVecValue::Exact(StyleBackgroundContentVec::from_const_slice(
925            STYLE_BACKGROUND_CONTENT_3010057533077499049_ITEMS,
926        )),
927    )),
928    // .__azul_native-list-rows-row
929    CssPropertyWithConditions::simple(CssProperty::PaddingRight(LayoutPaddingRightValue::Exact(
930        LayoutPaddingRight {
931            inner: PixelValue::const_px(0),
932        },
933    ))),
934    CssPropertyWithConditions::simple(CssProperty::PaddingLeft(LayoutPaddingLeftValue::Exact(
935        LayoutPaddingLeft {
936            inner: PixelValue::const_px(0),
937        },
938    ))),
939    CssPropertyWithConditions::simple(CssProperty::PaddingBottom(LayoutPaddingBottomValue::Exact(
940        LayoutPaddingBottom {
941            inner: PixelValue::const_px(2),
942        },
943    ))),
944    CssPropertyWithConditions::simple(CssProperty::PaddingTop(LayoutPaddingTopValue::Exact(
945        LayoutPaddingTop {
946            inner: PixelValue::const_px(2),
947        },
948    ))),
949    CssPropertyWithConditions::simple(CssProperty::FlexGrow(LayoutFlexGrowValue::Exact(
950        LayoutFlexGrow {
951            inner: FloatValue::const_new(1),
952        },
953    ))),
954    CssPropertyWithConditions::simple(CssProperty::FlexDirection(LayoutFlexDirectionValue::Exact(
955        LayoutFlexDirection::Row,
956    ))),
957    CssPropertyWithConditions::simple(CssProperty::BorderBottomWidth(
958        LayoutBorderBottomWidthValue::Exact(LayoutBorderBottomWidth {
959            inner: PixelValue::const_px(1),
960        }),
961    )),
962    CssPropertyWithConditions::simple(CssProperty::BorderLeftWidth(
963        LayoutBorderLeftWidthValue::Exact(LayoutBorderLeftWidth {
964            inner: PixelValue::const_px(1),
965        }),
966    )),
967    CssPropertyWithConditions::simple(CssProperty::BorderRightWidth(
968        LayoutBorderRightWidthValue::Exact(LayoutBorderRightWidth {
969            inner: PixelValue::const_px(1),
970        }),
971    )),
972    CssPropertyWithConditions::simple(CssProperty::BorderTopWidth(
973        LayoutBorderTopWidthValue::Exact(LayoutBorderTopWidth {
974            inner: PixelValue::const_px(1),
975        }),
976    )),
977    CssPropertyWithConditions::simple(CssProperty::BorderBottomStyle(
978        StyleBorderBottomStyleValue::Exact(StyleBorderBottomStyle {
979            inner: BorderStyle::Solid,
980        }),
981    )),
982    CssPropertyWithConditions::simple(CssProperty::BorderLeftStyle(
983        StyleBorderLeftStyleValue::Exact(StyleBorderLeftStyle {
984            inner: BorderStyle::Solid,
985        }),
986    )),
987    CssPropertyWithConditions::simple(CssProperty::BorderRightStyle(
988        StyleBorderRightStyleValue::Exact(StyleBorderRightStyle {
989            inner: BorderStyle::Solid,
990        }),
991    )),
992    CssPropertyWithConditions::simple(CssProperty::BorderTopStyle(
993        StyleBorderTopStyleValue::Exact(StyleBorderTopStyle {
994            inner: BorderStyle::Solid,
995        }),
996    )),
997    CssPropertyWithConditions::simple(CssProperty::BorderBottomColor(
998        StyleBorderBottomColorValue::Exact(StyleBorderBottomColor {
999            inner: ColorU {
1000                r: 255,
1001                g: 255,
1002                b: 255,
1003                a: 0,
1004            },
1005        }),
1006    )),
1007    CssPropertyWithConditions::simple(CssProperty::BorderLeftColor(
1008        StyleBorderLeftColorValue::Exact(StyleBorderLeftColor {
1009            inner: ColorU {
1010                r: 255,
1011                g: 255,
1012                b: 255,
1013                a: 0,
1014            },
1015        }),
1016    )),
1017    CssPropertyWithConditions::simple(CssProperty::BorderRightColor(
1018        StyleBorderRightColorValue::Exact(StyleBorderRightColor {
1019            inner: ColorU {
1020                r: 255,
1021                g: 255,
1022                b: 255,
1023                a: 0,
1024            },
1025        }),
1026    )),
1027    CssPropertyWithConditions::simple(CssProperty::BorderTopColor(
1028        StyleBorderTopColorValue::Exact(StyleBorderTopColor {
1029            inner: ColorU {
1030                r: 255,
1031                g: 255,
1032                b: 255,
1033                a: 0,
1034            },
1035        }),
1036    )),
1037];
1038const CSS_MATCH_6827198030119836081: CssPropertyWithConditionsVec =
1039    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_6827198030119836081_PROPERTIES);
1040
1041const CSS_MATCH_7894335449545988724_PROPERTIES: &[CssPropertyWithConditions] = &[
1042    // .__azul_native-list-rows-row.focused
1043    CssPropertyWithConditions::on_focus(CssProperty::BorderBottomWidth(
1044        LayoutBorderBottomWidthValue::Exact(LayoutBorderBottomWidth {
1045            inner: PixelValue::const_px(1),
1046        }),
1047    )),
1048    CssPropertyWithConditions::on_focus(CssProperty::BorderLeftWidth(
1049        LayoutBorderLeftWidthValue::Exact(LayoutBorderLeftWidth {
1050            inner: PixelValue::const_px(1),
1051        }),
1052    )),
1053    CssPropertyWithConditions::on_focus(CssProperty::BorderRightWidth(
1054        LayoutBorderRightWidthValue::Exact(LayoutBorderRightWidth {
1055            inner: PixelValue::const_px(1),
1056        }),
1057    )),
1058    CssPropertyWithConditions::on_focus(CssProperty::BorderTopWidth(
1059        LayoutBorderTopWidthValue::Exact(LayoutBorderTopWidth {
1060            inner: PixelValue::const_px(1),
1061        }),
1062    )),
1063    CssPropertyWithConditions::on_focus(CssProperty::BorderBottomStyle(
1064        StyleBorderBottomStyleValue::Exact(StyleBorderBottomStyle {
1065            inner: BorderStyle::Solid,
1066        }),
1067    )),
1068    CssPropertyWithConditions::on_focus(CssProperty::BorderLeftStyle(
1069        StyleBorderLeftStyleValue::Exact(StyleBorderLeftStyle {
1070            inner: BorderStyle::Solid,
1071        }),
1072    )),
1073    CssPropertyWithConditions::on_focus(CssProperty::BorderRightStyle(
1074        StyleBorderRightStyleValue::Exact(StyleBorderRightStyle {
1075            inner: BorderStyle::Solid,
1076        }),
1077    )),
1078    CssPropertyWithConditions::on_focus(CssProperty::BorderTopStyle(
1079        StyleBorderTopStyleValue::Exact(StyleBorderTopStyle {
1080            inner: BorderStyle::Solid,
1081        }),
1082    )),
1083    CssPropertyWithConditions::on_focus(CssProperty::BorderBottomColor(
1084        StyleBorderBottomColorValue::Exact(StyleBorderBottomColor {
1085            inner: ColorU {
1086                r: 38,
1087                g: 160,
1088                b: 218,
1089                a: 255,
1090            },
1091        }),
1092    )),
1093    CssPropertyWithConditions::on_focus(CssProperty::BorderLeftColor(
1094        StyleBorderLeftColorValue::Exact(StyleBorderLeftColor {
1095            inner: ColorU {
1096                r: 38,
1097                g: 160,
1098                b: 218,
1099                a: 255,
1100            },
1101        }),
1102    )),
1103    CssPropertyWithConditions::on_focus(CssProperty::BorderRightColor(
1104        StyleBorderRightColorValue::Exact(StyleBorderRightColor {
1105            inner: ColorU {
1106                r: 38,
1107                g: 160,
1108                b: 218,
1109                a: 255,
1110            },
1111        }),
1112    )),
1113    CssPropertyWithConditions::on_focus(CssProperty::BorderTopColor(
1114        StyleBorderTopColorValue::Exact(StyleBorderTopColor {
1115            inner: ColorU {
1116                r: 38,
1117                g: 160,
1118                b: 218,
1119                a: 255,
1120            },
1121        }),
1122    )),
1123    CssPropertyWithConditions::on_focus(CssProperty::BackgroundContent(
1124        StyleBackgroundContentVecValue::Exact(StyleBackgroundContentVec::from_const_slice(
1125            STYLE_BACKGROUND_CONTENT_11098930083828139815_ITEMS,
1126        )),
1127    )),
1128    // .__azul_native-list-rows-row:hover
1129    CssPropertyWithConditions::on_hover(CssProperty::BorderBottomWidth(
1130        LayoutBorderBottomWidthValue::Exact(LayoutBorderBottomWidth {
1131            inner: PixelValue::const_px(1),
1132        }),
1133    )),
1134    CssPropertyWithConditions::on_hover(CssProperty::BorderLeftWidth(
1135        LayoutBorderLeftWidthValue::Exact(LayoutBorderLeftWidth {
1136            inner: PixelValue::const_px(1),
1137        }),
1138    )),
1139    CssPropertyWithConditions::on_hover(CssProperty::BorderRightWidth(
1140        LayoutBorderRightWidthValue::Exact(LayoutBorderRightWidth {
1141            inner: PixelValue::const_px(1),
1142        }),
1143    )),
1144    CssPropertyWithConditions::on_hover(CssProperty::BorderTopWidth(
1145        LayoutBorderTopWidthValue::Exact(LayoutBorderTopWidth {
1146            inner: PixelValue::const_px(1),
1147        }),
1148    )),
1149    CssPropertyWithConditions::on_hover(CssProperty::BorderBottomStyle(
1150        StyleBorderBottomStyleValue::Exact(StyleBorderBottomStyle {
1151            inner: BorderStyle::Solid,
1152        }),
1153    )),
1154    CssPropertyWithConditions::on_hover(CssProperty::BorderLeftStyle(
1155        StyleBorderLeftStyleValue::Exact(StyleBorderLeftStyle {
1156            inner: BorderStyle::Solid,
1157        }),
1158    )),
1159    CssPropertyWithConditions::on_hover(CssProperty::BorderRightStyle(
1160        StyleBorderRightStyleValue::Exact(StyleBorderRightStyle {
1161            inner: BorderStyle::Solid,
1162        }),
1163    )),
1164    CssPropertyWithConditions::on_hover(CssProperty::BorderTopStyle(
1165        StyleBorderTopStyleValue::Exact(StyleBorderTopStyle {
1166            inner: BorderStyle::Solid,
1167        }),
1168    )),
1169    CssPropertyWithConditions::on_hover(CssProperty::BorderBottomColor(
1170        StyleBorderBottomColorValue::Exact(StyleBorderBottomColor {
1171            inner: ColorU {
1172                r: 101,
1173                g: 181,
1174                b: 220,
1175                a: 255,
1176            },
1177        }),
1178    )),
1179    CssPropertyWithConditions::on_hover(CssProperty::BorderLeftColor(
1180        StyleBorderLeftColorValue::Exact(StyleBorderLeftColor {
1181            inner: ColorU {
1182                r: 101,
1183                g: 181,
1184                b: 220,
1185                a: 255,
1186            },
1187        }),
1188    )),
1189    CssPropertyWithConditions::on_hover(CssProperty::BorderRightColor(
1190        StyleBorderRightColorValue::Exact(StyleBorderRightColor {
1191            inner: ColorU {
1192                r: 101,
1193                g: 181,
1194                b: 220,
1195                a: 255,
1196            },
1197        }),
1198    )),
1199    CssPropertyWithConditions::on_hover(CssProperty::BorderTopColor(
1200        StyleBorderTopColorValue::Exact(StyleBorderTopColor {
1201            inner: ColorU {
1202                r: 101,
1203                g: 181,
1204                b: 220,
1205                a: 255,
1206            },
1207        }),
1208    )),
1209    CssPropertyWithConditions::on_hover(CssProperty::BackgroundContent(
1210        StyleBackgroundContentVecValue::Exact(StyleBackgroundContentVec::from_const_slice(
1211            STYLE_BACKGROUND_CONTENT_3010057533077499049_ITEMS,
1212        )),
1213    )),
1214    // .__azul_native-list-rows-row
1215    CssPropertyWithConditions::simple(CssProperty::PaddingRight(LayoutPaddingRightValue::Exact(
1216        LayoutPaddingRight {
1217            inner: PixelValue::const_px(0),
1218        },
1219    ))),
1220    CssPropertyWithConditions::simple(CssProperty::PaddingLeft(LayoutPaddingLeftValue::Exact(
1221        LayoutPaddingLeft {
1222            inner: PixelValue::const_px(0),
1223        },
1224    ))),
1225    CssPropertyWithConditions::simple(CssProperty::PaddingBottom(LayoutPaddingBottomValue::Exact(
1226        LayoutPaddingBottom {
1227            inner: PixelValue::const_px(2),
1228        },
1229    ))),
1230    CssPropertyWithConditions::simple(CssProperty::PaddingTop(LayoutPaddingTopValue::Exact(
1231        LayoutPaddingTop {
1232            inner: PixelValue::const_px(2),
1233        },
1234    ))),
1235    CssPropertyWithConditions::simple(CssProperty::FlexGrow(LayoutFlexGrowValue::Exact(
1236        LayoutFlexGrow {
1237            inner: FloatValue::const_new(1),
1238        },
1239    ))),
1240    CssPropertyWithConditions::simple(CssProperty::FlexDirection(LayoutFlexDirectionValue::Exact(
1241        LayoutFlexDirection::Row,
1242    ))),
1243    CssPropertyWithConditions::simple(CssProperty::BorderBottomWidth(
1244        LayoutBorderBottomWidthValue::Exact(LayoutBorderBottomWidth {
1245            inner: PixelValue::const_px(1),
1246        }),
1247    )),
1248    CssPropertyWithConditions::simple(CssProperty::BorderLeftWidth(
1249        LayoutBorderLeftWidthValue::Exact(LayoutBorderLeftWidth {
1250            inner: PixelValue::const_px(1),
1251        }),
1252    )),
1253    CssPropertyWithConditions::simple(CssProperty::BorderRightWidth(
1254        LayoutBorderRightWidthValue::Exact(LayoutBorderRightWidth {
1255            inner: PixelValue::const_px(1),
1256        }),
1257    )),
1258    CssPropertyWithConditions::simple(CssProperty::BorderTopWidth(
1259        LayoutBorderTopWidthValue::Exact(LayoutBorderTopWidth {
1260            inner: PixelValue::const_px(1),
1261        }),
1262    )),
1263    CssPropertyWithConditions::simple(CssProperty::BorderBottomStyle(
1264        StyleBorderBottomStyleValue::Exact(StyleBorderBottomStyle {
1265            inner: BorderStyle::Solid,
1266        }),
1267    )),
1268    CssPropertyWithConditions::simple(CssProperty::BorderLeftStyle(
1269        StyleBorderLeftStyleValue::Exact(StyleBorderLeftStyle {
1270            inner: BorderStyle::Solid,
1271        }),
1272    )),
1273    CssPropertyWithConditions::simple(CssProperty::BorderRightStyle(
1274        StyleBorderRightStyleValue::Exact(StyleBorderRightStyle {
1275            inner: BorderStyle::Solid,
1276        }),
1277    )),
1278    CssPropertyWithConditions::simple(CssProperty::BorderTopStyle(
1279        StyleBorderTopStyleValue::Exact(StyleBorderTopStyle {
1280            inner: BorderStyle::Solid,
1281        }),
1282    )),
1283    CssPropertyWithConditions::simple(CssProperty::BorderBottomColor(
1284        StyleBorderBottomColorValue::Exact(StyleBorderBottomColor {
1285            inner: ColorU {
1286                r: 255,
1287                g: 255,
1288                b: 255,
1289                a: 0,
1290            },
1291        }),
1292    )),
1293    CssPropertyWithConditions::simple(CssProperty::BorderLeftColor(
1294        StyleBorderLeftColorValue::Exact(StyleBorderLeftColor {
1295            inner: ColorU {
1296                r: 255,
1297                g: 255,
1298                b: 255,
1299                a: 0,
1300            },
1301        }),
1302    )),
1303    CssPropertyWithConditions::simple(CssProperty::BorderRightColor(
1304        StyleBorderRightColorValue::Exact(StyleBorderRightColor {
1305            inner: ColorU {
1306                r: 255,
1307                g: 255,
1308                b: 255,
1309                a: 0,
1310            },
1311        }),
1312    )),
1313    CssPropertyWithConditions::simple(CssProperty::BorderTopColor(
1314        StyleBorderTopColorValue::Exact(StyleBorderTopColor {
1315            inner: ColorU {
1316                r: 255,
1317                g: 255,
1318                b: 255,
1319                a: 0,
1320            },
1321        }),
1322    )),
1323];
1324const CSS_MATCH_7894335449545988724: CssPropertyWithConditionsVec =
1325    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_7894335449545988724_PROPERTIES);
1326
1327const CSS_MATCH_7937682281721781688_PROPERTIES: &[CssPropertyWithConditions] = &[
1328    // .__azul_native-list-rows-row-cell
1329    CssPropertyWithConditions::simple(CssProperty::PaddingLeft(LayoutPaddingLeftValue::Exact(
1330        LayoutPaddingLeft {
1331            inner: PixelValue::const_px(7),
1332        },
1333    ))),
1334    CssPropertyWithConditions::simple(CssProperty::MinWidth(LayoutMinWidthValue::Exact(
1335        LayoutMinWidth {
1336            inner: PixelValue::const_px(100),
1337        },
1338    ))),
1339    CssPropertyWithConditions::simple(CssProperty::FontSize(StyleFontSizeValue::Exact(
1340        StyleFontSize {
1341            inner: PixelValue::const_px(11),
1342        },
1343    ))),
1344    CssPropertyWithConditions::simple(CssProperty::FontFamily(StyleFontFamilyVecValue::Exact(
1345        StyleFontFamilyVec::from_const_slice(STYLE_FONT_FAMILY_8122988506401935406_ITEMS),
1346    ))),
1347];
1348const CSS_MATCH_7937682281721781688: CssPropertyWithConditionsVec =
1349    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_7937682281721781688_PROPERTIES);
1350
1351const CSS_MATCH_8793836789597026811_PROPERTIES: &[CssPropertyWithConditions] = &[
1352    // .__azul_native-list-rows-row-cell
1353    CssPropertyWithConditions::simple(CssProperty::PaddingLeft(LayoutPaddingLeftValue::Exact(
1354        LayoutPaddingLeft {
1355            inner: PixelValue::const_px(7),
1356        },
1357    ))),
1358    CssPropertyWithConditions::simple(CssProperty::MinWidth(LayoutMinWidthValue::Exact(
1359        LayoutMinWidth {
1360            inner: PixelValue::const_px(100),
1361        },
1362    ))),
1363    CssPropertyWithConditions::simple(CssProperty::FontSize(StyleFontSizeValue::Exact(
1364        StyleFontSize {
1365            inner: PixelValue::const_px(11),
1366        },
1367    ))),
1368    CssPropertyWithConditions::simple(CssProperty::FontFamily(StyleFontFamilyVecValue::Exact(
1369        StyleFontFamilyVec::from_const_slice(STYLE_FONT_FAMILY_8122988506401935406_ITEMS),
1370    ))),
1371];
1372const CSS_MATCH_8793836789597026811: CssPropertyWithConditionsVec =
1373    CssPropertyWithConditionsVec::from_const_slice(CSS_MATCH_8793836789597026811_PROPERTIES);
1374
1375const IDS_AND_CLASSES_790316832563530605: &[IdOrClass] = &[Class(AzString::from_const_str(
1376    "__azul_native-list-rows-row",
1377))];
1378const ROW_CLASS: IdOrClassVec = IdOrClassVec::from_const_slice(IDS_AND_CLASSES_790316832563530605);
1379
1380const IDS_AND_CLASSES_3034181810805097699: &[IdOrClass] = &[Class(AzString::from_const_str(
1381    "__azul_native-list-rows-row-cell",
1382))];
1383const CELL_CLASS: IdOrClassVec =
1384    IdOrClassVec::from_const_slice(IDS_AND_CLASSES_3034181810805097699);
1385
1386const IDS_AND_CLASSES_6012478019077291002: &[IdOrClass] =
1387    &[Class(AzString::from_const_str("__azul_native-list-rows"))];
1388const ROW_CONTAINER_CLASS: IdOrClassVec =
1389    IdOrClassVec::from_const_slice(IDS_AND_CLASSES_6012478019077291002);
1390
1391const IDS_AND_CLASSES_10742579426112804392: &[IdOrClass] =
1392    &[Class(AzString::from_const_str("__azul_native-list-header"))];
1393const HEADER_CONTAINER_CLASS: IdOrClassVec =
1394    IdOrClassVec::from_const_slice(IDS_AND_CLASSES_10742579426112804392);
1395
1396const IDS_AND_CLASSES_9205819539370539587: &[IdOrClass] = &[Class(AzString::from_const_str(
1397    "__azul_native_list-container",
1398))];
1399const LIST_VIEW_CONTAINER_CLASS: IdOrClassVec =
1400    IdOrClassVec::from_const_slice(IDS_AND_CLASSES_9205819539370539587);
1401
1402const IDS_AND_CLASSES_18330792117162403422: &[IdOrClass] = &[Class(AzString::from_const_str(
1403    "__azul_native-list-header-item",
1404))];
1405const COLUMN_NAME_CLASS: IdOrClassVec =
1406    IdOrClassVec::from_const_slice(IDS_AND_CLASSES_18330792117162403422);
1407
1408pub type ListViewOnLazyLoadScrollCallbackType =
1409    extern "C" fn(RefAny, CallbackInfo, ListViewState) -> Update;
1410impl_widget_callback!(
1411    ListViewOnLazyLoadScroll,
1412    OptionListViewOnLazyLoadScroll,
1413    ListViewOnLazyLoadScrollCallback,
1414    ListViewOnLazyLoadScrollCallbackType
1415);
1416
1417pub type ListViewOnColumnClickCallbackType =
1418    extern "C" fn(RefAny, CallbackInfo, ListViewState, column_clicked: usize) -> Update;
1419impl_widget_callback!(
1420    ListViewOnColumnClick,
1421    OptionListViewOnColumnClick,
1422    ListViewOnColumnClickCallback,
1423    ListViewOnColumnClickCallbackType
1424);
1425
1426pub type ListViewOnRowClickCallbackType =
1427    extern "C" fn(RefAny, CallbackInfo, ListViewState, row_clicked: usize) -> Update;
1428impl_widget_callback!(
1429    ListViewOnRowClick,
1430    OptionListViewOnRowClick,
1431    ListViewOnRowClickCallback,
1432    ListViewOnRowClickCallbackType
1433);
1434
1435/// State of the ListView, but without row data
1436#[derive(Debug, Clone)]
1437#[repr(C)]
1438pub struct ListViewState {
1439    /// Copy of the current column names
1440    pub columns: StringVec,
1441    /// Which column the rows are currently sorted by
1442    pub sorted_by: OptionUsize,
1443    /// Row count of rows currently loaded in the DOM
1444    pub current_row_count: usize,
1445    /// Y-offset currently applied to the rows
1446    pub scroll_offset: PixelValueNoPercent,
1447    /// Current position where the user has scrolled the ListView to
1448    pub current_scroll_position: LogicalPosition,
1449    /// Current height of the row container
1450    pub current_content_height: LogicalSize,
1451}
1452
1453/// List view, optionally able to lazy-load data
1454#[derive(Debug, Clone)]
1455#[repr(C)]
1456pub struct ListView {
1457    /// Column names
1458    pub columns: StringVec,
1459    /// Currently rendered rows. Note that the ListView does not
1460    /// have to render all rows at once, usually you'd only render
1461    /// the top 100 rows
1462    pub rows: ListViewRowVec,
1463    /// Which column is the list view sorted by (default = None)?
1464    pub sorted_by: OptionUsize,
1465    /// Offset to add to the rows used when layouting row positions
1466    /// during lazy-loaded scrolling. Also affects the scroll position
1467    pub scroll_offset: PixelValueNoPercent,
1468    /// Height of the content, if not all rows are loaded
1469    pub content_height: OptionPixelValueNoPercent,
1470    /// Context menu for the columns (usually opens a context menu
1471    /// to select which columns to show)
1472    pub column_context_menu: OptionMenu,
1473    /// Indicates that this ListView is being lazily loaded, allows
1474    /// control over what happens when the user scrolls the ListView.
1475    pub on_lazy_load_scroll: OptionListViewOnLazyLoadScroll,
1476    /// What to do when the user left-clicks the column
1477    /// (usually used for storing which column to sort by)
1478    pub on_column_click: OptionListViewOnColumnClick,
1479    /// What to do when the user left-clicks a row
1480    /// (usually used for selecting the row depending on the state)
1481    pub on_row_click: OptionListViewOnRowClick,
1482}
1483
1484impl Default for ListView {
1485    fn default() -> Self {
1486        Self {
1487            columns: StringVec::from_const_slice(&[]),
1488            rows: ListViewRowVec::from_const_slice(&[]),
1489            sorted_by: None.into(),
1490            scroll_offset: PixelValueNoPercent {
1491                inner: PixelValue::const_px(0),
1492            },
1493            content_height: None.into(),
1494            column_context_menu: None.into(),
1495            on_lazy_load_scroll: None.into(),
1496            on_column_click: None.into(),
1497            on_row_click: None.into(),
1498        }
1499    }
1500}
1501
1502/// Row of the ListView
1503#[derive(Debug, Clone)]
1504#[repr(C)]
1505pub struct ListViewRow {
1506    /// Each cell is an opaque Dom object
1507    pub cells: DomVec,
1508    /// Height of the row, if known beforehand
1509    pub height: OptionPixelValueNoPercent,
1510}
1511
1512impl_vec!(
1513    ListViewRow,
1514    ListViewRowVec,
1515    ListViewRowVecDestructor,
1516    ListViewRowVecDestructorType
1517);
1518impl_vec_clone!(ListViewRow, ListViewRowVec, ListViewRowVecDestructor);
1519impl_vec_mut!(ListViewRow, ListViewRowVec);
1520impl_vec_debug!(ListViewRow, ListViewRowVec);
1521
1522impl ListView {
1523    pub fn create(columns: StringVec) -> Self {
1524        Self {
1525            columns,
1526            ..Default::default()
1527        }
1528    }
1529
1530    pub fn swap_with_default(&mut self) -> Self {
1531        let mut m = Self::default();
1532        core::mem::swap(&mut m, self);
1533        m
1534    }
1535
1536    pub fn with_columns(mut self, columns: StringVec) -> Self {
1537        self.set_columns(columns);
1538        self
1539    }
1540
1541    pub fn set_columns(&mut self, columns: StringVec) {
1542        self.columns = columns;
1543    }
1544
1545    pub fn with_rows(mut self, rows: ListViewRowVec) -> Self {
1546        self.set_rows(rows);
1547        self
1548    }
1549
1550    pub fn set_rows(&mut self, rows: ListViewRowVec) {
1551        self.rows = rows;
1552    }
1553
1554    pub fn with_sorted_by(mut self, sorted_by: OptionUsize) -> Self {
1555        self.set_sorted_by(sorted_by);
1556        self
1557    }
1558
1559    pub fn set_sorted_by(&mut self, sorted_by: OptionUsize) {
1560        self.sorted_by = sorted_by;
1561    }
1562
1563    pub fn with_scroll_offset(mut self, scroll_offset: PixelValueNoPercent) -> Self {
1564        self.set_scroll_offset(scroll_offset);
1565        self
1566    }
1567
1568    pub fn set_scroll_offset(&mut self, scroll_offset: PixelValueNoPercent) {
1569        self.scroll_offset = scroll_offset;
1570    }
1571
1572    pub fn with_content_height(mut self, content_height: PixelValueNoPercent) -> Self {
1573        self.set_content_height(content_height);
1574        self
1575    }
1576
1577    pub fn set_content_height(&mut self, content_height: PixelValueNoPercent) {
1578        self.content_height = Some(content_height).into();
1579    }
1580
1581    pub fn with_column_context_menu(mut self, context_menu: Menu) -> Self {
1582        self.set_column_context_menu(context_menu);
1583        self
1584    }
1585
1586    pub fn set_column_context_menu(&mut self, column_context_menu: Menu) {
1587        self.column_context_menu = Some(column_context_menu).into();
1588    }
1589
1590    pub fn with_on_column_click<C: Into<ListViewOnColumnClickCallback>>(
1591        mut self,
1592        refany: RefAny,
1593        on_column_click: C,
1594    ) -> Self {
1595        self.set_on_column_click(refany, on_column_click);
1596        self
1597    }
1598
1599    pub fn set_on_column_click<C: Into<ListViewOnColumnClickCallback>>(
1600        &mut self,
1601        refany: RefAny,
1602        on_column_click: C,
1603    ) {
1604        self.on_column_click = Some(ListViewOnColumnClick {
1605            refany,
1606            callback: on_column_click.into(),
1607        })
1608        .into();
1609    }
1610
1611    pub fn with_on_row_click<C: Into<ListViewOnRowClickCallback>>(
1612        mut self,
1613        refany: RefAny,
1614        on_row_click: C,
1615    ) -> Self {
1616        self.set_on_row_click(refany, on_row_click);
1617        self
1618    }
1619
1620    pub fn set_on_row_click<C: Into<ListViewOnRowClickCallback>>(
1621        &mut self,
1622        refany: RefAny,
1623        on_row_click: C,
1624    ) {
1625        self.on_row_click = Some(ListViewOnRowClick {
1626            refany,
1627            callback: on_row_click.into(),
1628        })
1629        .into();
1630    }
1631
1632    pub fn dom(self) -> Dom {
1633        Dom::create_div()
1634            .with_css_props(CSS_MATCH_17553577885456905601)
1635            .with_ids_and_classes(LIST_VIEW_CONTAINER_CLASS)
1636            .with_children(DomVec::from_vec(vec![
1637                // header
1638                Dom::create_div()
1639                    .with_css_props(CSS_MATCH_15315949193378715186)
1640                    .with_ids_and_classes(HEADER_CONTAINER_CLASS)
1641                    .with_children(
1642                        self.columns
1643                            .iter()
1644                            .map(|col| {
1645                                Dom::create_div()
1646                                    .with_css_props(CSS_MATCH_12498280255863106397)
1647                                    .with_ids_and_classes(COLUMN_NAME_CLASS)
1648                                    .with_child({
1649                                        Dom::create_text(col.clone())
1650                                            .with_css_props(CSS_MATCH_15673486787900743642)
1651                                    })
1652                            })
1653                            .collect::<Vec<_>>()
1654                            .into(),
1655                    ),
1656                // rows
1657                Dom::create_div()
1658                    .with_css_props(CSS_MATCH_4852927511892172364)
1659                    .with_ids_and_classes(ROW_CONTAINER_CLASS)
1660                    .with_children(
1661                        self.rows
1662                            .into_iter()
1663                            .map(|row| {
1664                                Dom::create_div()
1665                                    .with_css_props(CSS_MATCH_7894335449545988724)
1666                                    .with_tab_index(TabIndex::Auto)
1667                                    .with_ids_and_classes(ROW_CLASS.clone())
1668                                    .with_tab_index(TabIndex::Auto)
1669                                    .with_children(
1670                                        row.cells
1671                                            .as_ref()
1672                                            .iter()
1673                                            .map(|cell| {
1674                                                Dom::create_div()
1675                                                    .with_css_props(CSS_MATCH_12980082330151137475)
1676                                                    .with_ids_and_classes(CELL_CLASS)
1677                                                    .with_child(cell.clone())
1678                                            })
1679                                            .collect::<Vec<_>>()
1680                                            .into(),
1681                                    )
1682                            })
1683                            .collect::<Vec<_>>()
1684                            .into(),
1685                    ),
1686            ]))
1687    }
1688}