summaryrefslogtreecommitdiff
path: root/vstgui.sf/vstgui/ctabview.h
diff options
context:
space:
mode:
authorpepper <pepper@chimecrisis.com>2015-01-31 21:41:28 -0800
committerpepper <pepper@chimecrisis.com>2015-01-31 21:41:28 -0800
commit97587996ee9db30ce00190bdcedd8210490b99f5 (patch)
treed8554969ac496be3a1b02a159f2a4b5b79f9492e /vstgui.sf/vstgui/ctabview.h
backup vst 2.4
Diffstat (limited to 'vstgui.sf/vstgui/ctabview.h')
-rw-r--r--vstgui.sf/vstgui/ctabview.h100
1 files changed, 100 insertions, 0 deletions
diff --git a/vstgui.sf/vstgui/ctabview.h b/vstgui.sf/vstgui/ctabview.h
new file mode 100644
index 0000000..c7d4678
--- /dev/null
+++ b/vstgui.sf/vstgui/ctabview.h
@@ -0,0 +1,100 @@
+//-----------------------------------------------------------------------------
+// VST Plug-Ins SDK
+// VSTGUI: Graphical User Interface Framework not only for VST plugins :
+//
+// CTabView written 2004 by Arne Scheffler
+//
+//-----------------------------------------------------------------------------
+// VSTGUI LICENSE
+// © 2004, Steinberg Media Technologies, All Rights Reserved
+//-----------------------------------------------------------------------------
+// Redistribution and use in source and binary forms, with or without modification,
+// are permitted provided that the following conditions are met:
+//
+// * Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// * Neither the name of the Steinberg Media Technologies nor the names of its
+// contributors may be used to endorse or promote products derived from this
+// software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+// IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+// OF THE POSSIBILITY OF SUCH DAMAGE.
+//-----------------------------------------------------------------------------
+
+#ifndef __ctabview__
+#define __ctabview__
+
+#ifndef __vstcontrols__
+#include "vstcontrols.h"
+#endif
+
+BEGIN_NAMESPACE_VSTGUI
+
+class CTabChildView;
+
+//-----------------------------------------------------------------------------
+class CTabView : public CViewContainer, public CControlListener
+//! a tab view
+//-----------------------------------------------------------------------------
+{
+public:
+ CTabView (const CRect& size, CFrame* parent, CBitmap* tabBitmap, CBitmap* background = 0, long tabPosition = kPositionTop, long style = 0);
+ CTabView (const CRect& size, CFrame* parent, const CRect& tabSize, CBitmap* background = 0, long tabPosition = kPositionTop, long style = 0);
+ virtual ~CTabView ();
+
+ virtual bool addTab (CView* view, const char* name = 0, CBitmap* tabBitmap = 0);
+ virtual bool removeTab (CView* view);
+ virtual bool removeAllTabs ();
+ virtual bool selectTab (long index);
+
+ virtual CRect& getTabViewSize (CRect& rect) const;
+
+ virtual void setTabFontStyle (const CFont& font, long fontSize = 12, CColor selectedColor = kBlackCColor, CColor deselectedColor = kWhiteCColor); ///< call this after the tabs are added. Tabs added after this call will have the default font style.
+
+ virtual void alignTabs (long alignment = kAlignCenter); ///< call this after you have added all tabs
+
+ enum {
+ kPositionLeft = 0,
+ kPositionRight,
+ kPositionTop,
+ kPositionBottom,
+ };
+
+ enum {
+ kAlignCenter = 0,
+ kAlignLeft,
+ kAlignRight,
+ kAlignTop = kAlignLeft,
+ kAlignBottom = kAlignRight
+ };
+
+ virtual void valueChanged (CDrawContext *pContext, CControl *pControl);
+//-----------------------------------------------------------------------------
+ CLASS_METHODS (CTabView, CViewContainer)
+protected:
+ void setCurrentChild (CTabChildView* childView);
+
+ unsigned long numberOfChilds;
+ long tabPosition;
+ long style;
+ CRect tabSize;
+ CBitmap* tabBitmap;
+ CTabChildView* firstChild;
+ CTabChildView* lastChild;
+ CTabChildView* currentChild;
+};
+
+END_NAMESPACE_VSTGUI
+
+#endif