static cb_ret_t tree_callback (Widget *w, widget_msg_t msg, int parm) { WTree *tree = (WTree *) w; Dlg_head *h = tree->widget.parent; switch (msg) { case WIDGET_DRAW: tree_frame (h, tree); show_tree (tree); return MSG_HANDLED; case WIDGET_KEY: return tree_key (tree, parm); case WIDGET_FOCUS: tree->active = 1; buttonbar_set_label (h, 1, _("Help"), tree_help_cmd); buttonbar_set_label_data (h, 2, _("Rescan"), tree_rescan_command, tree); buttonbar_set_label_data (h, 3, _("Forget"), tree_forget_cmd, tree); buttonbar_set_label_data (h, 5, _("Copy"), tree_copy_cmd, tree); buttonbar_set_label_data (h, 6, _("RenMov"), tree_move_cmd, tree); #if 0 /* FIXME: mkdir is currently defunct */ buttonbar_set_label_data (h, 7, _("Mkdir"), tree_mkdir_cmd, tree); #else buttonbar_clear_label (h, 7); #endif buttonbar_set_label_data (h, 8, _("Rmdir"), tree_rmdir_command, tree); set_navig_label (tree); buttonbar_redraw (h); /* FIXME: Should find a better way of only displaying the currently selected item */ show_tree (tree); return MSG_HANDLED; /* FIXME: Should find a better way of changing the color of the selected item */ case WIDGET_UNFOCUS: tree->active = 0; show_tree (tree); return MSG_HANDLED; case WIDGET_DESTROY: tree_destroy (tree); return MSG_HANDLED; default: return default_proc (msg, parm); } }
static inline void edit_render (WEdit * edit, int page, int row_start, int col_start, int row_end, int col_end) { if (page) /* if it was an expose event, 'page' would be set */ edit->force |= REDRAW_PAGE | REDRAW_IN_BOUNDS; if (edit->force & REDRAW_COMPLETELY) buttonbar_redraw (find_buttonbar (edit->widget.owner)); render_edit_text (edit, row_start, col_start, row_end, col_end); /* * edit->force != 0 means a key was pending and the redraw * was halted, so next time we must redraw everything in case stuff * was left undrawn from a previous key press. */ if (edit->force) edit->force |= REDRAW_PAGE; }
void mcview_update (mcview_t * view) { static int dirt_limit = 1; if (view->dpy_bbar_dirty) { view->dpy_bbar_dirty = FALSE; mcview_set_buttonbar (view); buttonbar_redraw (find_buttonbar (view->widget.owner)); } if (view->dirty > dirt_limit) { /* Too many updates skipped -> force a update */ mcview_display (view); view->dirty = 0; /* Raise the update skipping limit */ dirt_limit++; if (dirt_limit > mcview_max_dirt_limit) dirt_limit = mcview_max_dirt_limit; } else if (view->dirty > 0) { if (is_idle ()) { /* We have time to update the screen properly */ mcview_display (view); view->dirty = 0; if (dirt_limit > 1) dirt_limit--; } else { /* We are busy -> skipping full update, only the status line is updated */ mcview_display_status (view); } /* Here we had a refresh, if fast scrolling does not work restore the refresh, although this should not happen */ } }
void edit_update_screen (WEdit * e) { edit_scroll_screen_over_cursor (e); edit_update_curs_col (e); edit_status (e, (e->force & REDRAW_COMPLETELY) != 0 && (void *) e == ((Widget *) e)->owner->current->data); /* pop all events for this window for internal handling */ if (!is_idle ()) e->force |= REDRAW_PAGE; else { if ((e->force & REDRAW_COMPLETELY) != 0) e->force |= REDRAW_PAGE; edit_render_keypress (e); } buttonbar_redraw (find_buttonbar (((Widget *) e)->owner)); }
static cb_ret_t tree_callback (Widget * w, widget_msg_t msg, int parm) { WTree *tree = (WTree *) w; Dlg_head *h = tree->widget.owner; WButtonBar *b = find_buttonbar (h); switch (msg) { case WIDGET_DRAW: tree_frame (h, tree); show_tree (tree); return MSG_HANDLED; case WIDGET_FOCUS: tree->active = 1; buttonbar_set_label (b, 1, Q_ ("ButtonBar|Help"), tree_map, (Widget *) tree); buttonbar_set_label (b, 2, Q_ ("ButtonBar|Rescan"), tree_map, (Widget *) tree); buttonbar_set_label (b, 3, Q_ ("ButtonBar|Forget"), tree_map, (Widget *) tree); buttonbar_set_label (b, 4, tree_navigation_flag ? Q_ ("ButtonBar|Static") : Q_ ("ButtonBar|Dynamc"), tree_map, (Widget *) tree); buttonbar_set_label (b, 5, Q_ ("ButtonBar|Copy"), tree_map, (Widget *) tree); buttonbar_set_label (b, 6, Q_ ("ButtonBar|RenMov"), tree_map, (Widget *) tree); #if 0 /* FIXME: mkdir is currently defunct */ buttonbar_set_label (b, 7, Q_ ("ButtonBar|Mkdir"), tree_map, (Widget *) tree); #else buttonbar_clear_label (b, 7, (Widget *) tree); #endif buttonbar_set_label (b, 8, Q_ ("ButtonBar|Rmdir"), tree_map, (Widget *) tree); buttonbar_redraw (b); /* FIXME: Should find a better way of only displaying the currently selected item */ show_tree (tree); return MSG_HANDLED; /* FIXME: Should find a better way of changing the color of the selected item */ case WIDGET_UNFOCUS: tree->active = 0; tree->searching = 0; show_tree (tree); return MSG_HANDLED; case WIDGET_KEY: return tree_key (tree, parm); case WIDGET_COMMAND: /* command from buttonbar */ return tree_execute_cmd (tree, parm); case WIDGET_DESTROY: tree_destroy (tree); return MSG_HANDLED; default: return default_proc (msg, parm); } }