xref: /haiku/src/apps/icon-o-matic/generic/gui/Group.h (revision 5ca11087764b7b9a5bb941f2134bf38d6b2f8fea)
1128277c9SStephan Aßmus /*
2128277c9SStephan Aßmus  * Copyright 2006, Haiku.
3128277c9SStephan Aßmus  * Distributed under the terms of the MIT License.
4128277c9SStephan Aßmus  *
5128277c9SStephan Aßmus  * Authors:
6128277c9SStephan Aßmus  *		Stephan Aßmus <superstippi@gmx.de>
7128277c9SStephan Aßmus  */
8128277c9SStephan Aßmus 
9128277c9SStephan Aßmus #ifndef GROUP_H
10128277c9SStephan Aßmus #define GROUP_H
11128277c9SStephan Aßmus 
12128277c9SStephan Aßmus #include <View.h>
13128277c9SStephan Aßmus 
14128277c9SStephan Aßmus class Group : public BView {
15128277c9SStephan Aßmus  public:
16128277c9SStephan Aßmus 								Group(BRect frame,
17128277c9SStephan Aßmus 									  const char* name,
18128277c9SStephan Aßmus 									  orientation direction = B_HORIZONTAL);
19128277c9SStephan Aßmus 	virtual						~Group();
20128277c9SStephan Aßmus 
21128277c9SStephan Aßmus 	// BView interface
22128277c9SStephan Aßmus 	virtual	void				AttachedToWindow();
23128277c9SStephan Aßmus 	virtual	void				FrameResized(float width, float height);
24128277c9SStephan Aßmus 	virtual	void				GetPreferredSize(float* width, float* height);
25128277c9SStephan Aßmus 
26*5ca11087SStephan Aßmus 	// Group
27*5ca11087SStephan Aßmus 			void				SetSpacing(float insetFromBorder,
28*5ca11087SStephan Aßmus 										   float childSpacing);
29128277c9SStephan Aßmus 
30128277c9SStephan Aßmus  private:
31128277c9SStephan Aßmus 			void				_LayoutControls(BRect frame) const;
32128277c9SStephan Aßmus 			BRect				_MinFrame() const;
33128277c9SStephan Aßmus 			void				_LayoutControl(BView* view,
34128277c9SStephan Aßmus 											   BRect frame,
35128277c9SStephan Aßmus 											   bool resizeWidth = false,
36128277c9SStephan Aßmus 											   bool resizeHeight = false) const;
37128277c9SStephan Aßmus 
38128277c9SStephan Aßmus 			orientation			fOrientation;
39128277c9SStephan Aßmus 			float				fInset;
40128277c9SStephan Aßmus 			float				fSpacing;
41128277c9SStephan Aßmus };
42128277c9SStephan Aßmus 
43128277c9SStephan Aßmus #endif	// GROUP_H
44