andrewm@41: /* andrewm@41: ============================================================================== andrewm@41: andrewm@41: PreferencesWindow.h andrewm@41: Created: 17 Jun 2014 11:22:44pm andrewm@41: Author: Andrew McPherson andrewm@41: andrewm@41: ============================================================================== andrewm@41: */ andrewm@41: andrewm@41: #ifndef PREFERENCESWINDOW_H_INCLUDED andrewm@41: #define PREFERENCESWINDOW_H_INCLUDED andrewm@41: andrewm@50: #ifndef TOUCHKEYS_NO_GUI andrewm@50: andrewm@41: #include "../../JuceLibraryCode/JuceHeader.h" andrewm@41: #include "PreferencesComponent.h" andrewm@41: #include "../MainApplicationController.h" andrewm@41: andrewm@41: //============================================================================== andrewm@41: /* andrewm@41: */ andrewm@41: class PreferencesWindow : public DocumentWindow, public Timer andrewm@41: { andrewm@41: public: andrewm@41: PreferencesWindow(MainApplicationController& controller) andrewm@46: : DocumentWindow("Preferences", Colours::lightgrey, DocumentWindow::allButtons, false) andrewm@41: { andrewm@41: // Make a new preferences component andrewm@41: preferencesComponent_ = new PreferencesComponent(); andrewm@41: preferencesComponent_->setMainApplicationController(&controller); andrewm@41: andrewm@41: // Set properties andrewm@41: setContentOwned(preferencesComponent_, true); andrewm@41: setUsingNativeTitleBar(true); andrewm@41: setResizable(false, false); andrewm@41: andrewm@41: // Don't show window yet andrewm@45: setTopLeftPosition(60,60); andrewm@41: setVisible(false); andrewm@41: andrewm@41: // Start a timer that will keep the interface in sync with the application andrewm@41: startTimer(50); andrewm@41: } andrewm@41: andrewm@41: ~PreferencesWindow() andrewm@41: { andrewm@41: } andrewm@41: andrewm@41: // Method used by Juce timer which we will use for periodic UI updates andrewm@41: // from the underlying system state andrewm@41: void timerCallback() { andrewm@41: preferencesComponent_->synchronize(); andrewm@41: } andrewm@41: andrewm@41: void closeButtonPressed() andrewm@41: { andrewm@41: setVisible(false); andrewm@41: } andrewm@41: andrewm@41: private: andrewm@41: PreferencesComponent *preferencesComponent_; andrewm@41: andrewm@41: JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PreferencesWindow) andrewm@41: }; andrewm@41: andrewm@50: #endif // TOUCHKEYS_NO_GUI andrewm@41: andrewm@41: #endif // PREFERENCESWINDOW_H_INCLUDED