xref: /haiku/headers/private/print/JobSetupPanel.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 _JOB_SETUP_PANEL_H_
9*4b7da592SKarsten Heimrich #define _JOB_SETUP_PANEL_H_
10*4b7da592SKarsten Heimrich 
11*4b7da592SKarsten Heimrich 
12*4b7da592SKarsten Heimrich #include <PrintPanel.h>
13*4b7da592SKarsten Heimrich 
14*4b7da592SKarsten Heimrich 
15*4b7da592SKarsten Heimrich class BButton;
16*4b7da592SKarsten Heimrich class BCheckBox;
17*4b7da592SKarsten Heimrich class BMenuField;
18*4b7da592SKarsten Heimrich class BPopUpMenu;
19*4b7da592SKarsten Heimrich class BRadioButton;
20*4b7da592SKarsten Heimrich class BStringView;
21*4b7da592SKarsten Heimrich class BTextControl;
22*4b7da592SKarsten Heimrich class BTextView;
23*4b7da592SKarsten Heimrich 
24*4b7da592SKarsten Heimrich 
25*4b7da592SKarsten Heimrich namespace BPrivate {
26*4b7da592SKarsten Heimrich 	namespace Print {
27*4b7da592SKarsten Heimrich 
28*4b7da592SKarsten Heimrich 
29*4b7da592SKarsten Heimrich class BPrinter;
30*4b7da592SKarsten Heimrich class BPrinterRoster;
31*4b7da592SKarsten Heimrich 
32*4b7da592SKarsten Heimrich 
33*4b7da592SKarsten Heimrich enum print_range {
34*4b7da592SKarsten Heimrich 	B_ALL_PAGES		= 0,
35*4b7da592SKarsten Heimrich 	B_SELECTION		= 1,
36*4b7da592SKarsten Heimrich 	B_PAGE_RANGE	= 2
37*4b7da592SKarsten Heimrich };
38*4b7da592SKarsten Heimrich 
39*4b7da592SKarsten Heimrich 
40*4b7da592SKarsten Heimrich const uint32 B_NO_OPTIONS			= 0x00000000;
41*4b7da592SKarsten Heimrich const uint32 B_PRINT_TO_FILE		= 0x00000001;
42*4b7da592SKarsten Heimrich const uint32 B_PRINT_SELECTION		= 0x00000002;
43*4b7da592SKarsten Heimrich const uint32 B_PRINT_PAGE_RANGE		= 0x00000004;
44*4b7da592SKarsten Heimrich const uint32 B_PRINT_COLLATE_COPIES	= 0x00000008;
45*4b7da592SKarsten Heimrich 
46*4b7da592SKarsten Heimrich 
47*4b7da592SKarsten Heimrich 
48*4b7da592SKarsten Heimrich class BJobSetupPanel : public BPrintPanel {
49*4b7da592SKarsten Heimrich public:
50*4b7da592SKarsten Heimrich 								BJobSetupPanel(BPrinter* printer);
51*4b7da592SKarsten Heimrich 								BJobSetupPanel(BPrinter* printer, uint32 flags);
52*4b7da592SKarsten Heimrich 	virtual						~BJobSetupPanel();
53*4b7da592SKarsten Heimrich 
54*4b7da592SKarsten Heimrich 								BJobSetupPanel(BMessage* data);
55*4b7da592SKarsten Heimrich 	static	BArchivable*		Instantiate(BMessage* data);
56*4b7da592SKarsten Heimrich 	virtual	status_t			Archive(BMessage* data, bool deep = true) const;
57*4b7da592SKarsten Heimrich 	virtual	void				MessageReceived(BMessage* message);
58*4b7da592SKarsten Heimrich 
59*4b7da592SKarsten Heimrich 	virtual	status_t			Go();
60*4b7da592SKarsten Heimrich 
61*4b7da592SKarsten Heimrich 			BPrinter*			Printer() const;
62*4b7da592SKarsten Heimrich 			void				SetPrinter(BPrinter* printer, bool keepSettings);
63*4b7da592SKarsten Heimrich 
64*4b7da592SKarsten Heimrich 			print_range			PrintRange() const;
65*4b7da592SKarsten Heimrich 			void				SetPrintRange(print_range range);
66*4b7da592SKarsten Heimrich 
67*4b7da592SKarsten Heimrich 			int32				FirstPage() const;
68*4b7da592SKarsten Heimrich 			int32				LastPage() const;
69*4b7da592SKarsten Heimrich 			void				SetPageRange(int32 firstPage, int32 lastPage);
70*4b7da592SKarsten Heimrich 
71*4b7da592SKarsten Heimrich 			uint32				OptionFlags() const;
72*4b7da592SKarsten Heimrich 			void				SetOptionFlags(uint32 flags);
73*4b7da592SKarsten Heimrich 
74*4b7da592SKarsten Heimrich private:
75*4b7da592SKarsten Heimrich 			void				_InitObject();
76*4b7da592SKarsten Heimrich 			void				_SetupInterface();
77*4b7da592SKarsten Heimrich 			void				_DisallowChar(BTextView* textView);
78*4b7da592SKarsten Heimrich 
79*4b7da592SKarsten Heimrich private:
80*4b7da592SKarsten Heimrich 			BPrinter*			fPrinter;
81*4b7da592SKarsten Heimrich 			BPrinterRoster*		fPrinterRoster;
82*4b7da592SKarsten Heimrich 
83*4b7da592SKarsten Heimrich 			print_range			fPrintRange;
84*4b7da592SKarsten Heimrich 			uint32				fJobPanelFlags;
85*4b7da592SKarsten Heimrich 
86*4b7da592SKarsten Heimrich 			BPopUpMenu*			fPrinterPopUp;
87*4b7da592SKarsten Heimrich 			BMenuField*			fPrinterMenuField;
88*4b7da592SKarsten Heimrich 			BButton*			fProperties;
89*4b7da592SKarsten Heimrich 			BStringView*		fPrinterInfo;
90*4b7da592SKarsten Heimrich 			BCheckBox*			fPrintToFile;
91*4b7da592SKarsten Heimrich 			BRadioButton*		fPrintAll;
92*4b7da592SKarsten Heimrich 			BRadioButton*		fPagesFrom;
93*4b7da592SKarsten Heimrich 			BTextControl*		fFirstPage;
94*4b7da592SKarsten Heimrich 			BTextControl*		fLastPage;
95*4b7da592SKarsten Heimrich 			BRadioButton*		fSelection;
96*4b7da592SKarsten Heimrich 			BTextControl*		fNumberOfCopies;
97*4b7da592SKarsten Heimrich 			BCheckBox*			fCollate;
98*4b7da592SKarsten Heimrich 			BCheckBox*			fReverse;
99*4b7da592SKarsten Heimrich 			BCheckBox*			fColor;
100*4b7da592SKarsten Heimrich 			BCheckBox*			fDuplex;
101*4b7da592SKarsten Heimrich };
102*4b7da592SKarsten Heimrich 
103*4b7da592SKarsten Heimrich 
104*4b7da592SKarsten Heimrich 	}	// namespace Print
105*4b7da592SKarsten Heimrich }	// namespace BPrivate
106*4b7da592SKarsten Heimrich 
107*4b7da592SKarsten Heimrich 
108*4b7da592SKarsten Heimrich #endif	// _JOB_SETUP_PANEL_H_
109