Make UEFI boot-platform build again
[haiku.git] / headers / private / print / PrintPanel.h
blob97eae257e8ded72e15a1d68a393b9ef8e93b0966
1 /*
2 * Copyright 2008 Haiku Inc. All rights reserved.
3 * Distributed under the terms of the MIT License.
5 * Authors:
6 * Julun, <host.haiku@gmx.de
7 */
8 #ifndef _PRINT_PANEL_H_
9 #define _PRINT_PANEL_H_
12 #include <MessageFilter.h>
13 #include <String.h>
14 #include <Window.h>
17 class BArchivable;
18 class BGroupView;
19 class BHandler;
20 class BMessage;
21 class BView;
24 namespace BPrivate {
25 namespace Print {
28 class BPrintPanel : public BWindow {
29 public:
30 BPrintPanel(const BString& title);
31 virtual ~BPrintPanel();
33 BPrintPanel(BMessage* data);
34 static BArchivable* Instantiate(BMessage* data);
35 virtual status_t Archive(BMessage* data, bool deep = true) const;
37 virtual status_t Go() = 0;
39 BView* Panel() const;
40 void AddPanel(BView* panel);
41 bool RemovePanel(BView* child);
43 virtual void MessageReceived(BMessage* message);
44 virtual void FrameResized(float newWidth, float newHeight);
46 virtual BHandler* ResolveSpecifier(BMessage* message, int32 index,
47 BMessage* specifier, int32 form,
48 const char* property);
49 virtual status_t GetSupportedSuites(BMessage* data);
50 virtual status_t Perform(perform_code d, void* arg);
52 virtual void Quit();
53 virtual bool QuitRequested();
54 virtual void DispatchMessage(BMessage* message, BHandler* handler);
56 protected:
57 virtual status_t ShowPanel();
59 private:
60 void AddChild(BView* child, BView* before = NULL);
61 bool RemoveChild(BView* child);
62 BView* ChildAt(int32 index) const;
64 class _BPrintPanelFilter_ : public BMessageFilter {
65 public:
66 _BPrintPanelFilter_(BPrintPanel* panel);
67 filter_result Filter(BMessage* msg, BHandler** target);
69 private:
70 BPrintPanel* fPrintPanel;
73 private:
74 virtual void _ReservedBPrintPanel1();
75 virtual void _ReservedBPrintPanel2();
76 virtual void _ReservedBPrintPanel3();
77 virtual void _ReservedBPrintPanel4();
78 virtual void _ReservedBPrintPanel5();
80 private:
81 BGroupView* fPanel;
82 sem_id fPrintPanelSem;
83 status_t fPrintPanelResult;
85 uint32 _reserved[5];
89 } // namespace Print
90 } // namespace BPrivate
93 #endif // _PRINT_PANEL_H_