GtkWidget * fontsel_new (ProgressData *pdata) { GtkWidget *paned; GtkWidget *clist; GtkWidget *clist2; GtkWidget *scrolled_window; paned = gtk_hpaned_new (); g_signal_new ("face_changed", GTK_TYPE_WIDGET, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0, NULL); g_object_set_data (G_OBJECT (paned), "progress_data", pdata); /* family */ clist = gtk_clist_new (1); gtk_clist_set_column_title (GTK_CLIST (clist), 0, _("Font Family")); gtk_clist_column_titles_show (GTK_CLIST (clist)); gtk_clist_column_titles_passive (GTK_CLIST (clist)); gtk_widget_show (clist); scrolled_window = gtk_scrolled_window_new (gtk_clist_get_hadjustment (GTK_CLIST (clist)), gtk_clist_get_vadjustment (GTK_CLIST (clist))); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_container_add (GTK_CONTAINER (scrolled_window), clist); gtk_widget_show (scrolled_window); gtk_paned_pack1 (GTK_PANED (paned), scrolled_window, TRUE, FALSE); /* style */ clist2 = gtk_clist_new (1); gtk_clist_set_column_title (GTK_CLIST (clist2), 0, _("Font Style")); gtk_clist_column_titles_show (GTK_CLIST (clist2)); gtk_clist_column_titles_passive (GTK_CLIST (clist2)); gtk_widget_show (clist2); scrolled_window = gtk_scrolled_window_new (gtk_clist_get_hadjustment (GTK_CLIST (clist2)), gtk_clist_get_vadjustment (GTK_CLIST (clist2))); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); gtk_container_add (GTK_CONTAINER (scrolled_window), clist2); gtk_widget_show (scrolled_window); gtk_paned_pack2 (GTK_PANED (paned), scrolled_window, TRUE, FALSE); g_signal_connect (clist, "select_row", G_CALLBACK (fontsel_family_select_callback), clist2); g_signal_connect (clist2, "select_row", G_CALLBACK (fontsel_style_select_callback), paned); g_object_set_data (G_OBJECT (paned), "family_list", clist); g_object_set_data (G_OBJECT (paned), "style_list", clist2); return paned; }
/********************************************************************\ * gnc_query_list_refresh * * refreshes the list * * * * Args: list - list to refresh * * Returns: nothing * \********************************************************************/ void gnc_query_list_refresh (GNCQueryList *list) { GtkCList *clist = GTK_CLIST(list); GtkAdjustment *adjustment; gfloat save_value = 0.0; gpointer *old_focus_entry; gpointer *old_entry; gint old_focus_row; gint new_row; g_return_if_fail (list != NULL); g_return_if_fail (IS_GNC_QUERY_LIST(list)); adjustment = gtk_clist_get_vadjustment (GTK_CLIST(list)); if (adjustment != NULL) save_value = adjustment->value; old_focus_row = clist->focus_row; old_focus_entry = gtk_clist_get_row_data (clist, old_focus_row); gtk_clist_freeze (clist); gtk_clist_clear (clist); old_entry = list->current_entry; list->num_entries = 0; list->current_row = -1; list->current_entry = NULL; gnc_query_list_fill (list); gnc_query_list_recompute_widths (list, -1); if (adjustment) { save_value = CLAMP (save_value, adjustment->lower, adjustment->upper); gtk_adjustment_set_value (adjustment, save_value); } if (old_entry) { new_row = gtk_clist_find_row_from_data (clist, old_entry); if (new_row >= 0) { list->no_toggle = TRUE; gtk_clist_select_row (clist, new_row, 0); list->no_toggle = FALSE; list->current_entry = old_entry; } } if (old_focus_entry) { new_row = gtk_clist_find_row_from_data (clist, old_focus_entry); if (new_row < 0) new_row = old_focus_row; if (new_row >= 0) clist->focus_row = new_row; } gtk_clist_thaw (clist); }