xref: /haiku/headers/os/interface/SpaceLayoutItem.h (revision 39c72631a353f62e806845a5b7f0817b46707231)
19ecf9d1cSIngo Weinhold /*
289208c77SStephan Aßmus  * Copyright 2006, Haiku, Inc. All rights reserved.
39ecf9d1cSIngo Weinhold  * Distributed under the terms of the MIT License.
49ecf9d1cSIngo Weinhold  */
59ecf9d1cSIngo Weinhold #ifndef	_SPACE_LAYOUT_ITEM_H
69ecf9d1cSIngo Weinhold #define	_SPACE_LAYOUT_ITEM_H
79ecf9d1cSIngo Weinhold 
89ecf9d1cSIngo Weinhold #include <LayoutItem.h>
99ecf9d1cSIngo Weinhold 
109ecf9d1cSIngo Weinhold 
119ecf9d1cSIngo Weinhold class BSpaceLayoutItem : public BLayoutItem {
129ecf9d1cSIngo Weinhold public:
139ecf9d1cSIngo Weinhold 								BSpaceLayoutItem(BSize minSize, BSize maxSize,
149ecf9d1cSIngo Weinhold 									BSize preferredSize, BAlignment alignment);
15*39c72631SIngo Weinhold 								BSpaceLayoutItem(BMessage* archive);
169ecf9d1cSIngo Weinhold 	virtual						~BSpaceLayoutItem();
179ecf9d1cSIngo Weinhold 
189ecf9d1cSIngo Weinhold 	static	BSpaceLayoutItem*	CreateGlue();
199ecf9d1cSIngo Weinhold 	static	BSpaceLayoutItem*	CreateHorizontalStrut(float width);
209ecf9d1cSIngo Weinhold 	static	BSpaceLayoutItem*	CreateVerticalStrut(float height);
219ecf9d1cSIngo Weinhold 
229ecf9d1cSIngo Weinhold 	virtual	BSize				MinSize();
239ecf9d1cSIngo Weinhold 	virtual	BSize				MaxSize();
249ecf9d1cSIngo Weinhold 	virtual	BSize				PreferredSize();
259ecf9d1cSIngo Weinhold 	virtual	BAlignment			Alignment();
269ecf9d1cSIngo Weinhold 
279ecf9d1cSIngo Weinhold 	virtual	void				SetExplicitMinSize(BSize size);
289ecf9d1cSIngo Weinhold 	virtual	void				SetExplicitMaxSize(BSize size);
299ecf9d1cSIngo Weinhold 	virtual	void				SetExplicitPreferredSize(BSize size);
309ecf9d1cSIngo Weinhold 	virtual	void				SetExplicitAlignment(BAlignment alignment);
319ecf9d1cSIngo Weinhold 
329ecf9d1cSIngo Weinhold 	virtual	bool				IsVisible();
339ecf9d1cSIngo Weinhold 	virtual	void				SetVisible(bool visible);
349ecf9d1cSIngo Weinhold 
359ecf9d1cSIngo Weinhold 	virtual	BRect				Frame();
369ecf9d1cSIngo Weinhold 	virtual	void				SetFrame(BRect frame);
379ecf9d1cSIngo Weinhold 
38*39c72631SIngo Weinhold 	virtual	status_t			Archive(BMessage* into, bool deep = true) const;
39*39c72631SIngo Weinhold 	static	BArchivable*		Instantiate(BMessage* from);
40*39c72631SIngo Weinhold 
419ecf9d1cSIngo Weinhold private:
429ecf9d1cSIngo Weinhold 			BRect				fFrame;
439ecf9d1cSIngo Weinhold 			BSize				fMinSize;
449ecf9d1cSIngo Weinhold 			BSize				fMaxSize;
459ecf9d1cSIngo Weinhold 			BSize				fPreferredSize;
469ecf9d1cSIngo Weinhold 			BAlignment			fAlignment;
479ecf9d1cSIngo Weinhold 			bool				fVisible;
489ecf9d1cSIngo Weinhold };
499ecf9d1cSIngo Weinhold 
509ecf9d1cSIngo Weinhold #endif	//	_SPACE_LAYOUT_ITEM_H
51