Author: gcasa
Date: Wed Feb  4 02:18:53 2015
New Revision: 38327

URL: http://svn.gna.org/viewcvs/gnustep?rev=38327&view=rev
Log:
Add page layout and print panel to theme.

Added:
    plugins/themes/WinUXTheme/GSWIN32PageLayout.h
    plugins/themes/WinUXTheme/GSWIN32PageLayout.m
    plugins/themes/WinUXTheme/GSWIN32PrintPanel.h
    plugins/themes/WinUXTheme/GSWIN32PrintPanel.m
Modified:
    plugins/themes/WinUXTheme/ChangeLog
    plugins/themes/WinUXTheme/GNUmakefile
    plugins/themes/WinUXTheme/WinUXTheme.m

Modified: plugins/themes/WinUXTheme/ChangeLog
URL: 
http://svn.gna.org/viewcvs/gnustep/plugins/themes/WinUXTheme/ChangeLog?rev=38327&r1=38326&r2=38327&view=diff
==============================================================================
--- plugins/themes/WinUXTheme/ChangeLog (original)
+++ plugins/themes/WinUXTheme/ChangeLog Wed Feb  4 02:18:53 2015
@@ -1,11 +1,23 @@
+2015-01-03 Gregory John Casamento <[email protected]>
+
+       * GNUmakefile: Add new classes and headers
+       * GSWIN32PrintPanel.[hm]: New class to handle print panel for the
+       win32 theme.
+       * GSWIN32PageLayout.[hm]: New class to handle page layout panel
+       for the win32 theme.
+       * WinUXTheme.m: Add category to pass back the class to be instantiated
+       to the theme framework.
+       
 2015-1-8 Paul Landers <[email protected]>
 
-    * WinNSMenu.m: Allow a menu item with a submenu to be disabled, if it 
contains no items.
+       * WinNSMenu.m: Allow a menu item with a submenu to be
+       disabled, if it contains no items.
 
 2014-12-17 Paul Landers <[email protected]>
 
-    * WinNSOpenPanel.m: Setting the list of allowedFileTypes uses only those 
in the list. 
-    Otherwise, use the types for the valid document. 
+       * WinNSOpenPanel.m: Setting the list of allowedFileTypes
+       uses only those in the list. Otherwise, use the types
+       for the valid document.
 
 2014-09-25 Riccardo Mottola <[email protected]>
 

Modified: plugins/themes/WinUXTheme/GNUmakefile
URL: 
http://svn.gna.org/viewcvs/gnustep/plugins/themes/WinUXTheme/GNUmakefile?rev=38327&r1=38326&r2=38327&view=diff
==============================================================================
--- plugins/themes/WinUXTheme/GNUmakefile       (original)
+++ plugins/themes/WinUXTheme/GNUmakefile       Wed Feb  4 02:18:53 2015
@@ -55,7 +55,9 @@
                WinNSStepper.m \
                WinNSProgressIndicator.m \
                WinNSColorWell.m \
-               WinNSBrowserHeader.m
+               WinNSBrowserHeader.m \
+               GSWIN32PrintPanel.m \
+               GSWIN32PageLayout.m
 
 #
 # Resource files

Added: plugins/themes/WinUXTheme/GSWIN32PageLayout.h
URL: 
http://svn.gna.org/viewcvs/gnustep/plugins/themes/WinUXTheme/GSWIN32PageLayout.h?rev=38327&view=auto
==============================================================================
--- plugins/themes/WinUXTheme/GSWIN32PageLayout.h       (added)
+++ plugins/themes/WinUXTheme/GSWIN32PageLayout.h       Wed Feb  4 02:18:53 2015
@@ -0,0 +1,46 @@
+/** <title>GSWIN32PageLayout</title>
+
+   <abstract>Standard panel for querying user about page layout.</abstract>
+
+   Copyright (C) 2001,2004 Free Software Foundation, Inc.
+
+   Written By: Adam Fedor <[email protected]>
+   Date: Oct 2001
+   Modified for Printing Backend Support
+   Author: Chad Hardin <[email protected]>
+   Date: June 2004
+   
+   This file is part of the GNUstep GUI Library.
+
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2 of the License, or (at your option) any later version.
+
+   This library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with this library; see the file COPYING.LIB.
+   If not, see <http://www.gnu.org/licenses/> or write to the 
+   Free Software Foundation, 51 Franklin Street, Fifth Floor, 
+   Boston, MA 02110-1301, USA.
+*/ 
+
+#ifndef _GNUstep_H_GSWIN32PageLayout
+#define _GNUstep_H_GSWIN32PageLayout
+
+#import "AppKit/NSPageLayout.h"
+
+@class NSPrintInfo;
+@class NSView;
+
+@interface GSWIN32PageLayout: NSPageLayout
+{
+}
+
+@end
+
+#endif // _GNUstep_H_GSWIN32PageLayout

Added: plugins/themes/WinUXTheme/GSWIN32PageLayout.m
URL: 
http://svn.gna.org/viewcvs/gnustep/plugins/themes/WinUXTheme/GSWIN32PageLayout.m?rev=38327&view=auto
==============================================================================
--- plugins/themes/WinUXTheme/GSWIN32PageLayout.m       (added)
+++ plugins/themes/WinUXTheme/GSWIN32PageLayout.m       Wed Feb  4 02:18:53 2015
@@ -0,0 +1,102 @@
+/** <title>GSWIN32PageLayout</title>
+
+   <abstract></abstract>
+
+   Copyright (C) 2004 Free Software Foundation, Inc.
+   Author: Chad Hardin <[email protected]>
+   Date: June 2004
+   
+   This file is part of the GNUstep GUI Library.
+
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2 of the License, or (at your option) any later version.
+
+   This library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with this library; see the file COPYING.LIB.
+   If not, see <http://www.gnu.org/licenses/> or write to the 
+   Free Software Foundation, 51 Franklin Street, Fifth Floor, 
+   Boston, MA 02110-1301, USA.
+*/ 
+
+#import <Foundation/NSDebug.h>
+#import <Foundation/NSValue.h>
+#import <AppKit/NSPrintInfo.h>
+#import <AppKit/NSPrinter.h>
+#import <AppKit/NSApplication.h>
+
+#import "GSWIN32PageLayout.h"
+
+#define PTS2INCHES(n) ((n / 72.0f) * 1000.0f)
+#define INCHES2PTS(n) ((n / 1000.0f) * 72.0f)
+
+@implementation GSWIN32PageLayout
+//
+// Class methods
+//
++ (void)initialize
+{
+  if (self == [GSWIN32PageLayout class])
+    {
+      // Initial version
+      [self setVersion:1];
+    }
+}
+
+
++ (id) allocWithZone: (NSZone*)zone
+{
+  return NSAllocateObject(self, 0, zone);
+}
+
+- (NSInteger)runModalWithPrintInfo:(NSPrintInfo *)printInfo
+{
+  PAGESETUPDLG pgSetup;
+  int windowNumber = 
+    [[[NSApplication sharedApplication] mainWindow] windowNumber];
+
+  pgSetup.lStructSize = sizeof(PAGESETUPDLG);
+  pgSetup.Flags = PSD_INTHOUSANDTHSOFINCHES;
+  pgSetup.hwndOwner = (HWND)windowNumber;
+  pgSetup.hDevNames = NULL;
+  pgSetup.hDevMode = NULL;
+  pgSetup.rtMargin.top  =  PTS2INCHES([printInfo topMargin]);
+  pgSetup.rtMargin.bottom  =  PTS2INCHES([printInfo bottomMargin]);
+  pgSetup.rtMargin.right  =  PTS2INCHES([printInfo rightMargin]);
+  pgSetup.rtMargin.left  =  PTS2INCHES([printInfo leftMargin]);
+  pgSetup.ptPaperSize.x  =  PTS2INCHES([printInfo paperSize].width);
+  pgSetup.ptPaperSize.y  =  PTS2INCHES([printInfo paperSize].height);
+  
+  int retVal = PageSetupDlg(&pgSetup);
+  if (retVal == 0) 
+    {
+      return NSCancelButton;
+    }
+  else 
+    {
+      NSSize size = NSMakeSize(INCHES2PTS(pgSetup.ptPaperSize.x),
+                              INCHES2PTS(pgSetup.ptPaperSize.y));
+      [printInfo setPaperSize: size];    
+      [printInfo setTopMargin: INCHES2PTS(pgSetup.rtMargin.top)];
+      [printInfo setBottomMargin: INCHES2PTS(pgSetup.rtMargin.bottom)];
+      [printInfo setRightMargin: INCHES2PTS(pgSetup.rtMargin.right)];
+      [printInfo setLeftMargin: INCHES2PTS(pgSetup.rtMargin.left)];
+    }
+  return NSOKButton;
+}
+
+- (void) beginSheetWithPrintInfo: (NSPrintInfo *)printInfo 
+                 modalForWindow: (NSWindow *)docWindow 
+                       delegate: (id)delegate 
+                 didEndSelector: (SEL)didEndSelector 
+                    contextInfo: (void *)contextInfo
+{
+  [self runModalWithPrintInfo: printInfo];
+}
+@end

Added: plugins/themes/WinUXTheme/GSWIN32PrintPanel.h
URL: 
http://svn.gna.org/viewcvs/gnustep/plugins/themes/WinUXTheme/GSWIN32PrintPanel.h?rev=38327&view=auto
==============================================================================
--- plugins/themes/WinUXTheme/GSWIN32PrintPanel.h       (added)
+++ plugins/themes/WinUXTheme/GSWIN32PrintPanel.h       Wed Feb  4 02:18:53 2015
@@ -0,0 +1,44 @@
+/* 
+   GSWIN32PrintPanel.h
+
+   Standard panel to query users for info on a print job
+
+   Copyright (C) 1996,2004 Free Software Foundation, Inc.
+
+   Author:  Scott Christley <[email protected]>      
+   Date: 1996
+   Modified for Printing Backend Support
+   Author: Chad Hardin <[email protected]>
+   Date: June 2004
+   
+   This file is part of the GNUstep GUI Library.
+
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2 of the License, or (at your option) any later version.
+
+   This library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with this library; see the file COPYING.LIB.
+   If not, see <http://www.gnu.org/licenses/> or write to the 
+   Free Software Foundation, 51 Franklin Street, Fifth Floor, 
+   Boston, MA 02110-1301, USA.
+*/ 
+
+#ifndef _GNUstep_H_GSWIN32PrintPanel
+#define _GNUstep_H_GSWIN32PrintPanel
+
+#import "AppKit/NSPrintPanel.h"
+
+@interface GSWIN32PrintPanel : NSPrintPanel
+{
+}
+
+@end
+
+#endif // _GNUstep_H_GSWIN32PrintPanel

Added: plugins/themes/WinUXTheme/GSWIN32PrintPanel.m
URL: 
http://svn.gna.org/viewcvs/gnustep/plugins/themes/WinUXTheme/GSWIN32PrintPanel.m?rev=38327&view=auto
==============================================================================
--- plugins/themes/WinUXTheme/GSWIN32PrintPanel.m       (added)
+++ plugins/themes/WinUXTheme/GSWIN32PrintPanel.m       Wed Feb  4 02:18:53 2015
@@ -0,0 +1,110 @@
+/** <title>GSWIN32PrintPanel</title>
+
+   <abstract>Standard panel for querying user about printing.</abstract>
+
+   Copyright (C) 2001,2004 Free Software Foundation, Inc.
+
+   Written By: Adam Fedor <[email protected]>
+   Date: Oct 2001
+   Modified for Printing Backend Support
+   Author: Chad Hardin <[email protected]>
+   Date: June 2004
+   
+   This file is part of the GNUstep GUI Library.
+
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2 of the License, or (at your option) any later version.
+
+   This library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with this library; see the file COPYING.LIB.
+   If not, see <http://www.gnu.org/licenses/> or write to the 
+   Free Software Foundation, 51 Franklin Street, Fifth Floor, 
+   Boston, MA 02110-1301, USA.
+*/
+
+#import <Foundation/NSDebug.h>
+#import <Foundation/NSValue.h>
+#import <AppKit/NSPrintInfo.h>
+#import <AppKit/NSPrinter.h>
+#import <AppKit/NSApplication.h>
+
+#import "GSWIN32PrintPanel.h"
+
+@implementation GSWIN32PrintPanel
+//
+// Class methods
+//
++ (id) allocWithZone: (NSZone*)zone
+{
+  return NSAllocateObject(self, 0, zone);
+}
+
+- (NSInteger) runModalWithPrintInfo: (NSPrintInfo *)printInfo
+{
+   int                   retVal;
+   PRINTDLG              printDlg;
+   int                   windowNumber = [[[NSApplication sharedApplication] 
mainWindow] windowNumber];
+   
+   printDlg.lStructSize = sizeof(PRINTDLG);
+   printDlg.hwndOwner = (HWND)windowNumber;
+   printDlg.hDevMode = NULL;
+   printDlg.hDevNames = NULL;
+   printDlg.Flags = PD_RETURNDC | PD_USEDEVMODECOPIESANDCOLLATE;
+   printDlg.hDC = NULL;
+   printDlg.lCustData = 0; 
+   printDlg.lpfnPrintHook = NULL; 
+   printDlg.lpfnSetupHook = NULL; 
+   printDlg.lpPrintTemplateName = NULL; 
+   printDlg.lpSetupTemplateName = NULL; 
+   printDlg.hPrintTemplate = NULL; 
+   printDlg.hSetupTemplate = NULL; 
+
+   printDlg.nFromPage = 0; //0xFFFF;
+   printDlg.nToPage = 0; //0xFFFF;
+   printDlg.nMinPage = 1;
+   printDlg.nMaxPage = 0xFFFF;
+   printDlg.nCopies = 1; 
+   printDlg.hInstance = NULL; 
+   
+   retVal = PrintDlg(&printDlg);
+   if(retVal==0)
+     {
+       return NSCancelButton;
+     }
+   else 
+     {
+       DEVNAMES   *pDevNames = (DEVNAMES *)GlobalLock(printDlg.hDevNames);
+       LPCTSTR     szDevice = NULL;
+       NSString   *printerName = nil;
+       NSPrinter  *printer = nil;
+
+       szDevice = (LPCTSTR)pDevNames + pDevNames->wDeviceOffset;
+       printerName = [NSString stringWithCString:(const char *)szDevice];
+       NSLog(@"Printer Name = %@",printerName);
+
+       printer = [NSPrinter printerWithName:printerName];
+       if(printer != nil)
+        {
+          [printInfo setPrinter:printer];
+        }
+     }
+   
+   return NSOKButton;
+}
+
+- (void) beginSheetWithPrintInfo: (NSPrintInfo *)printInfo 
+                 modalForWindow: (NSWindow *)docWindow 
+                       delegate: (id)delegate 
+                 didEndSelector: (SEL)didEndSelector 
+                    contextInfo: (void *)contextInfo
+{
+  [self runModalWithPrintInfo: printInfo];
+}
+@end

Modified: plugins/themes/WinUXTheme/WinUXTheme.m
URL: 
http://svn.gna.org/viewcvs/gnustep/plugins/themes/WinUXTheme/WinUXTheme.m?rev=38327&r1=38326&r2=38327&view=diff
==============================================================================
--- plugins/themes/WinUXTheme/WinUXTheme.m      (original)
+++ plugins/themes/WinUXTheme/WinUXTheme.m      Wed Feb  4 02:18:53 2015
@@ -30,6 +30,8 @@
 
 #import "WinUXTheme.h"
 #import "WIN32VSImageRep.h"
+#import "GSWIN32PrintPanel.h"
+#import "GSWIN32PageLayout.h"
 
 #include <Commctrl.h>
 
@@ -242,3 +244,24 @@
 @end
 
 
+
+@implementation GSTheme (PrintPanels)
+/**
+ * This method returns the print panel class needed by the
+ * native environment.
+ */
+- (Class) printPanelClass
+{
+  return [GSWIN32PrintPanel class];
+}
+
+/**
+ * This method returns the page layout class needed by the 
+ * native environment.
+ */
+- (Class) pageLayoutClass
+{
+  return [GSWIN32PageLayout class];
+}
+
+@end


_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs

Reply via email to