/* ------------------------------------------------------------------ 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/>. */ #include "EditorViewportButtons.h" EditorScrollButton::EditorScrollButton(int d) : DrawableButton ("ESB", DrawableButton::ImageFitted) { direction = d; Path p; if (direction == RIGHT) { p.addTriangle (0.0f, 0.0f, 0.0f, 20.0f, 18.0f, 10.0f); } else { p.addTriangle (0.0f, 10.0f, 18.0f, 20.0f, 18.0f, 0.0f); } inactive.setPath (p); inactive.setFill (Colours::black); inactive.setStrokeFill(Colours::grey); inactive.setStrokeThickness (1.0f); activeNormal.setPath (p); activeNormal.setFill (Colours::grey); activeNormal.setStrokeFill(Colours::grey); activeNormal.setStrokeThickness (1.0f); activeOver.setPath (p); activeOver.setFill (Colours::grey); activeOver.setStrokeFill(Colours::grey); activeOver.setStrokeThickness (3.0f); activeDown.setPath (p); activeDown.setFill (Colours::white); activeDown.setStrokeFill(Colours::white); activeDown.setStrokeThickness (3.0f); setImages (&inactive, &inactive, &inactive); setBackgroundColours(Colours::black, Colours::black); setClickingTogglesState (false); } EditorScrollButton::~EditorScrollButton() { } void EditorScrollButton::setActive(bool state) { isActive = state; if (state == true) { setImages (&activeNormal, &activeOver, &activeDown); } else { setImages (&inactive, &inactive, &inactive); } } SignalChainScrollButton::SignalChainScrollButton(int d) : DrawableButton ("SCSB", DrawableButton::ImageFitted) { direction = d; DrawablePath normal; Path p; if (direction == DOWN) { p.addTriangle (0.0f, 0.0f, 9.0f, 20.0f, 18.0f, 0.0f); } else { p.addTriangle (0.0f, 20.0f, 9.0f, 0.0f, 18.0f, 20.0f); } inactive.setPath (p); inactive.setFill (Colours::black); inactive.setStrokeFill(Colours::grey); inactive.setStrokeThickness (1.0f); activeNormal.setPath (p); activeNormal.setFill (Colours::grey); activeNormal.setStrokeFill(Colours::grey); activeNormal.setStrokeThickness (1.0f); activeOver.setPath (p); activeOver.setFill (Colours::grey); activeOver.setStrokeFill(Colours::grey); activeOver.setStrokeThickness (3.0f); activeDown.setPath (p); activeDown.setFill (Colours::white); activeDown.setStrokeFill(Colours::white); activeDown.setStrokeThickness (3.0f); setImages (&inactive, &inactive, &inactive); setBackgroundColours(Colours::black, Colours::black); setClickingTogglesState (false); } SignalChainScrollButton::~SignalChainScrollButton() { } void SignalChainScrollButton::setActive(bool state) { isActive = state; if (state == true) { setImages (&activeNormal, &activeOver, &activeDown); } else { setImages (&inactive, &inactive, &inactive); } }