view Source/GUI/GraphicsDisplayWindow.h @ 55:19650b4076ee

Bug fixes for multiple MIDI zones and having polyphonic mode come up correctly on preset load.
author Andrew McPherson <andrewm@eecs.qmul.ac.uk>
date Fri, 23 Nov 2018 15:39:25 +0000
parents 78b9808a2c65
children
line wrap: on
line source
/*
  TouchKeys: multi-touch musical keyboard control software
  Copyright (c) 2013 Andrew McPherson

  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/>.
 
  =====================================================================

  GraphicsDisplayWindow.h: window containing an OpenGL graphics display,
  for example the KeyboardDisplay visualization.
*/

#ifndef __GRAPHICSDISPLAYWINDOW_H_AD5467BB__
#define __GRAPHICSDISPLAYWINDOW_H_AD5467BB__

#ifndef TOUCHKEYS_NO_GUI

#include "../JuceLibraryCode/JuceHeader.h"
#include "../Display/KeyboardDisplay.h"
#include "../Display/OpenGLJuceCanvas.h"

//==============================================================================
/*
*/
class GraphicsDisplayWindow    : public DocumentWindow
{
public:
    GraphicsDisplayWindow(String name, KeyboardDisplay& display)
    : DocumentWindow(name, Colours::lightgrey, DocumentWindow::allButtons, false),
      display_(display)
    {
        // Initialize an OpenGL graphics object as the content with a default size
        OpenGLJuceCanvas *canvas = new OpenGLJuceCanvas(display_);
        canvas->setSize(300,200);
        
        // Set properties
        setContentOwned(canvas, true);
        setUsingNativeTitleBar(true);
        setResizable(true, true);
        getConstrainer()->setFixedAspectRatio(display_.keyboardAspectRatio());
        setBoundsConstrained(getBounds());
        
        // Don't show window yet
        setVisible(false);
    }

    ~GraphicsDisplayWindow()
    {
    }
    
    void closeButtonPressed()
    {
        setVisible(false);
    }


private:
    KeyboardDisplay& display_;
    
    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (GraphicsDisplayWindow)
};

#endif  // TOUCHKEYS_NO_GUI

#endif  // __GRAPHICSDISPLAYWINDOW_H_AD5467BB__