/* * Copyright 2006 - 2010, Haiku, Inc. All rights reserved. * Distributed under the terms of the MIT License. */ #ifndef X_TAB_H #define X_TAB_H #include #include #include "Variable.h" namespace BALM { class BALMLayout; class TabBase : public BArchivable { private: TabBase(); TabBase(BMessage* archive); virtual ~TabBase(); friend class BALMLayout; friend class XTab; friend class YTab; struct BALMLayoutList; bool IsInLayout(BALMLayout* layout); bool AddedToLayout(BALMLayout* layout); void LayoutLeaving(BALMLayout* layout); bool IsSuitableFor(BALMLayout* layout); BALMLayoutList* fLayouts; }; /** * Vertical grid line (x-tab). */ class XTab : public Variable, public TabBase, public BReferenceable { public: virtual ~XTab(); static BArchivable* Instantiate(BMessage* archive); protected: friend class BALMLayout; XTab(BALMLayout* layout); private: XTab(BMessage* archive); uint32 _reserved[2]; }; class YTab : public Variable, public TabBase, public BReferenceable { public: virtual ~YTab(); static BArchivable* Instantiate(BMessage* archive); protected: friend class BALMLayout; YTab(BALMLayout* layout); private: YTab(BMessage* archive); uint32 _reserved[2]; }; } // namespace BALM using BALM::XTab; using BALM::YTab; typedef BObjectList XTabList; typedef BObjectList YTabList; #endif // X_TAB_H