Skip to content
Snippets Groups Projects
  • aacuevas's avatar
    3f56af92
    Windows.h include not needed with juce 2 · 3f56af92
    aacuevas authored
    With new jucer, windows.h is not only unnecesary, but can cause conflicts with some definitions.
    Also, OpenGL.h includes disabled, as it's no longer needed and it, by itself, needs windows.h
    3f56af92
    History
    Windows.h include not needed with juce 2
    aacuevas authored
    With new jucer, windows.h is not only unnecesary, but can cause conflicts with some definitions.
    Also, OpenGL.h includes disabled, as it's no longer needed and it, by itself, needs windows.h
SignalChainManager.h 2.84 KiB
/*
    ------------------------------------------------------------------

    This file is part of the Open Ephys GUI
    Copyright (C) 2013 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 __SIGNALCHAINMANAGER_H_948769B9__
#define __SIGNALCHAINMANAGER_H_948769B9__

#include "../../JuceLibraryCode/JuceHeader.h"
#include "../Processors/Editors/GenericEditor.h"
#include "../AccessClass.h"

class GenericEditor;
class SignalChainTabButton;
class EditorViewport;

/**
  
  Provides helper functions for editing the signal chain.

  Created and owned by the EditorViewport.

  @see EditorViewport.

*/

class SignalChainManager : AccessClass
{
public:
	SignalChainManager(EditorViewport*, Array<GenericEditor*, CriticalSection>&,
	 				   Array<SignalChainTabButton*, CriticalSection>&);
	~SignalChainManager();

    /** Updates the editors currently displayed by the EditorViewport.*/
	void updateVisibleEditors(GenericEditor* activeEditor, int index, int insertionPoint, int action);

    /** Creates a tab button for a new signal chain. */
	void createNewTab(GenericEditor* editor);

    /** Removes the tab button for a deleted signal chain. */
	void removeTab(int tabIndex);

    /** Scrolls the SignalChainTabButtons up, if there are more signal chains
    than can be viewed at once.*/
	void scrollUp();

    /** Scrolls the SignalChainTabButtons down, if there are more signal chains
    than can be viewed at once.*/
	void scrollDown();

    /** Clears the signal chain.*/
    void clearSignalChain();

private:	

    /** An array of all currently visible editors.*/
	Array<GenericEditor*, CriticalSection>& editorArray;

    /** An array of all existing signal chains (as referenced by their associated
    SignalChainTabButtons).*/
	Array<SignalChainTabButton*, CriticalSection>& signalChainArray;

    /** A pointer to the EditorViewport.*/
	EditorViewport* ev;

    /** Updates the visibility of SignalChainTabButtons.*/
	void refreshTabs();

    /** The index of the top tab (used for scrolling purposes).*/
	int topTab;

	const int tabSize;
    

};


#endif  // __SIGNALCHAINMANAGER_H_948769B9__