Changes in uspace/app/shutdown-dlg/shutdown-dlg.c [f35749e:0ae9e18] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/shutdown-dlg/shutdown-dlg.c
rf35749e r0ae9e18 41 41 #include <ui/fixed.h> 42 42 #include <ui/label.h> 43 #include <ui/list.h> 43 44 #include <ui/msgdialog.h> 44 45 #include <ui/resource.h> 46 #include <ui/selectdialog.h> 45 47 #include <ui/ui.h> 46 48 #include <ui/window.h> … … 50 52 static errno_t bg_wnd_paint(ui_window_t *, void *); 51 53 static void shutdown_progress_destroy(shutdown_progress_t *); 52 static errno_t shutdown_confirm_ msg_create(shutdown_dlg_t *);54 static errno_t shutdown_confirm_create(shutdown_dlg_t *); 53 55 static errno_t shutdown_failed_msg_create(shutdown_dlg_t *); 54 static errno_t shutdown_start(shutdown_dlg_t * );56 static errno_t shutdown_start(shutdown_dlg_t *, sd_action_t); 55 57 56 58 static ui_window_cb_t bg_window_cb = { … … 71 73 }; 72 74 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 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 79 83 }; 80 84 … … 166 170 * @return EOK on success or an error code 167 171 */ 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); 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); 175 180 params.caption = "Shutdown"; 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); 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); 181 185 if (rc != EOK) 182 186 return rc; 183 187 184 ui_msg_dialog_set_cb(dialog, &shutdown_confirm_msg_cb, sddlg); 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); 185 206 186 207 return EOK; 208 error: 209 ui_select_dialog_destroy(dialog); 210 return rc; 187 211 } 188 212 … … 211 235 } 212 236 213 /** Shutdown confirm message dialogbutton press.237 /** Shutdown confirm dialog OK button press. 214 238 * 215 239 * @param dialog Message dialog 216 240 * @param arg Argument (ui_demo_t *) 217 * @param bnum Button number218 */ 219 static void shutdown_confirm_ msg_button(ui_msg_dialog_t *dialog,220 void * arg, unsigned bnum)241 * @param earg Entry argument 242 */ 243 static void shutdown_confirm_bok(ui_select_dialog_t *dialog, void *arg, 244 void *earg) 221 245 { 222 246 shutdown_dlg_t *sddlg = (shutdown_dlg_t *) arg; 223 247 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. 248 ui_select_dialog_destroy(dialog); 249 250 shutdown_start(sddlg, (sd_action_t)earg); 251 } 252 253 /** Shutdown confirm dialog Cancel button press. 233 254 * 234 255 * @param dialog Message dialog 235 256 * @param arg Argument (ui_demo_t *) 236 257 */ 237 static void shutdown_confirm_ msg_close(ui_msg_dialog_t *dialog, void *arg)258 static void shutdown_confirm_bcancel(ui_select_dialog_t *dialog, void *arg) 238 259 { 239 260 shutdown_dlg_t *sddlg = (shutdown_dlg_t *) arg; 240 261 241 ui_msg_dialog_destroy(dialog); 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); 242 276 ui_quit(sddlg->ui); 243 277 } … … 386 420 } 387 421 388 static errno_t shutdown_start(shutdown_dlg_t *sddlg) 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) 389 429 { 390 430 errno_t rc; … … 400 440 } 401 441 402 rc = system_poweroff(sddlg->system); 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 403 453 if (rc != EOK) { 404 454 printf("Failed requesting system shutdown.\n"); … … 469 519 } 470 520 471 (void)shutdown_confirm_ msg_create(&sddlg);521 (void)shutdown_confirm_create(&sddlg); 472 522 473 523 ui_run(ui);
Note:
See TracChangeset
for help on using the changeset viewer.