-
jsiegle authored
To run this in the future, install astyle (sudo apt-get install astyle), then enter the following from the top-level project directory: astyle --options=astyle.options --recursive "./Source/*.cpp" "./Source/*.h" This will convert tabs to 4 spaces and ensure that brackets are on their own lines.
jsiegle authoredTo run this in the future, install astyle (sudo apt-get install astyle), then enter the following from the top-level project directory: astyle --options=astyle.options --recursive "./Source/*.cpp" "./Source/*.h" This will convert tabs to 4 spaces and ensure that brackets are on their own lines.
SignalChainManager.h 2.88 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__