Mac OS X Porting - Native Printing
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)