* Added field fKey to BaseCap (will be required for Gutenprint printer

driver add-on).
* Added ability to search for a PrinterCap by ID to class PrinterCap
  (for Gutenprint driver add-on).
* Moved code for searching a PrinterCap by name into class PrinterCap.
* Refactored code in JobSetupDlg to use the new method.
* Refactored duplicated code in JobSetupDlg.
* There is still a lot of refactoring potential in libprint.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39141 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Michael Pfeiffer
2010-10-25 14:21:09 +00:00
parent 08d759feae
commit f53abcbdf8
9 changed files with 288 additions and 156 deletions
+12 -4
View File
@@ -12,6 +12,7 @@
#include "JobData.h"
#include "Halftone.h"
#include "JSDSlider.h"
#include "PrinterCap.h"
class BTextControl;
class BTextView;
@@ -34,13 +35,20 @@ public:
private:
void UpdateButtonEnabledState();
void FillCapabilityMenu(BPopUpMenu* menu, uint32 message,
PrinterCap::CapID category, int id);
void FillCapabilityMenu(BPopUpMenu* menu, uint32 message,
const BaseCap** capabilities, int count, int id);
int GetID(const BaseCap** capabilities, int count, const char* label,
int defaultValue);
BRadioButton* CreatePageSelectionItem(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();
JobData::Color Color();
Halftone::DitherType DitherType();
float Gamma();
float InkDensity();
JobData::PaperSource PaperSource();
BTextControl *fCopies;
BTextControl *fFromPage;
+31 -7
View File
@@ -18,9 +18,13 @@ enum {
struct BaseCap {
BaseCap(const string &label, bool isDefault);
virtual ~BaseCap();
virtual int ID() const = 0;
string fLabel;
bool fIsDefault;
string fKey;
};
struct PaperCap : public BaseCap {
@@ -28,6 +32,8 @@ struct PaperCap : public BaseCap {
JobData::Paper paper, const BRect &paperRect,
const BRect &physicalRect);
int ID() const;
JobData::Paper fPaper;
BRect fPaperRect;
BRect fPhysicalRect;
@@ -37,13 +43,18 @@ struct PaperSourceCap : public BaseCap {
PaperSourceCap(const string &label, bool isDefault,
JobData::PaperSource paperSource);
int ID() const;
JobData::PaperSource fPaperSource;
};
struct ResolutionCap : public BaseCap {
ResolutionCap(const string &label, bool isDefault,
int xResolution, int yResolution);
int id, int xResolution, int yResolution);
int ID() const;
int fID;
int fXResolution;
int fYResolution;
};
@@ -52,6 +63,8 @@ struct OrientationCap : public BaseCap {
OrientationCap(const string &label, bool isDefault,
JobData::Orientation orientation);
int ID() const;
JobData::Orientation fOrientation;
};
@@ -59,6 +72,8 @@ struct PrintStyleCap : public BaseCap {
PrintStyleCap(const string &label, bool isDefault,
JobData::PrintStyle printStyle);
int ID() const;
JobData::PrintStyle fPrintStyle;
};
@@ -67,6 +82,8 @@ struct BindingLocationCap : public BaseCap {
bool isDefault,
JobData::BindingLocation bindingLocation);
int ID() const;
JobData::BindingLocation fBindingLocation;
};
@@ -74,6 +91,8 @@ struct ColorCap : public BaseCap {
ColorCap(const string &label, bool isDefault,
JobData::Color color);
int ID() const;
JobData::Color fColor;
};
@@ -82,6 +101,8 @@ struct ProtocolClassCap : public BaseCap {
bool isDefault, int protocolClass,
const string &description);
int ID() const;
int fProtocolClass;
string fDescription;
};
@@ -108,16 +129,19 @@ public:
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;
virtual int countCap(CapID category) const = 0;
virtual bool isSupport(CapID category) const = 0;
virtual const BaseCap** enumCap(CapID category) const = 0;
const BaseCap* getDefaultCap(CapID category) const;
const BaseCap* findCap(CapID category, int id) const;
const BaseCap* findCap(CapID category, const char* label) const;
int getPrinterId() const;
int getProtocolClass() const;
protected:
PrinterCap(const PrinterCap &);
PrinterCap& operator=(const PrinterCap &);
PrinterCap(const PrinterCap &printerCap);
PrinterCap& operator=(const PrinterCap &printerCap);
const PrinterData* getPrinterData() const;
void setPrinterId(int id);