cb_ret_t dlg_default_callback (Widget * w, Widget * sender, widget_msg_t msg, int parm, void *data) { WDialog *h = DIALOG (w); (void) sender; (void) parm; (void) data; switch (msg) { case MSG_DRAW: if (h->color != NULL) { dlg_default_repaint (h); return MSG_HANDLED; } return MSG_NOT_HANDLED; case MSG_IDLE: dlg_broadcast_msg_to (h, MSG_IDLE, FALSE, W_WANT_IDLE); return MSG_HANDLED; case MSG_RESIZE: /* this is default resizing mechanism */ /* the main idea of this code is to resize dialog according to flags (if any of flags require automatic resizing, like DLG_CENTER, end after that reposition controls in dialog according to flags of widget) */ dlg_set_size (h, w->lines, w->cols); return MSG_HANDLED; default: break; } return MSG_NOT_HANDLED; }
void dlg_broadcast_msg (WDialog * h, widget_msg_t msg) { dlg_broadcast_msg_to (h, msg, FALSE, 0); }
void dlg_broadcast_msg (Dlg_head * h, widget_msg_t msg, gboolean reverse) { dlg_broadcast_msg_to (h, msg, reverse, 0); }