]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkprintoperation-win32.c
Do without GtkSelectionWindow
[~andy/gtk] / gtk / gtkprintoperation-win32.c
index 23ad8e3200b9406d478dedfff9a32b45665f73c2..04de8ebbeb178f44d8bd7d2db460199f96162a74 100644 (file)
@@ -13,9 +13,7 @@
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef _MSC_VER
@@ -43,7 +41,6 @@
 #include "gtkstock.h"
 #include "gtk.h"
 #include "gtkwin32embedwidget.h"
-#include "gtkalias.h"
 
 #define MAX_PAGE_RANGES 20
 #define STATUS_POLLING_TIME 2000
@@ -72,7 +69,7 @@ static void win32_poll_status (GtkPrintOperation *op);
 
 static const GUID myIID_IPrintDialogCallback  = {0x5852a2c3,0x6530,0x11d1,{0xb6,0xa3,0x0,0x0,0xf8,0x75,0x7b,0xf9}};
 
-#ifndef _MSC_VER
+#if !defined (_MSC_VER) && !defined (HAVE_IPRINTDIALOGCALLBACK)
 #undef INTERFACE
 #define INTERFACE IPrintDialogCallback
 DECLARE_INTERFACE_ (IPrintDialogCallback, IUnknown)
@@ -416,21 +413,42 @@ paper_size_to_win32 (GtkPaperSize *paper_size)
   return 0;
 }
 
-gchar* win32_get_default_printer(){
-  gunichar2* win32_printer_name = NULL;
-  gchar*     printer_name = NULL;
+static gchar*
+get_default_printer (void)
+{
+  wchar_t *win32_printer_name = NULL;
+  gchar *printer_name = NULL;
   DWORD needed;
-  GetDefaultPrinterW(NULL,&needed);
-  win32_printer_name = g_malloc((gsize)needed*sizeof(gunichar2));
-  if(!GetDefaultPrinterW(win32_printer_name,&needed)){
-     g_free(win32_printer_name);
-        return NULL;
-  }
-  printer_name = g_utf16_to_utf8(win32_printer_name,-1,NULL,NULL,NULL);
-  g_free(win32_printer_name);
+
+  GetDefaultPrinterW (NULL, &needed);
+  win32_printer_name = g_malloc ((gsize) needed * sizeof (wchar_t));
+  if (!GetDefaultPrinterW (win32_printer_name, &needed))
+    {
+      g_free (win32_printer_name);
+      return NULL;
+    }
+  printer_name = g_utf16_to_utf8 (win32_printer_name, -1, NULL, NULL, NULL);
+  g_free (win32_printer_name);
+
   return printer_name;
 }
 
+static void
+set_hard_margins (GtkPrintOperation *op)
+{
+  double top, bottom, left, right;
+  GtkPrintOperationWin32 *op_win32 = op->priv->platform_data;
+
+  top = GetDeviceCaps (op_win32->hdc, PHYSICALOFFSETY);
+  bottom = GetDeviceCaps (op_win32->hdc, PHYSICALHEIGHT)
+      - GetDeviceCaps (op_win32->hdc, VERTRES) - top;
+  left = GetDeviceCaps (op_win32->hdc, PHYSICALOFFSETX);
+  right = GetDeviceCaps (op_win32->hdc, PHYSICALWIDTH)
+      - GetDeviceCaps (op_win32->hdc, HORZRES) - left;
+
+  _gtk_print_context_set_hard_margins (op->priv->print_context, top, bottom, left, right);
+}
+
 void
 win32_start_page (GtkPrintOperation *op,
                  GtkPrintContext *print_context,
@@ -439,6 +457,7 @@ win32_start_page (GtkPrintOperation *op,
   GtkPrintOperationWin32 *op_win32 = op->priv->platform_data;
   LPDEVMODEW devmode;
   GtkPaperSize *paper_size;
+  double x_off, y_off;
 
   devmode = GlobalLock (op_win32->devmode);
   
@@ -463,6 +482,11 @@ win32_start_page (GtkPrintOperation *op,
   ResetDCW (op_win32->hdc, devmode);
   
   GlobalUnlock (op_win32->devmode);
+
+  set_hard_margins (op);
+  x_off = GetDeviceCaps (op_win32->hdc, PHYSICALOFFSETX);
+  y_off = GetDeviceCaps (op_win32->hdc, PHYSICALOFFSETY);
+  cairo_surface_set_device_offset (op_win32->surface, -x_off, -y_off);
   
   StartPage (op_win32->hdc);
 }
@@ -520,13 +544,13 @@ win32_end_run (GtkPrintOperation *op,
       GlobalUnlock (op_win32->devnames);
     }
   
-  GlobalFree(op_win32->devmode);
-  GlobalFree(op_win32->devnames);
+  GlobalFree (op_win32->devmode);
+  GlobalFree (op_win32->devnames);
 
   cairo_surface_destroy (op_win32->surface);
   op_win32->surface = NULL;
 
-  DeleteDC(op_win32->hdc);
+  DeleteDC (op_win32->hdc);
   
   if (printerHandle != 0)
     {
@@ -629,7 +653,7 @@ static HWND
 get_parent_hwnd (GtkWidget *widget)
 {
   gtk_widget_realize (widget);
-  return gdk_win32_drawable_get_handle (widget->window);
+  return gdk_win32_window_get_handle (gtk_widget_get_window (widget));
 }
 
 static void
@@ -935,8 +959,8 @@ devmode_from_settings (GtkPrintSettings *settings,
     {
       devmode->dmDriverExtra = extras_len;
       memcpy (((char *)devmode) + sizeof (DEVMODEW), extras, extras_len);
-      g_free (extras);
     }
+  g_free (extras);
   if (gtk_print_settings_has_key (settings, GTK_PRINT_SETTINGS_WIN32_DRIVER_VERSION))
     devmode->dmDriverVersion = gtk_print_settings_get_int (settings, GTK_PRINT_SETTINGS_WIN32_DRIVER_VERSION);
   
@@ -1313,8 +1337,8 @@ plug_grab_notify (GtkWidget        *widget,
                  gboolean          was_grabbed,
                  GtkPrintOperation *op)
 {
-  EnableWindow(GetAncestor (GDK_WINDOW_HWND (widget->window), GA_ROOT),
-              was_grabbed);
+  EnableWindow (GetAncestor (GDK_WINDOW_HWND (gtk_widget_get_window (widget)), GA_ROOT),
+               was_grabbed);
 }
 
 
@@ -1332,15 +1356,15 @@ pageDlgProc (HWND wnd, UINT message, WPARAM wparam, LPARAM lparam)
       op = GTK_PRINT_OPERATION ((gpointer)page->lParam);
       op_win32 = op->priv->platform_data;
 
-      SetWindowLongPtrW(wnd, GWLP_USERDATA, (LONG_PTR)op);
+      SetWindowLongPtrW (wnd, GWLP_USERDATA, (LONG_PTR)op);
       
-      plug = _gtk_win32_embed_widget_new ((GdkNativeWindow) wnd);
+      plug = _gtk_win32_embed_widget_new (wnd);
       gtk_window_set_modal (GTK_WINDOW (plug), TRUE);
       op_win32->embed_widget = plug;
       gtk_container_add (GTK_CONTAINER (plug), op->priv->custom_widget);
       gtk_widget_show (op->priv->custom_widget);
       gtk_widget_show (plug);
-      gdk_window_focus (plug->window, GDK_CURRENT_TIME);
+      gdk_window_focus (gtk_widget_get_window (plug), GDK_CURRENT_TIME);
 
       /* This dialog is modal, so we grab the embed widget */
       gtk_grab_add (plug);
@@ -1351,7 +1375,7 @@ pageDlgProc (HWND wnd, UINT message, WPARAM wparam, LPARAM lparam)
     }
   else if (message == WM_DESTROY)
     {
-      op = GTK_PRINT_OPERATION (GetWindowLongPtrW(wnd, GWLP_USERDATA));
+      op = GTK_PRINT_OPERATION (GetWindowLongPtrW (wnd, GWLP_USERDATA));
       op_win32 = op->priv->platform_data;
       
       g_signal_emit_by_name (op, "custom-widget-apply", op->priv->custom_widget);
@@ -1361,7 +1385,7 @@ pageDlgProc (HWND wnd, UINT message, WPARAM wparam, LPARAM lparam)
     }
   else 
     {
-      op = GTK_PRINT_OPERATION (GetWindowLongPtrW(wnd, GWLP_USERDATA));
+      op = GTK_PRINT_OPERATION (GetWindowLongPtrW (wnd, GWLP_USERDATA));
       op_win32 = op->priv->platform_data;
 
       return _gtk_win32_embed_widget_dialog_procedure (GTK_WIN32_EMBED_WIDGET (op_win32->embed_widget),
@@ -1385,29 +1409,30 @@ create_application_page (GtkPrintOperation *op)
   const char *tab_label;
 
   /* Make the template the size of the custom widget size request */
-  gtk_widget_size_request (op->priv->custom_widget, &requisition);
-      
-  base_units = GetDialogBaseUnits();
-  baseunitX = LOWORD(base_units);
-  baseunitY = HIWORD(base_units);
+  gtk_widget_get_preferred_size (op->priv->custom_widget,
+                                 &requisition, NULL);
+
+  base_units = GetDialogBaseUnits ();
+  baseunitX = LOWORD (base_units);
+  baseunitY = HIWORD (base_units);
   
   htemplate = GlobalAlloc (GMEM_MOVEABLE, 
-                          sizeof (DLGTEMPLATE) + sizeof(WORD) * 3);
+                          sizeof (DLGTEMPLATE) + sizeof (WORD) * 3);
   template = GlobalLock (htemplate);
   template->style = WS_CHILDWINDOW | DS_CONTROL;
   template->dwExtendedStyle = WS_EX_CONTROLPARENT;
   template->cdit = 0;
-  template->x = MulDiv(0, 4, baseunitX);
-  template->y = MulDiv(0, 8, baseunitY);
-  template->cx = MulDiv(requisition.width, 4, baseunitX);
-  template->cy = MulDiv(requisition.height, 8, baseunitY);
+  template->x = MulDiv (0, 4, baseunitX);
+  template->y = MulDiv (0, 8, baseunitY);
+  template->cx = MulDiv (requisition.width, 4, baseunitX);
+  template->cy = MulDiv (requisition.height, 8, baseunitY);
   
   array = (WORD *) (template+1);
   *array++ = 0; /* menu */
   *array++ = 0; /* class */
   *array++ = 0; /* title */
   
-  memset(&page, 0, sizeof (page));
+  memset (&page, 0, sizeof (page));
   page.dwSize = sizeof (page);
   page.dwFlags = PSP_DLGINDIRECT | PSP_USETITLE | PSP_PREMATURE;
   page.hInstance = GetModuleHandle (NULL);
@@ -1423,7 +1448,7 @@ create_application_page (GtkPrintOperation *op)
   page.pfnDlgProc = pageDlgProc;
   page.pfnCallback = NULL;
   page.lParam = (LPARAM) op;
-  hpage = CreatePropertySheetPageW(&page);
+  hpage = CreatePropertySheetPageW (&page);
   
   GlobalUnlock (htemplate);
   
@@ -1467,8 +1492,9 @@ create_page_setup (GtkPrintOperation *op)
   return page_setup;
 }
 
-GtkPrintOperationResult gtk_print_operation_run_without_dialog(GtkPrintOperation *op,
-                                                 gboolean *do_print)
+GtkPrintOperationResult
+gtk_print_operation_run_without_dialog (GtkPrintOperation *op,
+                                       gboolean          *do_print)
 {
   GtkPrintOperationResult result;
   GtkPrintOperationWin32 *op_win32;
@@ -1476,16 +1502,19 @@ GtkPrintOperationResult gtk_print_operation_run_without_dialog(GtkPrintOperation
   GtkPrintSettings *settings;
   GtkPageSetup *page_setup;
   DOCINFOW docinfo;
-  HGLOBAL hDevMode    = NULL;
-  HGLOBAL hDevNames   = NULL;
-  HDC     hDC         = NULL;
-  const charprinter = NULL;
+  HGLOBAL hDevMode = NULL;
+  HGLOBAL hDevNames = NULL;
+  HDC hDC = NULL;
+  const char *printer = NULL;
   double dpi_x, dpi_y;
   int job_id;
   cairo_t *cr;
+  DEVNAMES *pdn;
+  DEVMODEW *pdm;
+
   *do_print = FALSE;
 
-  priv     = op->priv;
+  priv = op->priv;
   settings = priv->print_settings;
   
   op_win32 = g_new0 (GtkPrintOperationWin32, 1);
@@ -1493,49 +1522,48 @@ GtkPrintOperationResult gtk_print_operation_run_without_dialog(GtkPrintOperation
   priv->free_platform_data = (GDestroyNotify) op_win32_free;
   printer = gtk_print_settings_get_printer (settings);
 
-  if (!printer){
-      /**
-      no printer selected,
-      get the system default printer and store it to settings
-      */
-         gchar* tmp_printer = win32_get_default_printer();
-         if(!tmp_printer){
-            result = GTK_PRINT_OPERATION_RESULT_ERROR;
-                       g_set_error_literal (&priv->error,
-                    GTK_PRINT_ERROR,
-                    GTK_PRINT_ERROR_INTERNAL_ERROR,
-                    _("No printer found"));
-                       goto out;
-         }
-         gtk_print_settings_set_printer(settings,tmp_printer);
+  if (!printer)
+    {
+      /* No printer selected. Get the system default printer and store
+       * it in settings.
+       */
+      gchar *tmp_printer = get_default_printer ();
+      if (!tmp_printer)
+       {
+         result = GTK_PRINT_OPERATION_RESULT_ERROR;
+         g_set_error_literal (&priv->error,
+                              GTK_PRINT_ERROR,
+                              GTK_PRINT_ERROR_INTERNAL_ERROR,
+                              _("No printer found"));
+         goto out;
+       }
+      gtk_print_settings_set_printer (settings, tmp_printer);
       printer = gtk_print_settings_get_printer (settings);
-         g_free(tmp_printer);
-  }
-  
+      g_free (tmp_printer);
+    }
+
   hDevNames = gtk_print_win32_devnames_to_win32_from_printer_name (printer);
-  hDevMode = devmode_from_settings (settings,
-                                               op->priv->default_page_setup);
+  hDevMode = devmode_from_settings (settings, op->priv->default_page_setup);
+
+  /* Create a printer DC for the print settings and page setup provided. */
+  pdn = GlobalLock (hDevNames);
+  pdm = GlobalLock (hDevMode);
+  hDC = CreateDCW ((wchar_t*)pdn + pdn->wDriverOffset,
+                  (wchar_t*)pdn + pdn->wDeviceOffset,
+                  (wchar_t*)pdn + pdn->wOutputOffset,
+                  pdm );
+  GlobalUnlock (hDevNames);
+  GlobalUnlock (hDevMode);
 
-  /**
-  create a printer DC for the print settings and pagesetup provided
-  */
-  DEVNAMES *pdn = GlobalLock(hDevNames);
-  DEVMODEW *pdm = GlobalLock(hDevMode);
-  hDC = CreateDCW((gunichar2*)pdn + pdn->wDriverOffset,
-                  (gunichar2*)pdn + pdn->wDeviceOffset,
-                  (gunichar2*)pdn + pdn->wOutputOffset,
-                  pdm );
-  GlobalUnlock(hDevNames);
-  GlobalUnlock(hDevMode);
-
-  if(!hDC){
+  if (!hDC)
+    {
       result = GTK_PRINT_OPERATION_RESULT_ERROR;
       g_set_error_literal (&priv->error,
-             GTK_PRINT_ERROR,
-             GTK_PRINT_ERROR_INTERNAL_ERROR,
-             _("Invalid argument to CreateDC"));
-         goto out;
-  }
+                          GTK_PRINT_ERROR,
+                          GTK_PRINT_ERROR_INTERNAL_ERROR,
+                          _("Invalid argument to CreateDC"));
+      goto out;
+    }
   
   priv->print_context = _gtk_print_context_new (op);
   page_setup = create_page_setup (op);
@@ -1545,35 +1573,36 @@ GtkPrintOperationResult gtk_print_operation_run_without_dialog(GtkPrintOperation
   *do_print = TRUE;
 
   op_win32->surface = cairo_win32_printing_surface_create (hDC);
-  dpi_x = (double)GetDeviceCaps (hDC, LOGPIXELSX);
-  dpi_y = (double)GetDeviceCaps (hDC, LOGPIXELSY);
+  dpi_x = (double) GetDeviceCaps (hDC, LOGPIXELSX);
+  dpi_y = (double) GetDeviceCaps (hDC, LOGPIXELSY);
 
   cr = cairo_create (op_win32->surface);
   gtk_print_context_set_cairo_context (priv->print_context, cr, dpi_x, dpi_y);
   cairo_destroy (cr);
 
-  memset( &docinfo, 0, sizeof (DOCINFOW));
+  set_hard_margins (op);
+
+  memset (&docinfo, 0, sizeof (DOCINFOW));
   docinfo.cbSize = sizeof (DOCINFOW); 
-  docinfo.lpszDocName = g_utf8_to_utf16 (op->priv->job_name,
-                                         -1, NULL, NULL, NULL); 
-  docinfo.lpszOutput = (LPCWSTR) NULL; 
-  docinfo.lpszDatatype = (LPCWSTR) NULL; 
+  docinfo.lpszDocName = g_utf8_to_utf16 (op->priv->job_name, -1, NULL, NULL, NULL); 
+  docinfo.lpszOutput = NULL; 
+  docinfo.lpszDatatype = NULL; 
   docinfo.fwType = 0; 
 
-  job_id = StartDocW(hDC, &docinfo); 
+  job_id = StartDocW (hDC, &docinfo); 
   g_free ((void *)docinfo.lpszDocName);
-  if (job_id <= 0) 
-  { 
-    result = GTK_PRINT_OPERATION_RESULT_ERROR;
-    g_set_error_literal (&priv->error,
-           GTK_PRINT_ERROR,
-           GTK_PRINT_ERROR_GENERAL,
-           _("Error from StartDoc"));
-    *do_print = FALSE;
-    cairo_surface_destroy (op_win32->surface);
-    op_win32->surface = NULL;
-    goto out; 
-  } 
+  if (job_id <= 0)
+    
+      result = GTK_PRINT_OPERATION_RESULT_ERROR;
+      g_set_error_literal (&priv->error,
+                          GTK_PRINT_ERROR,
+                          GTK_PRINT_ERROR_GENERAL,
+                          _("Error from StartDoc"));
+      *do_print = FALSE;
+      cairo_surface_destroy (op_win32->surface);
+      op_win32->surface = NULL;
+      goto out; 
+    }
 
   result = GTK_PRINT_OPERATION_RESULT_APPLY;
   op_win32->hdc = hDC;
@@ -1591,26 +1620,30 @@ GtkPrintOperationResult gtk_print_operation_run_without_dialog(GtkPrintOperation
   op->priv->manual_orientation = FALSE;
   op->priv->manual_scale = 1.0;
   op->priv->manual_page_set = GTK_PAGE_SET_ALL;
+  op->priv->manual_number_up = 1;
+  op->priv->manual_number_up_layout = GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM;
 
   op->priv->start_page = win32_start_page;
   op->priv->end_page = win32_end_page;
   op->priv->end_run = win32_end_run;
   
 out:
+ out:
   if (!*do_print && hDC != NULL)
-    DeleteDC(hDC);
+    DeleteDC (hDC);
 
   if (!*do_print && hDevMode != NULL)
-    GlobalFree(hDevMode);
+    GlobalFree (hDevMode);
 
   if (!*do_print && hDevNames != NULL)
-    GlobalFree(hDevNames);
+    GlobalFree (hDevNames);
 
   return result;
 }
-GtkPrintOperationResult gtk_print_operation_run_with_dialog(GtkPrintOperation *op,
-                                                 GtkWindow *parent,
-                                                 gboolean *do_print)
+
+GtkPrintOperationResult
+gtk_print_operation_run_with_dialog (GtkPrintOperation *op,
+                                    GtkWindow         *parent,
+                                    gboolean          *do_print)
 {
   HRESULT hResult;
   LPPRINTDLGEXW printdlgex = NULL;
@@ -1650,7 +1683,7 @@ GtkPrintOperationResult gtk_print_operation_run_with_dialog(GtkPrintOperation *o
       goto out;
     }      
 
-  printdlgex->lStructSize = sizeof(PRINTDLGEXW);
+  printdlgex->lStructSize = sizeof (PRINTDLGEXW);
   printdlgex->hwndOwner = parentHWnd;
   printdlgex->hDevMode = NULL;
   printdlgex->hDevNames = NULL;
@@ -1706,7 +1739,7 @@ GtkPrintOperationResult gtk_print_operation_run_with_dialog(GtkPrintOperation *o
   printdlgex->lpCallback = (IUnknown *)callback;
   got_gdk_events_message = RegisterWindowMessage ("GDK_WIN32_GOT_EVENTS");
 
-  hResult = PrintDlgExW(printdlgex);
+  hResult = PrintDlgExW (printdlgex);
   IUnknown_Release ((IUnknown *)callback);
   gdk_win32_set_modal_dialog_libgtk_only (NULL);
 
@@ -1773,15 +1806,17 @@ GtkPrintOperationResult gtk_print_operation_run_with_dialog(GtkPrintOperation *o
       cr = cairo_create (op_win32->surface);
       gtk_print_context_set_cairo_context (priv->print_context, cr, dpi_x, dpi_y);
       cairo_destroy (cr);
-      
-      memset( &docinfo, 0, sizeof (DOCINFOW));
+
+      set_hard_margins (op);
+
+      memset ( &docinfo, 0, sizeof (DOCINFOW));
       docinfo.cbSize = sizeof (DOCINFOW); 
       docinfo.lpszDocName = g_utf8_to_utf16 (op->priv->job_name, -1, NULL, NULL, NULL); 
       docinfo.lpszOutput = (LPCWSTR) NULL; 
       docinfo.lpszDatatype = (LPCWSTR) NULL; 
       docinfo.fwType = 0; 
 
-      job_id = StartDocW(printdlgex->hDC, &docinfo); 
+      job_id = StartDocW (printdlgex->hDC, &docinfo); 
       g_free ((void *)docinfo.lpszDocName);
       if (job_id <= 0) 
        {
@@ -1812,6 +1847,8 @@ GtkPrintOperationResult gtk_print_operation_run_with_dialog(GtkPrintOperation *o
       op->priv->manual_orientation = FALSE;
       op->priv->manual_scale = 1.0;
       op->priv->manual_page_set = GTK_PAGE_SET_ALL;
+      op->priv->manual_number_up = 1;
+      op->priv->manual_number_up_layout = GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM;
     }
 
   op->priv->start_page = win32_start_page;
@@ -1820,13 +1857,13 @@ GtkPrintOperationResult gtk_print_operation_run_with_dialog(GtkPrintOperation *o
   
   out:
   if (!*do_print && printdlgex && printdlgex->hDC != NULL)
-    DeleteDC(printdlgex->hDC);
+    DeleteDC (printdlgex->hDC);
 
   if (!*do_print && printdlgex && printdlgex->hDevMode != NULL) 
-    GlobalFree(printdlgex->hDevMode); 
+    GlobalFree (printdlgex->hDevMode); 
 
   if (!*do_print && printdlgex && printdlgex->hDevNames != NULL) 
-    GlobalFree(printdlgex->hDevNames); 
+    GlobalFree (printdlgex->hDevNames); 
 
   if (page_ranges)
     GlobalFree (page_ranges);
@@ -1842,14 +1879,14 @@ GtkPrintOperationResult gtk_print_operation_run_with_dialog(GtkPrintOperation *o
 
 GtkPrintOperationResult
 _gtk_print_operation_platform_backend_run_dialog (GtkPrintOperation *op,
-                                                 gboolean show_dialog,
-                                                 GtkWindow *parent,
-                                                 gboolean *do_print)
+                                                 gboolean           show_dialog,
+                                                 GtkWindow         *parent,
+                                                 gboolean          *do_print)
 {
-       if(show_dialog)
-               return gtk_print_operation_run_with_dialog(op,parent,do_print);
-       else
-               return gtk_print_operation_run_without_dialog(op,do_print);
+  if (show_dialog)
+    return gtk_print_operation_run_with_dialog (op, parent, do_print);
+  else
+    return gtk_print_operation_run_without_dialog (op, do_print);
 }
 
 void
@@ -1910,7 +1947,7 @@ _gtk_print_operation_platform_backend_create_preview_surface (GtkPrintOperation
 
   template = g_build_filename (g_get_tmp_dir (), "prXXXXXX", NULL);
   fd = g_mkstemp (template);
-  close(fd);
+  close (fd);
 
   filename = g_strconcat (template, ".emf", NULL);
   g_free (template);
@@ -1977,7 +2014,7 @@ gtk_print_run_page_setup_dialog (GtkWindow        *parent,
   
   memset (pagesetupdlg, 0, sizeof (PAGESETUPDLGW));
 
-  pagesetupdlg->lStructSize = sizeof(PAGESETUPDLGW);
+  pagesetupdlg->lStructSize = sizeof (PAGESETUPDLGW);
 
   if (parent != NULL)
     pagesetupdlg->hwndOwner = get_parent_hwnd (GTK_WIDGET (parent));
@@ -1991,8 +2028,8 @@ gtk_print_run_page_setup_dialog (GtkWindow        *parent,
   if (printer)
     pagesetupdlg->hDevNames = gtk_print_win32_devnames_to_win32_from_printer_name (printer);
 
-  GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_IMEASURE|LOCALE_RETURN_NUMBER,
-                (LPWSTR)&measure_system, sizeof (DWORD));
+  GetLocaleInfoW (LOCALE_USER_DEFAULT, LOCALE_IMEASURE|LOCALE_RETURN_NUMBER,
+                 (LPWSTR)&measure_system, sizeof (DWORD));
 
   if (measure_system == 0)
     {
@@ -2095,6 +2132,3 @@ gtk_print_run_page_setup_dialog_async (GtkWindow            *parent,
   done_cb (new_page_setup, data);
   g_object_unref (new_page_setup);
 }
-
-#define __GTK_PRINT_OPERATION_WIN32_C__
-#include "gtkaliasdef.c"