Skip to content
Snippets Groups Projects
DataViewport.h 1.91 KiB
/*
    ------------------------------------------------------------------

    This file is part of the Open Ephys GUI
    Copyright (C) 2012 Open Ephys

    ------------------------------------------------------------------

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

*/

#ifndef __DATAVIEWPORT_H_B38FE628__
#define __DATAVIEWPORT_H_B38FE628__

#include "../../JuceLibraryCode/JuceHeader.h"

/**
  
  Holds tabs for visualizers.

  Editors that create OpenGL visualizers can either place them
  in the DataViewport, for easy access on small monitors, or in
  a separate window, for maximum flexibility.

  @see GenericEditor, InfoLabel, LfpDisplayCanvas

*/

class DataViewport : public TabbedComponent

{
public: 
	DataViewport();
	~DataViewport();

	/** Adds a new tab and returns the tab index.*/
    int addTabToDataViewport(String tabName, Component* componentToAdd);

    /** Removes a tab with a specified index.*/
    void destroyTab(int);

    /** Informs the component of the current tab that it's now active.*/
    void currentTabChanged(int newIndex, const String& newTabName);

private:

	Array<int>* tabArray;
	void paint(Graphics& g);
	int tabDepth;

	JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (DataViewport);
	
};



#endif  // __DATAVIEWPORT_H_B38FE628__