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