Rewrote PrintJob.h

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32725 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus
2009-08-26 18:56:44 +00:00
parent 29c26d1e57
commit 0e0c81e027
+67 -74
View File
@@ -1,124 +1,117 @@
/******************************************************************************* /*
/ * Copyright 2009, Haiku, Inc. All rights reserved.
/ File: PrintJob.h * Distributed under the terms of the MIT License.
/ */
/ Description: BPrintJob runs a printing session.
/
/ Copyright 1996-98, Be Incorporated, All Rights Reserved
/
*******************************************************************************/
#ifndef _PRINTSESSION_H #ifndef _PRINTSESSION_H
#define _PRINTSESSION_H #define _PRINTSESSION_H
#include <BeBuild.h>
#include <Picture.h> #include <Picture.h>
#include <Rect.h>
class BFile; class BFile;
class BView; class BView;
/*----------------------------------------------------------------*/ struct print_file_header {
/*----- BPrintJob related structures -----------------------------*/
struct print_file_header {
int32 version; int32 version;
int32 page_count; int32 page_count;
off_t first_page; off_t first_page;
int32 _reserved_3_;
int32 _reserved_4_;
int32 _reserved_5_;
};
int32 _reserved[3];
};
struct _page_header_; struct _page_header_;
/*----------------------------------------------------------------*/
/*----- BPrintJob class ------------------------------------------*/
class BPrintJob { class BPrintJob {
public: public:
// These values are returned by PrinterType() // Values returned by PrinterType()
enum { enum {
B_BW_PRINTER = 0, B_BW_PRINTER = 0,
B_COLOR_PRINTER B_COLOR_PRINTER
}; };
BPrintJob(const char *job_name); BPrintJob(const char* name);
virtual ~BPrintJob(); virtual ~BPrintJob();
void BeginJob(); void BeginJob();
void CommitJob(); void CommitJob();
status_t ConfigJob(); status_t ConfigJob();
void CancelJob(); void CancelJob();
status_t ConfigPage(); status_t ConfigPage();
void SpoolPage(); void SpoolPage();
bool CanContinue(); bool CanContinue();
virtual void DrawView(BView *a_view, BRect a_rect, BPoint where); virtual void DrawView(BView* view, BRect rect,
BPoint where);
BMessage * Settings() /* const */ ; BMessage* Settings(); // TODO: const
void SetSettings(BMessage *a_msg); void SetSettings(BMessage* archive);
bool IsSettingsMessageValid(BMessage *a_msg) const; bool IsSettingsMessageValid(
BMessage* archive) const;
BRect PaperRect(); BRect PaperRect();
BRect PrintableRect(); BRect PrintableRect();
void GetResolution(int32 *xdpi, int32 *ydpi); void GetResolution(int32* xDPI, int32* yDPI);
int32 FirstPage() /* const */ ; int32 FirstPage(); // TODO: const
int32 LastPage() /* const */ ; int32 LastPage(); // TODO: const
int32 PrinterType(void * = NULL) const; int32 PrinterType(void* type = NULL) const;
private: private:
virtual void _ReservedPrintJob1(); // FBC padding and forbidden methods
virtual void _ReservedPrintJob2(); virtual void _ReservedPrintJob1();
virtual void _ReservedPrintJob3(); virtual void _ReservedPrintJob2();
virtual void _ReservedPrintJob4(); virtual void _ReservedPrintJob3();
virtual void _ReservedPrintJob4();
BPrintJob(const BPrintJob &); BPrintJob(const BPrintJob& other);
BPrintJob &operator=(const BPrintJob &); BPrintJob& operator=(const BPrintJob& other);
void _RecurseView(BView *view, BPoint origin,
BPicture *picture, BRect r);
void _GetMangledName(char *buffer, size_t bufferSize) const;
void _HandlePageSetup(BMessage *setup);
bool _HandlePrintSetup(BMessage *setup);
void _NewPage();
void _EndLastPage();
void _AddSetupSpec();
void _AddPicture(BPicture &picture, BRect &rect, BPoint &where);
char * _GetCurrentPrinterName() const;
void _LoadDefaultSettings();
private: private:
char * fPrintJobName; void _RecurseView(BView* view, BPoint origin,
BPicture* picture, BRect rect);
void _GetMangledName(char* buffer,
size_t bufferSize) const;
void _HandlePageSetup(BMessage* setup);
bool _HandlePrintSetup(BMessage* setup);
void _NewPage();
void _EndLastPage();
void _AddSetupSpec();
void _AddPicture(BPicture& picture, BRect& rect,
BPoint& where);
char* _GetCurrentPrinterName() const;
void _LoadDefaultSettings();
private:
char* fPrintJobName;
int32 _unused; int32 _unused;
BFile * fSpoolFile;
BFile* fSpoolFile;
print_file_header fSpoolFileHeader; print_file_header fSpoolFileHeader;
BRect fPaperSize; BRect fPaperSize;
BRect fUsableSize; BRect fUsableSize;
status_t fError; status_t fError;
char fSpoolFileName[256]; char fSpoolFileName[256];
BMessage * fSetupMessage; BMessage* fSetupMessage;
BMessage * fDefaultSetupMessage; BMessage* fDefaultSetupMessage;
char fAbort; char fAbort;
int32 fFirstPage; int32 fFirstPage;
int32 fLastPage; int32 fLastPage;
short fXResolution; short fXResolution;
short fYResolution; short fYResolution;
_page_header_ * fCurrentPageHeader; _page_header_* fCurrentPageHeader;
off_t fCurrentPageHeaderOffset; off_t fCurrentPageHeaderOffset;
uint32 _reserved[2]; uint32 _reserved[2];
}; };
#endif // _PRINTSESSION_H
#endif // _PRINTSESSION_H