1 /*******************************************************************************/
2 /*  This file is auto-generated by Azure RTOS GUIX Studio. Do not edit this    */
3 /*  file by hand. Modifications to this file should only be made by running    */
4 /*  the Azure RTOS GUIX Studio application and re-generating the application   */
5 /*  specification file(s). For more information please refer to the Azure RTOS */
6 /*  GUIX Studio User Guide, or visit our web site at azure.com/rtos            */
7 /*                                                                             */
8 /*  GUIX Studio Revision 6.2.0.1                                               */
9 /*  Date (dd.mm.yyyy): 31.10.2022   Time (hh:mm): 14:07                        */
10 /*******************************************************************************/
11 
12 
13 #ifndef _ALL_WIDGETS_5_3_3_SPECIFICATIONS_H_
14 #define _ALL_WIDGETS_5_3_3_SPECIFICATIONS_H_
15 
16 #include "gx_api.h"
17 
18 /* Determine if C++ compiler is being used, if so use standard C.              */
19 #ifdef __cplusplus
20 extern   "C" {
21 #endif
22 
23 /* Define widget ids                                                           */
24 
25 #define ID_SPRITE_SCREEN 1
26 #define ID_ALPHA_SLIDER 2
27 #define IDB_NEXT 3
28 #define ID_BIRD_SPRITE 4
29 #define ID_GAUGE_SCREEN 5
30 #define ID_GAUGE 6
31 #define IDB_OK 7
32 #define IDB_CANCEL 8
33 #define ID_INDICATOR_SCREEN 9
34 #define ID_SLIDER_HORIZONTAL 10
35 #define ID_SLIDER_1 11
36 #define ID_PIXELMAP_SLIDER_H 12
37 #define ID_PIXELMAP_SLIDER1 13
38 #define ID_TEXT_SCREEN 14
39 #define ID_PROMPT_1 15
40 #define ID_PROMPT_2 16
41 #define ID_PROMPT_3 17
42 #define ID_PROMPT_4 18
43 #define ID_WINDOW_SCREEN 19
44 #define ID_HORIZONTAL_SCROLLBAR 20
45 #define ID_VERTICAL_SCROLLBAR 21
46 #define ID_VERTICAL_LIST 22
47 #define ID_DROP_LIST 23
48 #define ID_BUTTON_SCREEN 24
49 #define ID_TEXT_BUTTON 25
50 #define ID_CHECKBOX 26
51 #define ID_RADIO_BUTTON 27
52 #define ID_PIXELMAP_BUTTON 28
53 #define ID_ICON 29
54 #define ID_ICON_BUTTON 30
55 
56 
57 /* Define animation ids                                                        */
58 
59 #define GX_NEXT_ANIMATION_ID 1
60 
61 
62 /* Define user event ids                                                       */
63 
64 #define GX_NEXT_USER_EVENT_ID GX_FIRST_USER_EVENT
65 
66 
67 /* Declare properties structures for each utilized widget type                 */
68 
69 typedef struct GX_STUDIO_WIDGET_STRUCT
70 {
71    GX_CHAR *widget_name;
72    USHORT  widget_type;
73    USHORT  widget_id;
74    #if defined(GX_WIDGET_USER_DATA)
75    INT   user_data;
76    #endif
77    ULONG style;
78    ULONG status;
79    ULONG control_block_size;
80    GX_RESOURCE_ID normal_fill_color_id;
81    GX_RESOURCE_ID selected_fill_color_id;
82    UINT (*create_function) (GX_CONST struct GX_STUDIO_WIDGET_STRUCT *, GX_WIDGET *, GX_WIDGET *);
83    void (*draw_function) (GX_WIDGET *);
84    UINT (*event_function) (GX_WIDGET *, GX_EVENT *);
85    GX_RECTANGLE size;
86    GX_CONST struct GX_STUDIO_WIDGET_STRUCT *next_widget;
87    GX_CONST struct GX_STUDIO_WIDGET_STRUCT *child_widget;
88    ULONG control_block_offset;
89    GX_CONST void *properties;
90 } GX_STUDIO_WIDGET;
91 
92 typedef struct
93 {
94     GX_CONST GX_STUDIO_WIDGET *widget_information;
95     GX_WIDGET        *widget;
96 } GX_STUDIO_WIDGET_ENTRY;
97 
98 typedef struct
99 {
100     GX_RESOURCE_ID string_id;
101     GX_RESOURCE_ID font_id;
102     GX_RESOURCE_ID normal_text_color_id;
103     GX_RESOURCE_ID selected_text_color_id;
104 } GX_TEXT_BUTTON_PROPERTIES;
105 
106 typedef struct
107 {
108     GX_RESOURCE_ID string_id;
109     GX_RESOURCE_ID font_id;
110     GX_RESOURCE_ID normal_text_color_id;
111     GX_RESOURCE_ID selected_text_color_id;
112 } GX_ML_TEXT_BUTTON_PROPERTIES;
113 
114 typedef struct
115 {
116     GX_RESOURCE_ID string_id;
117     GX_RESOURCE_ID font_id;
118     GX_RESOURCE_ID normal_text_color_id;
119     GX_RESOURCE_ID selected_text_color_id;
120     GX_RESOURCE_ID unchecked_pixelmap_id;
121     GX_RESOURCE_ID checked_pixelmap_id;
122     GX_RESOURCE_ID unchecked_disabled_pixelmap_id;
123     GX_RESOURCE_ID checked_disabled_pixelmap_id;
124 } GX_CHECKBOX_PROPERTIES;
125 
126 typedef struct
127 {
128     GX_RESOURCE_ID string_id;
129     GX_RESOURCE_ID font_id;
130     GX_RESOURCE_ID normal_text_color_id;
131     GX_RESOURCE_ID selected_text_color_id;
132     GX_RESOURCE_ID off_pixelmap_id;
133     GX_RESOURCE_ID on_pixelmap_id;
134     GX_RESOURCE_ID off_disabled_pixelmap_id;
135     GX_RESOURCE_ID on_disabled_pixelmap_id;
136 } GX_RADIO_BUTTON_PROPERTIES;
137 
138 typedef struct
139 {
140     GX_RESOURCE_ID pixelmap_id;
141 } GX_ICON_BUTTON_PROPERTIES;
142 
143 typedef struct
144 {
145     GX_RESOURCE_ID normal_pixelmap_id;
146     GX_RESOURCE_ID selected_pixelmap_id;
147     GX_RESOURCE_ID disabled_pixelmap_id;
148 } GX_PIXELMAP_BUTTON_PROPERTIES;
149 
150 typedef struct
151 {
152     GX_RESOURCE_ID normal_pixelmap_id;
153     GX_RESOURCE_ID selected_pixelmap_id;
154 } GX_ICON_PROPERTIES;
155 
156 typedef struct
157 {
158     int tickmark_count;
159     int minval;
160     int maxval;
161     int current_val;
162     int increment;
163     GX_VALUE min_travel;
164     GX_VALUE max_travel;
165     GX_VALUE needle_width;
166     GX_VALUE needle_height;
167     GX_VALUE needle_inset;
168     GX_VALUE needle_hotspot;
169 } GX_SLIDER_PROPERTIES;
170 
171 typedef struct
172 {
173     int min_val;
174     int max_val;
175     int current_val;
176     int increment;
177     GX_VALUE min_travel;
178     GX_VALUE max_travel;
179     GX_VALUE needle_width;
180     GX_VALUE needle_height;
181     GX_VALUE needle_inset;
182     GX_VALUE needle_hotspot;
183     GX_RESOURCE_ID lower_pixelmap;
184     GX_RESOURCE_ID upper_pixelmap;
185     GX_RESOURCE_ID needle_pixelmap;
186 } GX_PIXELMAP_SLIDER_PROPERTIES;
187 
188 typedef struct
189 {
190     GX_SPRITE_FRAME *frame_list;
191     USHORT           frame_count;
192 } GX_SPRITE_PROPERTIES;
193 
194 typedef struct
195 {
196     GX_RESOURCE_ID string_id;
197     GX_RESOURCE_ID font_id;
198     GX_RESOURCE_ID normal_text_color_id;
199     GX_RESOURCE_ID selected_text_color_id;
200 } GX_PROMPT_PROPERTIES;
201 
202 typedef struct
203 {
204     GX_RESOURCE_ID string_id;
205     GX_RESOURCE_ID font_id;
206     GX_RESOURCE_ID normal_text_color_id;
207     GX_RESOURCE_ID selected_text_color_id;
208     GX_RESOURCE_ID left_map_id;
209     GX_RESOURCE_ID fill_map_id;
210     GX_RESOURCE_ID right_map_id;
211     GX_RESOURCE_ID selected_left_map_id;
212     GX_RESOURCE_ID selected_fill_map_id;
213     GX_RESOURCE_ID selected_right_map_id;
214 } GX_PIXELMAP_PROMPT_PROPERTIES;
215 
216 typedef struct
217 {
218     GX_RESOURCE_ID wallpaper_id;
219 } GX_WINDOW_PROPERTIES;
220 
221 typedef struct
222 {
223     GX_RESOURCE_ID wallpaper_id;
224     VOID (*callback)(GX_VERTICAL_LIST *, GX_WIDGET *, INT);
225     int total_rows;
226 } GX_VERTICAL_LIST_PROPERTIES;
227 
228 typedef struct
229 {
230     GX_RESOURCE_ID wallpaper_id;
231     VOID (*callback)(GX_HORIZONTAL_LIST *, GX_WIDGET *, INT);
232     int total_rows;
233 } GX_HORIZONTAL_LIST_PROPERTIES;
234 
235 typedef struct
236 {
237     GX_RESOURCE_ID pixelmap_id;
238     GX_RESOURCE_ID wallpaper_id;
239     VOID (*callback)(GX_VERTICAL_LIST *, GX_WIDGET *, INT);
240     int total_rows;
241     int open_height;
242 } GX_DROP_LIST_PROPERTIES;
243 
244 typedef struct
245 {
246     GX_RESOURCE_ID string_id;
247     GX_RESOURCE_ID font_id;
248     GX_RESOURCE_ID normal_text_color_id;
249     GX_RESOURCE_ID selected_text_color_id;
250     GX_CHAR *buffer;
251     UINT buffer_size;
252 } GX_SINGLE_LINE_TEXT_INPUT_PROPERTIES;
253 
254 typedef struct
255 {
256     GX_RESOURCE_ID string_id;
257     GX_RESOURCE_ID font_id;
258     GX_RESOURCE_ID normal_text_color_id;
259     GX_RESOURCE_ID selected_text_color_id;
260     GX_BYTE        whitespace;
261     GX_BYTE        line_space;
262 } GX_ML_TEXT_VIEW_PROPERTIES;
263 
264 typedef struct
265 {
266     GX_RESOURCE_ID string_id;
267     GX_RESOURCE_ID font_id;
268     GX_RESOURCE_ID normal_text_color_id;
269     GX_RESOURCE_ID selected_text_color_id;
270     GX_BYTE  whitespace;
271     GX_BYTE  line_space;
272     GX_CHAR *buffer;
273     UINT buffer_size;
274 } GX_MULTI_LINE_TEXT_INPUT_PROPERTIES;
275 
276 typedef struct
277 {
278     GX_VALUE start_angle;
279     GX_VALUE animation_steps;
280     GX_VALUE animation_delay;
281     GX_VALUE needle_xpos;
282     GX_VALUE needle_ypos;
283     GX_VALUE needle_xcor;
284     GX_VALUE needle_ycor;
285     GX_RESOURCE_ID normal_pixelmap_id;
286     GX_RESOURCE_ID selected_pixelmap_id;
287     GX_RESOURCE_ID needle_pixelmap_id;
288 } GX_CIRCULAR_GAUGE_PROPERTIES;
289 
290 
291 /* Declare top-level control blocks                                            */
292 
293 typedef struct SPRITE_SCREEN_CONTROL_BLOCK_STRUCT
294 {
295     GX_WINDOW_MEMBERS_DECLARE
296     GX_WINDOW sprite_screen_apple_window;
297     GX_SLIDER sprite_screen_slider_2;
298     GX_TEXT_BUTTON sprite_screen_next_button_5;
299     GX_SPRITE sprite_screen_sprite_1;
300 } SPRITE_SCREEN_CONTROL_BLOCK;
301 
302 typedef struct GAUGE_SCREEN_CONTROL_BLOCK_STRUCT
303 {
304     GX_WINDOW_MEMBERS_DECLARE
305     GX_PROMPT gauge_screen_prompt_6;
306     GX_TEXT_BUTTON gauge_screen_next_button_4;
307     GX_CIRCULAR_GAUGE gauge_screen_gauge_1;
308 } GAUGE_SCREEN_CONTROL_BLOCK;
309 
310 typedef struct POPUP_MODAL_CONTROL_BLOCK_STRUCT
311 {
312     GX_WINDOW_MEMBERS_DECLARE
313     GX_TEXT_BUTTON popup_modal_OK_button;
314     GX_TEXT_BUTTON popup_modal_cancel_button;
315     GX_MULTI_LINE_TEXT_VIEW popup_modal_text_view_2;
316     GX_WINDOW popup_modal_window_1;
317     GX_PROMPT popup_modal_prompt_5;
318 } POPUP_MODAL_CONTROL_BLOCK;
319 
320 typedef struct INDICATOR_SCREEN_CONTROL_BLOCK_STRUCT
321 {
322     GX_WINDOW_MEMBERS_DECLARE
323     GX_SLIDER indicator_screen_slider;
324     GX_SLIDER indicator_screen_slider_1;
325     GX_PIXELMAP_SLIDER indicator_screen_pixelmap_slider;
326     GX_PIXELMAP_SLIDER indicator_screen_pixelmap_slider_1;
327     GX_ICON indicator_screen_icon_1;
328     GX_ICON indicator_screen_icon_2;
329     GX_PROMPT indicator_screen_slider_title;
330     GX_TEXT_BUTTON indicator_screen_next_button_3;
331     GX_PROGRESS_BAR indicator_screen_progress_bar_1;
332     GX_PIXELMAP_SLIDER indicator_screen_pixelmap_slider_2;
333 } INDICATOR_SCREEN_CONTROL_BLOCK;
334 
335 typedef struct TEXT_SCREEN_CONTROL_BLOCK_STRUCT
336 {
337     GX_WINDOW_MEMBERS_DECLARE
338     GX_PROMPT text_screen_prompt_1;
339     GX_PROMPT text_screen_prompt_2;
340     GX_PROMPT text_screen_prompt_3;
341     GX_PIXELMAP_PROMPT text_screen_prompt_4;
342     GX_SINGLE_LINE_TEXT_INPUT text_screen_text_input_1;
343     GX_MULTI_LINE_TEXT_VIEW text_screen_text_view_1;
344     GX_MULTI_LINE_TEXT_INPUT text_screen_text_input_2;
345     GX_TEXT_BUTTON text_screen_next_button_2;
346 } TEXT_SCREEN_CONTROL_BLOCK;
347 
348 typedef struct WINDOW_SCREEN_CONTROL_BLOCK_STRUCT
349 {
350     GX_WINDOW_MEMBERS_DECLARE
351     GX_WINDOW window_screen_window_5;
352     GX_WINDOW window_screen_window_6;
353     GX_WINDOW window_screen_window_7;
354     GX_WINDOW window_screen_window_8;
355     GX_WINDOW window_screen_scroll_frame_1;
356     GX_WINDOW window_screen_window_4;
357     GX_SCROLLBAR window_screen_hscroll_1;
358     GX_SCROLLBAR window_screen_vertical_scroll_1;
359     GX_VERTICAL_LIST window_screen_vertical_list;
360     GX_TEXT_BUTTON window_screen_button_1;
361     GX_TEXT_BUTTON window_screen_button_2;
362     GX_TEXT_BUTTON window_screen_button_3;
363     GX_TEXT_BUTTON window_screen_button_4;
364     GX_PROMPT window_screen_nested_label_1;
365     GX_PROMPT window_screen_frame_label_1;
366     GX_PROMPT window_screen_vlist_label_1;
367     GX_HORIZONTAL_LIST window_screen_horizontal_list_1;
368     GX_ICON_BUTTON window_screen_icon_button_1;
369     GX_ICON_BUTTON window_screen_icon_button_2;
370     GX_ICON_BUTTON window_screen_icon_button_3;
371     GX_ICON_BUTTON window_screen_icon_button_4;
372     GX_ICON_BUTTON window_screen_icon_button_5;
373     GX_PROMPT window_screen_hlist_label_1;
374     GX_TEXT_BUTTON window_screen_next_button_1;
375     GX_DROP_LIST window_screen_drop_list;
376     GX_PROMPT window_screen_hlist_label;
377 } WINDOW_SCREEN_CONTROL_BLOCK;
378 
379 typedef struct BUTTON_SCREEN_CONTROL_BLOCK_STRUCT
380 {
381     GX_WINDOW_MEMBERS_DECLARE
382     GX_PROMPT button_screen_title_1;
383     GX_BUTTON button_screen_base_button_1;
384     GX_TEXT_BUTTON button_screen_text_button_1;
385     GX_CHECKBOX button_screen_checkbox;
386     GX_RADIO_BUTTON button_screen_radio_button1;
387     GX_PIXELMAP_BUTTON button_screen_pixelmap_button1;
388     GX_ICON button_screen_icon;
389     GX_ICON_BUTTON button_screen_icon_button_6;
390     GX_PROMPT button_screen_button_label_1;
391     GX_PROMPT button_screen_radio_label_1;
392     GX_PROMPT button_screen_pixbutton_label_1;
393     GX_PROMPT button_screen_texbutton_label_1;
394     GX_PROMPT button_screen_checkbox_label_1;
395     GX_PROMPT button_screen_iconbutton_label_1;
396     GX_PROMPT button_screen_icon_label_1;
397     GX_TEXT_BUTTON button_screen_next_button;
398     GX_MULTI_LINE_TEXT_BUTTON button_screen_multi_line_button_1;
399     GX_PROMPT button_screen_texbutton_label_2;
400 } BUTTON_SCREEN_CONTROL_BLOCK;
401 
402 
403 /* extern statically defined control blocks                                    */
404 
405 #ifndef GUIX_STUDIO_GENERATED_FILE
406 extern SPRITE_SCREEN_CONTROL_BLOCK sprite_screen;
407 extern GAUGE_SCREEN_CONTROL_BLOCK gauge_screen;
408 extern POPUP_MODAL_CONTROL_BLOCK popup_modal;
409 extern INDICATOR_SCREEN_CONTROL_BLOCK indicator_screen;
410 extern TEXT_SCREEN_CONTROL_BLOCK text_screen;
411 extern WINDOW_SCREEN_CONTROL_BLOCK window_screen;
412 extern BUTTON_SCREEN_CONTROL_BLOCK button_screen;
413 #endif
414 
415 /* Declare event process functions, draw functions, and callback functions     */
416 
417 UINT sprite_event_handler(GX_WINDOW *widget, GX_EVENT *event_ptr);
418 VOID apple_window_draw(GX_WINDOW *widget);
419 UINT gauge_event_handle(GX_WINDOW *widget, GX_EVENT *event_ptr);
420 VOID gauge_prompt_draw(GX_PROMPT *widget);
421 UINT ModalWinEvent(GX_WINDOW *widget, GX_EVENT *event_ptr);
422 UINT next_button_handler(GX_WINDOW *widget, GX_EVENT *event_ptr);
423 VOID drop_list_row_create(GX_VERTICAL_LIST *, GX_WIDGET *, INT);
424 UINT buttons_handler(GX_WINDOW *widget, GX_EVENT *event_ptr);
425 
426 /* Declare the GX_STUDIO_DISPLAY_INFO structure                                */
427 
428 
429 typedef struct GX_STUDIO_DISPLAY_INFO_STRUCT
430 {
431     GX_CONST GX_CHAR *name;
432     GX_CONST GX_CHAR *canvas_name;
433     GX_CONST GX_THEME **theme_table;
434     GX_CONST GX_CHAR ***language_table;
435     USHORT   theme_table_size;
436     USHORT   language_table_size;
437     UINT     string_table_size;
438     UINT     x_resolution;
439     UINT     y_resolution;
440     GX_DISPLAY *display;
441     GX_CANVAS  *canvas;
442     GX_WINDOW_ROOT *root_window;
443     GX_COLOR   *canvas_memory;
444     ULONG      canvas_memory_size;
445 } GX_STUDIO_DISPLAY_INFO;
446 
447 
448 /* Declare Studio-generated functions for creating top-level widgets           */
449 
450 UINT gx_studio_button_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
451 UINT gx_studio_text_button_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
452 UINT gx_studio_multi_line_text_button_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
453 UINT gx_studio_checkbox_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
454 UINT gx_studio_radio_button_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
455 UINT gx_studio_icon_button_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
456 UINT gx_studio_pixelmap_button_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
457 UINT gx_studio_icon_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
458 UINT gx_studio_slider_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
459 UINT gx_studio_pixelmap_slider_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
460 UINT gx_studio_progress_bar_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
461 UINT gx_studio_sprite_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
462 UINT gx_studio_prompt_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
463 UINT gx_studio_pixelmap_prompt_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
464 UINT gx_studio_window_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
465 UINT gx_studio_vertical_list_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
466 UINT gx_studio_horizontal_list_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
467 UINT gx_studio_drop_list_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
468 UINT gx_studio_text_input_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
469 UINT gx_studio_multi_line_text_view_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
470 UINT gx_studio_multi_line_text_input_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
471 UINT gx_studio_horizontal_scrollbar_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
472 UINT gx_studio_vertical_scrollbar_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
473 UINT gx_studio_circular_gauge_create(GX_CONST GX_STUDIO_WIDGET *info, GX_WIDGET *control_block, GX_WIDGET *parent);
474 GX_WIDGET *gx_studio_widget_create(GX_BYTE *storage, GX_CONST GX_STUDIO_WIDGET *definition, GX_WIDGET *parent);
475 UINT gx_studio_named_widget_create(char *name, GX_WIDGET *parent, GX_WIDGET **new_widget);
476 UINT gx_studio_display_configure(USHORT display, UINT (*driver)(GX_DISPLAY *), USHORT language, USHORT theme, GX_WINDOW_ROOT **return_root);
477 
478 /* Determine if a C++ compiler is being used.  If so, complete the standard
479   C conditional started above.                                                 */
480 #ifdef __cplusplus
481 }
482 #endif
483 
484 #endif                                       /* sentry                         */
485