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

From Apache OpenOffice Wiki
Jump to: navigation, search
m (OpenOffice.org side)
(SalPrinter class description)
Line 1: Line 1:
 
This page is dedicated to the native printing implementation in OpenOffice.org for Mac OS X
 
This page is dedicated to the native printing implementation in OpenOffice.org for Mac OS X
  
== Concerned OOo modules ==
+
== 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
 
* psprint
 
* vcl
 
* vcl
  
== OpenOffice.org side ==
+
=== VCL ===
This part describes what can be found in the OOo APIs, how it is implemented and how it will be changed.
+
What we know about vcl.
  
AquaSalPrinter class is located in aqua/source/gdi/salprn.cxx
+
==== SalPrinter class ====
 +
SalPrinter is a virtual class intended for managing print jobs. It is composed of virtual fonctions, and a dummy constructor.
 +
 
 +
<code>
 +
    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;
 +
    };
 +
</code>
 +
 
 +
==== AquaSalPrinter class ====
 +
AquaSalPrinter class is located in vcl/aqua/source/gdi/salprn.cxx
  
 
Headers are in :
 
Headers are in :
Line 16: Line 42:
  
 
  Aqua implementation :
 
  Aqua implementation :
  aqua/inc/salprn.h  (AquaSalPrinter class implementation, inherits from SalPrinter)
+
  vcl/aqua/inc/salprn.h  (AquaSalPrinter class implementation, inherits from SalPrinter)
 
+
=== VCL ===
+
What we know about vcl
+
  
 
=== psprint ===
 
=== psprint ===
What we know about psprint
+
What we know about psprint.
  
 
== Mac OS X API side ==
 
== Mac OS X API side ==

Revision as of 18:11, 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.

   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;
   };

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