]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkpagesetupunixdialog.c
themingengine: Improve junction handling code
[~andy/gtk] / gtk / gtkpagesetupunixdialog.c
index c5f63bf7088338384d988766ea34ac02991fd5f0..ab91b2314f042a1c414c6a4b764dc22fb85a5601 100644 (file)
 #include "gtkprintbackend.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;
@@ -74,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;
@@ -99,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,
@@ -138,10 +148,8 @@ static void
 gtk_page_setup_unix_dialog_class_init (GtkPageSetupUnixDialogClass *class)
 {
   GObjectClass *object_class;
-  GtkWidgetClass *widget_class;
 
   object_class = (GObjectClass *) class;
-  widget_class = (GtkWidgetClass *) class;
 
   object_class->finalize = gtk_page_setup_unix_dialog_finalize;
 
@@ -155,7 +163,9 @@ gtk_page_setup_unix_dialog_init (GtkPageSetupUnixDialog *dialog)
   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;
 
@@ -858,7 +868,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, 6);
   gtk_container_add (GTK_CONTAINER (radio_button), hbox);
   gtk_container_add (GTK_CONTAINER (hbox), image);
   gtk_container_add (GTK_CONTAINER (hbox), label);
@@ -874,21 +884,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:"));
@@ -1084,7 +1097,7 @@ gtk_page_setup_unix_dialog_set_page_setup (GtkPageSetupUnixDialog *dialog,
  * 
  * Gets the currently selected page setup from the dialog. 
  * 
- * Returns: the current page setup 
+ * Returns: (transfer none): the current page setup 
  *
  * Since: 2.10
  **/
@@ -1181,7 +1194,7 @@ gtk_page_setup_unix_dialog_set_print_settings (GtkPageSetupUnixDialog *dialog,
  * 
  * Gets the current print settings from the dialog.
  * 
- * Returns: the current print settings
+ * Returns: (transfer none): the current print settings
  *
  * Since: 2.10
  **/
@@ -1192,6 +1205,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"