<!--
Example
<lv_obj width="100" hidden="true"/>
 -->

<widget>
	<api>
		<enumdef name="lv_obj_flag">
		    <enum name="hidden"       help="Make the object hidden. (Like it wasn't there at all)"/>
		    <enum name="clickable"       help="Make the object clickable by the input devices"/>
		    <enum name="click_focusable" help="Add focused state to the object when clicked"/>
		    <enum name="checkable"       help="Toggle checked state when the object is clicked"/>
		    <enum name="scrollable"      help="Make the object scrollable"/>
		    <enum name="scroll_elastic"  help="Allow scrolling inside but with slower speed"/>
		    <enum name="scroll_momentum" help="Make the object scroll further when 'thrown'"/>
		    <enum name="scroll_one"      help="Allow scrolling only one snappable children"/>
		    <enum name="scroll_chain_hor" help="Allow propagating the horizontal scroll to a parent"/>
		    <enum name="scroll_chain_ver" help="Allow propagating the vertical scroll to a parent"/>
		    <enum name="scroll_chain"      help="SCROLL_CHAIN_HOR and SCROLL_CHAIN_VER"/>
		    <enum name="scroll_on_focus" help="Automatically scroll object to make it visible when focused"/>
		    <enum name="scroll_with_arrow"  help="Allow scrolling the focused object with arrow keys"/>
		    <enum name="snappable"       help="If scroll snap is enabled on the parent it can snap to this object"/>
		    <enum name="press_lock"      help="Keep the object pressed even if the press slid from the object"/>
		    <enum name="event_bubble"    help="Propagate the events to the parent too"/>
		    <enum name="gesture_bubble"  help="Propagate the gestures to the parent"/>
		    <enum name="adv_hittest"     help="Allow performing more accurate hit (click) test. E.g. consider rounded corners."/>
		    <enum name="ignore_layout"   help="Make the object not positioned by the layouts"/>
		    <enum name="floating"        help="Do not scroll the object when the parent scrolls and ignore layout"/>
		    <enum name="send_draw_task_evenTS" help="Send `LV_EVENT_DRAW_TASK_ADDED` events"/>
		    <enum name="overflow_visible" help="Do not clip the children to the parent's ext draw size"/>
		    <enum name="flex_in_new_track" help="Start a new flex track on this item"/>
		    <enum name="layout_1"        help="Custom flag, free to use by layouts"/>
		    <enum name="layout_2"        help="Custom flag, free to use by layouts"/>
		    <enum name="widget_1"        help="Custom flag, free to use by widget"/>
		    <enum name="widget_2"        help="Custom flag, free to use by widget"/>
		    <enum name="user_1"          help="Custom flag, free to use by user"/>
		    <enum name="user_2"          help="Custom flag, free to use by user"/>
		    <enum name="user_3"          help="Custom flag, free to use by user"/>
		    <enum name="user_4"          help="Custom flag, free to use by user"/>
		</enumdef>

	    <prop name="name" type="string"/>
	    <prop name="store" type="bool"/>
	    <prop name="x" type="coords"/>
	    <prop name="y" type="coords"/>
	    <prop name="height" type="coords"/>
	    <prop name="width" type="coords"/>
	    <prop name="align" type="enum:lv_align"/>
	    <prop name="styles"  type="styles[]"/>

        <prop name="ext_click_area" type="int"/>

        <prop name="style_x" type="coords"/>
        <prop name="style_y" type="coords"/>
        <prop name="style_height" type="coords"/>
        <prop name="style_min_height" type="coords"/>
        <prop name="style_max_height" type="coords"/>
        <prop name="style_width" type="coords"/>
        <prop name="style_min_width" type="coords"/>
        <prop name="style_max_width" type="coords"/>
        <prop name="style_length" type="coords"/>

        <prop name="style_pad_top" type="int"/>
        <prop name="style_pad_bottom" type="int"/>
        <prop name="style_pad_left" type="int"/>
        <prop name="style_pad_right" type="int"/>
        <prop name="style_pad_hor" type="int"/>
        <prop name="style_pad_ver" type="int"/>
        <prop name="style_pad_all" type="int"/>
        <prop name="style_pad_row" type="int"/>
        <prop name="style_pad_column" type="int"/>
        <prop name="style_pad_radial" type="int"/>
        <prop name="style_pad_radial" type="int"/>
        <prop name="style_margin_top" type="int"/>
        <prop name="style_margin_bottom" type="int"/>
        <prop name="style_margin_left" type="int"/>
        <prop name="style_margin_right" type="int"/>
        <prop name="style_margin_hor" type="int"/>
        <prop name="style_margin_ver" type="int"/>
        <prop name="style_margin_all" type="int"/>

        <prop name="style_radius" type="int"/>
        <prop name="style_radial_offset" type="int"/>
        <prop name="style_align" type="enum:lv_align"/>
        <prop name="style_clip_corner" type="bool"/>
        <prop name="style_base_dir" type="enum:lv_base_dir"/>

        <prop name="style_bg_color" type="color"/>
        <prop name="style_bg_opa" type="opa"/>
        <prop name="style_bg_grad_dir" type="enum:lv_grad_dir"/>
        <prop name="style_bg_main_stop" type="int"/>
        <prop name="style_bg_grad_stop" type="int"/>
        <prop name="style_bg_grad_color" type="color"/>

        <prop name="style_bg_image_src" type="image"/>
        <prop name="style_bg_image_tiled" type="bool"/>
        <prop name="style_bg_image_recolor" type="color"/>
        <prop name="style_bg_image_recolor_opa" type="opa"/>

        <prop name="style_border_color" type="color"/>
        <prop name="style_border_width" type="int"/>
        <prop name="style_border_opa" type="opa"/>
        <prop name="style_border_side" type="enum:lv_border_side"/>
        <prop name="style_border_post" type="bool"/>

        <prop name="style_outline_color" type="color"/>
        <prop name="style_outline_width" type="int"/>
        <prop name="style_outline_opa" type="opa"/>
        <prop name="style_outline_pad" type="int"/>

        <prop name="style_style_shadow_width" type="int"/>
        <prop name="style_shadow_color" type="color"/>
        <prop name="style_shadow_opa" type="opa"/>
        <prop name="style_shadow_offset_x" type="int"/>
        <prop name="style_shadow_offset_y" type="int"/>
        <prop name="style_shadow_spread" type="int"/>

        <prop name="style_text_color" type="color"/>
        <prop name="style_text_opa" type="opa"/>
        <prop name="style_text_font" type="font"/>
        <prop name="style_text_align" type="enum:lv_text_align"/>
        <prop name="style_text_letter_space" type="int"/>
        <prop name="style_text_line_space" type="int"/>
        <prop name="style_text_decor" type="enum:lv_text_decor"/>

        <prop name="style_image_opa" type="opa"/>
        <prop name="style_image_recolor" type="color"/>
        <prop name="style_image_recolor_opa" type="opa"/>

        <prop name="style_line_width" type="int"/>
        <prop name="style_line_color" type="color"/>
        <prop name="style_line_opa" type="opa"/>
        <prop name="style_line_dash_width" type="int"/>
        <prop name="style_line_dash_gap" type="int"/>
        <prop name="style_line_rounded" type="bool"/>

        <prop name="style_arc_width" type="int"/>
        <prop name="style_arc_color" type="color"/>
        <prop name="style_arc_opa" type="opa"/>
        <prop name="style_arc_rounded" type="bool"/>
        <prop name="style_arc_image_src" type="image"/>

        <prop name="style_layout" type="enum:lv_layout"/>

        <prop name="style_flex_flow" type="enum:lv_flex_flow"/>
        <prop name="style_flex_main_place" type="enum:lv_flex_align"/>
        <prop name="style_flex_cross_place" type="enum:lv_flex_align"/>
        <prop name="style_flex_track_place" type="enum:lv_flex_align"/>
        <prop name="style_flex_grow" type="int"/>

        <prop name="style_grid_column_align" type="enum:lv_grid_align"/>
        <prop name="style_grid_row_align" type="enum:lv_grid_align"/>
        <prop name="style_grid_cell_column_pos" type="int"/>
        <prop name="style_grid_cell_column_span" type="int"/>
        <prop name="style_grid_cell_x_align" type="enum:lv_grid_align"/>
        <prop name="style_grid_cell_row_pos" type="int"/>
        <prop name="style_grid_cell_row_span" type="int"/>
        <prop name="style_grid_cell_y_align" type="enum:lv_grid_align"/>

        <prop name="style_opa" type="opa"/>
        <prop name="style_opa_layered" type="opa"/>
        <prop name="style_color_filter_opa" type="opa"/>
        <prop name="style_anim_duration" type="int"/>
        <prop name="style_blend_mode" type="enum:lv_blend_mode"/>
        <prop name="style_transform_width" type="int"/>
        <prop name="style_transform_height" type="int"/>
        <prop name="style_translate_x" type="int"/>
        <prop name="style_translate_y" type="int"/>
        <prop name="style_translate_radial" type="int"/>
        <prop name="style_transform_scale_x" type="int"/>
        <prop name="style_transform_scale_y" type="int"/>
        <prop name="style_transform_rotation" type="int"/>
        <prop name="style_transform_pivot_x" type="int"/>
        <prop name="style_transform_pivot_y" type="int"/>
        <prop name="style_transform_skew_x" type="int"/>
        <prop name="style_transform_skew_y" type="int"/>
        <prop name="style_bitmap_mask_src" type="image"/>
        <prop name="style_rotary_sensitivity" type="int"/>
        <prop name="style_recolor" type="color"/>
        <prop name="style_recolor_opa" type="opa"/>

	    <prop name="flex_grow" type="int"/>
	    <prop name="flex_flow" type="enum:lv_flex_flow"/>

	    <prop name="checked" 			type="flag:state lv_state"/>
	    <prop name="focused" 			type="flag:state lv_state"/>
	    <prop name="focus_key" 			type="flag:state lv_state"/>
	    <prop name="edited" 			type="flag:state lv_state"/>
	    <prop name="hovered" 			type="flag:state lv_state"/>
	    <prop name="pressed" 			type="flag:state lv_state"/>
	    <prop name="scrolled" 			type="flag:state lv_state"/>
	    <prop name="disabled" 			type="flag:state lv_state"/>

	    <prop name="hidden" 			type="flag:flag lv_obj_flag"/>
	    <prop name="clickable" 			type="flag:flag lv_obj_flag"/>
	    <prop name="click_focusable" 	type="flag:flag lv_obj_flag"/>
	    <prop name="checkable" 			type="flag:flag lv_obj_flag"/>
	    <prop name="scrollable" 		type="flag:flag lv_obj_flag"/>
	    <prop name="scroll_elastic" 	type="flag:flag lv_obj_flag"/>
	    <prop name="scroll_momentum" 	type="flag:flag lv_obj_flag"/>
	    <prop name="scroll_one" 		type="flag:flag lv_obj_flag"/>
	    <prop name="scroll_chain_hor" 	type="flag:flag lv_obj_flag"/>
	    <prop name="scroll_chain_ver" 	type="flag:flag lv_obj_flag"/>
	    <prop name="scroll_chain" 		type="flag:flag lv_obj_flag"/>
	    <prop name="scroll_on_focus" 	type="flag:flag lv_obj_flag"/>
	    <prop name="scroll_with_arrow" 	type="flag:flag lv_obj_flag"/>
	    <prop name="snappable" 			type="flag:flag lv_obj_flag"/>
	    <prop name="press_lock" 		type="flag:flag lv_obj_flag"/>
	    <prop name="event_bubble" 		type="flag:flag lv_obj_flag"/>
	    <prop name="gesture_bubble" 	type="flag:flag lv_obj_flag"/>
	    <prop name="adv_hittest" 		type="flag:flag lv_obj_flag"/>
	    <prop name="ignore_layout" 		type="flag:flag lv_obj_flag"/>
	    <prop name="floating" 			type="flag:flag lv_obj_flag"/>
	    <prop name="send_draw_task_events" type="flag:flag lv_obj_flag"/>
	    <prop name="overflow_visible" 	type="flag:flag lv_obj_flag"/>
	    <prop name="flex_in_new_track" 	type="flag:flag lv_obj_flag"/>

	    <prop name="bind_checked" type="subject"/>
	    <prop name="bind_flag_if_eq">
	    	<param name="subject" type="subject"/>
	    	<param name="flag" type="enum:lv_obj_flag"/>
	    	<param name="ref_value" type="int"/>
	    </prop>
	    <prop name="bind_flag_if_not_eq">
	    	<param name="subject" type="subject"/>
	    	<param name="flag" type="enum:lv_obj_flag"/>
	    	<param name="ref_value" type="int"/>
	    </prop>
	    <prop name="bind_flag_if_gt">
	    	<param name="subject" type="subject"/>
	    	<param name="flag" type="enum:lv_obj_flag"/>
	    	<param name="ref_value" type="int"/>
	    </prop>
	    <prop name="bind_flag_if_ge">
	    	<param name="subject" type="subject"/>
	    	<param name="flag" type="enum:lv_obj_flag"/>
	    	<param name="ref_value" type="int"/>
	    </prop>
	    <prop name="bind_flag_if_lt">
	    	<param name="subject" type="subject"/>
	    	<param name="flag" type="enum:lv_obj_flag"/>
	    	<param name="ref_value" type="int"/>
	    </prop>
	    <prop name="bind_flag_if_le">
	    	<param name="subject" type="subject"/>
	    	<param name="flag" type="enum:lv_obj_flag"/>
	    	<param name="ref_value" type="int"/>
	    </prop>
	    <prop name="bind_state_if_eq">
	    	<param name="subject" type="subject"/>
	    	<param name="flag" type="enum:lv_state"/>
	    	<param name="ref_value" type="int"/>
	    </prop>
	    <prop name="bind_state_if_not_eq">
	    	<param name="subject" type="subject"/>
	    	<param name="flag" type="enum:lv_state"/>
	    	<param name="ref_value" type="int"/>
	    </prop>
	    <prop name="bind_state_if_gt">
	    	<param name="subject" type="subject"/>
	    	<param name="flag" type="enum:lv_state"/>
	    	<param name="ref_value" type="int"/>
	    </prop>
	    <prop name="bind_state_if_ge">
	    	<param name="subject" type="subject"/>
	    	<param name="flag" type="enum:lv_state"/>
	    	<param name="ref_value" type="int"/>
	    </prop>
	    <prop name="bind_state_if_lt">
	    	<param name="subject" type="subject"/>
	    	<param name="flag" type="enum:lv_state"/>
	    	<param name="ref_value" type="int"/>
	    </prop>
	    <prop name="bind_state_if_le">
	    	<param name="subject" type="subject"/>
	    	<param name="flag" type="enum:lv_state"/>
	    	<param name="ref_value" type="int"/>
	    </prop>
	</api>
</widget>