/* ============================================================================== GenericEditor.cpp Created: 7 Jun 2011 11:37:12am Author: jsiegle ============================================================================== */ #include "GenericEditor.h" GenericEditor::GenericEditor (GenericProcessor* owner, FilterViewport* vp) : AudioProcessorEditor (owner), isSelected(false), viewport(vp), desiredWidth(150), tNum(-1), isEnabled(true) { name = getAudioProcessor()->getName(); nodeId = owner->getNodeId(); Random r = Random(99); r.setSeedRandomly(); //titleFont = new Font(14.0, Font::plain); //titleFont->setTypefaceName(T("Miso")); backgroundColor = Colour(3, 143, 255); } GenericEditor::~GenericEditor() { //std::cout << " Generic editor for " << getName() << " being deleted with " << getNumChildComponents() << " children. " << std::endl; deleteAllChildren(); //delete titleFont; } void GenericEditor::setViewport(FilterViewport* vp) { viewport = vp; } //void GenericEditor::setTabbedComponent(TabbedComponent* tc) { // tabComponent = tc; //} bool GenericEditor::keyPressed (const KeyPress& key) { //std::cout << name << " received " << key.getKeyCode() << std::endl; if (key.getKeyCode() == key.deleteKey || key.getKeyCode() == key.backspaceKey) { //std::cout << name << " should be deleted." << std::endl; viewport->deleteNode(this); } else if (key.getKeyCode() == key.leftKey || key.getKeyCode() == key.rightKey) { viewport->moveSelection(key); } } void GenericEditor::switchSelectedState() { //std::cout << "Switching selected state" << std::endl; isSelected = !isSelected; repaint(); } void GenericEditor::select() { isSelected = true; repaint(); setWantsKeyboardFocus(true); grabKeyboardFocus(); } bool GenericEditor::getSelectionState() { return isSelected; } void GenericEditor::deselect() { isSelected = false; repaint(); setWantsKeyboardFocus(false); } void GenericEditor::enable() { isEnabled = true; GenericProcessor* p = (GenericProcessor*) getProcessor(); p->enabledState(true); } void GenericEditor::disable() { isEnabled = false; GenericProcessor* p = (GenericProcessor*) getProcessor(); p->enabledState(false); } bool GenericEditor::getEnabledState() { GenericProcessor* p = (GenericProcessor*) getProcessor(); return p->enabledState(); } void GenericEditor::setEnabledState(bool t) { GenericProcessor* p = (GenericProcessor*) getProcessor(); p->enabledState(t); isEnabled = p->enabledState(); } void GenericEditor::paint (Graphics& g) { int offset = 0; GenericProcessor* p = (GenericProcessor*) getProcessor(); g.setColour(Colour(127,137,147)); g.fillAll(); if (isSelected) g.setColour(Colours::yellow); else g.setColour(Colours::darkgrey); g.fillRoundedRectangle(0,0,getWidth()-offset,getHeight(),7.0); if (isEnabled) g.setColour(backgroundColor); else g.setColour(Colours::lightgrey); // if (p->isSource()) { // g.setColour(Colours::red); // } else if (p->isSink()) { // g.setColour(Colours::blue); // } else if (p->isSplitter() || p->isMerger()) // { // g.setColour(Colours::darkgrey); // } else { // g.setColour(Colours::red); // } g.fillRoundedRectangle(1,1,getWidth()-(2+offset),getHeight()-2,6.0); g.setColour(Colours::grey); g.fillRoundedRectangle(4,15,getWidth()-(8+offset), getHeight()-19,5.0); g.fillRect(4,15,getWidth()-(8+offset), 20); Font titleFont = Font(14.0, Font::plain); //titleFont.setTypefaceName(T("Miso")); g.setFont(titleFont); if (isEnabled) { g.setColour(Colours::black); } else { g.setColour(Colours::grey); } g.drawText(name, 8, 4, 100, 7, Justification::left, false); }