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