* move libprint sources into libs, as it is a 3rdparty lib

* move libprint headers into libs headers folder accordingly
* merge all shared folders sources into kits print, we might build later on a
  real print kit, propably also to access cups from an nicely API, atm static
* move all shared headers into private print, also pr_server.h from interface
* adjust build to work with the changed folder layout



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26570 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Karsten Heimrich
2008-07-22 20:30:14 +00:00
parent 467acc16f5
commit 12fd6cc2e7
93 changed files with 724 additions and 571 deletions
-16
View File
@@ -1,16 +0,0 @@
/*
* AboutBox.h
* Copyright 1999-2000 Y.Takagi. All Rights Reserved.
*/
#ifndef __ABOUTBOX_H
#define __ABOUTBOX_H
#include <Application.h>
class AboutBox : public BApplication {
public:
AboutBox(const char *signature, const char *driver_name, const char *version, const char *copyright);
};
#endif /* __ABOUTBOX_H */
@@ -1,57 +0,0 @@
/*
* AddPrinterDlg.cpp
* Copyright 1999-2000 Y.Takagi. All Rights Reserved.
*/
#include "DialogWindow.h"
#include <ListItem.h>
#include <View.h>
class BListView;
class BTextView;
class PrinterData;
class PrinterCap;
class ProtocolClassCap;
class ProtocolClassItem : public BStringItem {
public:
ProtocolClassItem(const ProtocolClassCap* cap);
int getProtocolClass();
const char *getDescription();
private:
const ProtocolClassCap *fProtocolClassCap;
};
class AddPrinterView : public BView {
public:
AddPrinterView(BRect frame, PrinterData *printer_data, const PrinterCap *printer_cap);
~AddPrinterView();
virtual void AttachedToWindow();
void FrameResized(float w, float h);
void MessageReceived(BMessage *msg);
void Save();
private:
ProtocolClassItem *CurrentSelection();
PrinterData *fPrinterData;
const PrinterCap *fPrinterCap;
BListView *fProtocolClassList;
BTextView *fDescription;
};
class AddPrinterDlg : public DialogWindow {
public:
AddPrinterDlg(PrinterData *printerData, const PrinterCap *printerCap);
void MessageReceived(BMessage *msg);
private:
AddPrinterView *fAddPrinterView;
};
-26
View File
@@ -1,26 +0,0 @@
/*
* DbgMsg.h
* Copyright 1999-2000 Y.Takagi. All Rights Reserved.
*/
#ifndef __DBGMSG_H
#define __DBGMSG_H
//#define DBG
#ifdef DBG
void write_debug_stream(const char *, ...);
void DUMP_BFILE(BFile *file, const char *name);
void DUMP_BMESSAGE(BMessage *msg);
void DUMP_BDIRECTORY(BDirectory *dir);
void DUMP_BNODE(BNode *node);
#define DBGMSG(args) write_debug_stream args
#else
#define DUMP_BFILE(file, name) (void)0
#define DUMP_BMESSAGE(msg) (void)0
#define DUMP_BDIRECTORY(dir) (void)0
#define DUMP_BNODE(node) (void)0
#define DBGMSG(args) (void)0
#endif
#endif /* __DBGMSG_H */
@@ -1,42 +0,0 @@
/*
* DialogWindow.h
* Copyright 2004 Michael Pfeiffer. All Rights Reserved.
*/
#ifndef __DIALOG_WINDOW_H
#define __DIALOG_WINDOW_H
#include <OS.h>
#include <Window.h>
class DialogWindow : public BWindow {
public:
DialogWindow(BRect frame,
const char *title,
window_type type,
uint32 flags,
uint32 workspace = B_CURRENT_WORKSPACE);
DialogWindow(BRect frame,
const char *title,
window_look look,
window_feel feel,
uint32 flags,
uint32 workspace = B_CURRENT_WORKSPACE);
status_t Go();
void SetResult(status_t result);
void MessageReceived(BMessage* msg);
enum {
kGetThreadId = 'dwti' // request thread id from window
};
private:
status_t fPreviousResult; // holds the result as long as fResult == NULL
volatile status_t *fResult;
};
#endif
-22
View File
@@ -1,22 +0,0 @@
/*
* Exports.h
* Copyright 1999-2000 Y.Takagi. All Rights Reserved.
*/
#ifndef __EXPORTS_H
#define __EXPORTS_H
#include <BeBuild.h>
class BNode;
class BMessage;
class BFile;
extern "C" {
_EXPORT char *add_printer(char *printer_name);
_EXPORT BMessage *config_page(BNode *node, BMessage *msg);
_EXPORT BMessage *config_job(BNode *node, BMessage *msg);
_EXPORT BMessage *take_job(BFile *spool_file, BNode *node, BMessage *msg);
}
#endif // __EXPORTS_H
@@ -1,149 +0,0 @@
/*
* GraphicsDriver.h
* Copyright 1999-2000 Y.Takagi. All Rights Reserved.
*/
#ifndef __GRAPHICSDRIVER_H
#define __GRAPHICSDRIVER_H
#include "JobData.h"
#include "PrinterData.h"
#include "PrintProcess.h"
#include "SpoolMetaData.h"
#include "Transport.h"
#include "StatusWindow.h"
class BView;
class BBitmap;
class BMessage;
class PrinterData;
class PrinterCap;
enum {
kGDFRotateBandBitmap = 1
};
class GraphicsDriver {
public:
GraphicsDriver(BMessage *, PrinterData *, const PrinterCap *);
virtual ~GraphicsDriver();
const JobData *getJobData(BFile *spoolFile);
BMessage *takeJob(BFile *spool, uint32 flags = 0);
static BPoint getScale(int32 nup, BRect physicalRect, float scaling);
static BPoint getOffset(int32 nup, int index, JobData::Orientation orientation, const BPoint *scale,
BRect scaledPhysicalRect, BRect scaledPrintableRect, BRect physicalRect);
protected:
virtual bool startDoc();
virtual bool startPage(int page_number);
virtual bool nextBand(BBitmap *bitmap, BPoint *offset);
virtual bool endPage(int page_number);
virtual bool endDoc(bool success);
void writeSpoolData(const void *buffer, size_t size) throw(TransportException);
void writeSpoolString(const char *buffer, ...) throw(TransportException);
void writeSpoolChar(char c) throw(TransportException);
static void convert_to_rgb24(void* src, void* dst, int width, color_space cs);
static void convert_to_gray(void* src, void* dst, int width, color_space cs);
const JobData *getJobData() const;
const PrinterData *getPrinterData() const;
const PrinterCap *getPrinterCap() const;
const SpoolMetaData *getSpoolMetaData() const;
int getProtocolClass() const;
int getPageWidth() const;
int getPageHeight() const;
int getBandWidth() const;
int getBandHeight() const;
int getPixelDepth() const;
GraphicsDriver(const GraphicsDriver &);
GraphicsDriver &operator = (const GraphicsDriver &);
private:
bool setupData(BFile *file);
void setupBitmap();
void cleanupData();
void cleanupBitmap();
bool printPage(PageDataList *pages);
bool collectPages(SpoolData *spool_data, PageDataList *pages);
bool skipPages(SpoolData *spool_data);
bool printDocument(SpoolData *spool_data);
bool printJob(BFile *file);
static void rgb32_to_rgb24(void* src, void* dst, int width);
static void cmap8_to_rgb24(void* src, void* dst, int width);
static uint8 gray(uint8 r, uint8 g, uint8 b);
static void rgb32_to_gray(void* src, void* dst, int width);
static void cmap8_to_gray(void* src, void* dst, int width);
uint32 fFlags;
BMessage *fMsg;
BView *fView;
BBitmap *fBitmap;
Transport *fTransport;
JobData *fOrgJobData;
JobData *fRealJobData;
PrinterData *fPrinterData;
const PrinterCap *fPrinterCap;
SpoolMetaData *fSpoolMetaData;
int fPageWidth;
int fPageHeight;
int fBandWidth;
int fBandHeight;
int fPixelDepth;
int fBandCount;
int fInternalCopies;
uint32 fPageCount;
StatusWindow *fStatusWindow;
};
inline const JobData *GraphicsDriver::getJobData() const
{
return fRealJobData;
}
inline const PrinterData *GraphicsDriver::getPrinterData() const
{
return fPrinterData;
}
inline const PrinterCap *GraphicsDriver::getPrinterCap() const
{
return fPrinterCap;
}
inline const SpoolMetaData *GraphicsDriver::getSpoolMetaData() const
{
return fSpoolMetaData;
}
inline int GraphicsDriver::getProtocolClass() const
{
return fPrinterData->getProtocolClass();
}
inline int GraphicsDriver::getPageWidth() const
{
return fPageWidth;
}
inline int GraphicsDriver::getPageHeight() const
{
return fPageHeight;
}
inline int GraphicsDriver::getBandWidth() const
{
return fBandWidth;
}
inline int GraphicsDriver::getBandHeight() const
{
return fBandHeight;
}
#endif /* __GRAPHICSDRIVER_H */
-148
View File
@@ -1,148 +0,0 @@
/*
* Halftone.h
* Copyright 1999-2000 Y.Takagi. All Rights Reserved.
*/
#ifndef __HALFTONE_H
#define __HALFTONE_H
#include <GraphicsDefs.h>
// definition for B_RGB32 (=B_RGB32_LITTLE) and B_RGBA32
typedef struct {
uchar blue;
uchar green;
uchar red;
uchar alpha; // unused in B_RGB32
} ColorRGB32Little;
// definition for B_RGB32_BIG and B_RGBA32_BIG
typedef struct {
uchar alpha; // unused in B_RGB32_BIG
uchar red;
uchar green;
uchar blue;
} ColorRGB32Big;
typedef union {
ColorRGB32Little little;
ColorRGB32Big big;
} ColorRGB32;
class Halftone;
typedef void (Halftone::*PFN_dither)(uchar *dst, const uchar *src, int x, int y, int width);
typedef uint (*PFN_gray)(ColorRGB32 c);
class Halftone {
public:
enum DitherType {
kType1,
kType2,
kType3,
kTypeFloydSteinberg,
};
enum GrayFunction {
kMixToGray,
kRedChannel,
kGreenChannel,
kBlueChannel
};
enum Planes {
kPlaneMonochrome1, // 1 bit depth (0 white, 1 black)
kPlaneRGB1, // 3 planes, 1 bit depth (0 black, 7 white)
};
enum BlackValue {
kHighValueMeansBlack,
kLowValueMeansBlack,
};
Halftone(color_space cs, double gamma = 1.4, double min = 0.0, DitherType dither_type = kTypeFloydSteinberg);
~Halftone();
void setPlanes(Planes planes);
void setBlackValue(BlackValue blackValue);
void dither(uchar *dst, const uchar *src, int x, int y, int width);
int getPixelDepth() const;
const uchar *getPattern() const;
void setPattern(const uchar *pattern);
protected:
// PFN_gray: return value of 0 means low density (or black) and value of 255 means high density (or white)
PFN_gray getGrayFunction() const;
void setGrayFunction(PFN_gray gray);
void setGrayFunction(GrayFunction grayFunction);
void createGammaTable(double gamma, double min);
void initElements(int x, int y, uchar *elements);
uint getDensity(ColorRGB32 c) const;
uchar convertUsingBlackValue(uchar byte) const;
void ditherRGB32(uchar *dst, const uchar *src, int x, int y, int width);
void initFloydSteinberg();
void deleteErrorTables();
void uninitFloydSteinberg();
void setupErrorBuffer(int x, int y, int width);
void ditherFloydSteinberg(uchar *dst, const uchar* src, int x, int y, int width);
Halftone(const Halftone &);
Halftone &operator = (const Halftone &);
private:
enum {
kGammaTableSize = 256,
kMaxNumberOfPlanes = 3
};
PFN_dither fDither;
PFN_gray fGray;
int fPixelDepth;
Planes fPlanes;
BlackValue fBlackValue;
const uchar *fPattern;
uint fGammaTable[kGammaTableSize];
int fNumberOfPlanes;
int fCurrentPlane;
// fields used for floyd-steinberg dithering
int fX;
int fY;
int fWidth;
int *fErrorTables[kMaxNumberOfPlanes];
};
inline int Halftone::getPixelDepth() const
{
return fPixelDepth;
}
inline const uchar * Halftone::getPattern() const
{
return fPattern;
}
inline void Halftone::setPattern(const uchar *pattern)
{
fPattern = pattern;
}
inline PFN_gray Halftone::getGrayFunction() const
{
return fGray;
}
inline void Halftone::setGrayFunction(PFN_gray gray)
{
fGray = gray;
}
inline uint Halftone::getDensity(ColorRGB32 c) const
{
return fGammaTable[fGray(c)];
}
inline uchar Halftone::convertUsingBlackValue(uchar byte) const
{
// bits with value = '1' in byte mean black
if (fBlackValue == kHighValueMeansBlack) {
return byte;
} else {
return ~byte;
}
}
#endif /* __HALFTONE_H */
@@ -1,32 +0,0 @@
/*
* HalftoneView.h
* Copyright 2004 Michael Pfeiffer. All Rights Reserved.
*/
#ifndef _HALFTONE_VIEW_H
#define _HALFTONE_VIEW_H
#include <View.h>
#include "Halftone.h"
class HalftonePreviewView : public BView
{
public:
HalftonePreviewView(BRect frame, const char* name, uint32 resizeMask, uint32 flags);
void preview(float gamma, float min, Halftone::DitherType ditherType, bool color);
};
class HalftoneView : public BView
{
public:
HalftoneView(BRect frame, const char* name, uint32 resizeMask, uint32 flags);
void preview(float gamma, float min, Halftone::DitherType ditherType, bool color);
private:
HalftonePreviewView* fPreview;
};
#endif
@@ -1,31 +0,0 @@
/*
JSDSlider.h
Dr.H.Reh
27.11.2004
Based on source code from Be Inc. RIP
Copyright 1995 Be Incorporated, All Rights Reserved.
*/
#ifndef __JSD_SLIDER_H
#define __JSD_SLIDER_H
#include <Slider.h>
#include <String.h>
class JSDSlider : public BSlider
{
public:
JSDSlider(BRect frame, const char* name, const char *label, BMessage *msg,
int32 min, int32 max, thumb_style t);
~JSDSlider();
char* UpdateText() const;
private:
BString* fResult;
};
#endif
-356
View File
@@ -1,356 +0,0 @@
/*
* JobData.h
* Copyright 1999-2000 Y.Takagi. All Rights Reserved.
*/
#ifndef __JOBDATA_H
#define __JOBDATA_H
#include <SupportDefs.h>
#include <GraphicsDefs.h>
#include <Rect.h>
#include "Halftone.h"
#include "MarginView.h" // for MarginUnit
class BMessage;
class PrinterCap;
class JobData {
public:
enum Orientation {
kPortrait,
kLandscape
};
enum Paper {
kLetter = 1, // 1 Letter 8 1/2 x 11 in
kLetterSmall, // 2 Letter Small 8 1/2 x 11 in
kTabloid, // 3 Tabloid 11 x 17 in
kLedger, // 4 Ledger 17 x 11 in
kLegal, // 5 Legal 8 1/2 x 14 in
kStatement, // 6 Statement 5 1/2 x 8 1/2 in
kExecutive, // 7 Executive 7 1/4 x 10 1/2 in
kA3, // 8 A3 297 x 420 mm
kA4, // 9 A4 210 x 297 mm
kA4Small, // 10 A4 Small 210 x 297 mm
kA5, // 11 A5 148 x 210 mm
kB4, // 12 B4 (JIS) 250 x 354
kB5, // 13 B5 (JIS) 182 x 257 mm
kFolio, // 14 Folio 8 1/2 x 13 in
kQuarto, // 15 Quarto 215 x 275 mm
k10X14, // 16 10x14 in
k11X17, // 17 11x17 in
kNote, // 18 Note 8 1/2 x 11 in
kEnv9, // 19 Envelope #9 3 7/8 x 8 7/8
kEnv10, // 20 Envelope #10 4 1/8 x 9 1/2
kEnv11, // 21 Envelope #11 4 1/2 x 10 3/8
kEnv12, // 22 Envelope #12 4 \276 x 11
kEnv14, // 23 Envelope #14 5 x 11 1/2
kCSheet, // 24 C size sheet
kDSheet, // 25 D size sheet
kESheet, // 26 E size sheet
kEnvDL, // 27 Envelope DL 110 x 220mm
kEnvC5, // 28 Envelope C5 162 x 229 mm
kEnvC3, // 29 Envelope C3 324 x 458 mm
kEnvC4, // 30 Envelope C4 229 x 324 mm
kEnvC6, // 31 Envelope C6 114 x 162 mm
kEnvC65, // 32 Envelope C65 114 x 229 mm
kEnvB4, // 33 Envelope B4 250 x 353 mm
kEnvB5, // 34 Envelope B5 176 x 250 mm
kEnvB6, // 35 Envelope B6 176 x 125 mm
kEnvItaly, // 36 Envelope 110 x 230 mm
kEnvMonarch, // 37 Envelope Monarch 3.875 x 7.5 in
kEnvPersonal, // 38 6 3/4 Envelope 3 5/8 x 6 1/2 in
kFanFoldUS, // 39 US Std Fanfold 14 7/8 x 11 in
kFanFoldStdGerman, // 40 German Std Fanfold 8 1/2 x 12 in
kFanFoldLglGerman, // 41 German Legal Fanfold 8 1/2 x 13 in
kIsoB4, // 42 B4 (ISO) 250 x 353 mm
kJapanesePostcard, // 43 Japanese Postcard 100 x 148 mm
k9X11, // 44 9 x 11 in
k10X11, // 45 10 x 11 in
k15X11, // 46 15 x 11 in
kEnvInvite, // 47 Envelope Invite 220 x 220 mm
kReserved48, // 48 RESERVED--DO NOT USE
kReserved49, // 49 RESERVED--DO NOT USE
kLetterExtra, // 50 Letter Extra 9 \275 x 12 in
kLegalExtra, // 51 Legal Extra 9 \275 x 15 in
kTabloidExtra, // 52 Tabloid Extra 11.69 x 18 in
kA4Extra, // 53 A4 Extra 9.27 x 12.69 in
kLetterTransverse, // 54 Letter Transverse 8 \275 x 11 in
kA4Transverse, // 55 A4 Transverse 210 x 297 mm
kLetterExtraTransverse, // 56 Letter Extra Transverse 9\275 x 12 in
kAPlus, // 57 SuperA/SuperA/A4 227 x 356 mm
kBPlus, // 58 SuperB/SuperB/A3 305 x 487 mm
kLetterPlus, // 59 Letter Plus 8.5 x 12.69 in
kA4Plus, // 60 A4 Plus 210 x 330 mm
kA5Transverse, // 61 A5 Transverse 148 x 210 mm
kB5Transverse, // 62 B5 (JIS) Transverse 182 x 257 mm
kA3Extra, // 63 A3 Extra 322 x 445 mm
kA5Extra, // 64 A5 Extra 174 x 235 mm
kB5Extra, // 65 B5 (ISO) Extra 201 x 276 mm
kA2, // 66 A2 420 x 594 mm
kA3Transverse, // 67 A3 Transverse 297 x 420 mm
kA3ExtraTransverse, // 68 A3 Extra Transverse 322 x 445 mm
kDBLJapanesePostcard, // 69 Japanese Double Postcard 200 x 148 mm
kA6, // 70 A6 105 x 148 mm
kJEnvKaku2, // 71 Japanese Envelope Kaku #2
kJEnvKaku3, // 72 Japanese Envelope Kaku #3
kJEnvChou3, // 73 Japanese Envelope Chou #3
kJEnvChou4, // 74 Japanese Envelope Chou #4
kLetterRotated, // 75 Letter Rotated 11 x 8 1/2 11 in
kA3Rotated, // 76 A3 Rotated 420 x 297 mm
kA4Rotated, // 77 A4 Rotated 297 x 210 mm
kA5Rotated, // 78 A5 Rotated 210 x 148 mm
kB4JISRotated, // 79 B4 (JIS) Rotated 364 x 257 mm
kB5JISRotated, // 80 B5 (JIS) Rotated 257 x 182 mm
kJapanesePostcardRotated, // 81 Japanese Postcard Rotated 148 x 100 mm
kDBLJapanesePostcardRotated, // 82 Double Japanese Postcard Rotated 148 x 200 mm
kA6Rotated, // 83 A6 Rotated 148 x 105 mm
kJEnvKaku2Rotated, // 84 Japanese Envelope Kaku #2 Rotated
kJEnvKaku3Rotated, // 85 Japanese Envelope Kaku #3 Rotated
kJEnvChou3Rotated, // 86 Japanese Envelope Chou #3 Rotated
kJEnvChou4Rotated, // 87 Japanese Envelope Chou #4 Rotated
kB6JIS, // 88 B6 (JIS) 128 x 182 mm
kB6JISRotated, // 89 B6 (JIS) Rotated 182 x 128 mm
k12X11, // 90 12 x 11 in
kJEnvYou4, // 91 Japanese Envelope You #4
kJEnvYou4Rotated, // 92 Japanese Envelope You #4 Rotated
kP16K, // 93 PRC 16K 146 x 215 mm
kP32K, // 94 PRC 32K 97 x 151 mm
kP32KBig, // 95 PRC 32K(Big) 97 x 151 mm
kPEnv1, // 96 PRC Envelope #1 102 x 165 mm
kPEnv2, // 97 PRC Envelope #2 102 x 176 mm
kPEnv3, // 98 PRC Envelope #3 125 x 176 mm
kPEnv4, // 99 PRC Envelope #4 110 x 208 mm
kPEnv5, // 100 PRC Envelope #5 110 x 220 mm
kPEnv6, // 101 PRC Envelope #6 120 x 230 mm
kPEnv7, // 102 PRC Envelope #7 160 x 230 mm
kPEnv8, // 103 PRC Envelope #8 120 x 309 mm
kPEnv9, // 104 PRC Envelope #9 229 x 324 mm
kPEnv10, // 105 PRC Envelope #10 324 x 458 mm
kP16KRotated, // 106 PRC 16K Rotated
kP32KRotated, // 107 PRC 32K Rotated
kP32KBIGRotated, // 108 PRC 32K(Big) Rotated
kPEnv1Rotated, // 109 PRC Envelope #1 Rotated 165 x 102 mm
kPEnv2Rotated, // 110 PRC Envelope #2 Rotated 176 x 102 mm
kPEnv3Rotated, // 111 PRC Envelope #3 Rotated 176 x 125 mm
kPEnv4Rotated, // 112 PRC Envelope #4 Rotated 208 x 110 mm
kPEnv5Rotated, // 113 PRC Envelope #5 Rotated 220 x 110 mm
kPEnv6Rotated, // 114 PRC Envelope #6 Rotated 230 x 120 mm
kPEnv7Rotated, // 115 PRC Envelope #7 Rotated 230 x 160 mm
kPEnv8Rotated, // 116 PRC Envelope #8 Rotated 309 x 120 mm
kPEnv9Rotated, // 117 PRC Envelope #9 Rotated 324 x 229 mm
kPEnv10Rotated, // 118 PRC Envelope #10 Rotated 458 x 324 mm
kUserDefined = 256
};
enum PaperSource {
kAuto, // 7 o
kManual, // 4 o
kUpper, // 1 o
kMiddle, // 3 o
kLower, // 2 o
// kOnlyOne, // 1 x
// kEnvelope, // 5 o
// kEnvManual, // 6 x
// kTractor, // 8 x
// kSmallFmt, // 9 x
// kLargeFmt, // 10 x
// kLargeCapacity, // 11 x
// kCassette, // 14 x
// kFormSource, // 15 x
kCassette1 = 21,
kCassette2,
kCassette3,
kCassette4,
kCassette5,
kCassette6,
kCassette7,
kCassette8,
kCassette9,
kUser = 256 // device specific bins start here
};
enum PrintStyle {
kSimplex,
kDuplex,
kBooklet
};
enum BindingLocation {
kLongEdgeLeft,
kLongEdgeRight,
kShortEdgeTop,
kShortEdgeBottom,
kLongEdge = kLongEdgeLeft,
kShortEdge = kShortEdgeTop
};
enum PageOrder {
kAcrossFromLeft,
kDownFromLeft,
kAcrossFromRight,
kDownFromRight,
kLeftToRight = kAcrossFromLeft,
kRightToLeft = kAcrossFromRight
};
/*
enum Quality {
kDraft = -1,
kLow = -2,
kMedium = -3,
kHigh = -4
};
*/
enum Color {
kMonochrome = 1,
kColor,
// Some PCL6 printers do not support compressed data
// in color mode.
kColorCompressionDisabled
};
enum Settings {
kPageSettings,
kJobSettings
};
enum PageSelection {
kAllPages,
kOddNumberedPages,
kEvenNumberedPages
};
private:
bool fShowPreview;
Paper fPaper;
int32 fXRes;
int32 fYRes;
Orientation fOrientation;
float fScaling;
BRect fPaperRect;
BRect fScaledPaperRect;
BRect fPrintableRect;
BRect fScaledPrintableRect;
BRect fPhysicalRect;
BRect fScaledPhysicalRect;
int32 fNup;
int32 fFirstPage;
int32 fLastPage;
float fGamma; // 1 identiy, < 1 brigther, > 1 darker
float fInkDensity; // [0, 255] lower means higher density
PaperSource fPaperSource;
int32 fCopies;
bool fCollate;
bool fReverse;
PrintStyle fPrintStyle;
BindingLocation fBindingLocation;
PageOrder fPageOrder;
Settings fSettings;
BMessage *fMsg;
Color fColor;
Halftone::DitherType fDitherType;
PageSelection fPageSelection;
MarginUnit fMarginUnit;
public:
JobData(BMessage *msg, const PrinterCap *cap, Settings settings);
~JobData();
JobData(const JobData &job_data);
JobData &operator = (const JobData &job_data);
void load(BMessage *msg, const PrinterCap *cap, Settings settings);
void save(BMessage *msg = NULL);
bool getShowPreview() const { return fShowPreview; }
void setShowPreview(bool showPreview) { fShowPreview = showPreview; }
Paper getPaper() const { return fPaper; }
void setPaper(Paper paper) { fPaper = paper; }
int32 getXres() const { return fXRes; }
void setXres(int32 xres) { fXRes = xres; }
int32 getYres() const { return fYRes; }
void setYres(int32 yres) { fYRes = yres; };
Orientation getOrientation() const { return fOrientation; }
void setOrientation(Orientation orientation) { fOrientation = orientation; }
float getScaling() const { return fScaling; }
void setScaling(float scaling) { fScaling = scaling; }
const BRect &getPaperRect() const { return fPaperRect; }
void setPaperRect(const BRect &paper_rect) { fPaperRect = paper_rect; }
const BRect &getScaledPaperRect() const { return fScaledPaperRect; }
void setScaledPaperRect(const BRect &paper_rect) { fScaledPaperRect = paper_rect; }
const BRect &getPrintableRect() const { return fPrintableRect; }
void setPrintableRect(const BRect &printable_rect) { fPrintableRect = printable_rect; }
const BRect &getScaledPrintableRect() const { return fScaledPrintableRect; }
void setScaledPrintableRect(const BRect &printable_rect) { fScaledPrintableRect = printable_rect; }
const BRect &getPhysicalRect() const { return fPhysicalRect; }
void setPhysicalRect(const BRect &Physical_rect) { fPhysicalRect = Physical_rect; }
const BRect &getScaledPhysicalRect() const { return fScaledPhysicalRect; }
void setScaledPhysicalRect(const BRect &Physical_rect) { fScaledPhysicalRect = Physical_rect; }
int32 getNup() const { return fNup; }
void setNup(int32 nup) { fNup = nup; }
bool getReverse() const { return fReverse; }
void setReverse(bool reverse) { fReverse = reverse; }
int32 getFirstPage() const { return fFirstPage; }
void setFirstPage(int32 first_page) { fFirstPage = first_page; }
int32 getLastPage() const { return fLastPage; }
void setLastPage(int32 last_page) { fLastPage = last_page; }
// libprint supports only B_RGB32
color_space getSurfaceType() const { return B_RGB32; }
float getGamma() const { return fGamma; }
void setGamma(float gamma) { fGamma = gamma; }
float getInkDensity() const { return fInkDensity; }
void setInkDensity(float inkDensity) { fInkDensity = inkDensity; }
PaperSource getPaperSource() const { return fPaperSource; }
void setPaperSource(PaperSource paper_source) { fPaperSource = paper_source; };
int32 getCopies() const { return fCopies; }
void setCopies(int32 copies) { fCopies = copies; }
bool getCollate() const { return fCollate; }
void setCollate(bool collate) { fCollate = collate; }
PrintStyle getPrintStyle() const { return fPrintStyle; }
void setPrintStyle(PrintStyle print_style) { fPrintStyle = print_style; }
BindingLocation getBindingLocation() const { return fBindingLocation; }
void setBindingLocation(BindingLocation binding_location) { fBindingLocation = binding_location; }
PageOrder getPageOrder() const { return fPageOrder; }
void setPageOrder(PageOrder page_order) { fPageOrder = page_order; }
Color getColor() const { return fColor; }
void setColor(Color color) { fColor = color; }
Halftone::DitherType getDitherType() const { return fDitherType; }
void setDitherType(Halftone::DitherType dither_type) { fDitherType = dither_type; }
PageSelection getPageSelection() const { return fPageSelection; }
void setPageSelection(PageSelection pageSelection) { fPageSelection = pageSelection; }
MarginUnit getMarginUnit() const { return fMarginUnit; }
void setMarginUnit(MarginUnit marginUnit) { fMarginUnit = marginUnit; }
};
#endif /* __JOBDATA_H */
@@ -1,76 +0,0 @@
/*
* JobSetupDlg.cpp
* Copyright 1999-2000 Y.Takagi. All Rights Reserved.
*/
#ifndef __JOBSETUPDLG_H
#define __JOBSETUPDLG_H
#include <View.h>
#include "DialogWindow.h"
#include "JobData.h"
#include "Halftone.h"
#include "JSDSlider.h"
class BTextControl;
class BTextView;
class BRadioButton;
class BCheckBox;
class BPopUpMenu;
class JobData;
class PrinterData;
class PrinterCap;
class HalftoneView;
class PagesView;
class JobSetupView : public BView {
public:
JobSetupView(BRect frame, JobData *job_data, PrinterData *printer_data, const PrinterCap *printer_cap);
virtual void AttachedToWindow();
virtual void MessageReceived(BMessage *msg);
bool UpdateJobData(bool showPreview);
private:
void UpdateButtonEnabledState();
BRadioButton* AddPageSelectionItem(BView* parent, BRect rect, const char* name, const char* label,
JobData::PageSelection pageSelection);
void AllowOnlyDigits(BTextView* textView, int maxDigits);
JobData::Color getColor();
Halftone::DitherType getDitherType();
float getGamma();
float getInkDensity();
BTextControl *fCopies;
BTextControl *fFromPage;
BTextControl *fToPage;
JobData *fJobData;
PrinterData *fPrinterData;
const PrinterCap *fPrinterCap;
BPopUpMenu *fColorType;
BPopUpMenu *fDitherType;
JSDSlider *fGamma;
JSDSlider *fInkDensity;
HalftoneView *fHalftone;
BRadioButton *fAll;
BCheckBox *fCollate;
BCheckBox *fReverse;
PagesView *fPages;
BPopUpMenu *fPaperFeed;
BCheckBox *fDuplex;
BPopUpMenu *fNup;
BRadioButton *fAllPages;
BRadioButton *fOddNumberedPages;
BRadioButton *fEvenNumberedPages;
};
class JobSetupDlg : public DialogWindow {
public:
JobSetupDlg(JobData *job_data, PrinterData *printer_data, const PrinterCap *printer_cap);
virtual void MessageReceived(BMessage *message);
private:
JobSetupView *fJobSetup;
};
#endif /* __JOBSETUPDLG_H */
-12
View File
@@ -1,12 +0,0 @@
/*
* PackBits.h
* Copyright 1999-2000 Y.Takagi. All Rights Reserved.
*/
#ifndef __PACKBITS_H
#define __PACKBITS_H
int pack_bits_size(const unsigned char *in, int bytes);
int pack_bits(unsigned char *out, const unsigned char *in, int bytes);
#endif /* __PACKBITS_H */
@@ -1,53 +0,0 @@
/*
* PageSetupDlg.h
* Copyright 1999-2000 Y.Takagi. All Rights Reserved.
*/
#ifndef __PAGESETUPDLG_H
#define __PAGESETUPDLG_H
#include <View.h>
#include "DialogWindow.h"
#include "JobData.h"
class BRadioButton;
class BPopUpMenu;
class JobData;
class PaperCap;
class PrinterData;
class PrinterCap;
class MarginView;
class PageSetupView : public BView {
public:
PageSetupView(BRect frame, JobData *job_data, PrinterData *printer_data, const PrinterCap *printer_cap);
~PageSetupView();
virtual void AttachedToWindow();
bool UpdateJobData();
void MessageReceived(BMessage *msg);
private:
void AddOrientationItem(const char *name, JobData::Orientation orientation);
JobData::Orientation GetOrientation();
PaperCap *GetPaperCap();
JobData *fJobData;
PrinterData *fPrinterData;
const PrinterCap *fPrinterCap;
BPopUpMenu *fPaper;
BPopUpMenu *fOrientation;
BPopUpMenu *fResolution;
BTextControl *fScaling;
MarginView *fMarginView;
};
class PageSetupDlg : public DialogWindow {
public:
PageSetupDlg(JobData *job_data, PrinterData *printer_data, const PrinterCap *printer_cap);
virtual void MessageReceived(BMessage *message);
private:
BMessageFilter *fFilter;
};
#endif /* __PAGESETUPDLG_H */
@@ -1,31 +0,0 @@
/*
* PagesView.h
* Copyright 2005 Michael Pfeiffer. All Rights Reserved.
*/
#ifndef _PAGES_VIEW_H
#define _PAGES_VIEW_H
#include <View.h>
class PagesView : public BView
{
public:
PagesView(BRect frame, const char* name, uint32 resizeMask, uint32 flags);
void GetPreferredSize(float *width, float *height);
void Draw(BRect rect);
void setCollate(bool collate);
void setReverse(bool reverse);
private:
void DrawPages(BPoint position, int number, int count);
void DrawPage(BPoint position, int number);
bool fCollate;
bool fReverse;
};
#endif
-57
View File
@@ -1,57 +0,0 @@
const unsigned char pattern16x16_type1[] = {
0,128, 32,160, 8,136, 40,168, 2,130, 34,162, 10,138, 42,170,
192, 64,224, 96,200, 72,232,104,194, 66,226, 98,202, 74,234,106,
48,176, 16,144, 56,184, 24,152, 50,178, 18,146, 58,186, 26,154,
240,112,208, 80,248,120,216, 88,242,114,210, 82,250,122,218, 90,
12,140, 44,172, 4,132, 36,164, 14,142, 46,174, 6,134, 38,166,
204, 76,236,108,196, 68,228,100,206, 78,238,110,198, 70,230,102,
60,188, 28,156, 52,180, 20,148, 62,190, 30,158, 54,182, 22,150,
252,124,220, 92,244,116,212, 84,254,126,222, 94,246,118,214, 86,
3,131, 35,163, 11,139, 43,171, 1,129, 33,161, 9,137, 41,169,
195, 67,227, 99,203, 75,235,107,193, 65,225, 97,201, 73,233,105,
51,179, 19,147, 59,187, 27,155, 49,177, 17,145, 57,185, 25,153,
243,115,211, 83,251,123,219, 91,241,113,209, 81,249,121,217, 89,
15,143, 47,175, 7,135, 39,167, 13,141, 45,173, 5,133, 37,165,
207, 79,239,111,199, 71,231,103,205, 77,237,109,197, 69,229,101,
63,191, 31,159, 55,183, 23,151, 61,189, 29,157, 53,181, 21,149,
255,127,223, 95,247,119,215, 87,253,125,221, 93,245,117,213, 85
};
const unsigned char pattern16x16_type2[] = {
153,137,121,105,152,136,120,104,151,135,119,103,150,134,118,102,
169, 25, 9, 89,168, 24, 8, 88,167, 23, 7, 87,166, 22, 6, 86,
185, 41, 57, 73,184, 40, 56, 72,183, 39, 55, 71,182, 38, 54, 70,
201,217,233,249,200,216,232,248,199,215,231,247,198,214,230,246,
154,138,122,106,145,129,113, 97,144,128,112, 96,149,133,117,101,
170, 26, 10, 90,161, 17, 1, 81,160, 16, 0, 80,165, 21, 5, 85,
186, 42, 58, 74,177, 33, 49, 65,176, 32, 48, 64,181, 37, 53, 69,
202,218,234,250,193,209,225,241,192,208,224,240,197,213,229,245,
155,139,123,107,146,130,114, 98,147,131,115, 99,148,132,116,100,
171, 27, 11, 91,162, 18, 2, 82,163, 19, 3, 83,164, 20, 4, 84,
187, 43, 59, 75,178, 34, 50, 66,179, 35, 51, 67,180, 36, 52, 68,
203,219,235,251,194,210,226,242,195,211,227,243,196,212,228,244,
156,140,124,108,157,141,125,109,158,142,126,110,159,143,127,111,
172, 28, 12, 92,173, 29, 13, 93,174, 30, 14, 94,175, 31, 15, 95,
188, 44, 60, 76,189, 45, 61, 77,190, 46, 62, 78,191, 47, 63, 79,
204,220,236,252,205,221,237,253,206,222,238,254,207,223,239,255
};
const unsigned char pattern16x16_type3[] = {
0, 32,224,192, 2, 34,226,194, 14, 46,238,206, 12, 44,236,204,
128,160, 80,112,130,162, 82,114,142,174, 94,126,140,172, 92,124,
240,208, 16, 48,242,210, 18, 50,254,222, 30, 62,252,220, 28, 60,
64, 96,144,176, 66, 98,146,178, 78,110,158,190, 76,108,156,188,
8, 40,232,200, 10, 42,234,202, 5, 37,229,197, 7, 39,231,199,
136,168, 88,120,138,170, 90,122,133,165, 85,117,135,167, 87,119,
248,216, 24, 56,250,218, 26, 58,245,213, 21, 53,247,215, 23, 55,
72,104,152,184, 74,106,154,186, 69,101,149,181, 71,103,151,183,
15, 47,239,207, 13, 45,237,205, 1, 33,225,193, 3, 35,227,195,
143,175, 95,127,141,173, 93,125,129,161, 81,113,131,163, 83,115,
255,223, 31, 63,253,221, 29, 61,241,209, 17, 49,243,211, 19, 51,
79,111,159,191, 77,109,157,189, 65, 97,145,177, 67, 99,147,179,
4, 36,228,196, 6, 38,230,198, 9, 41,233,201, 11, 43,235,203,
132,164, 84,116,134,166, 86,118,137,169, 89,121,139,171, 91,123,
244,212, 20, 52,246,214, 22, 54,249,217, 25, 57,251,219, 27, 59,
68,100,148,180, 70,102,150,182, 73,105,153,185, 75,107,155,187
};
-139
View File
@@ -1,139 +0,0 @@
/*
Preview
Copyright (c) 2002, 2003 OpenBeOS.
Copyright (c) 2005 Haiku.
Author:
Michael Pfeiffer
Hartmut Reh
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
#include <InterfaceKit.h>
#include "PrintJobReader.h"
#include "InterfaceUtils.h"
class PreviewPage {
int32 fPage;
int32 fNumberOfPictures;
BPicture* fPictures;
BPoint* fPoints;
BRect* fRects;
status_t fStatus;
public:
PreviewPage(int32 page, PrintJobPage* pjp);
~PreviewPage();
status_t InitCheck() const;
int32 Page() const { return fPage; }
void Draw(BView* view);
};
class PreviewView : public BView {
int32 fPage;
int32 fZoom;
PrintJobReader fReader;
int32 fNumberOfPagesPerPage;
int32 fNumberOfPages; // physical pages
bool fReverse;
BRect fPageRect;
JobData::Orientation fOrientation;
JobData::PageSelection fPageSelection;
PreviewPage* fCachedPage;
float ZoomFactor() const;
BRect PageRect() const;
BRect PrintableRect() const;
int32 GetPageNumber(int32 index) const;
public:
PreviewView(BFile* jobFile, BRect rect);
~PreviewView();
status_t InitCheck() const;
BRect ViewRect() const;
bool IsPageLoaded(int32 page) const;
bool IsPageValid() const;
void LoadPage(int32 page);
void DrawPageFrame(BRect r);
void DrawPage(BRect r);
void Draw(BRect r);
void FrameResized(float width, float height);
void FixScrollbars();
bool ShowsFirstPage() const;
bool ShowsLastPage() const;
int CurrentPage() const { return fPage + 1; }
int NumberOfPages() const;
void ShowNextPage();
void ShowPrevPage();
void ShowFirstPage();
void ShowLastPage();
void ShowFindPage(int page);
bool CanZoomIn() const;
bool CanZoomOut() const;
void ZoomIn();
void ZoomOut();
};
class PreviewWindow : public BlockingWindow {
BButton *fFirst;
BButton *fNext;
BButton *fPrev;
BButton *fLast;
BButton *fZoomIn;
BButton *fZoomOut;
BTextControl *fPageNumber;
BStringView *fPageText;
PreviewView *fPreview;
BScrollView *fPreviewScroller;
float fButtonBarHeight;
enum {
MSG_FIRST_PAGE = 'pwfp',
MSG_NEXT_PAGE = 'pwnp',
MSG_PREV_PAGE = 'pwpp',
MSG_LAST_PAGE = 'pwlp',
MSG_FIND_PAGE = 'pwsp',
MSG_ZOOM_IN = 'pwzi',
MSG_ZOOM_OUT = 'pwzo',
MSG_PRINT_JOB = 'pwpj',
MSG_CANCEL_JOB = 'pwcj',
};
void ResizeToPage(bool allowShrinking = false);
void UpdateControls();
typedef BlockingWindow inherited;
public:
PreviewWindow(BFile* jobFile, bool showOkAndCancelButtons = false);
status_t InitCheck() const { return fPreview->InitCheck(); }
void MessageReceived(BMessage* m);
status_t Go();
};
@@ -1,64 +0,0 @@
/*
* PrintProcess.h
* Copyright 1999-2000 Y.Takagi. All Rights Reserved.
*/
#ifndef __PRINTPROCESS_H
#define __PRINTPROCESS_H
#include <vector>
#include <list>
#include <memory>
#include <Rect.h>
#include <Point.h>
#if (!__MWERKS__ || defined(MSIPL_USING_NAMESPACE))
using namespace std;
#else
#define std
#endif
class BFile;
class BPicture;
class PictureData {
public:
PictureData(BFile *file);
~PictureData();
BPoint point;
BRect rect;
BPicture *picture;
};
class PageData {
public:
PageData();
PageData(BFile *file, bool reverse);
bool startEnum();
bool enumObject(PictureData **);
private:
BFile *fFile;
bool fReverse;
int fPictureCount;
int fRest;
off_t fOffset;
bool fHollow;
};
typedef list<PageData *> PageDataList;
class SpoolData {
public:
SpoolData(BFile *file, int page_count, int nup, bool reverse);
~SpoolData();
bool startEnum();
bool enumObject(PageData **);
private:
PageDataList fPages;
PageDataList::iterator fIt;
};
#endif /* __PRINTPROCESS_H */
-138
View File
@@ -1,138 +0,0 @@
/*
* PrinterCap.h
* Copyright 1999-2000 Y.Takagi. All Rights Reserved.
*/
#ifndef __PRINTERCAP_H
#define __PRINTERCAP_H
#include <string>
#include <Rect.h>
#include "JobData.h"
#if (!__MWERKS__ || defined(MSIPL_USING_NAMESPACE))
using namespace std;
#else
#define std
#endif
enum {
kUnknownPrinter = 0
};
struct BaseCap {
string label;
bool is_default;
BaseCap(const string &n, bool d) : label(n), is_default(d) {}
};
struct PaperCap : public BaseCap {
JobData::Paper paper;
BRect paper_rect;
BRect physical_rect;
PaperCap(const string &n, bool d, JobData::Paper p, const BRect &r1, const BRect &r2)
: BaseCap(n, d), paper(p), paper_rect(r1), physical_rect(r2) {}
};
struct PaperSourceCap : public BaseCap {
JobData::PaperSource paper_source;
PaperSourceCap(const string &n, bool d, JobData::PaperSource f)
: BaseCap(n, d), paper_source(f) {}
};
struct ResolutionCap : public BaseCap {
int xres;
int yres;
ResolutionCap(const string &n, bool d, int x, int y)
: BaseCap(n, d), xres(x), yres(y) {}
};
struct OrientationCap : public BaseCap {
JobData::Orientation orientation;
OrientationCap(const string &n, bool d, JobData::Orientation o)
: BaseCap(n, d), orientation(o) {}
};
struct PrintStyleCap : public BaseCap {
JobData::PrintStyle print_style;
PrintStyleCap(const string &n, bool d, JobData::PrintStyle x)
: BaseCap(n, d), print_style(x) {}
};
struct BindingLocationCap : public BaseCap {
JobData::BindingLocation binding_location;
BindingLocationCap(const string &n, bool d, JobData::BindingLocation b)
: BaseCap(n, d), binding_location(b) {}
};
struct ColorCap : public BaseCap {
JobData::Color color;
ColorCap(const string &n, bool d, JobData::Color c)
: BaseCap(n, d), color(c) {}
};
struct ProtocolClassCap : public BaseCap {
int protocolClass;
string description;
ProtocolClassCap(const string &n, bool d, int p, const string &desc)
: BaseCap(n, d)
, protocolClass(p)
, description(desc) {}
};
class PrinterData;
class PrinterCap {
public:
PrinterCap(const PrinterData *printer_data);
virtual ~PrinterCap();
enum CapID {
kPaper,
kPaperSource,
kResolution,
kOrientation,
kPrintStyle,
kBindingLocation,
kColor,
kProtocolClass,
// Static boolean settings follow.
// For them isSupport() has to be implemented only.
kCopyCommand, // supports printer page copy command?
};
virtual int countCap(CapID) const = 0;
virtual bool isSupport(CapID) const = 0;
virtual const BaseCap **enumCap(CapID) const = 0;
const BaseCap *getDefaultCap(CapID) const;
int getPrinterId() const;
int getProtocolClass() const;
protected:
PrinterCap(const PrinterCap &);
PrinterCap &operator = (const PrinterCap &);
const PrinterData *getPrinterData() const;
void setPrinterId(int id);
private:
const PrinterData *fPrinterData;
int fPrinterID;
};
inline const PrinterData *PrinterCap::getPrinterData() const
{
return fPrinterData;
}
inline int PrinterCap::getPrinterId() const
{
return fPrinterID;
}
inline void PrinterCap::setPrinterId(int id)
{
fPrinterID = id;
}
#endif /* __PRINTERCAP_H */
@@ -1,93 +0,0 @@
/*
* PrinterData.h
* Copyright 1999-2000 Y.Takagi All Rights Reserved.
*/
#ifndef __PRINTERDATA_H
#define __PRINTERDATA_H
#include <string>
#include <SerialPort.h>
#if (!__MWERKS__ || defined(MSIPL_USING_NAMESPACE))
using namespace std;
#else
#define std
#endif
class BNode;
class PrinterData {
public:
PrinterData(BNode *node = NULL);
~PrinterData();
void load();
void save();
const string &getDriverName() const;
const string &getPrinterName() const;
const string &getComments() const;
const string &getTransport() const;
int getProtocolClass() const;
void setPrinterName(const char *printer_name);
void setComments(const char *comments);
void setProtocolClass(int protocolClass);
bool getPath(string &path) const;
protected:
PrinterData(const PrinterData &printer_data);
PrinterData &operator = (const PrinterData &printer_data);
private:
string fDriverName;
string fPrinterName;
string fComments;
string fTransport;
int fProtocolClass;
BNode *fNode;
};
inline const string &PrinterData::getDriverName() const
{
return fDriverName;
}
inline const string &PrinterData::getPrinterName() const
{
return fPrinterName;
}
inline const string &PrinterData::getComments() const
{
return fComments;
}
inline const string &PrinterData::getTransport() const
{
return fTransport;
}
inline int PrinterData::getProtocolClass() const
{
return fProtocolClass;
}
inline void PrinterData::setPrinterName(const char *printer_name)
{
fPrinterName = printer_name;
}
inline void PrinterData::setComments(const char *comments)
{
fComments = comments;
}
inline void PrinterData::setProtocolClass(int protocolClass)
{
fProtocolClass = protocolClass;
}
#endif // __PRINTERDATA_H
@@ -1,57 +0,0 @@
#ifndef _PRINTER_DRIVER_H
#define _PRINTER_DRIVER_H
#include <SupportDefs.h>
class BFile;
class BMessage;
class BNode;
class PrinterCap;
class PrinterData;
class GraphicsDriver;
#define kAttrPageSettings "libprint/page_settings"
#define kAttrJobSettings "libprint/job_settings"
class PrinterDriver {
public:
PrinterDriver(BNode* spoolFolder);
virtual ~PrinterDriver();
virtual const char* GetSignature() const = 0;
virtual const char* GetDriverName() const = 0;
virtual const char* GetVersion() const = 0;
virtual const char* GetCopyright() const = 0;
virtual PrinterCap* InstantiatePrinterCap(PrinterData* printerData) = 0;
virtual GraphicsDriver* InstantiateGraphicsDriver(BMessage* settings, PrinterData* printerData, PrinterCap* printerCap) = 0;
void InitPrinterDataAndCap();
virtual void About();
virtual char* AddPrinter(char* printerName);
BMessage* ConfigPage(BMessage* settings);
BMessage* ConfigJob(BMessage* settings);
BMessage* TakeJob(BFile* printJob, BMessage* settings);
protected:
PrinterData* GetPrinterData() { return fPrinterData; }
PrinterCap* GetPrinterCap() { return fPrinterCap; }
private:
bool ReadSettings(const char* attrName, BMessage* settings);
void WriteSettings(const char* attrName, BMessage* settings);
void MergeWithPreviousSettings(const char* attrName, BMessage* settings);
BNode* fSpoolFolder;
PrinterData* fPrinterData;
PrinterCap* fPrinterCap;
GraphicsDriver* fGraphicsDriver;
};
PrinterDriver* instantiate_printer_driver(BNode* printerFolder = NULL);
#endif // _PRINTER_DRIVER_H
@@ -1,30 +0,0 @@
/*
* SpoolMetaData.h
* Copyright 2003 Michael Pfeiffer. All Rights Reserved.
*/
#ifndef __SPOOLMETADATA_H
#define __SPOOLMETADATA_H
#include <SupportDefs.h>
#include <File.h>
#include <string>
using namespace std;
class SpoolMetaData {
typedef std::string string;
private:
string fDescription;
string fMimeType;
string fCreationTime;
public:
SpoolMetaData(BFile* spool_file);
~SpoolMetaData();
const string& getDescription() const { return fDescription; }
const string& getMimeType() const { return fMimeType; }
const string& getCreationTime() const { return fCreationTime; }
};
#endif /* __SpoolMetaData_H */
@@ -1,44 +0,0 @@
/*
StatusWindow.h
Copyright 2005 Dr.H.Reh. All Rights Reserved.
*/
#ifndef STATUS_WINDOW_H
#define STATUS_WINDOW_H
#include <Window.h>
#include <StatusBar.h>
#include <String.h>
class StatusWindow : public BWindow
{
public:
StatusWindow(bool oddPages, bool evenPages,
uint32 firstPage, uint32 numPages,
uint32 docCopies, uint32 nup);
~StatusWindow(void);
virtual void MessageReceived(BMessage *message);
void ResetStatusBar(void);
bool UpdateStatusBar(uint32 page, uint32 copy);
void SetPageCopies(uint32 copies);
private:
BView *fStatusView;
BStatusBar *fStatusBar;
BButton *fCancelButton;
BButton *fHideButton;
bool fCancelBar;
bool fDocumentCopy;
uint32 fNops;
uint32 fFirstPage;
uint32 fCopies;
uint32 fDocCopies;
float fStatusDelta;
float fDelta;
};
#endif
@@ -1,57 +0,0 @@
/*
* Transport.h
* Copyright 1999-2000 Y.Takagi. All Rights Reserved.
*/
#ifndef __TRANSPORT_H
#define __TRANSPORT_H
#include <image.h>
#include <string>
class BDataIO;
class PrinterData;
#if (!__MWERKS__ || defined(MSIPL_USING_NAMESPACE))
using namespace std;
#else
#define std
#endif
extern "C" {
typedef BDataIO *(*PFN_init_transport)(BMessage *);
typedef void (*PFN_exit_transport)(void);
}
class TransportException {
private:
string fWhat;
public:
TransportException(const string &what_arg) : fWhat(what_arg) {}
const char *what() const { return fWhat.c_str(); }
};
class Transport {
public:
Transport(const PrinterData *printer_data);
~Transport();
void write(const void *buffer, size_t size) throw(TransportException);
bool check_abort() const;
bool is_print_to_file_canceled() const;
const string &last_error() const;
protected:
void set_last_error(const char *e);
Transport(const Transport &);
Transport &operator = (const Transport &);
private:
image_id fImage;
PFN_init_transport fInitTransport;
PFN_exit_transport fExitTransport;
BDataIO *fDataStream;
bool fAbort;
string fLastErrorString;
};
#endif // __TRANSPORT_H
-34
View File
@@ -1,34 +0,0 @@
/*
* UIDriver.h
* Copyright 1999-2000 Y.Takagi. All Rights Reserved.
*/
#ifndef __UIDRIVER_H
#define __UIDRIVER_H
class BMessage;
class PrinterData;
class PrinterCap;
class JobData;
class UIDriver {
public:
UIDriver(BMessage *msg, PrinterData *printer_data, const PrinterCap *printer_cap);
virtual ~UIDriver();
BMessage *configPage();
BMessage *configJob();
protected:
virtual long doPageSetup(JobData *job_data, PrinterData *printer_data, const PrinterCap *printer_cap);
virtual long doJobSetup(JobData *job_data, PrinterData *printer_data, const PrinterCap *printer_cap);
UIDriver(const UIDriver &);
UIDriver &operator = (const UIDriver &);
private:
BMessage *fMsg;
PrinterData *fPrinterData;
const PrinterCap *fPrinterCap;
};
#endif /* __UIDRIVER_H */
@@ -1,24 +0,0 @@
/*
* ValidRect.h
* Copyright 1999-2000 Y.Takagi All Rights Reserved.
*/
#ifndef __VALIDRECT_H
#define __VALIDRECT_H
#include <GraphicsDefs.h>
class BBitmap;
struct RECT {
int left;
int top;
int right;
int bottom;
};
bool get_valid_rect(BBitmap *bitmap, RECT *rc);
int color_space2pixel_depth(color_space cs);
#endif // __VALIDRECT_H
+104
View File
@@ -0,0 +1,104 @@
/*****************************************************************************/
// print_server Background Application.
//
// Version: 1.0.0d1
//
// The print_server manages the communication between applications and the
// printer and transport drivers.
//
//
// This application and all source files used in its construction, except
// where noted, are licensed under the MIT License, and have been written
// and are:
//
// Copyright (c) 2001 OpenBeOS Project
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
/*****************************************************************************/
#ifndef _PR_SERVER_H_
#define _PR_SERVER_H_
// signature mime types
#define PSRV_SIGNATURE_TYPE "application/x-vnd.Be-PSRV"
#define PRNT_SIGNATURE_TYPE "application/x-vnd.Be-PRNT"
// messages understood by print_server
#define PSRV_GET_ACTIVE_PRINTER 'pgcp'
#define PSRV_MAKE_PRINTER_ACTIVE_QUIETLY 'pmaq'
#define PSRV_MAKE_PRINTER_ACTIVE 'pmac'
#define PSRV_MAKE_PRINTER 'selp'
#define PSRV_SHOW_PAGE_SETUP 'pgst'
#define PSRV_SHOW_PRINT_SETUP 'ppst'
#define PSRV_PRINT_SPOOLED_JOB 'psns'
#define PSRV_GET_DEFAULT_SETTINGS 'pdef'
// messages sent to Printers preflet
#define PRINTERS_ADD_PRINTER 'addp'
// mime file types
#define PSRV_PRINTER_FILETYPE "application/x-vnd.Be.printer"
#define PSRV_SPOOL_FILETYPE "application/x-vnd.Be.printer-spool"
// spool Attributes
#define PSRV_SPOOL_ATTR_MIMETYPE "_spool/MimeType"
#define PSRV_SPOOL_ATTR_PAGECOUNT "_spool/Page Count"
#define PSRV_SPOOL_ATTR_DESCRIPTION "_spool/Description"
#define PSRV_SPOOL_ATTR_PRINTER "_spool/Printer"
#define PSRV_SPOOL_ATTR_STATUS "_spool/Status"
#define PSRV_SPOOL_ATTR_ERRCODE "_spool/_errorcode"
// spool file status attribute values
#define PSRV_JOB_STATUS_ ""
#define PSRV_JOB_STATUS_WAITING "Waiting"
#define PSRV_JOB_STATUS_PROCESSING "Processing"
#define PSRV_JOB_STATUS_FAILED "Failed"
#define PSRV_JOB_STATUS_COMPLETED "Completed"
// printer attributes
#define PSRV_PRINTER_ATTR_DRV_NAME "Driver Name"
#define PSRV_PRINTER_ATTR_PRT_NAME "Printer Name"
#define PSRV_PRINTER_ATTR_COMMENTS "Comments"
#define PSRV_PRINTER_ATTR_STATE "state"
#define PSRV_PRINTER_ATTR_TRANSPORT "transport"
#define PSRV_PRINTER_ATTR_TRANSPORT_ADDR "transport_address"
#define PSRV_PRINTER_ATTR_CNX "connection"
#define PSRV_PRINTER_ATTR_PNP "_PNP"
#define PSRV_PRINTER_ATTR_MDL "_MDL"
// printer name
#define PSRV_FIELD_CURRENT_PRINTER "current_printer"
// page settings fields
#define PSRV_FIELD_XRES "xres"
#define PSRV_FIELD_YRES "yres"
#define PSRV_FIELD_PAPER_RECT "paper_rect"
#define PSRV_FIELD_PRINTABLE_RECT "printable_rect"
// optional page settings field
#define PSRV_FIELD_ORIENTATION "orientation"
#define PSRV_FIELD_COPIES "copies"
#define PSRV_FIELD_SCALE "scale"
#define PSRV_FIELD_QUALITY "quality"
// job settings fields
#define PSRV_FIELD_FIRST_PAGE "first_page"
#define PSRV_FIELD_LAST_PAGE "last_page"
#endif