Added Add Printer dialog.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11274 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* 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 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;
|
||||
};
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#define __GRAPHICSDRIVER_H
|
||||
|
||||
#include "JobData.h"
|
||||
#include "PrinterData.h"
|
||||
#include "PrintProcess.h"
|
||||
#include "SpoolMetaData.h"
|
||||
#include "Transport.h"
|
||||
@@ -45,6 +46,7 @@ protected:
|
||||
const PrinterData *getPrinterData() const;
|
||||
const PrinterCap *getPrinterCap() const;
|
||||
const SpoolMetaData *getSpoolMetaData() const;
|
||||
int getProtocolClass() const;
|
||||
|
||||
int getPageWidth() const;
|
||||
int getPageHeight() const;
|
||||
@@ -111,6 +113,11 @@ inline const SpoolMetaData *GraphicsDriver::getSpoolMetaData() const
|
||||
return fSpoolMetaData;
|
||||
}
|
||||
|
||||
inline int GraphicsDriver::getProtocolClass() const
|
||||
{
|
||||
return fPrinterData->getProtocolClass();
|
||||
}
|
||||
|
||||
inline int GraphicsDriver::getPageWidth() const
|
||||
{
|
||||
return fPageWidth;
|
||||
|
||||
@@ -71,16 +71,23 @@ struct ColorCap : public BaseCap {
|
||||
: 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();
|
||||
/*
|
||||
PrinterCap(const PrinterCap &printer_cap);
|
||||
PrinterCap &operator = (const PrinterCap &printer_cap);
|
||||
*/
|
||||
|
||||
enum CapID {
|
||||
kPaper,
|
||||
kPaperSource,
|
||||
@@ -89,6 +96,7 @@ public:
|
||||
kPrintStyle,
|
||||
kBindingLocation,
|
||||
kColor,
|
||||
kProtocolClass,
|
||||
// Static boolean settings follow.
|
||||
// For them isSupport() has to be implemented only.
|
||||
kCopyCommand, // supports printer page copy command?
|
||||
@@ -99,6 +107,7 @@ public:
|
||||
virtual const BaseCap **enumCap(CapID) const = 0;
|
||||
const BaseCap *getDefaultCap(CapID) const;
|
||||
int getPrinterId() const;
|
||||
int getProtocolClass() const;
|
||||
|
||||
protected:
|
||||
PrinterCap(const PrinterCap &);
|
||||
|
||||
@@ -21,23 +21,20 @@ class PrinterData {
|
||||
public:
|
||||
PrinterData(BNode *node = NULL);
|
||||
~PrinterData();
|
||||
/*
|
||||
PrinterData(const PrinterData &printer_data);
|
||||
PrinterData &operator = (const PrinterData &printer_data);
|
||||
*/
|
||||
void load(BNode *node);
|
||||
// void save(BNode *node = NULL);
|
||||
void load();
|
||||
void save();
|
||||
|
||||
const string &getDriverName() const;
|
||||
const string &getPrinterName() const;
|
||||
const string &getComments() const;
|
||||
const string &getTransport() const;
|
||||
int getProtocolClass() const;
|
||||
|
||||
// void setDriverName(const char *s) { fDriverName = driver_name; }
|
||||
void setPrinterName(const char *printer_name);
|
||||
void setComments(const char *comments);
|
||||
void setProtocolClass(int protocolClass);
|
||||
|
||||
bool getPath(char *path) const;
|
||||
bool getPath(string &path) const;
|
||||
|
||||
protected:
|
||||
PrinterData(const PrinterData &printer_data);
|
||||
@@ -48,6 +45,8 @@ private:
|
||||
string fPrinterName;
|
||||
string fComments;
|
||||
string fTransport;
|
||||
int fProtocolClass;
|
||||
|
||||
BNode *fNode;
|
||||
};
|
||||
|
||||
@@ -71,6 +70,11 @@ 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;
|
||||
@@ -81,4 +85,9 @@ inline void PrinterData::setComments(const char *comments)
|
||||
fComments = comments;
|
||||
}
|
||||
|
||||
inline void PrinterData::setProtocolClass(int protocolClass)
|
||||
{
|
||||
fProtocolClass = protocolClass;
|
||||
}
|
||||
|
||||
#endif // __PRINTERDATA_H
|
||||
|
||||
@@ -26,18 +26,26 @@ public:
|
||||
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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user