]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkpagesetupunixdialog.c
Use gtk_box_new() instead gtk_[v|h]box_new()
[~andy/gtk] / gtk / gtkpagesetupunixdialog.c
index 0fae189579b3a1950e4bc21e066c144240755ed2..93eecbabf672e4e3fda2a8a612e4986b617e5163 100644 (file)
 #include "gtkpagesetupunixdialog.h"
 #include "gtkcustompaperunixdialog.h"
 #include "gtkprintbackend.h"
-#include "gtkprinter-private.h"
 #include "gtkpapersize.h"
 #include "gtkprintutils.h"
-#include "gtkalias.h"
 
+/**
+ * SECTION:gtkpagesetupunixdialog
+ * @Short_description: A page setup dialog
+ * @Title: GtkPageSetupUnixDialog
+ *
+ * #GtkPageSetupUnixDialog implements a page setup dialog for platforms
+ * which don't provide a native page setup dialog, like Unix. It can
+ * be used very much like any other GTK+ dialog, at the cost of
+ * the portability offered by the <link
+ * linkend="gtk-High-level-Printing-API">high-level printing API</link>
+ *
+ * Printing support was added in GTK+ 2.10.
+ */
 
-struct GtkPageSetupUnixDialogPrivate
+
+struct _GtkPageSetupUnixDialogPrivate
 {
   GtkListStore *printer_list;
   GtkListStore *page_setup_list;
@@ -75,7 +87,7 @@ struct GtkPageSetupUnixDialogPrivate
   GtkWidget *landscape_radio;
   GtkWidget *reverse_landscape_radio;
 
-  guint request_details_tag;
+  gulong request_details_tag;
   GtkPrinter *request_details_printer;
   
   GtkPrintSettings *print_settings;
@@ -100,9 +112,6 @@ enum {
 
 G_DEFINE_TYPE (GtkPageSetupUnixDialog, gtk_page_setup_unix_dialog, GTK_TYPE_DIALOG)
 
-#define GTK_PAGE_SETUP_UNIX_DIALOG_GET_PRIVATE(o)  \
-   (G_TYPE_INSTANCE_GET_PRIVATE ((o), GTK_TYPE_PAGE_SETUP_UNIX_DIALOG, GtkPageSetupUnixDialogPrivate))
-
 static void gtk_page_setup_unix_dialog_finalize  (GObject                *object);
 static void populate_dialog                      (GtkPageSetupUnixDialog *dialog);
 static void fill_paper_sizes_from_printer        (GtkPageSetupUnixDialog *dialog,
@@ -146,7 +155,7 @@ gtk_page_setup_unix_dialog_class_init (GtkPageSetupUnixDialogClass *class)
 
   object_class->finalize = gtk_page_setup_unix_dialog_finalize;
 
-  g_type_class_add_private (class, sizeof (GtkPageSetupUnixDialogPrivate));  
+  g_type_class_add_private (class, sizeof (GtkPageSetupUnixDialogPrivate));
 }
 
 static void
@@ -154,21 +163,26 @@ gtk_page_setup_unix_dialog_init (GtkPageSetupUnixDialog *dialog)
 {
   GtkPageSetupUnixDialogPrivate *priv;
   GtkTreeIter iter;
+  gchar *tmp;
 
-  priv = dialog->priv = GTK_PAGE_SETUP_UNIX_DIALOG_GET_PRIVATE (dialog);
+  priv = dialog->priv = G_TYPE_INSTANCE_GET_PRIVATE (dialog,
+                                                     GTK_TYPE_PAGE_SETUP_UNIX_DIALOG,
+                                                     GtkPageSetupUnixDialogPrivate);
 
   priv->print_backends = NULL;
 
   priv->printer_list = gtk_list_store_new (PRINTER_LIST_N_COLS,
-                                                  G_TYPE_STRING, 
+                                                  G_TYPE_STRING,
                                                   G_TYPE_OBJECT);
 
   gtk_list_store_append (priv->printer_list, &iter);
+  tmp = g_strdup_printf ("<b>%s</b>\n%s", _("Any Printer"), _("For portable documents"));
   gtk_list_store_set (priv->printer_list, &iter,
-                      PRINTER_LIST_COL_NAME, _("<b>Any Printer</b>\nFor portable documents"),
+                      PRINTER_LIST_COL_NAME, tmp,
                       PRINTER_LIST_COL_PRINTER, NULL,
                       -1);
-  
+  g_free (tmp);
+
   priv->page_setup_list = gtk_list_store_new (PAGE_SETUP_LIST_N_COLS,
                                                      G_TYPE_OBJECT,
                                                      G_TYPE_BOOLEAN);
@@ -260,7 +274,7 @@ printer_added_cb (GtkPrintBackend        *backend,
   GtkPageSetupUnixDialogPrivate *priv = dialog->priv;
   GtkTreeIter iter;
   gchar *str;
-  const gchar *location;;
+  const gchar *location;
 
   if (gtk_printer_is_virtual (printer))
     return;
@@ -271,18 +285,17 @@ printer_added_cb (GtkPrintBackend        *backend,
   str = g_strdup_printf ("<b>%s</b>\n%s",
                         gtk_printer_get_name (printer),
                         location);
-  
+
   gtk_list_store_append (priv->printer_list, &iter);
   gtk_list_store_set (priv->printer_list, &iter,
                       PRINTER_LIST_COL_NAME, str,
                       PRINTER_LIST_COL_PRINTER, printer,
                       -1);
 
-  g_object_set_data_full (G_OBJECT (printer), 
-                         "gtk-print-tree-iter", 
+  g_object_set_data_full (G_OBJECT (printer),
+                         "gtk-print-tree-iter",
                           gtk_tree_iter_copy (&iter),
                           (GDestroyNotify) gtk_tree_iter_free);
-  
   g_free (str);
 
   if (priv->waiting_for_printer != NULL &&
@@ -316,7 +329,7 @@ printer_status_cb (GtkPrintBackend        *backend,
   GtkPageSetupUnixDialogPrivate *priv = dialog->priv;
   GtkTreeIter *iter;
   gchar *str;
-  const gchar *location;;
+  const gchar *location;
   
   iter = g_object_get_data (G_OBJECT (printer), "gtk-print-tree-iter");
 
@@ -857,7 +870,7 @@ create_radio_button (GSList      *group,
   image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_LARGE_TOOLBAR);
   gtk_stock_lookup (stock_id, &item);
   label = gtk_label_new (item.label);
-  hbox = gtk_hbox_new (0, 6);
+  hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0, 6);
   gtk_container_add (GTK_CONTAINER (radio_button), hbox);
   gtk_container_add (GTK_CONTAINER (hbox), image);
   gtk_container_add (GTK_CONTAINER (hbox), label);
@@ -873,21 +886,24 @@ populate_dialog (GtkPageSetupUnixDialog *ps_dialog)
   GtkPageSetupUnixDialogPrivate *priv = ps_dialog->priv;
   GtkDialog *dialog = GTK_DIALOG (ps_dialog);
   GtkWidget *table, *label, *combo, *radio_button;
+  GtkWidget *action_area, *content_area;
   GtkCellRenderer *cell;
 
   gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
 
-  gtk_dialog_set_has_separator (dialog, FALSE);
+  content_area = gtk_dialog_get_content_area (dialog);
+  action_area = gtk_dialog_get_action_area (dialog);
+
   gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
-  gtk_box_set_spacing (GTK_BOX (dialog->vbox), 2); /* 2 * 5 + 2 = 12 */
-  gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), 5);
-  gtk_box_set_spacing (GTK_BOX (dialog->action_area), 6);
+  gtk_box_set_spacing (GTK_BOX (content_area), 2); /* 2 * 5 + 2 = 12 */
+  gtk_container_set_border_width (GTK_CONTAINER (action_area), 5);
+  gtk_box_set_spacing (GTK_BOX (action_area), 6);
 
   table = gtk_table_new (5, 4, FALSE);
   gtk_table_set_row_spacings (GTK_TABLE (table), 6);
   gtk_table_set_col_spacings (GTK_TABLE (table), 12);
   gtk_container_set_border_width (GTK_CONTAINER (table), 5);
-  gtk_box_pack_start (GTK_BOX (dialog->vbox), table, TRUE, TRUE, 0);
+  gtk_box_pack_start (GTK_BOX (content_area), table, TRUE, TRUE, 0);
   gtk_widget_show (table);
 
   label = gtk_label_new_with_mnemonic (_("_Format for:"));
@@ -991,8 +1007,8 @@ populate_dialog (GtkPageSetupUnixDialog *ps_dialog)
 
 /**
  * gtk_page_setup_unix_dialog_new:
- * @title: the title of the dialog, or %NULL
- * @parent: transient parent of the dialog, or %NULL
+ * @title: (allow-none): the title of the dialog, or %NULL
+ * @parent: (allow-none): transient parent of the dialog, or %NULL
  *
  * Creates a new page setup dialog.
  *
@@ -1191,6 +1207,3 @@ gtk_page_setup_unix_dialog_get_print_settings (GtkPageSetupUnixDialog *dialog)
 
   return priv->print_settings;
 }
-
-#define __GTK_PAGE_SETUP_UNIX_DIALOG_C__
-#include "gtkaliasdef.c"