static cb_ret_t dlg_execute_cmd (WDialog * h, unsigned long command) { cb_ret_t ret = MSG_HANDLED; switch (command) { case CK_Ok: h->ret_value = B_ENTER; dlg_stop (h); break; case CK_Cancel: h->ret_value = B_CANCEL; dlg_stop (h); break; case CK_Up: case CK_Left: dlg_one_up (h); break; case CK_Down: case CK_Right: dlg_one_down (h); break; case CK_Help: { ev_help_t event_data = { NULL, h->help_ctx }; mc_event_raise (MCEVENT_GROUP_CORE, "help", &event_data); } break; case CK_Suspend: mc_event_raise (MCEVENT_GROUP_CORE, "suspend", NULL); refresh_cmd (); break; case CK_Refresh: refresh_cmd (); break; case CK_ScreenList: if (!h->modal) dialog_switch_list (); else ret = MSG_NOT_HANDLED; break; case CK_ScreenNext: if (!h->modal) dialog_switch_next (); else ret = MSG_NOT_HANDLED; break; case CK_ScreenPrev: if (!h->modal) dialog_switch_prev (); else ret = MSG_NOT_HANDLED; break; default: ret = MSG_NOT_HANDLED; } return ret; }
static cb_ret_t dlg_execute_cmd (WDialog * h, long command) { cb_ret_t ret = MSG_HANDLED; if (send_message (h, NULL, MSG_ACTION, command, NULL) == MSG_HANDLED) return MSG_HANDLED; switch (command) { case CK_Ok: h->ret_value = B_ENTER; dlg_stop (h); break; case CK_Cancel: h->ret_value = B_CANCEL; dlg_stop (h); break; case CK_Up: case CK_Left: dlg_select_prev_widget (h); break; case CK_Down: case CK_Right: dlg_select_next_widget (h); break; case CK_Help: { ev_help_t event_data = { NULL, h->help_ctx }; mc_event_raise (MCEVENT_GROUP_CORE, "help", &event_data); } break; case CK_Suspend: mc_event_raise (MCEVENT_GROUP_CORE, "suspend", NULL); refresh_cmd (); break; case CK_Refresh: refresh_cmd (); break; case CK_ScreenList: if (!widget_get_state (WIDGET (h), WST_MODAL)) dialog_switch_list (); else ret = MSG_NOT_HANDLED; break; case CK_ScreenNext: if (!widget_get_state (WIDGET (h), WST_MODAL)) dialog_switch_next (); else ret = MSG_NOT_HANDLED; break; case CK_ScreenPrev: if (!widget_get_state (WIDGET (h), WST_MODAL)) dialog_switch_prev (); else ret = MSG_NOT_HANDLED; break; default: ret = MSG_NOT_HANDLED; } return ret; }