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