Exemple #1
0
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;
}
Exemple #2
0
/********************************************************************\
 * 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);
}