annotate Source/GUI/ControlWindowMainComponent.h @ 16:61e3c9df4674

Fix bug where TouchKeys standalone mode turns off when mode is changed.
author Andrew McPherson <andrewm@eecs.qmul.ac.uk>
date Mon, 25 Nov 2013 21:36:02 +0000
parents 3580ffe87dc8
children 73d2ec21de9a
rev   line source
andrewm@0 1 /*
andrewm@0 2 ==============================================================================
andrewm@0 3
andrewm@0 4 This is an automatically generated GUI class created by the Introjucer!
andrewm@0 5
andrewm@0 6 Be careful when adding custom code to these files, as only the code within
andrewm@0 7 the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded
andrewm@0 8 and re-saved.
andrewm@0 9
andrewm@0 10 Created with Introjucer version: 3.1.0
andrewm@0 11
andrewm@0 12 ------------------------------------------------------------------------------
andrewm@0 13
andrewm@0 14 The Introjucer is part of the JUCE library - "Jules' Utility Class Extensions"
andrewm@0 15 Copyright 2004-13 by Raw Material Software Ltd.
andrewm@0 16
andrewm@0 17 ==============================================================================
andrewm@0 18 */
andrewm@0 19
andrewm@0 20 #ifndef __JUCE_HEADER_FD693E32C8291DFA__
andrewm@0 21 #define __JUCE_HEADER_FD693E32C8291DFA__
andrewm@0 22
andrewm@0 23 //[Headers] -- You can add your own extra header files here --
andrewm@0 24 #include "JuceHeader.h"
andrewm@0 25 #include "../MainApplicationController.h"
andrewm@0 26 //[/Headers]
andrewm@0 27
andrewm@0 28
andrewm@0 29
andrewm@0 30 //==============================================================================
andrewm@0 31 /**
andrewm@0 32 //[Comments]
andrewm@0 33 An auto-generated component, created by the Introjucer.
andrewm@0 34
andrewm@0 35 Describe your class and how it works here!
andrewm@0 36 //[/Comments]
andrewm@0 37 */
andrewm@0 38 class ControlWindowMainComponent : public Component,
andrewm@0 39 public TextEditor::Listener,
andrewm@0 40 public ComboBoxListener,
andrewm@0 41 public ButtonListener
andrewm@0 42 {
andrewm@0 43 public:
andrewm@0 44 //==============================================================================
andrewm@0 45 ControlWindowMainComponent ();
andrewm@0 46 ~ControlWindowMainComponent();
andrewm@0 47
andrewm@0 48 //==============================================================================
andrewm@0 49 //[UserMethods] -- You can add your own custom methods in this section.
andrewm@0 50 void setMainApplicationController(MainApplicationController *controller) {
andrewm@0 51 // Attach the user interface to the controller and vice-versa
andrewm@0 52 controller_ = controller;
andrewm@0 53 updateInputDeviceList();
andrewm@0 54 }
andrewm@0 55
andrewm@0 56 // TextEditor listener methods
andrewm@0 57 void textEditorTextChanged(TextEditor &editor) {}
andrewm@0 58 void textEditorReturnKeyPressed(TextEditor &editor);
andrewm@0 59 void textEditorEscapeKeyPressed(TextEditor &editor);
andrewm@0 60 void textEditorFocusLost(TextEditor &editor);
andrewm@0 61
andrewm@0 62 void synchronize();
andrewm@0 63 //[/UserMethods]
andrewm@0 64
andrewm@0 65 void paint (Graphics& g);
andrewm@0 66 void resized();
andrewm@0 67 void comboBoxChanged (ComboBox* comboBoxThatHasChanged);
andrewm@0 68 void buttonClicked (Button* buttonThatWasClicked);
andrewm@0 69
andrewm@0 70
andrewm@0 71
andrewm@0 72 private:
andrewm@0 73 //[UserVariables] -- You can add your own custom variables in this section.
andrewm@0 74 enum {
andrewm@0 75 // Offsets between Juce UI IDs and positions in vector
andrewm@0 76 kMidiInputDeviceComboBoxOffset = 3,
andrewm@0 77 kTouchkeysComponentComboBoxOffset = 1,
andrewm@0 78 kTouchkeysMaxOctave = 6
andrewm@0 79 };
andrewm@0 80
andrewm@0 81 void updateInputDeviceList();
andrewm@0 82 void updateOscHostPort();
andrewm@0 83 void updateKeyboardSegments();
andrewm@0 84
andrewm@0 85 MainApplicationController *controller_; // Pointer to the main application controller
andrewm@0 86 std::vector<int> midiInputDeviceIDs_;
andrewm@0 87 int lastSelectedMidiInputID_;
andrewm@0 88 int lastSegmentUniqueIdentifier_;
andrewm@0 89 //[/UserVariables]
andrewm@0 90
andrewm@0 91 //==============================================================================
andrewm@0 92 ScopedPointer<GroupComponent> dataLoggingGroupComponent;
andrewm@0 93 ScopedPointer<GroupComponent> midiInputGroupComponent;
andrewm@0 94 ScopedPointer<ComboBox> midiInputDeviceComboBox;
andrewm@0 95 ScopedPointer<Label> label;
andrewm@0 96 ScopedPointer<GroupComponent> groupComponent;
andrewm@0 97 ScopedPointer<Label> label2;
andrewm@0 98 ScopedPointer<ComboBox> touchkeyDeviceComboBox;
andrewm@0 99 ScopedPointer<Label> label3;
andrewm@0 100 ScopedPointer<TextButton> touchkeyStartButton;
andrewm@0 101 ScopedPointer<Label> touchkeyStatusLabel;
andrewm@0 102 ScopedPointer<GroupComponent> oscGroupComponent;
andrewm@0 103 ScopedPointer<Label> label7;
andrewm@0 104 ScopedPointer<TextEditor> oscHostTextEditor;
andrewm@0 105 ScopedPointer<Label> label8;
andrewm@0 106 ScopedPointer<TextEditor> oscPortTextEditor;
andrewm@0 107 ScopedPointer<ToggleButton> oscEnableButton;
andrewm@0 108 ScopedPointer<ToggleButton> oscEnableRawButton;
andrewm@0 109 ScopedPointer<Label> label4;
andrewm@0 110 ScopedPointer<ComboBox> touchkeyOctaveComboBox;
andrewm@0 111 ScopedPointer<TextButton> loggingButton;
andrewm@0 112 ScopedPointer<GroupComponent> oscInputGroupComponent;
andrewm@0 113 ScopedPointer<ToggleButton> oscInputEnableButton;
andrewm@0 114 ScopedPointer<Label> label6;
andrewm@0 115 ScopedPointer<TextEditor> oscInputPortTextEditor;
andrewm@0 116 ScopedPointer<TextButton> playLogButton;
andrewm@0 117 ScopedPointer<TabbedComponent> keyboardZoneTabbedComponent;
andrewm@0 118 ScopedPointer<TextButton> addZoneButton;
andrewm@0 119 ScopedPointer<TextButton> removeZoneButton;
andrewm@0 120 ScopedPointer<TextButton> touchkeyAutodetectButton;
andrewm@0 121
andrewm@0 122
andrewm@0 123 //==============================================================================
andrewm@0 124 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ControlWindowMainComponent)
andrewm@0 125 };
andrewm@0 126
andrewm@0 127 //[EndFile] You can add extra defines here...
andrewm@0 128 //[/EndFile]
andrewm@0 129
andrewm@0 130 #endif // __JUCE_HEADER_FD693E32C8291DFA__