9 #include "yes_no_dialog.h"
14 #include "widget_label.h"
15 #include "widget_button.h"
17 static image_t
*g_background
;
19 static widget_t
*widgetLabelMsg
;
21 static widget_t
*widgetButtonYes
;
22 static widget_t
*widgetButtonNo
;
24 static void (*handle_yes
)(void *param
);
25 static void (*handle_no
)(void *param
);
27 static bool_t active_dialog
;
29 static void eventWidget(void *p
)
33 button
= (widget_t
*) p
;
35 yes_no_dialog_set_active(FALSE
);
37 if (button
== widgetButtonYes
) {
41 if (button
== widgetButtonNo
) {
46 void yes_no_dialog_init()
48 active_dialog
= FALSE
;
50 g_background
= image_get(IMAGE_GROUP_BASE
, "screen_main");
52 widgetLabelMsg
= label_new("empty label", WINDOW_SIZE_X
/ 2,
53 YES_NO_DIALOG_LOCATIN_Y
+ 20,
56 widgetButtonYes
= button_new(_("Yes"), YES_NO_DIALOG_LOCATIN_X
+ 20,
57 YES_NO_DIALOG_LOCATIN_Y
+ 60,
60 widgetButtonNo
= button_new(_("No"), YES_NO_DIALOG_LOCATIN_X
+ 20 +
61 WIDGET_BUTTON_WIDTH
+ 20,
62 YES_NO_DIALOG_LOCATIN_Y
+ 60,
66 static void hotkey_escape()
68 yes_no_dialog_set_active(FALSE
);
72 void yes_no_dialog_set_active(bool_t active
)
74 active_dialog
= active
;
76 if (active_dialog
== TRUE
) {
77 hot_key_register(SDLK_ESCAPE
, hotkey_escape
);
79 hot_key_unregister(SDLK_ESCAPE
);
83 bool_t
yes_no_dialog_is_active()
88 void yes_no_dialog_set(char *label
, void *function_yes
, void *function_no
, void *p_param
)
90 label_destroy(widgetLabelMsg
);
92 widgetLabelMsg
= label_new(label
, WINDOW_SIZE_X
/ 2,
93 YES_NO_DIALOG_LOCATIN_Y
+ 20,
96 handle_yes
= function_yes
;
97 handle_no
= function_no
;
101 void yes_no_dialog_draw()
103 if (active_dialog
== FALSE
) {
107 image_draw(g_background
, YES_NO_DIALOG_LOCATIN_X
,
108 YES_NO_DIALOG_LOCATIN_Y
,
109 YES_NO_DIALOG_LOCATIN_X
,
110 YES_NO_DIALOG_LOCATIN_Y
,
111 YES_NO_DIALOG_SIZE_X
,
112 YES_NO_DIALOG_SIZE_Y
);
114 label_draw(widgetLabelMsg
);
115 button_draw(widgetButtonYes
);
116 button_draw(widgetButtonNo
);
119 void yes_no_dialog_event()
121 if (active_dialog
== FALSE
) {
125 button_event(widgetButtonYes
);
126 button_event(widgetButtonNo
);
129 void yes_no_dialog_quit()
131 label_destroy(widgetLabelMsg
);
132 button_destroy(widgetButtonYes
);
133 button_destroy(widgetButtonNo
);