xref: /haiku/src/apps/icon-o-matic/generic/gui/Group.h (revision 128277c969aa806add78941cd2972754c37a1572)
1*128277c9SStephan Aßmus /*
2*128277c9SStephan Aßmus  * Copyright 2006, Haiku.
3*128277c9SStephan Aßmus  * Distributed under the terms of the MIT License.
4*128277c9SStephan Aßmus  *
5*128277c9SStephan Aßmus  * Authors:
6*128277c9SStephan Aßmus  *		Stephan Aßmus <superstippi@gmx.de>
7*128277c9SStephan Aßmus  */
8*128277c9SStephan Aßmus 
9*128277c9SStephan Aßmus #ifndef GROUP_H
10*128277c9SStephan Aßmus #define GROUP_H
11*128277c9SStephan Aßmus 
12*128277c9SStephan Aßmus #include <View.h>
13*128277c9SStephan Aßmus 
14*128277c9SStephan Aßmus class Group : public BView {
15*128277c9SStephan Aßmus  public:
16*128277c9SStephan Aßmus 								Group(BRect frame,
17*128277c9SStephan Aßmus 									  const char* name,
18*128277c9SStephan Aßmus 									  orientation direction = B_HORIZONTAL);
19*128277c9SStephan Aßmus 	virtual						~Group();
20*128277c9SStephan Aßmus 
21*128277c9SStephan Aßmus 	// BView interface
22*128277c9SStephan Aßmus 	virtual	void				AttachedToWindow();
23*128277c9SStephan Aßmus 	virtual	void				FrameResized(float width, float height);
24*128277c9SStephan Aßmus 	virtual	void				GetPreferredSize(float* width, float* height);
25*128277c9SStephan Aßmus 
26*128277c9SStephan Aßmus 	// TODO: allow setting inset and spacing
27*128277c9SStephan Aßmus 
28*128277c9SStephan Aßmus  private:
29*128277c9SStephan Aßmus 			void				_LayoutControls(BRect frame) const;
30*128277c9SStephan Aßmus 			BRect				_MinFrame() const;
31*128277c9SStephan Aßmus 			void				_LayoutControl(BView* view,
32*128277c9SStephan Aßmus 											   BRect frame,
33*128277c9SStephan Aßmus 											   bool resizeWidth = false,
34*128277c9SStephan Aßmus 											   bool resizeHeight = false) const;
35*128277c9SStephan Aßmus 
36*128277c9SStephan Aßmus 			orientation			fOrientation;
37*128277c9SStephan Aßmus 			float				fInset;
38*128277c9SStephan Aßmus 			float				fSpacing;
39*128277c9SStephan Aßmus };
40*128277c9SStephan Aßmus 
41*128277c9SStephan Aßmus #endif	// GROUP_H
42