Changes in uspace/app/shutdown-dlg/shutdown-dlg.c [0ae9e18:f35749e] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/shutdown-dlg/shutdown-dlg.c
r0ae9e18 rf35749e 41 41 #include <ui/fixed.h> 42 42 #include <ui/label.h> 43 #include <ui/list.h>44 43 #include <ui/msgdialog.h> 45 44 #include <ui/resource.h> 46 #include <ui/selectdialog.h>47 45 #include <ui/ui.h> 48 46 #include <ui/window.h> … … 52 50 static errno_t bg_wnd_paint(ui_window_t *, void *); 53 51 static void shutdown_progress_destroy(shutdown_progress_t *); 54 static errno_t shutdown_confirm_ create(shutdown_dlg_t *);52 static errno_t shutdown_confirm_msg_create(shutdown_dlg_t *); 55 53 static errno_t shutdown_failed_msg_create(shutdown_dlg_t *); 56 static errno_t shutdown_start(shutdown_dlg_t * , sd_action_t);54 static errno_t shutdown_start(shutdown_dlg_t *); 57 55 58 56 static ui_window_cb_t bg_window_cb = { … … 73 71 }; 74 72 75 static void shutdown_confirm_bok(ui_select_dialog_t *, void *, void *); 76 static void shutdown_confirm_bcancel(ui_select_dialog_t *, void *); 77 static void shutdown_confirm_close(ui_select_dialog_t *, void *); 78 79 static ui_select_dialog_cb_t shutdown_confirm_cb = { 80 .bok = shutdown_confirm_bok, 81 .bcancel = shutdown_confirm_bcancel, 82 .close = shutdown_confirm_close 73 static void shutdown_confirm_msg_button(ui_msg_dialog_t *, void *, unsigned); 74 static void shutdown_confirm_msg_close(ui_msg_dialog_t *, void *); 75 76 static ui_msg_dialog_cb_t shutdown_confirm_msg_cb = { 77 .button = shutdown_confirm_msg_button, 78 .close = shutdown_confirm_msg_close 83 79 }; 84 80 … … 170 166 * @return EOK on success or an error code 171 167 */ 172 static errno_t shutdown_confirm_create(shutdown_dlg_t *sddlg) 173 { 174 ui_select_dialog_params_t params; 175 ui_select_dialog_t *dialog; 176 ui_list_entry_attr_t attr; 177 errno_t rc; 178 179 ui_select_dialog_params_init(¶ms); 168 static errno_t shutdown_confirm_msg_create(shutdown_dlg_t *sddlg) 169 { 170 ui_msg_dialog_params_t params; 171 ui_msg_dialog_t *dialog; 172 errno_t rc; 173 174 ui_msg_dialog_params_init(¶ms); 180 175 params.caption = "Shutdown"; 181 params.prompt = "Do you want to shut the system down?"; 182 params.flags |= usdf_topmost | usdf_center; 183 184 rc = ui_select_dialog_create(sddlg->ui, ¶ms, &dialog); 176 params.text = "Do you want to shut the system down?"; 177 params.choice = umdc_ok_cancel; 178 params.flags |= umdf_topmost | umdf_center; 179 180 rc = ui_msg_dialog_create(sddlg->ui, ¶ms, &dialog); 185 181 if (rc != EOK) 186 182 return rc; 187 183 188 /* Need an entry to select */ 189 ui_list_entry_attr_init(&attr); 190 191 attr.caption = "Power off"; 192 attr.arg = (void *)sd_poweroff; 193 rc = ui_select_dialog_append(dialog, &attr); 194 if (rc != EOK) 195 goto error; 196 197 attr.caption = "Restart"; 198 attr.arg = (void *)sd_restart; 199 rc = ui_select_dialog_append(dialog, &attr); 200 if (rc != EOK) 201 goto error; 202 203 ui_select_dialog_set_cb(dialog, &shutdown_confirm_cb, sddlg); 204 205 (void)ui_select_dialog_paint(dialog); 184 ui_msg_dialog_set_cb(dialog, &shutdown_confirm_msg_cb, sddlg); 206 185 207 186 return EOK; 208 error:209 ui_select_dialog_destroy(dialog);210 return rc;211 187 } 212 188 … … 235 211 } 236 212 237 /** Shutdown confirm dialog OKbutton press.213 /** Shutdown confirm message dialog button press. 238 214 * 239 215 * @param dialog Message dialog 240 216 * @param arg Argument (ui_demo_t *) 241 * @param earg Entry argument242 */ 243 static void shutdown_confirm_ bok(ui_select_dialog_t *dialog, void *arg,244 void * earg)217 * @param bnum Button number 218 */ 219 static void shutdown_confirm_msg_button(ui_msg_dialog_t *dialog, 220 void *arg, unsigned bnum) 245 221 { 246 222 shutdown_dlg_t *sddlg = (shutdown_dlg_t *) arg; 247 223 248 ui_select_dialog_destroy(dialog); 249 250 shutdown_start(sddlg, (sd_action_t)earg); 251 } 252 253 /** Shutdown confirm dialog Cancel button press. 224 ui_msg_dialog_destroy(dialog); 225 226 if (bnum == 0) 227 shutdown_start(sddlg); 228 else 229 ui_quit(sddlg->ui); 230 } 231 232 /** Shutdown confirm message dialog close request. 254 233 * 255 234 * @param dialog Message dialog 256 235 * @param arg Argument (ui_demo_t *) 257 236 */ 258 static void shutdown_confirm_ bcancel(ui_select_dialog_t *dialog, void *arg)237 static void shutdown_confirm_msg_close(ui_msg_dialog_t *dialog, void *arg) 259 238 { 260 239 shutdown_dlg_t *sddlg = (shutdown_dlg_t *) arg; 261 240 262 ui_select_dialog_destroy(dialog); 263 ui_quit(sddlg->ui); 264 } 265 266 /** Shutdown confirm message dialog close request. 267 * 268 * @param dialog Message dialog 269 * @param arg Argument (ui_demo_t *) 270 */ 271 static void shutdown_confirm_close(ui_select_dialog_t *dialog, void *arg) 272 { 273 shutdown_dlg_t *sddlg = (shutdown_dlg_t *) arg; 274 275 ui_select_dialog_destroy(dialog); 241 ui_msg_dialog_destroy(dialog); 276 242 ui_quit(sddlg->ui); 277 243 } … … 420 386 } 421 387 422 /** Start shutdown. 423 * 424 * @param sddlg Shutdown dialog 425 * @param action Shutdown actin 426 * @return EOK on success or an error code 427 */ 428 static errno_t shutdown_start(shutdown_dlg_t *sddlg, sd_action_t action) 388 static errno_t shutdown_start(shutdown_dlg_t *sddlg) 429 389 { 430 390 errno_t rc; … … 440 400 } 441 401 442 rc = EINVAL; 443 444 switch (action) { 445 case sd_poweroff: 446 rc = system_poweroff(sddlg->system); 447 break; 448 case sd_restart: 449 rc = system_restart(sddlg->system); 450 break; 451 } 452 402 rc = system_poweroff(sddlg->system); 453 403 if (rc != EOK) { 454 404 printf("Failed requesting system shutdown.\n"); … … 519 469 } 520 470 521 (void)shutdown_confirm_ create(&sddlg);471 (void)shutdown_confirm_msg_create(&sddlg); 522 472 523 473 ui_run(ui);
Note:
See TracChangeset
for help on using the changeset viewer.