void tb_check_navigation_sensitivity(int pageno) { if (!XtIsRealized(globals.widgets.top_level) || (resource.expert_mode & XPRT_SHOW_TOOLBAR) == 0) return; set_button_sensitivity(m_button_info.forward_button, pageno == total_pages - 1 ? False : True); set_button_sensitivity(m_button_info.back_button, pageno == 0 ? False : True); }
void tb_set_pagehist_back_sensitivity(Boolean sensitive) { if (!XtIsRealized(globals.widgets.top_level) || (resource.expert_mode & XPRT_SHOW_TOOLBAR) == 0) return; set_button_sensitivity(m_button_info.hyperref_back_button, sensitive); }
/** * Refreshes the buttons on a row (un)selection * */ static void cb_sort_selection_changed (SortFlowState *state) { GtkTreeIter iter, test; if (!gtk_tree_selection_get_selected (state->selection, NULL, &iter)) { gtk_widget_set_sensitive (state->up_button, FALSE); gtk_widget_set_sensitive (state->down_button, FALSE); gtk_widget_set_sensitive (state->delete_button, FALSE); return; } test = iter; gtk_widget_set_sensitive (state->up_button, gnm_tree_model_iter_prev (GTK_TREE_MODEL (state->model), &test)); test = iter; gtk_widget_set_sensitive (state->down_button, gtk_tree_model_iter_next (GTK_TREE_MODEL (state->model), &test)); gtk_widget_set_sensitive (state->delete_button, TRUE); set_button_sensitivity (state); }
static void cb_clear_clicked (SortFlowState *state) { state->sort_items = 0; gtk_list_store_clear (state->model); set_button_sensitivity (state); }
static void cb_sort_header_check(SortFlowState *state) { state->header = gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (state->cell_sort_header_check)); gtk_tree_view_column_set_visible (state->header_column, state->header); set_button_sensitivity (state); }
static void dialog_cell_sort_load_sort_setup (SortFlowState *state, GnmSortData const *data) { int i; GnmSortClause *this = data->clauses; gint base, max, index; Sheet *sheet = state->sel->v_range.cell.a.sheet; if (sheet == NULL) sheet = state->sheet; go_locale_sel_set_locale (state->locale_selector, data->locale); gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (state->retain_format_check), data->retain_formats); gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (state->cell_sort_row_rb), !data->top); state->is_cols = data->top; index = (data->top ? state->sel->v_range.cell.a.row : state->sel->v_range.cell.a.col); base = (data->top ? state->sel->v_range.cell.a.col : state->sel->v_range.cell.a.row); max = (data->top ? state->sel->v_range.cell.b.col : state->sel->v_range.cell.b.row); gtk_list_store_clear (state->model); state->sort_items = 0; for (i = 0; i < data->num_clause; i++) { if (data->clauses[i].offset <= max ) { GtkTreeIter iter; gchar *str, *header; int id = data->clauses[i].offset + base; header = state->is_cols ? header_name (sheet, id, index) : header_name (sheet, index, id); str = col_row_name (sheet, id, id, FALSE, state->is_cols); gtk_list_store_append (state->model, &iter); gtk_list_store_set (state->model, &iter, ITEM_HEADER, header, ITEM_NAME, str, ITEM_DESCENDING, data->clauses[i].asc, ITEM_DESCENDING_IMAGE, !data->clauses[i].asc ? state->image_ascending : state->image_descending, ITEM_CASE_SENSITIVE, data->clauses[i].cs, ITEM_SORT_BY_VALUE, data->clauses[i].val, ITEM_MOVE_FORMAT, TRUE, ITEM_NUMBER, id, -1); state->sort_items++; } this++; } set_button_sensitivity (state); }
static void cb_sort_field_selection(GtkWidget *item, AddSortFieldMenuState *menu_state) { append_data(menu_state->state, menu_state->start, menu_state->index); /* Update sensitivity if this is the first sort item. */ if (menu_state->state->sort_items == 1) set_button_sensitivity(menu_state->state); }
void set_up_gui() { GtkBuilder *builder = gtk_builder_new_from_file("chessboard.ui"); GObject *window = gtk_builder_get_object(builder, "main_window"); g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL); GObject *open_pgn_item = gtk_builder_get_object(builder, "open_pgn_menu_item"); g_signal_connect(open_pgn_item, "activate", G_CALLBACK(open_pgn_callback), window); GObject *flip_button = gtk_builder_get_object(builder, "flip_board_button"); g_signal_connect(flip_button, "clicked", G_CALLBACK(flip_button_click_callback), NULL); GObject *go_end_button = gtk_builder_get_object(builder, "go_end_button"); g_signal_connect(go_end_button, "clicked", G_CALLBACK(go_end_button_click_callback), NULL); go_next_button = GTK_WIDGET(gtk_builder_get_object(builder, "go_next_button")); g_signal_connect(G_OBJECT(go_next_button), "clicked", G_CALLBACK(go_next_button_click_callback), NULL); go_back_button = GTK_WIDGET(gtk_builder_get_object(builder, "go_back_button")); g_signal_connect(G_OBJECT(go_back_button), "clicked", G_CALLBACK(go_back_button_click_callback), NULL); GObject *go_start_button = gtk_builder_get_object(builder, "go_start_button"); g_signal_connect(go_start_button, "clicked", G_CALLBACK(go_start_button_click_callback), NULL); board_display = GTK_WIDGET(gtk_builder_get_object(builder, "board_drawing_area")); gtk_widget_add_events(board_display, GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK); g_signal_connect(G_OBJECT(board_display), "draw", G_CALLBACK(board_draw_callback), NULL); g_signal_connect(G_OBJECT(board_display), "button-press-event", G_CALLBACK(board_mouse_down_callback), NULL); g_signal_connect(G_OBJECT(board_display), "button-release-event", G_CALLBACK(board_mouse_up_callback), NULL); g_signal_connect(G_OBJECT(board_display), "motion-notify-event", G_CALLBACK(board_mouse_move_callback), NULL); gtk_widget_show_all(GTK_WIDGET(window)); // If we loaded a PGN file, we need to enable the forward button set_button_sensitivity(); }
/* save info about special buttons in m_button_info (see definition of that for details) */ static void button_info_save(struct xdvi_action *action, Widget w) { if (action->proc == Act_back_page && action->num_params > 0 && strcmp(action->params[0], "1") == 0) { m_button_info.back_button = w; } else if (action->proc == Act_forward_page && action->num_params > 0 && strcmp(action->params[0], "1") == 0) { m_button_info.forward_button = w; } else if (action->proc == Act_pagehistory_back) { set_button_sensitivity(w, False); m_button_info.hyperref_back_button = w; } else if (action->proc == Act_pagehistory_forward) { set_button_sensitivity(w, False); m_button_info.hyperref_forward_button = w; } else if (action->proc == Act_set_shrink_factor && action->num_params > 0 && action->params[0][0] == '+') { m_button_info.zoom_in_button = w; } }
static void cb_update_to_new_range (SortFlowState *state) { GnmValue *range; range = gnm_expr_entry_parse_as_value (GNM_EXPR_ENTRY (state->range_entry), state->sheet); if (range == NULL) { if (state->sel != NULL) { value_release (state->sel); state->sel = NULL; gtk_list_store_clear (state->model); state->sort_items = 0; } } else translate_range (range, state); set_button_sensitivity (state); }
static void cb_delete_clicked (G_GNUC_UNUSED GtkWidget *w, SortFlowState *state) { GtkTreeIter iter, iter2; gboolean ok; if (!gtk_tree_selection_get_selected (state->selection, NULL, &iter)) return; iter2 = iter; ok = gtk_tree_model_iter_next (GTK_TREE_MODEL (state->model), &iter2); if (!ok) { iter2 = iter; ok = gnm_tree_model_iter_prev (GTK_TREE_MODEL (state->model), &iter2); } if (ok) gtk_tree_selection_select_iter (state->selection, &iter2); gtk_list_store_remove (state->model, &iter); state->sort_items--; set_button_sensitivity (state); }
static void cb_add_clicked (SortFlowState *state) { GnmValue *range_add; GnmSheetRange grange_sort, grange_add; GnmRange intersection; int start; int end; int index; int i; gboolean had_items = (state->sort_items > 0); range_add = gnm_expr_entry_parse_as_value (GNM_EXPR_ENTRY (state->add_entry), state->sheet); if (range_add == NULL) { show_add_menu (state); return; } g_return_if_fail (range_add != NULL && state->sel != NULL); gnm_sheet_range_from_value (&grange_sort, state->sel); gnm_sheet_range_from_value (&grange_add, range_add); value_release (range_add); if (range_intersection (&intersection, &grange_sort.range, &grange_add.range)) { if (state->is_cols) { start = intersection.start.col; end = intersection.end.col; index = state->sel->v_range.cell.a.row; } else { start = intersection.start.row; end = intersection.end.row; index = state->sel->v_range.cell.a.col; } for (i = start; i <= end; i++) { int item = 0; GtkTreeIter iter; gboolean found = FALSE; gint number; while (gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (state->model), &iter, NULL, item)) { gtk_tree_model_get (GTK_TREE_MODEL (state->model), &iter, ITEM_NUMBER, &number, -1); item++; if (number == i) { found = TRUE; break; } } if (!found) { append_data (state, i, index); } } if (!had_items && (state->sort_items > 0)) set_button_sensitivity(state); } else show_add_menu (state); gnm_expr_entry_load_from_text (GNM_EXPR_ENTRY (state->add_entry), ""); }