static cb_ret_t edit_callback (Widget * w, widget_msg_t msg, int parm) { WEdit *e = (WEdit *) w; switch (msg) { case WIDGET_DRAW: e->force |= REDRAW_COMPLETELY; /* fallthrough */ case WIDGET_FOCUS: edit_update_screen (e); return MSG_HANDLED; case WIDGET_KEY: { int cmd, ch; cb_ret_t ret = MSG_NOT_HANDLED; /* The user may override the access-keys for the menu bar. */ if (macro_index == -1 && edit_execute_macro (e, parm)) ret = MSG_HANDLED; else if (edit_translate_key (e, parm, &cmd, &ch)) { edit_execute_key_command (e, cmd, ch); edit_update_screen (e); ret = MSG_HANDLED; } else if (edit_drop_hotkey_menu (e, parm)) ret = MSG_HANDLED; return ret; } case WIDGET_COMMAND: /* command from menubar or buttonbar */ return edit_command_execute (e, parm); case WIDGET_CURSOR: widget_move (w, e->curs_row + EDIT_TEXT_VERTICAL_OFFSET, e->curs_col + e->start_col + e->over_col + EDIT_TEXT_HORIZONTAL_OFFSET + option_line_state_width); return MSG_HANDLED; case WIDGET_DESTROY: edit_clean (e); return MSG_HANDLED; default: return default_proc (msg, parm); } }
static cb_ret_t edit_callback (Widget * w, Widget * sender, widget_msg_t msg, int parm, void *data) { WEdit *e = (WEdit *) w; switch (msg) { case MSG_FOCUS: edit_set_buttonbar (e, find_buttonbar (w->owner)); return MSG_HANDLED; case MSG_DRAW: e->force |= REDRAW_COMPLETELY; edit_update_screen (e); return MSG_HANDLED; case MSG_KEY: { int cmd, ch; cb_ret_t ret = MSG_NOT_HANDLED; /* The user may override the access-keys for the menu bar. */ if (macro_index == -1 && edit_execute_macro (e, parm)) { edit_update_screen (e); ret = MSG_HANDLED; } else if (edit_translate_key (e, parm, &cmd, &ch)) { edit_execute_key_command (e, cmd, ch); edit_update_screen (e); ret = MSG_HANDLED; } return ret; } case MSG_ACTION: /* command from menubar or buttonbar */ edit_execute_key_command (e, parm, -1); edit_update_screen (e); return MSG_HANDLED; case MSG_CURSOR: { int y, x; y = (e->fullscreen ? 0 : 1) + EDIT_TEXT_VERTICAL_OFFSET + e->curs_row; x = (e->fullscreen ? 0 : 1) + EDIT_TEXT_HORIZONTAL_OFFSET + option_line_state_width + e->curs_col + e->start_col + e->over_col; widget_move (w, y, x); return MSG_HANDLED; } case MSG_IDLE: edit_update_screen (e); return MSG_HANDLED; case MSG_DESTROY: edit_clean (e); return MSG_HANDLED; default: return widget_default_callback (w, sender, msg, parm, data); } }
static cb_ret_t edit_callback (Widget * w, widget_msg_t msg, int parm) { WEdit *e = (WEdit *) w; switch (msg) { case WIDGET_FOCUS: edit_set_buttonbar (e, find_buttonbar (e->widget.owner)); /* fall through */ case WIDGET_DRAW: e->force |= REDRAW_COMPLETELY; edit_update_screen (e); return MSG_HANDLED; case WIDGET_UNFOCUS: /* redraw frame and status */ edit_status (e, FALSE); return MSG_HANDLED; case WIDGET_KEY: { int cmd, ch; cb_ret_t ret = MSG_NOT_HANDLED; /* The user may override the access-keys for the menu bar. */ if (macro_index == -1 && edit_execute_macro (e, parm)) { edit_update_screen (e); ret = MSG_HANDLED; } else if (edit_translate_key (e, parm, &cmd, &ch)) { edit_execute_key_command (e, cmd, ch); edit_update_screen (e); ret = MSG_HANDLED; } return ret; } case WIDGET_COMMAND: /* command from menubar or buttonbar */ edit_execute_key_command (e, parm, -1); edit_update_screen (e); return MSG_HANDLED; case WIDGET_CURSOR: { int y, x; y = (e->fullscreen ? 0 : 1) + EDIT_TEXT_VERTICAL_OFFSET + e->curs_row; x = (e->fullscreen ? 0 : 1) + EDIT_TEXT_HORIZONTAL_OFFSET + option_line_state_width + e->curs_col + e->start_col + e->over_col; widget_move (w, y, x); return MSG_HANDLED; } case WIDGET_DESTROY: edit_clean (e); return MSG_HANDLED; default: return default_proc (msg, parm); } }