1*4b7da592SKarsten Heimrich /* 2*4b7da592SKarsten Heimrich * Copyright 2008 Haiku Inc. All rights reserved. 3*4b7da592SKarsten Heimrich * Distributed under the terms of the MIT License. 4*4b7da592SKarsten Heimrich * 5*4b7da592SKarsten Heimrich * Authors: 6*4b7da592SKarsten Heimrich * Julun, <host.haiku@gmx.de 7*4b7da592SKarsten Heimrich */ 8*4b7da592SKarsten Heimrich #ifndef _PRINTER_H_ 9*4b7da592SKarsten Heimrich #define _PRINTER_H_ 10*4b7da592SKarsten Heimrich 11*4b7da592SKarsten Heimrich 12*4b7da592SKarsten Heimrich #include <Directory.h> 13*4b7da592SKarsten Heimrich #include <Entry.h> 14*4b7da592SKarsten Heimrich #include <image.h> 15*4b7da592SKarsten Heimrich #include <Message.h> 16*4b7da592SKarsten Heimrich #include <Node.h> 17*4b7da592SKarsten Heimrich #include <Path.h> 18*4b7da592SKarsten Heimrich #include <String.h> 19*4b7da592SKarsten Heimrich 20*4b7da592SKarsten Heimrich 21*4b7da592SKarsten Heimrich namespace BPrivate { 22*4b7da592SKarsten Heimrich namespace Print { 23*4b7da592SKarsten Heimrich 24*4b7da592SKarsten Heimrich 25*4b7da592SKarsten Heimrich class BPrinter { 26*4b7da592SKarsten Heimrich public: 27*4b7da592SKarsten Heimrich BPrinter(); 28*4b7da592SKarsten Heimrich BPrinter(const BEntry& entry); 29*4b7da592SKarsten Heimrich BPrinter(const BPrinter& printer); 30*4b7da592SKarsten Heimrich BPrinter(const node_ref& nodeRef); 31*4b7da592SKarsten Heimrich BPrinter(const entry_ref& entryRef); 32*4b7da592SKarsten Heimrich BPrinter(const BDirectory& directory); 33*4b7da592SKarsten Heimrich ~BPrinter(); 34*4b7da592SKarsten Heimrich 35*4b7da592SKarsten Heimrich status_t SetTo(const BEntry& entry); 36*4b7da592SKarsten Heimrich status_t SetTo(const node_ref& nodeRef); 37*4b7da592SKarsten Heimrich status_t SetTo(const entry_ref& entryRef); 38*4b7da592SKarsten Heimrich status_t SetTo(const BDirectory& directory); 39*4b7da592SKarsten Heimrich void Unset(); 40*4b7da592SKarsten Heimrich 41*4b7da592SKarsten Heimrich bool IsValid() const; 42*4b7da592SKarsten Heimrich status_t InitCheck() const; 43*4b7da592SKarsten Heimrich 44*4b7da592SKarsten Heimrich bool IsFree() const; 45*4b7da592SKarsten Heimrich bool IsDefault() const; 46*4b7da592SKarsten Heimrich bool IsShareable() const; 47*4b7da592SKarsten Heimrich 48*4b7da592SKarsten Heimrich BString Name() const; 49*4b7da592SKarsten Heimrich BString State() const; 50*4b7da592SKarsten Heimrich BString Driver() const; 51*4b7da592SKarsten Heimrich BString Comments() const; 52*4b7da592SKarsten Heimrich BString Transport() const; 53*4b7da592SKarsten Heimrich BString TransportAddress() const; 54*4b7da592SKarsten Heimrich status_t DefaultSettings(BMessage& settings); 55*4b7da592SKarsten Heimrich 56*4b7da592SKarsten Heimrich status_t StartWatching(const BMessenger& listener); 57*4b7da592SKarsten Heimrich void StopWatching(); 58*4b7da592SKarsten Heimrich 59*4b7da592SKarsten Heimrich BPrinter& operator=(const BPrinter& printer); 60*4b7da592SKarsten Heimrich bool operator==(const BPrinter& printer) const; 61*4b7da592SKarsten Heimrich bool operator!=(const BPrinter& printer) const; 62*4b7da592SKarsten Heimrich 63*4b7da592SKarsten Heimrich private: 64*4b7da592SKarsten Heimrich status_t _Configure() const; 65*4b7da592SKarsten Heimrich status_t _ConfigureJob(BMessage& settings); 66*4b7da592SKarsten Heimrich status_t _ConfigurePage(BMessage& settings); 67*4b7da592SKarsten Heimrich 68*4b7da592SKarsten Heimrich BPath _DriverPath() const; 69*4b7da592SKarsten Heimrich image_id _LoadDriver() const; 70*4b7da592SKarsten Heimrich void _AddPrinterName(BMessage& settings); 71*4b7da592SKarsten Heimrich BString _ReadAttribute(const char* attribute) const; 72*4b7da592SKarsten Heimrich 73*4b7da592SKarsten Heimrich private: 74*4b7da592SKarsten Heimrich BMessenger* fListener; 75*4b7da592SKarsten Heimrich entry_ref fPrinterEntryRef; 76*4b7da592SKarsten Heimrich }; 77*4b7da592SKarsten Heimrich 78*4b7da592SKarsten Heimrich 79*4b7da592SKarsten Heimrich } // namespace Print 80*4b7da592SKarsten Heimrich } // namespace BPrivate 81*4b7da592SKarsten Heimrich 82*4b7da592SKarsten Heimrich 83*4b7da592SKarsten Heimrich #endif // _PRINTER_H_ 84