-
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
aacuevas authoredWith 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__