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