2 * Copyright 2001-2009 Haiku, Inc. All rights reserved.
3 * Distributed under the terms of the MIT License.
22 class BTab
: public BArchivable
{
24 BTab(BView
* contentsView
= NULL
);
27 BTab(BMessage
* archive
);
28 static BArchivable
* Instantiate(BMessage
* archive
);
30 virtual status_t
Archive(BMessage
* data
, bool deep
= true) const;
31 virtual status_t
Perform(uint32 d
, void* arg
);
33 const char* Label() const;
34 virtual void SetLabel(const char* label
);
36 bool IsSelected() const;
37 virtual void Select(BView
* owner
);
38 virtual void Deselect();
40 virtual void SetEnabled(bool enable
);
41 bool IsEnabled() const;
43 void MakeFocus(bool focus
= true);
46 // sets/gets the view to be displayed for this tab
47 virtual void SetView(BView
* view
);
50 virtual void DrawFocusMark(BView
* owner
, BRect frame
);
51 virtual void DrawLabel(BView
* owner
, BRect frame
);
52 virtual void DrawTab(BView
* owner
, BRect frame
,
53 tab_position position
, bool full
= true);
60 // FBC padding and forbidden methods
61 virtual void _ReservedTab1();
62 virtual void _ReservedTab2();
63 virtual void _ReservedTab3();
64 virtual void _ReservedTab4();
65 virtual void _ReservedTab5();
66 virtual void _ReservedTab6();
67 virtual void _ReservedTab7();
68 virtual void _ReservedTab8();
69 virtual void _ReservedTab9();
70 virtual void _ReservedTab10();
71 virtual void _ReservedTab11();
72 virtual void _ReservedTab12();
74 BTab
& operator=(const BTab
&);
87 class BTabView
: public BView
{
96 BTabView(const char* name
,
97 button_width width
= B_WIDTH_AS_USUAL
,
98 uint32 flags
= B_FULL_UPDATE_ON_RESIZE
99 | B_WILL_DRAW
| B_NAVIGABLE_JUMP
100 | B_FRAME_EVENTS
| B_NAVIGABLE
);
101 BTabView(BRect frame
, const char* name
,
102 button_width width
= B_WIDTH_AS_USUAL
,
103 uint32 resizeMask
= B_FOLLOW_ALL
,
104 uint32 flags
= B_FULL_UPDATE_ON_RESIZE
105 | B_WILL_DRAW
| B_NAVIGABLE_JUMP
106 | B_FRAME_EVENTS
| B_NAVIGABLE
);
109 BTabView(BMessage
* archive
);
110 static BArchivable
* Instantiate(BMessage
* archive
);
111 virtual status_t
Archive(BMessage
* into
,
112 bool deep
= true) const;
113 virtual status_t
AllUnarchived(const BMessage
* from
);
114 virtual status_t
Perform(perform_code d
, void* arg
);
116 virtual void AttachedToWindow();
117 virtual void DetachedFromWindow();
118 virtual void AllAttached();
119 virtual void AllDetached();
121 virtual void MessageReceived(BMessage
* message
);
122 virtual void KeyDown(const char* bytes
, int32 numBytes
);
123 virtual void MouseDown(BPoint where
);
124 virtual void MouseUp(BPoint where
);
125 virtual void MouseMoved(BPoint where
, uint32 transit
,
126 const BMessage
* dragMessage
);
127 virtual void Pulse();
129 virtual void Select(int32 index
);
130 int32
Selection() const;
132 virtual void WindowActivated(bool active
);
133 virtual void MakeFocus(bool focused
= true);
134 virtual void SetFocusTab(int32 tab
, bool focused
);
135 int32
FocusTab() const;
137 virtual void Draw(BRect updateRect
);
138 virtual BRect
DrawTabs();
139 virtual void DrawBox(BRect selectedTabRect
);
140 virtual BRect
TabFrame(int32 index
) const;
142 virtual void SetFlags(uint32 flags
);
143 virtual void SetResizingMode(uint32 mode
);
145 virtual void ResizeToPreferred();
146 virtual void GetPreferredSize(float* _width
, float* _height
);
148 virtual BSize
MinSize();
149 virtual BSize
MaxSize();
150 virtual BSize
PreferredSize();
152 virtual void FrameMoved(BPoint newPosition
);
153 virtual void FrameResized(float newWidth
, float newHeight
);
155 virtual BHandler
* ResolveSpecifier(BMessage
* message
,
156 int32 index
, BMessage
* specifier
,
157 int32 what
, const char* property
);
158 virtual status_t
GetSupportedSuites(BMessage
* message
);
161 virtual void AddTab(BView
* target
, BTab
* tab
= NULL
);
162 virtual BTab
* RemoveTab(int32 tabIndex
);
164 virtual BTab
* TabAt(int32 index
) const;
166 virtual void SetTabWidth(button_width width
);
167 button_width
TabWidth() const;
169 virtual void SetTabHeight(float height
);
170 float TabHeight() const;
172 virtual void SetBorder(border_style borderStyle
);
173 border_style
Border() const;
175 virtual void SetTabSide(tab_side tabSide
);
176 tab_side
TabSide() const;
178 BView
* ContainerView() const;
180 int32
CountTabs() const;
181 BView
* ViewForTab(int32 tabIndex
) const;
184 // FBC padding and forbidden methods
185 virtual void _ReservedTabView3();
186 virtual void _ReservedTabView4();
187 virtual void _ReservedTabView5();
188 virtual void _ReservedTabView6();
189 virtual void _ReservedTabView7();
190 virtual void _ReservedTabView8();
191 virtual void _ReservedTabView9();
192 virtual void _ReservedTabView10();
193 virtual void _ReservedTabView11();
194 virtual void _ReservedTabView12();
196 BTabView(const BTabView
&);
197 BTabView
& operator=(const BTabView
&);
200 void _InitObject(bool layouted
, button_width width
);
201 void _InitContainerView(bool layouted
);
202 BSize
_TabsMinSize() const;
203 float _BorderWidth() const;
204 void _LayoutContainerView(bool layouted
);
208 BView
* fContainerView
;
209 button_width fTabWidthSetting
;
213 int32 fInitialSelection
;
216 border_style fBorderStyle
;
222 #endif // _TAB_VIEW_H