xref: /haiku/headers/private/print/Printer.h (revision 4b7da592ee3b0a5f48f0a0bd212400223ae9e802)
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