Difference between revisions of "Mac OS X Porting - Native Printing"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (SalPrinter class)
(SalPrinter class)
Line 37: Line 37:
 
     SalPrinter() {}
 
     SalPrinter() {}
 
</code>
 
</code>
 +
 +
==== PspSalPrinter class ====
 +
PspSalPrinter means PostScript Print System Abstraction Layer Printer. Its implementation is located. As the name suggests it relies on features psprint module.
 +
 +
TODO : Discuss about PspSalPrinter implementation.
  
 
==== AquaSalPrinter class ====
 
==== AquaSalPrinter class ====

Revision as of 19:56, 8 October 2006

This page is dedicated to the native printing implementation in OpenOffice.org for Mac OS X

OpenOffice.org side

This part describes what can be found in the OOo APIs, how it is implemented and how it will be changed.

Concerned OOo modules

  • psprint
  • vcl

VCL

What we know about vcl.

SalPrinter class

SalPrinter is a virtual class intended for managing print jobs. It is composed of virtual fonctions, and a dummy constructor. This class is inherited by PspSalPrinter, WinSalPrinter, and of course by AquaSalPrinter (see AquaSalPrinter class).

   class VCL_DLLPUBLIC SalPrinter
   {
   public: // public for Sal Implementation
       SalPrinter() {}
       virtual ~SalPrinter();
       virtual BOOL StartJob( const XubString* pFileName,
                                       const XubString& rJobName,
                                       const XubString& rAppName,
                                       ULONG nCopies, BOOL bCollate,
                                       ImplJobSetup* pSetupData ) = 0;
       virtual BOOL EndJob() = 0;
       virtual BOOL AbortJob() = 0;
       virtual SalGraphics* StartPage( ImplJobSetup* pSetupData, BOOL bNewJobData ) = 0;
       virtual BOOL EndPage() = 0;
       virtual ULONG GetErrorCode() = 0;
   };

   SalPrinter() {}

PspSalPrinter class

PspSalPrinter means PostScript Print System Abstraction Layer Printer. Its implementation is located. As the name suggests it relies on features psprint module.

TODO : Discuss about PspSalPrinter implementation.

AquaSalPrinter class

AquaSalPrinter class is located in vcl/aqua/source/gdi/salprn.cxx

Headers are in :

vcl/inc/salinst.hxx  
vcl/inc/salgdi.hxx    
vcl/inc/salprn.hxx
Aqua implementation :
vcl/aqua/inc/salprn.h  (AquaSalPrinter class implementation, inherits from SalPrinter)

psprint

What we know about psprint.

Mac OS X API side

This part describes what can be used and how we inted to use it.

Todo : implement missing methods, using Carbon API

Links

Link for Mac OS X API documentation

http://developer.apple.com/documentation/Carbon/Reference/CarbonPrintingManager_Ref/index.html

Starting point for documentation

http://developer.apple.com/documentation/Carbon/Printing-date.html#//apple_ref/doc/uid/TP30000440-TP30000420-TP30000455 http://developer.apple.com/documentation/Carbon/Conceptual/CPM_Concepts/cpm_chap4/chapter_4_section_1.html

This work is part of http://wiki.services.openoffice.org/wiki/Mac_OS_X_Porting_-_Work_Areas/Todo%27s

Created: Ericb 19:33, 4 June 2006 (CEST) Last modification: Ericb 11:00, 3 September 2006 (CEST)

Personal tools