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