static void locales_changed_cb (GOOptionMenu *optionmenu, GOLocaleSel *ls) { char * locale; g_return_if_fail (GO_IS_LOCALE_SEL (ls)); g_return_if_fail (optionmenu == ls->locales); locale = go_locale_sel_get_locale (ls); g_signal_emit (G_OBJECT (ls), ls_signals[LOCALE_CHANGED], 0, locale); g_free (locale); }
void stf_dialog_format_page_init (GtkBuilder *gui, StfDialogData *pagedata) { /* GtkWidget * format_hbox; */ g_return_if_fail (gui != NULL); g_return_if_fail (pagedata != NULL); /* Create/get object and fill information struct */ pagedata->format.col_import_array = NULL; pagedata->format.col_autofit_array = NULL; pagedata->format.col_import_array_len = 0; pagedata->format.col_import_count = 0; pagedata->format.col_header = _("Column %d"); pagedata->format.format_data_container = go_gtk_builder_get_widget (gui, "format_data_container"); pagedata->format.format_trim = go_gtk_builder_get_widget (gui, "format_trim"); pagedata->format.column_selection_label = go_gtk_builder_get_widget (gui, "column_selection_label"); pagedata->format.locale_selector = GO_LOCALE_SEL (go_locale_sel_new ()); if (pagedata->locale && !go_locale_sel_set_locale (pagedata->format.locale_selector, pagedata->locale)) { g_free (pagedata->locale); pagedata->locale = go_locale_sel_get_locale (pagedata->format.locale_selector); } gtk_grid_attach ( GTK_GRID (go_gtk_builder_get_widget (gui, "locale-grid")), GTK_WIDGET (pagedata->format.locale_selector), 3, 0, 1, 1); gtk_widget_show_all (GTK_WIDGET (pagedata->format.locale_selector)); gtk_widget_set_sensitive (GTK_WIDGET (pagedata->format.locale_selector), !pagedata->fixed_locale); /* Set properties */ pagedata->format.renderdata = stf_preview_new (pagedata->format.format_data_container, workbook_date_conv (wb_control_get_workbook (WORKBOOK_CONTROL (pagedata->wbcg)))); pagedata->format.formats = g_ptr_array_new (); pagedata->format.index = -1; pagedata->format.manual_change = FALSE; /* Update widgets before connecting signals, see #333407. */ gtk_combo_box_set_active (GTK_COMBO_BOX (pagedata->format.format_trim), 0); format_page_update_column_selection (pagedata); /* Connect signals */ g_signal_connect (G_OBJECT (pagedata->format.locale_selector), "locale_changed", G_CALLBACK (locale_changed_cb), pagedata); g_signal_connect (G_OBJECT (pagedata->format.format_trim), "changed", G_CALLBACK (format_page_trim_menu_changed), pagedata); g_signal_connect (G_OBJECT (pagedata->format.renderdata->tree_view), "button_press_event", G_CALLBACK (cb_treeview_button_press), pagedata); g_signal_connect (G_OBJECT (pagedata->format.renderdata->tree_view), "key_press_event", G_CALLBACK (cb_treeview_key_press), pagedata); }
static void cb_dialog_ok_clicked (SortFlowState *state) { GnmSortData *data, *data_copy; GnmSortClause *array, *this_array_item; int item = 0; GtkTreeIter iter; gboolean descending, case_sensitive, sort_by_value, move_format; gint number; gint base; char const *text; array = g_new (GnmSortClause, state->sort_items); this_array_item = array; base = (state->is_cols ? state->sel->v_range.cell.a.col : state->sel->v_range.cell.a.row); 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_DESCENDING,&descending, ITEM_CASE_SENSITIVE, &case_sensitive, ITEM_SORT_BY_VALUE, &sort_by_value, ITEM_MOVE_FORMAT, &move_format, ITEM_NUMBER, &number, -1); item++; this_array_item->offset = number - base; this_array_item->asc = !!descending; this_array_item->cs = case_sensitive; this_array_item->val = sort_by_value; this_array_item++; } data = g_new (GnmSortData, 1); data->sheet = state->sel->v_range.cell.a.sheet; data->range = g_new (GnmRange, 1); data->range = range_init (data->range, state->sel->v_range.cell.a.col + ((state->header && !state->is_cols) ? 1 : 0), state->sel->v_range.cell.a.row + ((state->header && state->is_cols) ? 1 : 0), state->sel->v_range.cell.b.col, state->sel->v_range.cell.b.row); data->num_clause = state->sort_items; data->clauses = array; data->top = state->is_cols; data->retain_formats = gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (state->retain_format_check)); data->locale = go_locale_sel_get_locale (state->locale_selector); data_copy = gnm_sort_data_copy (data); text = gnm_expr_entry_get_text (state->range_entry); gnm_sheet_add_sort_setup (data->sheet, g_strdup((text != NULL && text[0] != '\0') ? text : "Other"), data_copy); cmd_sort (WORKBOOK_CONTROL (state->wbcg), data); gtk_widget_destroy (state->dialog); return; }