Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
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);
}
Exemplo n.º 8
0
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();
}
Exemplo n.º 9
0
/*
  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;
    }
}
Exemplo n.º 10
0
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);
}
Exemplo n.º 11
0
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);
}
Exemplo n.º 12
0
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), "");
}