1with agar.core.types; 2with agar.gui.rect; 3with agar.gui.widget; 4with agar.gui.window; 5with interfaces.c.strings; 6 7package agar.gui.style is 8 package cs renames interfaces.c.strings; 9 10 type version_t is record 11 major : c.int; 12 minor : c.int; 13 end record; 14 type version_access_t is access all version_t; 15 pragma convention (c, version_t); 16 pragma convention (c, version_access_t); 17 18 type style_t; 19 type style_access_t is access all style_t; 20 21 type style_t is record 22 name : cs.chars_ptr; 23 version : version_t; 24 init : access procedure (style : style_access_t); 25 destroy : access procedure (style : style_access_t); 26 window : access procedure (window : agar.gui.window.window_access_t); 27 titlebar_background : access procedure 28 (widget : agar.gui.widget.widget_access_t; 29 is_pressed : c.int; 30 is_focused : c.int); 31 button_background : access procedure 32 (widget : agar.gui.widget.widget_access_t; 33 is_pressed : c.int); 34 button_text_offset : access procedure 35 (widget : agar.gui.widget.widget_access_t; 36 is_pressed : c.int; 37 x : access c.int; 38 y : access c.int); 39 box_frame : access procedure 40 (widget : agar.gui.widget.widget_access_t; 41 depth : c.int); 42 checkbox_button : access procedure 43 (widget : agar.gui.widget.widget_access_t; 44 state : c.int); 45 console_background : access procedure 46 (widget : agar.gui.widget.widget_access_t; 47 bg : agar.core.types.uint32_t); 48 fixed_plotter_background : access procedure 49 (widget : agar.gui.widget.widget_access_t; 50 show_axis : c.int; 51 y_offset : agar.core.types.uint32_t); 52 menu_root_background : access procedure 53 (widget : agar.gui.widget.widget_access_t); 54 menu_root_selected_item_background : access procedure 55 (widget : agar.gui.widget.widget_access_t; 56 rect : agar.gui.rect.rect_t); 57 menu_background : access procedure 58 (widget : agar.gui.widget.widget_access_t; 59 rect : agar.gui.rect.rect_t); 60 menu_item_background : access procedure 61 (widget : agar.gui.widget.widget_access_t; 62 rect : agar.gui.rect.rect_t; 63 x_icon : c.int; 64 icon_obj : agar.gui.widget.widget_access_t; 65 icon : c.int; 66 is_selected : c.int; 67 bool_state : c.int); 68 menu_item_separator : access procedure 69 (widget : agar.gui.widget.widget_access_t; 70 x1 : c.int; 71 x2 : c.int; 72 y : c.int; 73 h : c.int); 74 notebook_background : access procedure 75 (widget : agar.gui.widget.widget_access_t; 76 rect : agar.gui.rect.rect_t); 77 notebook_tab_background : access procedure 78 (widget : agar.gui.widget.widget_access_t; 79 rect : agar.gui.rect.rect_t; 80 index : c.int; 81 is_selected : c.int); 82 pane_horizontal_divider : access procedure 83 (widget : agar.gui.widget.widget_access_t; 84 x : c.int; 85 y : c.int; 86 w : c.int; 87 h : c.int; 88 is_moving : c.int); 89 pane_vertical_divider : access procedure 90 (widget : agar.gui.widget.widget_access_t; 91 x : c.int; 92 y : c.int; 93 w : c.int; 94 h : c.int; 95 is_moving : c.int); 96 radio_group_background : access procedure 97 (widget : agar.gui.widget.widget_access_t; 98 rect : agar.gui.rect.rect_t); 99 radio_button : access procedure 100 (widget : agar.gui.widget.widget_access_t; -- XXX: AG_Radio * 101 x : c.int; 102 y : c.int; 103 selected : c.int; 104 over : c.int); 105 progress_bar_background : access procedure 106 (widget : agar.gui.widget.widget_access_t); 107 scrollbar_vertical : access procedure 108 (widget : agar.gui.widget.widget_access_t; -- XXX: AG_Scrollbar * 109 y : c.int; 110 h : c.int); 111 scrollbar_horizontal : access procedure 112 (widget : agar.gui.widget.widget_access_t; -- XXX: AG_Scrollbar * 113 x : c.int; 114 w : c.int); 115 slider_background_horizontal : access procedure 116 (widget : agar.gui.widget.widget_access_t); 117 slider_background_vertical : access procedure 118 (widget : agar.gui.widget.widget_access_t); 119 slider_control_horizontal : access procedure 120 (widget : agar.gui.widget.widget_access_t; 121 x : c.int; 122 y : c.int); 123 slider_control_vertical : access procedure 124 (widget : agar.gui.widget.widget_access_t; 125 y : c.int; 126 h : c.int); 127 separator_horizontal : access procedure 128 (widget : agar.gui.widget.widget_access_t); -- XXX: AG_Separator * 129 separator_vertical : access procedure 130 (widget : agar.gui.widget.widget_access_t); -- XXX: AG_Separator * 131 socket_background : access procedure 132 (widget : agar.gui.widget.widget_access_t); -- XXX: AG_Socket * 133 socket_overlay : access procedure 134 (widget : agar.gui.widget.widget_access_t; -- XXX: AG_Socket * 135 highlight : c.int); 136 table_background : access procedure 137 (widget : agar.gui.widget.widget_access_t; 138 rect : agar.gui.rect.rect_t); 139 table_column_header_background : access procedure 140 (widget : agar.gui.widget.widget_access_t; 141 index : c.int; 142 rect : agar.gui.rect.rect_t; 143 is_selected : c.int); 144 table_selected_column_background : access procedure 145 (widget : agar.gui.widget.widget_access_t; 146 index : c.int; 147 rect : agar.gui.rect.rect_t); 148 table_row_background : access procedure 149 (widget : agar.gui.widget.widget_access_t; 150 rect : agar.gui.rect.rect_t; 151 is_selected : c.int); 152 textbox_background : access procedure 153 (widget : agar.gui.widget.widget_access_t; 154 rect : agar.gui.rect.rect_t; 155 is_combo : c.int); 156 list_background : access procedure 157 (widget : agar.gui.widget.widget_access_t; 158 rect : agar.gui.rect.rect_t); 159 list_item_background : access procedure 160 (widget : agar.gui.widget.widget_access_t; 161 rect : agar.gui.rect.rect_t; 162 is_selected : c.int); 163 tree_subnode_indicator : access procedure 164 (widget : agar.gui.widget.widget_access_t; 165 rect : agar.gui.rect.rect_t; 166 is_expanded : c.int); 167 end record; 168 pragma convention (c, style_t); 169 pragma convention (c, style_access_t); 170 171 procedure set_style 172 (widget : agar.gui.widget.widget_access_t; 173 style : style_access_t); 174 procedure set_style 175 (widget : agar.gui.window.window_access_t; 176 style : style_access_t); 177 pragma import (c, set_style, "AG_SetStyle"); 178 179end agar.gui.style; 180