@@ -607,7 +607,6 @@ | |||||
1DB68310EA4D6180FF948AA0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ProgressBar.h; path = ../../src/gui/components/controls/juce_ProgressBar.h; sourceTree = SOURCE_ROOT; }; | 1DB68310EA4D6180FF948AA0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ProgressBar.h; path = ../../src/gui/components/controls/juce_ProgressBar.h; sourceTree = SOURCE_ROOT; }; | ||||
3CE16163A43A6E67428385EE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Slider.cpp; path = ../../src/gui/components/controls/juce_Slider.cpp; sourceTree = SOURCE_ROOT; }; | 3CE16163A43A6E67428385EE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Slider.cpp; path = ../../src/gui/components/controls/juce_Slider.cpp; sourceTree = SOURCE_ROOT; }; | ||||
E698677EEC8E88CAFF542764 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Slider.h; path = ../../src/gui/components/controls/juce_Slider.h; sourceTree = SOURCE_ROOT; }; | E698677EEC8E88CAFF542764 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Slider.h; path = ../../src/gui/components/controls/juce_Slider.h; sourceTree = SOURCE_ROOT; }; | ||||
BBF1D5E94840603712BDB13D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SliderListener.h; path = ../../src/gui/components/controls/juce_SliderListener.h; sourceTree = SOURCE_ROOT; }; | |||||
6BB68B37C7B0BB4DA8326647 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TableHeaderComponent.cpp; path = ../../src/gui/components/controls/juce_TableHeaderComponent.cpp; sourceTree = SOURCE_ROOT; }; | 6BB68B37C7B0BB4DA8326647 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TableHeaderComponent.cpp; path = ../../src/gui/components/controls/juce_TableHeaderComponent.cpp; sourceTree = SOURCE_ROOT; }; | ||||
1EA844F7CC5377A14B0FD21C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TableHeaderComponent.h; path = ../../src/gui/components/controls/juce_TableHeaderComponent.h; sourceTree = SOURCE_ROOT; }; | 1EA844F7CC5377A14B0FD21C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TableHeaderComponent.h; path = ../../src/gui/components/controls/juce_TableHeaderComponent.h; sourceTree = SOURCE_ROOT; }; | ||||
76E073B2A3F59A3ACD20CC87 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TableListBox.cpp; path = ../../src/gui/components/controls/juce_TableListBox.cpp; sourceTree = SOURCE_ROOT; }; | 76E073B2A3F59A3ACD20CC87 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TableListBox.cpp; path = ../../src/gui/components/controls/juce_TableListBox.cpp; sourceTree = SOURCE_ROOT; }; | ||||
@@ -1319,7 +1318,6 @@ | |||||
1DB68310EA4D6180FF948AA0, | 1DB68310EA4D6180FF948AA0, | ||||
3CE16163A43A6E67428385EE, | 3CE16163A43A6E67428385EE, | ||||
E698677EEC8E88CAFF542764, | E698677EEC8E88CAFF542764, | ||||
BBF1D5E94840603712BDB13D, | |||||
6BB68B37C7B0BB4DA8326647, | 6BB68B37C7B0BB4DA8326647, | ||||
1EA844F7CC5377A14B0FD21C, | 1EA844F7CC5377A14B0FD21C, | ||||
76E073B2A3F59A3ACD20CC87, | 76E073B2A3F59A3ACD20CC87, | ||||
@@ -491,7 +491,6 @@ | |||||
<File RelativePath="..\..\src\gui\components\controls\juce_ProgressBar.h"/> | <File RelativePath="..\..\src\gui\components\controls\juce_ProgressBar.h"/> | ||||
<File RelativePath="..\..\src\gui\components\controls\juce_Slider.cpp"/> | <File RelativePath="..\..\src\gui\components\controls\juce_Slider.cpp"/> | ||||
<File RelativePath="..\..\src\gui\components\controls\juce_Slider.h"/> | <File RelativePath="..\..\src\gui\components\controls\juce_Slider.h"/> | ||||
<File RelativePath="..\..\src\gui\components\controls\juce_SliderListener.h"/> | |||||
<File RelativePath="..\..\src\gui\components\controls\juce_TableHeaderComponent.cpp"/> | <File RelativePath="..\..\src\gui\components\controls\juce_TableHeaderComponent.cpp"/> | ||||
<File RelativePath="..\..\src\gui\components\controls\juce_TableHeaderComponent.h"/> | <File RelativePath="..\..\src\gui\components\controls\juce_TableHeaderComponent.h"/> | ||||
<File RelativePath="..\..\src\gui\components\controls\juce_TableListBox.cpp"/> | <File RelativePath="..\..\src\gui\components\controls\juce_TableListBox.cpp"/> | ||||
@@ -491,7 +491,6 @@ | |||||
<File RelativePath="..\..\src\gui\components\controls\juce_ProgressBar.h"/> | <File RelativePath="..\..\src\gui\components\controls\juce_ProgressBar.h"/> | ||||
<File RelativePath="..\..\src\gui\components\controls\juce_Slider.cpp"/> | <File RelativePath="..\..\src\gui\components\controls\juce_Slider.cpp"/> | ||||
<File RelativePath="..\..\src\gui\components\controls\juce_Slider.h"/> | <File RelativePath="..\..\src\gui\components\controls\juce_Slider.h"/> | ||||
<File RelativePath="..\..\src\gui\components\controls\juce_SliderListener.h"/> | |||||
<File RelativePath="..\..\src\gui\components\controls\juce_TableHeaderComponent.cpp"/> | <File RelativePath="..\..\src\gui\components\controls\juce_TableHeaderComponent.cpp"/> | ||||
<File RelativePath="..\..\src\gui\components\controls\juce_TableHeaderComponent.h"/> | <File RelativePath="..\..\src\gui\components\controls\juce_TableHeaderComponent.h"/> | ||||
<File RelativePath="..\..\src\gui\components\controls\juce_TableListBox.cpp"/> | <File RelativePath="..\..\src\gui\components\controls\juce_TableListBox.cpp"/> | ||||
@@ -493,7 +493,6 @@ | |||||
<File RelativePath="..\..\src\gui\components\controls\juce_ProgressBar.h"/> | <File RelativePath="..\..\src\gui\components\controls\juce_ProgressBar.h"/> | ||||
<File RelativePath="..\..\src\gui\components\controls\juce_Slider.cpp"/> | <File RelativePath="..\..\src\gui\components\controls\juce_Slider.cpp"/> | ||||
<File RelativePath="..\..\src\gui\components\controls\juce_Slider.h"/> | <File RelativePath="..\..\src\gui\components\controls\juce_Slider.h"/> | ||||
<File RelativePath="..\..\src\gui\components\controls\juce_SliderListener.h"/> | |||||
<File RelativePath="..\..\src\gui\components\controls\juce_TableHeaderComponent.cpp"/> | <File RelativePath="..\..\src\gui\components\controls\juce_TableHeaderComponent.cpp"/> | ||||
<File RelativePath="..\..\src\gui\components\controls\juce_TableHeaderComponent.h"/> | <File RelativePath="..\..\src\gui\components\controls\juce_TableHeaderComponent.h"/> | ||||
<File RelativePath="..\..\src\gui\components\controls\juce_TableListBox.cpp"/> | <File RelativePath="..\..\src\gui\components\controls\juce_TableListBox.cpp"/> | ||||
@@ -576,7 +576,6 @@ | |||||
<ClInclude Include="..\..\src\gui\components\controls\juce_ListBox.h"/> | <ClInclude Include="..\..\src\gui\components\controls\juce_ListBox.h"/> | ||||
<ClInclude Include="..\..\src\gui\components\controls\juce_ProgressBar.h"/> | <ClInclude Include="..\..\src\gui\components\controls\juce_ProgressBar.h"/> | ||||
<ClInclude Include="..\..\src\gui\components\controls\juce_Slider.h"/> | <ClInclude Include="..\..\src\gui\components\controls\juce_Slider.h"/> | ||||
<ClInclude Include="..\..\src\gui\components\controls\juce_SliderListener.h"/> | |||||
<ClInclude Include="..\..\src\gui\components\controls\juce_TableHeaderComponent.h"/> | <ClInclude Include="..\..\src\gui\components\controls\juce_TableHeaderComponent.h"/> | ||||
<ClInclude Include="..\..\src\gui\components\controls\juce_TableListBox.h"/> | <ClInclude Include="..\..\src\gui\components\controls\juce_TableListBox.h"/> | ||||
<ClInclude Include="..\..\src\gui\components\controls\juce_TextEditor.h"/> | <ClInclude Include="..\..\src\gui\components\controls\juce_TextEditor.h"/> | ||||
@@ -1650,9 +1650,6 @@ | |||||
<ClInclude Include="..\..\src\gui\components\controls\juce_Slider.h"> | <ClInclude Include="..\..\src\gui\components\controls\juce_Slider.h"> | ||||
<Filter>Juce\Source\gui\components\controls</Filter> | <Filter>Juce\Source\gui\components\controls</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
<ClInclude Include="..\..\src\gui\components\controls\juce_SliderListener.h"> | |||||
<Filter>Juce\Source\gui\components\controls</Filter> | |||||
</ClInclude> | |||||
<ClInclude Include="..\..\src\gui\components\controls\juce_TableHeaderComponent.h"> | <ClInclude Include="..\..\src\gui\components\controls\juce_TableHeaderComponent.h"> | ||||
<Filter>Juce\Source\gui\components\controls</Filter> | <Filter>Juce\Source\gui\components\controls</Filter> | ||||
</ClInclude> | </ClInclude> | ||||
@@ -607,7 +607,6 @@ | |||||
1DB68310EA4D6180FF948AA0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ProgressBar.h; path = ../../src/gui/components/controls/juce_ProgressBar.h; sourceTree = SOURCE_ROOT; }; | 1DB68310EA4D6180FF948AA0 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_ProgressBar.h; path = ../../src/gui/components/controls/juce_ProgressBar.h; sourceTree = SOURCE_ROOT; }; | ||||
3CE16163A43A6E67428385EE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Slider.cpp; path = ../../src/gui/components/controls/juce_Slider.cpp; sourceTree = SOURCE_ROOT; }; | 3CE16163A43A6E67428385EE = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_Slider.cpp; path = ../../src/gui/components/controls/juce_Slider.cpp; sourceTree = SOURCE_ROOT; }; | ||||
E698677EEC8E88CAFF542764 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Slider.h; path = ../../src/gui/components/controls/juce_Slider.h; sourceTree = SOURCE_ROOT; }; | E698677EEC8E88CAFF542764 = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_Slider.h; path = ../../src/gui/components/controls/juce_Slider.h; sourceTree = SOURCE_ROOT; }; | ||||
BBF1D5E94840603712BDB13D = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_SliderListener.h; path = ../../src/gui/components/controls/juce_SliderListener.h; sourceTree = SOURCE_ROOT; }; | |||||
6BB68B37C7B0BB4DA8326647 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TableHeaderComponent.cpp; path = ../../src/gui/components/controls/juce_TableHeaderComponent.cpp; sourceTree = SOURCE_ROOT; }; | 6BB68B37C7B0BB4DA8326647 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TableHeaderComponent.cpp; path = ../../src/gui/components/controls/juce_TableHeaderComponent.cpp; sourceTree = SOURCE_ROOT; }; | ||||
1EA844F7CC5377A14B0FD21C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TableHeaderComponent.h; path = ../../src/gui/components/controls/juce_TableHeaderComponent.h; sourceTree = SOURCE_ROOT; }; | 1EA844F7CC5377A14B0FD21C = { isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = juce_TableHeaderComponent.h; path = ../../src/gui/components/controls/juce_TableHeaderComponent.h; sourceTree = SOURCE_ROOT; }; | ||||
76E073B2A3F59A3ACD20CC87 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TableListBox.cpp; path = ../../src/gui/components/controls/juce_TableListBox.cpp; sourceTree = SOURCE_ROOT; }; | 76E073B2A3F59A3ACD20CC87 = { isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = juce_TableListBox.cpp; path = ../../src/gui/components/controls/juce_TableListBox.cpp; sourceTree = SOURCE_ROOT; }; | ||||
@@ -1319,7 +1318,6 @@ | |||||
1DB68310EA4D6180FF948AA0, | 1DB68310EA4D6180FF948AA0, | ||||
3CE16163A43A6E67428385EE, | 3CE16163A43A6E67428385EE, | ||||
E698677EEC8E88CAFF542764, | E698677EEC8E88CAFF542764, | ||||
BBF1D5E94840603712BDB13D, | |||||
6BB68B37C7B0BB4DA8326647, | 6BB68B37C7B0BB4DA8326647, | ||||
1EA844F7CC5377A14B0FD21C, | 1EA844F7CC5377A14B0FD21C, | ||||
76E073B2A3F59A3ACD20CC87, | 76E073B2A3F59A3ACD20CC87, | ||||
@@ -619,8 +619,6 @@ | |||||
file="src/gui/components/controls/juce_Slider.cpp"/> | file="src/gui/components/controls/juce_Slider.cpp"/> | ||||
<FILE id="dvlZ7M2B1" name="juce_Slider.h" compile="0" resource="0" | <FILE id="dvlZ7M2B1" name="juce_Slider.h" compile="0" resource="0" | ||||
file="src/gui/components/controls/juce_Slider.h"/> | file="src/gui/components/controls/juce_Slider.h"/> | ||||
<FILE id="HpGigit7h" name="juce_SliderListener.h" compile="0" resource="0" | |||||
file="src/gui/components/controls/juce_SliderListener.h"/> | |||||
<FILE id="dkEQwSTAl" name="juce_TableHeaderComponent.cpp" compile="1" | <FILE id="dkEQwSTAl" name="juce_TableHeaderComponent.cpp" compile="1" | ||||
resource="0" file="src/gui/components/controls/juce_TableHeaderComponent.cpp"/> | resource="0" file="src/gui/components/controls/juce_TableHeaderComponent.cpp"/> | ||||
<FILE id="EJ1tYAzIS" name="juce_TableHeaderComponent.h" compile="0" | <FILE id="EJ1tYAzIS" name="juce_TableHeaderComponent.h" compile="0" | ||||
@@ -93,7 +93,7 @@ void JuceDemoPluginAudioProcessorEditor::timerCallback() | |||||
delaySlider->setValue (ourProcessor->delay, false); | delaySlider->setValue (ourProcessor->delay, false); | ||||
} | } | ||||
// This is our SliderListener callback, when the user drags a slider. | |||||
// This is our Slider::Listener callback, when the user drags a slider. | |||||
void JuceDemoPluginAudioProcessorEditor::sliderValueChanged (Slider* slider) | void JuceDemoPluginAudioProcessorEditor::sliderValueChanged (Slider* slider) | ||||
{ | { | ||||
if (slider == gainSlider) | if (slider == gainSlider) | ||||
@@ -20,7 +20,7 @@ | |||||
/** This is the editor component that our filter will display. | /** This is the editor component that our filter will display. | ||||
*/ | */ | ||||
class JuceDemoPluginAudioProcessorEditor : public AudioProcessorEditor, | class JuceDemoPluginAudioProcessorEditor : public AudioProcessorEditor, | ||||
public SliderListener, | |||||
public Slider::Listener, | |||||
public Timer | public Timer | ||||
{ | { | ||||
public: | public: | ||||
@@ -38,7 +38,7 @@ | |||||
that the other plugin wrappers use. | that the other plugin wrappers use. | ||||
*/ | */ | ||||
class StandaloneFilterWindow : public DocumentWindow, | class StandaloneFilterWindow : public DocumentWindow, | ||||
public ButtonListener | |||||
public Button::Listener | |||||
{ | { | ||||
public: | public: | ||||
//============================================================================== | //============================================================================== | ||||
@@ -31,7 +31,7 @@ | |||||
This is our top-level component for our plugin.. | This is our top-level component for our plugin.. | ||||
*/ | */ | ||||
class JuceDemoBrowserPlugin : public BrowserPluginComponent, | class JuceDemoBrowserPlugin : public BrowserPluginComponent, | ||||
public ButtonListener | |||||
public Button::Listener | |||||
{ | { | ||||
public: | public: | ||||
JuceDemoBrowserPlugin() | JuceDemoBrowserPlugin() | ||||
@@ -39,8 +39,8 @@ class DemoThumbnailComp; | |||||
*/ | */ | ||||
class AudioDemoPlaybackPage : public Component, | class AudioDemoPlaybackPage : public Component, | ||||
public FileBrowserListener, | public FileBrowserListener, | ||||
public ButtonListener, | |||||
public SliderListener | |||||
public Button::Listener, | |||||
public Slider::Listener | |||||
{ | { | ||||
public: | public: | ||||
//============================================================================== | //============================================================================== | ||||
@@ -30,9 +30,9 @@ | |||||
//============================================================================== | //============================================================================== | ||||
class CameraDemo : public Component, | class CameraDemo : public Component, | ||||
public ComboBoxListener, | |||||
public ButtonListener, | |||||
public CameraImageListener | |||||
public ComboBox::Listener, | |||||
public Button::Listener, | |||||
public CameraDevice::Listener | |||||
{ | { | ||||
public: | public: | ||||
//============================================================================== | //============================================================================== | ||||
@@ -29,8 +29,8 @@ | |||||
//============================================================================== | //============================================================================== | ||||
class FontsAndTextDemo : public Component, | class FontsAndTextDemo : public Component, | ||||
public ListBoxModel, | public ListBoxModel, | ||||
public ButtonListener, | |||||
public SliderListener | |||||
public Button::Listener, | |||||
public Slider::Listener | |||||
{ | { | ||||
Array<Font> fonts; | Array<Font> fonts; | ||||
ListBox* listBox; | ListBox* listBox; | ||||
@@ -28,8 +28,8 @@ | |||||
//============================================================================== | //============================================================================== | ||||
class InterprocessCommsDemo : public Component, | class InterprocessCommsDemo : public Component, | ||||
public ButtonListener, | |||||
public ComboBoxListener | |||||
public Button::Listener, | |||||
public ComboBox::Listener | |||||
{ | { | ||||
public: | public: | ||||
//============================================================================== | //============================================================================== | ||||
@@ -38,8 +38,8 @@ class RenderingTestCanvas; | |||||
//[/Comments] | //[/Comments] | ||||
*/ | */ | ||||
class RenderingTestComponent : public Component, | class RenderingTestComponent : public Component, | ||||
public ComboBoxListener, | |||||
public SliderListener | |||||
public ComboBox::Listener, | |||||
public Slider::Listener | |||||
{ | { | ||||
public: | public: | ||||
//============================================================================== | //============================================================================== | ||||
@@ -211,7 +211,7 @@ public: | |||||
//============================================================================== | //============================================================================== | ||||
class ThreadingDemo : public Component, | class ThreadingDemo : public Component, | ||||
public Timer, | public Timer, | ||||
public ButtonListener | |||||
public Button::Listener | |||||
{ | { | ||||
bool isUsingPool; | bool isUsingPool; | ||||
ThreadPool pool; | ThreadPool pool; | ||||
@@ -118,7 +118,7 @@ public: | |||||
//============================================================================== | //============================================================================== | ||||
class TreeViewDemo : public Component, | class TreeViewDemo : public Component, | ||||
public DragAndDropContainer, | public DragAndDropContainer, | ||||
public ButtonListener | |||||
public Button::Listener | |||||
{ | { | ||||
XmlElement* treeXml; | XmlElement* treeXml; | ||||
@@ -65,8 +65,8 @@ private: | |||||
//============================================================================== | //============================================================================== | ||||
class WebBrowserDemo : public Component, | class WebBrowserDemo : public Component, | ||||
public TextEditorListener, | |||||
public ButtonListener | |||||
public TextEditor::Listener, | |||||
public Button::Listener | |||||
{ | { | ||||
public: | public: | ||||
//============================================================================== | //============================================================================== | ||||
@@ -477,7 +477,7 @@ static Component* createRadioButtonPage() | |||||
//============================================================================== | //============================================================================== | ||||
class ButtonsPage : public Component, | class ButtonsPage : public Component, | ||||
public ButtonListener | |||||
public Button::Listener | |||||
{ | { | ||||
public: | public: | ||||
ButtonsPage (ButtonListener* buttonListener) | ButtonsPage (ButtonListener* buttonListener) | ||||
@@ -643,8 +643,8 @@ static Component* createMiscPage() | |||||
//============================================================================== | //============================================================================== | ||||
class ToolbarDemoComp : public Component, | class ToolbarDemoComp : public Component, | ||||
public SliderListener, | |||||
public ButtonListener | |||||
public Slider::Listener, | |||||
public Button::Listener | |||||
{ | { | ||||
public: | public: | ||||
ToolbarDemoComp() | ToolbarDemoComp() | ||||
@@ -917,7 +917,7 @@ private: | |||||
//============================================================================== | //============================================================================== | ||||
class DemoTabbedComponent : public TabbedComponent, | class DemoTabbedComponent : public TabbedComponent, | ||||
public ButtonListener | |||||
public Button::Listener | |||||
{ | { | ||||
public: | public: | ||||
DemoTabbedComponent() | DemoTabbedComponent() | ||||
@@ -1115,7 +1115,7 @@ public: | |||||
const int numGroups = 4; | const int numGroups = 4; | ||||
class WidgetsDemo : public Component, | class WidgetsDemo : public Component, | ||||
public ButtonListener | |||||
public Button::Listener | |||||
{ | { | ||||
TextButton* menuButton; | TextButton* menuButton; | ||||
ToggleButton* enableButton; | ToggleButton* enableButton; | ||||
@@ -41362,7 +41362,7 @@ void Component::takeKeyboardFocus (const FocusChangeType cause) | |||||
if (peer->isFocused() && currentlyFocusedComponent != this) | if (peer->isFocused() && currentlyFocusedComponent != this) | ||||
{ | { | ||||
Component* const componentLosingFocus = currentlyFocusedComponent; | |||||
SafePointer<Component> componentLosingFocus (currentlyFocusedComponent); | |||||
currentlyFocusedComponent = this; | currentlyFocusedComponent = this; | ||||
@@ -41370,7 +41370,7 @@ void Component::takeKeyboardFocus (const FocusChangeType cause) | |||||
// call this after setting currentlyFocusedComponent so that the one that's | // call this after setting currentlyFocusedComponent so that the one that's | ||||
// losing it has a chance to see where focus is going | // losing it has a chance to see where focus is going | ||||
if (componentLosingFocus->isValidComponent()) | |||||
if (componentLosingFocus != 0) | |||||
componentLosingFocus->internalFocusLoss (cause); | componentLosingFocus->internalFocusLoss (cause); | ||||
if (currentlyFocusedComponent == this) | if (currentlyFocusedComponent == this) | ||||
@@ -41502,11 +41502,12 @@ Component* JUCE_CALLTYPE Component::getCurrentlyFocusedComponent() throw() | |||||
void Component::giveAwayFocus() | void Component::giveAwayFocus() | ||||
{ | { | ||||
// use a copy so we can clear the value before the call | // use a copy so we can clear the value before the call | ||||
Component* const componentLosingFocus = currentlyFocusedComponent; | |||||
SafePointer<Component> componentLosingFocus (currentlyFocusedComponent); | |||||
currentlyFocusedComponent = 0; | currentlyFocusedComponent = 0; | ||||
Desktop::getInstance().triggerFocusCallback(); | Desktop::getInstance().triggerFocusCallback(); | ||||
if (componentLosingFocus->isValidComponent()) | |||||
if (componentLosingFocus != 0) | |||||
componentLosingFocus->internalFocusLoss (focusChangedDirectly); | componentLosingFocus->internalFocusLoss (focusChangedDirectly); | ||||
} | } | ||||
@@ -42539,12 +42540,12 @@ void Button::handleCommandMessage (int commandId) | |||||
} | } | ||||
} | } | ||||
void Button::addButtonListener (ButtonListener* const newListener) | |||||
void Button::addButtonListener (Listener* const newListener) | |||||
{ | { | ||||
buttonListeners.add (newListener); | buttonListeners.add (newListener); | ||||
} | } | ||||
void Button::removeButtonListener (ButtonListener* const listener) | |||||
void Button::removeButtonListener (Listener* const listener) | |||||
{ | { | ||||
buttonListeners.remove (listener); | buttonListeners.remove (listener); | ||||
} | } | ||||
@@ -42565,7 +42566,7 @@ void Button::sendClickMessage (const ModifierKeys& modifiers) | |||||
clicked (modifiers); | clicked (modifiers); | ||||
if (! checker.shouldBailOut()) | if (! checker.shouldBailOut()) | ||||
buttonListeners.callChecked (checker, &ButtonListener::buttonClicked, this); | |||||
buttonListeners.callChecked (checker, &Listener::buttonClicked, this); | |||||
} | } | ||||
void Button::sendStateMessage() | void Button::sendStateMessage() | ||||
@@ -42575,7 +42576,7 @@ void Button::sendStateMessage() | |||||
buttonStateChanged(); | buttonStateChanged(); | ||||
if (! checker.shouldBailOut()) | if (! checker.shouldBailOut()) | ||||
buttonListeners.callChecked (checker, &ButtonListener::buttonStateChanged, this); | |||||
buttonListeners.callChecked (checker, &Listener::buttonStateChanged, this); | |||||
} | } | ||||
void Button::paint (Graphics& g) | void Button::paint (Graphics& g) | ||||
@@ -46956,12 +46957,12 @@ void ComboBox::mouseUp (const MouseEvent& e2) | |||||
} | } | ||||
} | } | ||||
void ComboBox::addListener (ComboBoxListener* const listener) throw() | |||||
void ComboBox::addListener (Listener* const listener) throw() | |||||
{ | { | ||||
listeners.add (listener); | listeners.add (listener); | ||||
} | } | ||||
void ComboBox::removeListener (ComboBoxListener* const listener) throw() | |||||
void ComboBox::removeListener (Listener* const listener) throw() | |||||
{ | { | ||||
listeners.remove (listener); | listeners.remove (listener); | ||||
} | } | ||||
@@ -46969,7 +46970,7 @@ void ComboBox::removeListener (ComboBoxListener* const listener) throw() | |||||
void ComboBox::handleAsyncUpdate() | void ComboBox::handleAsyncUpdate() | ||||
{ | { | ||||
Component::BailOutChecker checker (this); | Component::BailOutChecker checker (this); | ||||
listeners.callChecked (checker, &ComboBoxListener::comboBoxChanged, this); | |||||
listeners.callChecked (checker, &Listener::comboBoxChanged, this); | |||||
} | } | ||||
END_JUCE_NAMESPACE | END_JUCE_NAMESPACE | ||||
@@ -47342,12 +47343,12 @@ KeyboardFocusTraverser* Label::createFocusTraverser() | |||||
return new LabelKeyboardFocusTraverser(); | return new LabelKeyboardFocusTraverser(); | ||||
} | } | ||||
void Label::addListener (LabelListener* const listener) throw() | |||||
void Label::addListener (Listener* const listener) throw() | |||||
{ | { | ||||
listeners.add (listener); | listeners.add (listener); | ||||
} | } | ||||
void Label::removeListener (LabelListener* const listener) throw() | |||||
void Label::removeListener (Listener* const listener) throw() | |||||
{ | { | ||||
listeners.remove (listener); | listeners.remove (listener); | ||||
} | } | ||||
@@ -47355,7 +47356,7 @@ void Label::removeListener (LabelListener* const listener) throw() | |||||
void Label::callChangeListeners() | void Label::callChangeListeners() | ||||
{ | { | ||||
Component::BailOutChecker checker (this); | Component::BailOutChecker checker (this); | ||||
listeners.callChecked (checker, &LabelListener::labelTextChanged, this); | |||||
listeners.callChecked (checker, &Listener::labelTextChanged, this); | |||||
} | } | ||||
void Label::textEditorTextChanged (TextEditor& ed) | void Label::textEditorTextChanged (TextEditor& ed) | ||||
@@ -48580,7 +48581,7 @@ void Slider::handleAsyncUpdate() | |||||
cancelPendingUpdate(); | cancelPendingUpdate(); | ||||
Component::BailOutChecker checker (this); | Component::BailOutChecker checker (this); | ||||
listeners.callChecked (checker, &SliderListener::sliderValueChanged, this); | |||||
listeners.callChecked (checker, &Listener::sliderValueChanged, this); | |||||
} | } | ||||
void Slider::sendDragStart() | void Slider::sendDragStart() | ||||
@@ -48588,7 +48589,7 @@ void Slider::sendDragStart() | |||||
startedDragging(); | startedDragging(); | ||||
Component::BailOutChecker checker (this); | Component::BailOutChecker checker (this); | ||||
listeners.callChecked (checker, &SliderListener::sliderDragStarted, this); | |||||
listeners.callChecked (checker, &Listener::sliderDragStarted, this); | |||||
} | } | ||||
void Slider::sendDragEnd() | void Slider::sendDragEnd() | ||||
@@ -48598,15 +48599,15 @@ void Slider::sendDragEnd() | |||||
sliderBeingDragged = -1; | sliderBeingDragged = -1; | ||||
Component::BailOutChecker checker (this); | Component::BailOutChecker checker (this); | ||||
listeners.callChecked (checker, &SliderListener::sliderDragEnded, this); | |||||
listeners.callChecked (checker, &Listener::sliderDragEnded, this); | |||||
} | } | ||||
void Slider::addListener (SliderListener* const listener) | |||||
void Slider::addListener (Listener* const listener) | |||||
{ | { | ||||
listeners.add (listener); | listeners.add (listener); | ||||
} | } | ||||
void Slider::removeListener (SliderListener* const listener) | |||||
void Slider::removeListener (Listener* const listener) | |||||
{ | { | ||||
listeners.remove (listener); | listeners.remove (listener); | ||||
} | } | ||||
@@ -49836,11 +49837,11 @@ void Slider::mouseWheelMove (const MouseEvent& e, float wheelIncrementX, float w | |||||
} | } | ||||
} | } | ||||
void SliderListener::sliderDragStarted (Slider*) | |||||
void Slider::Listener::sliderDragStarted (Slider*) | |||||
{ | { | ||||
} | } | ||||
void SliderListener::sliderDragEnded (Slider*) | |||||
void Slider::Listener::sliderDragEnded (Slider*) | |||||
{ | { | ||||
} | } | ||||
@@ -50299,12 +50300,12 @@ void TableHeaderComponent::restoreFromString (const String& storedVersion) | |||||
} | } | ||||
} | } | ||||
void TableHeaderComponent::addListener (TableHeaderListener* const newListener) | |||||
void TableHeaderComponent::addListener (Listener* const newListener) | |||||
{ | { | ||||
listeners.addIfNotAlreadyThere (newListener); | listeners.addIfNotAlreadyThere (newListener); | ||||
} | } | ||||
void TableHeaderComponent::removeListener (TableHeaderListener* const listenerToRemove) | |||||
void TableHeaderComponent::removeListener (Listener* const listenerToRemove) | |||||
{ | { | ||||
listeners.removeValue (listenerToRemove); | listeners.removeValue (listenerToRemove); | ||||
} | } | ||||
@@ -50742,7 +50743,7 @@ void TableHeaderComponent::showColumnChooserMenu (const int columnIdClicked) | |||||
} | } | ||||
} | } | ||||
void TableHeaderListener::tableColumnDraggingChanged (TableHeaderComponent*, int) | |||||
void TableHeaderComponent::Listener::tableColumnDraggingChanged (TableHeaderComponent*, int) | |||||
{ | { | ||||
} | } | ||||
@@ -52504,12 +52505,12 @@ void TextEditor::escapePressed() | |||||
postCommandMessage (TextEditorDefs::escapeKeyMessageId); | postCommandMessage (TextEditorDefs::escapeKeyMessageId); | ||||
} | } | ||||
void TextEditor::addListener (TextEditorListener* const newListener) | |||||
void TextEditor::addListener (Listener* const newListener) | |||||
{ | { | ||||
listeners.add (newListener); | listeners.add (newListener); | ||||
} | } | ||||
void TextEditor::removeListener (TextEditorListener* const listenerToRemove) | |||||
void TextEditor::removeListener (Listener* const listenerToRemove) | |||||
{ | { | ||||
listeners.remove (listenerToRemove); | listeners.remove (listenerToRemove); | ||||
} | } | ||||
@@ -53426,19 +53427,19 @@ void TextEditor::handleCommandMessage (const int commandId) | |||||
switch (commandId) | switch (commandId) | ||||
{ | { | ||||
case TextEditorDefs::textChangeMessageId: | case TextEditorDefs::textChangeMessageId: | ||||
listeners.callChecked (checker, &TextEditorListener::textEditorTextChanged, (TextEditor&) *this); | |||||
listeners.callChecked (checker, &Listener::textEditorTextChanged, (TextEditor&) *this); | |||||
break; | break; | ||||
case TextEditorDefs::returnKeyMessageId: | case TextEditorDefs::returnKeyMessageId: | ||||
listeners.callChecked (checker, &TextEditorListener::textEditorReturnKeyPressed, (TextEditor&) *this); | |||||
listeners.callChecked (checker, &Listener::textEditorReturnKeyPressed, (TextEditor&) *this); | |||||
break; | break; | ||||
case TextEditorDefs::escapeKeyMessageId: | case TextEditorDefs::escapeKeyMessageId: | ||||
listeners.callChecked (checker, &TextEditorListener::textEditorEscapeKeyPressed, (TextEditor&) *this); | |||||
listeners.callChecked (checker, &Listener::textEditorEscapeKeyPressed, (TextEditor&) *this); | |||||
break; | break; | ||||
case TextEditorDefs::focusLossMessageId: | case TextEditorDefs::focusLossMessageId: | ||||
listeners.callChecked (checker, &TextEditorListener::textEditorFocusLost, (TextEditor&) *this); | |||||
listeners.callChecked (checker, &Listener::textEditorFocusLost, (TextEditor&) *this); | |||||
break; | break; | ||||
default: | default: | ||||
@@ -53989,7 +53990,7 @@ private: | |||||
ToolbarSpacerComp& operator= (const ToolbarSpacerComp&); | ToolbarSpacerComp& operator= (const ToolbarSpacerComp&); | ||||
}; | }; | ||||
class MissingItemsComponent : public PopupMenuCustomComponent | |||||
class Toolbar::MissingItemsComponent : public PopupMenuCustomComponent | |||||
{ | { | ||||
public: | public: | ||||
MissingItemsComponent (Toolbar& owner_, const int height_) | MissingItemsComponent (Toolbar& owner_, const int height_) | ||||
@@ -54590,8 +54591,8 @@ private: | |||||
Toolbar* const toolbar; | Toolbar* const toolbar; | ||||
class CustomiserPanel : public Component, | class CustomiserPanel : public Component, | ||||
private ComboBoxListener, | |||||
private ButtonListener | |||||
private ComboBox::Listener, | |||||
private Button::Listener | |||||
{ | { | ||||
public: | public: | ||||
CustomiserPanel (ToolbarItemFactory& factory_, | CustomiserPanel (ToolbarItemFactory& factory_, | ||||
@@ -61949,12 +61950,12 @@ void ScrollBar::setButtonRepeatSpeed (const int initialDelayInMillisecs_, | |||||
} | } | ||||
} | } | ||||
void ScrollBar::addListener (ScrollBarListener* const listener) | |||||
void ScrollBar::addListener (Listener* const listener) | |||||
{ | { | ||||
listeners.add (listener); | listeners.add (listener); | ||||
} | } | ||||
void ScrollBar::removeListener (ScrollBarListener* const listener) | |||||
void ScrollBar::removeListener (Listener* const listener) | |||||
{ | { | ||||
listeners.remove (listener); | listeners.remove (listener); | ||||
} | } | ||||
@@ -61962,7 +61963,7 @@ void ScrollBar::removeListener (ScrollBarListener* const listener) | |||||
void ScrollBar::handleAsyncUpdate() | void ScrollBar::handleAsyncUpdate() | ||||
{ | { | ||||
double start = visibleRange.getStart(); // (need to use a temp variable for VC7 compatibility) | double start = visibleRange.getStart(); // (need to use a temp variable for VC7 compatibility) | ||||
listeners.call (&ScrollBarListener::scrollBarMoved, this, start); | |||||
listeners.call (&Listener::scrollBarMoved, this, start); | |||||
} | } | ||||
void ScrollBar::updateThumbPosition() | void ScrollBar::updateThumbPosition() | ||||
@@ -67839,12 +67840,12 @@ void MenuBarModel::setApplicationCommandManagerToWatch (ApplicationCommandManage | |||||
} | } | ||||
} | } | ||||
void MenuBarModel::addListener (MenuBarModelListener* const newListener) throw() | |||||
void MenuBarModel::addListener (Listener* const newListener) throw() | |||||
{ | { | ||||
listeners.add (newListener); | listeners.add (newListener); | ||||
} | } | ||||
void MenuBarModel::removeListener (MenuBarModelListener* const listenerToRemove) throw() | |||||
void MenuBarModel::removeListener (Listener* const listenerToRemove) throw() | |||||
{ | { | ||||
// Trying to remove a listener that isn't on the list! | // Trying to remove a listener that isn't on the list! | ||||
// If this assertion happens because this object is a dangling pointer, make sure you've not | // If this assertion happens because this object is a dangling pointer, make sure you've not | ||||
@@ -67856,12 +67857,12 @@ void MenuBarModel::removeListener (MenuBarModelListener* const listenerToRemove) | |||||
void MenuBarModel::handleAsyncUpdate() | void MenuBarModel::handleAsyncUpdate() | ||||
{ | { | ||||
listeners.call (&MenuBarModelListener::menuBarItemsChanged, this); | |||||
listeners.call (&Listener::menuBarItemsChanged, this); | |||||
} | } | ||||
void MenuBarModel::applicationCommandInvoked (const ApplicationCommandTarget::InvocationInfo& info) | void MenuBarModel::applicationCommandInvoked (const ApplicationCommandTarget::InvocationInfo& info) | ||||
{ | { | ||||
listeners.call (&MenuBarModelListener::menuCommandInvoked, this, info); | |||||
listeners.call (&Listener::menuCommandInvoked, this, info); | |||||
} | } | ||||
void MenuBarModel::applicationCommandListChanged() | void MenuBarModel::applicationCommandListChanged() | ||||
@@ -72019,9 +72020,9 @@ private: | |||||
}; | }; | ||||
class AudioDeviceSettingsPanel : public Component, | class AudioDeviceSettingsPanel : public Component, | ||||
public ComboBoxListener, | |||||
public ChangeListener, | public ChangeListener, | ||||
public ButtonListener | |||||
public ComboBox::Listener, | |||||
public Button::Listener | |||||
{ | { | ||||
public: | public: | ||||
AudioDeviceSettingsPanel (AudioIODeviceType* type_, | AudioDeviceSettingsPanel (AudioIODeviceType* type_, | ||||
@@ -77221,7 +77222,7 @@ END_JUCE_NAMESPACE | |||||
/*** Start of inlined file: juce_DocumentWindow.cpp ***/ | /*** Start of inlined file: juce_DocumentWindow.cpp ***/ | ||||
BEGIN_JUCE_NAMESPACE | BEGIN_JUCE_NAMESPACE | ||||
class DocumentWindow::ButtonListenerProxy : public ButtonListener | |||||
class DocumentWindow::ButtonListenerProxy : public Button::Listener | |||||
{ | { | ||||
public: | public: | ||||
ButtonListenerProxy (DocumentWindow& owner_) | ButtonListenerProxy (DocumentWindow& owner_) | ||||
@@ -252282,7 +252283,7 @@ public: | |||||
mediaControl->Run(); | mediaControl->Run(); | ||||
} | } | ||||
void addListener (CameraImageListener* listenerToAdd) | |||||
void addListener (CameraDevice::Listener* listenerToAdd) | |||||
{ | { | ||||
const ScopedLock sl (listenerLock); | const ScopedLock sl (listenerLock); | ||||
@@ -252292,7 +252293,7 @@ public: | |||||
listeners.addIfNotAlreadyThere (listenerToAdd); | listeners.addIfNotAlreadyThere (listenerToAdd); | ||||
} | } | ||||
void removeListener (CameraImageListener* listenerToRemove) | |||||
void removeListener (CameraDevice::Listener* listenerToRemove) | |||||
{ | { | ||||
const ScopedLock sl (listenerLock); | const ScopedLock sl (listenerLock); | ||||
listeners.removeValue (listenerToRemove); | listeners.removeValue (listenerToRemove); | ||||
@@ -252307,7 +252308,7 @@ public: | |||||
for (int i = listeners.size(); --i >= 0;) | for (int i = listeners.size(); --i >= 0;) | ||||
{ | { | ||||
CameraImageListener* const l = listeners[i]; | |||||
CameraDevice::Listener* const l = listeners[i]; | |||||
if (l != 0) | if (l != 0) | ||||
l->imageReceived (image); | l->imageReceived (image); | ||||
@@ -252586,7 +252587,7 @@ private: | |||||
}; | }; | ||||
ComSmartPtr <GrabberCallback> callback; | ComSmartPtr <GrabberCallback> callback; | ||||
Array <CameraImageListener*> listeners; | |||||
Array <CameraDevice::Listener*> listeners; | |||||
CriticalSection listenerLock; | CriticalSection listenerLock; | ||||
DShowCameraDeviceInteral (const DShowCameraDeviceInteral&); | DShowCameraDeviceInteral (const DShowCameraDeviceInteral&); | ||||
@@ -252642,7 +252643,7 @@ void CameraDevice::stopRecording() | |||||
} | } | ||||
} | } | ||||
void CameraDevice::addListener (CameraImageListener* listenerToAdd) | |||||
void CameraDevice::addListener (Listener* listenerToAdd) | |||||
{ | { | ||||
DShowCameraDeviceInteral* const d = (DShowCameraDeviceInteral*) internal; | DShowCameraDeviceInteral* const d = (DShowCameraDeviceInteral*) internal; | ||||
@@ -252650,7 +252651,7 @@ void CameraDevice::addListener (CameraImageListener* listenerToAdd) | |||||
d->addListener (listenerToAdd); | d->addListener (listenerToAdd); | ||||
} | } | ||||
void CameraDevice::removeListener (CameraImageListener* listenerToRemove) | |||||
void CameraDevice::removeListener (Listener* listenerToRemove) | |||||
{ | { | ||||
DShowCameraDeviceInteral* const d = (DShowCameraDeviceInteral*) internal; | DShowCameraDeviceInteral* const d = (DShowCameraDeviceInteral*) internal; | ||||
@@ -272769,7 +272770,7 @@ using namespace JUCE_NAMESPACE; | |||||
@end | @end | ||||
BEGIN_JUCE_NAMESPACE | BEGIN_JUCE_NAMESPACE | ||||
class JuceMainMenuHandler : private MenuBarModelListener, | |||||
class JuceMainMenuHandler : private MenuBarModel::Listener, | |||||
private DeletedAtShutdown | private DeletedAtShutdown | ||||
{ | { | ||||
public: | public: | ||||
@@ -277376,7 +277377,7 @@ public: | |||||
} | } | ||||
} | } | ||||
void addListener (CameraImageListener* listenerToAdd) | |||||
void addListener (CameraDevice::Listener* listenerToAdd) | |||||
{ | { | ||||
const ScopedLock sl (listenerLock); | const ScopedLock sl (listenerLock); | ||||
@@ -277386,7 +277387,7 @@ public: | |||||
listeners.addIfNotAlreadyThere (listenerToAdd); | listeners.addIfNotAlreadyThere (listenerToAdd); | ||||
} | } | ||||
void removeListener (CameraImageListener* listenerToRemove) | |||||
void removeListener (CameraDevice::Listener* listenerToRemove) | |||||
{ | { | ||||
const ScopedLock sl (listenerLock); | const ScopedLock sl (listenerLock); | ||||
listeners.removeValue (listenerToRemove); | listeners.removeValue (listenerToRemove); | ||||
@@ -277408,7 +277409,7 @@ public: | |||||
for (int i = listeners.size(); --i >= 0;) | for (int i = listeners.size(); --i >= 0;) | ||||
{ | { | ||||
CameraImageListener* const l = listeners[i]; | |||||
CameraDevice::Listener* const l = listeners[i]; | |||||
if (l != 0) | if (l != 0) | ||||
l->imageReceived (image); | l->imageReceived (image); | ||||
@@ -277425,7 +277426,7 @@ public: | |||||
QTCaptureCallbackDelegate* callbackDelegate; | QTCaptureCallbackDelegate* callbackDelegate; | ||||
String openingError; | String openingError; | ||||
Array<CameraImageListener*> listeners; | |||||
Array<CameraDevice::Listener*> listeners; | |||||
CriticalSection listenerLock; | CriticalSection listenerLock; | ||||
}; | }; | ||||
@@ -277599,13 +277600,13 @@ void CameraDevice::stopRecording() | |||||
} | } | ||||
} | } | ||||
void CameraDevice::addListener (CameraImageListener* listenerToAdd) | |||||
void CameraDevice::addListener (Listener* listenerToAdd) | |||||
{ | { | ||||
if (listenerToAdd != 0) | if (listenerToAdd != 0) | ||||
static_cast <QTCameraDeviceInteral*> (internal)->addListener (listenerToAdd); | static_cast <QTCameraDeviceInteral*> (internal)->addListener (listenerToAdd); | ||||
} | } | ||||
void CameraDevice::removeListener (CameraImageListener* listenerToRemove) | |||||
void CameraDevice::removeListener (Listener* listenerToRemove) | |||||
{ | { | ||||
if (listenerToRemove != 0) | if (listenerToRemove != 0) | ||||
static_cast <QTCameraDeviceInteral*> (internal)->removeListener (listenerToRemove); | static_cast <QTCameraDeviceInteral*> (internal)->removeListener (listenerToRemove); | ||||
@@ -41,7 +41,7 @@ | |||||
class JUCE_API PluginListComponent : public Component, | class JUCE_API PluginListComponent : public Component, | ||||
public ListBoxModel, | public ListBoxModel, | ||||
public ChangeListener, | public ChangeListener, | ||||
public ButtonListener, | |||||
public Button::Listener, | |||||
public Timer | public Timer | ||||
{ | { | ||||
public: | public: | ||||
@@ -33,7 +33,7 @@ | |||||
*/ | */ | ||||
#define JUCE_MAJOR_VERSION 1 | #define JUCE_MAJOR_VERSION 1 | ||||
#define JUCE_MINOR_VERSION 52 | #define JUCE_MINOR_VERSION 52 | ||||
#define JUCE_BUILDNUMBER 41 | |||||
#define JUCE_BUILDNUMBER 42 | |||||
/** Current Juce version number. | /** Current Juce version number. | ||||
@@ -351,12 +351,12 @@ void Button::handleCommandMessage (int commandId) | |||||
} | } | ||||
//============================================================================== | //============================================================================== | ||||
void Button::addButtonListener (ButtonListener* const newListener) | |||||
void Button::addButtonListener (Listener* const newListener) | |||||
{ | { | ||||
buttonListeners.add (newListener); | buttonListeners.add (newListener); | ||||
} | } | ||||
void Button::removeButtonListener (ButtonListener* const listener) | |||||
void Button::removeButtonListener (Listener* const listener) | |||||
{ | { | ||||
buttonListeners.remove (listener); | buttonListeners.remove (listener); | ||||
} | } | ||||
@@ -377,7 +377,7 @@ void Button::sendClickMessage (const ModifierKeys& modifiers) | |||||
clicked (modifiers); | clicked (modifiers); | ||||
if (! checker.shouldBailOut()) | if (! checker.shouldBailOut()) | ||||
buttonListeners.callChecked (checker, &ButtonListener::buttonClicked, this); | |||||
buttonListeners.callChecked (checker, &Listener::buttonClicked, this); | |||||
} | } | ||||
void Button::sendStateMessage() | void Button::sendStateMessage() | ||||
@@ -387,7 +387,7 @@ void Button::sendStateMessage() | |||||
buttonStateChanged(); | buttonStateChanged(); | ||||
if (! checker.shouldBailOut()) | if (! checker.shouldBailOut()) | ||||
buttonListeners.callChecked (checker, &ButtonListener::buttonStateChanged, this); | |||||
buttonListeners.callChecked (checker, &Listener::buttonStateChanged, this); | |||||
} | } | ||||
//============================================================================== | //============================================================================== | ||||
@@ -32,27 +32,6 @@ | |||||
#include "../../../containers/juce_SortedSet.h" | #include "../../../containers/juce_SortedSet.h" | ||||
#include "../../../containers/juce_Value.h" | #include "../../../containers/juce_Value.h" | ||||
#include "../windows/juce_TooltipWindow.h" | #include "../windows/juce_TooltipWindow.h" | ||||
class Button; | |||||
//============================================================================== | |||||
/** | |||||
Used to receive callbacks when a button is clicked. | |||||
@see Button::addButtonListener, Button::removeButtonListener | |||||
*/ | |||||
class JUCE_API ButtonListener | |||||
{ | |||||
public: | |||||
/** Destructor. */ | |||||
virtual ~ButtonListener() {} | |||||
/** Called when the button is clicked. */ | |||||
virtual void buttonClicked (Button* button) = 0; | |||||
/** Called when the button's state changes. */ | |||||
virtual void buttonStateChanged (Button*) {} | |||||
}; | |||||
//============================================================================== | //============================================================================== | ||||
@@ -191,19 +170,37 @@ public: | |||||
int getRadioGroupId() const throw() { return radioGroupId; } | int getRadioGroupId() const throw() { return radioGroupId; } | ||||
//============================================================================== | //============================================================================== | ||||
/** | |||||
Used to receive callbacks when a button is clicked. | |||||
@see Button::addButtonListener, Button::removeButtonListener | |||||
*/ | |||||
class JUCE_API Listener | |||||
{ | |||||
public: | |||||
/** Destructor. */ | |||||
virtual ~Listener() {} | |||||
/** Called when the button is clicked. */ | |||||
virtual void buttonClicked (Button* button) = 0; | |||||
/** Called when the button's state changes. */ | |||||
virtual void buttonStateChanged (Button*) {} | |||||
}; | |||||
/** Registers a listener to receive events when this button's state changes. | /** Registers a listener to receive events when this button's state changes. | ||||
If the listener is already registered, this will not register it again. | If the listener is already registered, this will not register it again. | ||||
@see removeButtonListener | @see removeButtonListener | ||||
*/ | */ | ||||
void addButtonListener (ButtonListener* newListener); | |||||
void addButtonListener (Listener* newListener); | |||||
/** Removes a previously-registered button listener | /** Removes a previously-registered button listener | ||||
@see addButtonListener | @see addButtonListener | ||||
*/ | */ | ||||
void removeButtonListener (ButtonListener* listener); | |||||
void removeButtonListener (Listener* listener); | |||||
//============================================================================== | //============================================================================== | ||||
/** Causes the button to act as if it's been clicked. | /** Causes the button to act as if it's been clicked. | ||||
@@ -471,7 +468,7 @@ private: | |||||
Array <KeyPress> shortcuts; | Array <KeyPress> shortcuts; | ||||
Component::SafePointer<Component> keySource; | Component::SafePointer<Component> keySource; | ||||
String text; | String text; | ||||
ListenerList <ButtonListener> buttonListeners; | |||||
ListenerList <Listener> buttonListeners; | |||||
class RepeatTimer; | class RepeatTimer; | ||||
friend class RepeatTimer; | friend class RepeatTimer; | ||||
@@ -507,5 +504,8 @@ private: | |||||
Button& operator= (const Button&); | Button& operator= (const Button&); | ||||
}; | }; | ||||
/** This typedef is just for compatibility with old code - newer code should use Button::Listener instead. */ | |||||
typedef Button::Listener ButtonListener; | |||||
#endif // __JUCE_BUTTON_JUCEHEADER__ | #endif // __JUCE_BUTTON_JUCEHEADER__ |
@@ -43,7 +43,7 @@ | |||||
class JUCE_API CodeEditorComponent : public Component, | class JUCE_API CodeEditorComponent : public Component, | ||||
public TextInputTarget, | public TextInputTarget, | ||||
public Timer, | public Timer, | ||||
public ScrollBarListener, | |||||
public ScrollBar::Listener, | |||||
public CodeDocument::Listener, | public CodeDocument::Listener, | ||||
public AsyncUpdater | public AsyncUpdater | ||||
{ | { | ||||
@@ -623,12 +623,12 @@ void ComboBox::mouseUp (const MouseEvent& e2) | |||||
} | } | ||||
//============================================================================== | //============================================================================== | ||||
void ComboBox::addListener (ComboBoxListener* const listener) throw() | |||||
void ComboBox::addListener (Listener* const listener) throw() | |||||
{ | { | ||||
listeners.add (listener); | listeners.add (listener); | ||||
} | } | ||||
void ComboBox::removeListener (ComboBoxListener* const listener) throw() | |||||
void ComboBox::removeListener (Listener* const listener) throw() | |||||
{ | { | ||||
listeners.remove (listener); | listeners.remove (listener); | ||||
} | } | ||||
@@ -636,7 +636,7 @@ void ComboBox::removeListener (ComboBoxListener* const listener) throw() | |||||
void ComboBox::handleAsyncUpdate() | void ComboBox::handleAsyncUpdate() | ||||
{ | { | ||||
Component::BailOutChecker checker (this); | Component::BailOutChecker checker (this); | ||||
listeners.callChecked (checker, &ComboBoxListener::comboBoxChanged, this); | |||||
listeners.callChecked (checker, &Listener::comboBoxChanged, this); | |||||
} | } | ||||
@@ -29,28 +29,6 @@ | |||||
#include "juce_Label.h" | #include "juce_Label.h" | ||||
#include "../../../text/juce_StringArray.h" | #include "../../../text/juce_StringArray.h" | ||||
#include "../../../containers/juce_Value.h" | #include "../../../containers/juce_Value.h" | ||||
class ComboBox; | |||||
//============================================================================== | |||||
/** | |||||
A class for receiving events from a ComboBox. | |||||
You can register a ComboBoxListener with a ComboBox using the ComboBox::addListener() | |||||
method, and it will be called when the selected item in the box changes. | |||||
@see ComboBox::addListener, ComboBox::removeListener | |||||
*/ | |||||
class JUCE_API ComboBoxListener | |||||
{ | |||||
public: | |||||
/** Destructor. */ | |||||
virtual ~ComboBoxListener() {} | |||||
/** Called when a ComboBox has its selected item changed. | |||||
*/ | |||||
virtual void comboBoxChanged (ComboBox* comboBoxThatHasChanged) = 0; | |||||
}; | |||||
//============================================================================== | //============================================================================== | ||||
@@ -64,14 +42,14 @@ public: | |||||
either be read-only text, or editable. | either be read-only text, or editable. | ||||
To find out when the user selects a different item or edits the text, you | To find out when the user selects a different item or edits the text, you | ||||
can register a ComboBoxListener to receive callbacks. | |||||
can register a ComboBox::Listener to receive callbacks. | |||||
@see ComboBoxListener | |||||
@see ComboBox::Listener | |||||
*/ | */ | ||||
class JUCE_API ComboBox : public Component, | class JUCE_API ComboBox : public Component, | ||||
public SettableTooltipClient, | public SettableTooltipClient, | ||||
private LabelListener, | |||||
private AsyncUpdater, | private AsyncUpdater, | ||||
private Label::Listener, | |||||
private Value::Listener | private Value::Listener | ||||
{ | { | ||||
public: | public: | ||||
@@ -286,11 +264,29 @@ public: | |||||
void showPopup(); | void showPopup(); | ||||
//============================================================================== | //============================================================================== | ||||
/** | |||||
A class for receiving events from a ComboBox. | |||||
You can register a ComboBox::Listener with a ComboBox using the ComboBox::addListener() | |||||
method, and it will be called when the selected item in the box changes. | |||||
@see ComboBox::addListener, ComboBox::removeListener | |||||
*/ | |||||
class JUCE_API Listener | |||||
{ | |||||
public: | |||||
/** Destructor. */ | |||||
virtual ~Listener() {} | |||||
/** Called when a ComboBox has its selected item changed. */ | |||||
virtual void comboBoxChanged (ComboBox* comboBoxThatHasChanged) = 0; | |||||
}; | |||||
/** Registers a listener that will be called when the box's content changes. */ | /** Registers a listener that will be called when the box's content changes. */ | ||||
void addListener (ComboBoxListener* listener) throw(); | |||||
void addListener (Listener* listener) throw(); | |||||
/** Deregisters a previously-registered listener. */ | /** Deregisters a previously-registered listener. */ | ||||
void removeListener (ComboBoxListener* listener) throw(); | |||||
void removeListener (Listener* listener) throw(); | |||||
//============================================================================== | //============================================================================== | ||||
/** Sets a message to display when there is no item currently selected. | /** Sets a message to display when there is no item currently selected. | ||||
@@ -398,7 +394,7 @@ private: | |||||
Value currentId; | Value currentId; | ||||
int lastCurrentId; | int lastCurrentId; | ||||
bool isButtonDown, separatorPending, menuActive, textIsCustom; | bool isButtonDown, separatorPending, menuActive, textIsCustom; | ||||
ListenerList <ComboBoxListener> listeners; | |||||
ListenerList <Listener> listeners; | |||||
ScopedPointer<Label> label; | ScopedPointer<Label> label; | ||||
String textWhenNothingSelected, noChoicesMessage; | String textWhenNothingSelected, noChoicesMessage; | ||||
@@ -409,4 +405,8 @@ private: | |||||
ComboBox& operator= (const ComboBox&); | ComboBox& operator= (const ComboBox&); | ||||
}; | }; | ||||
/** This typedef is just for compatibility with old code - newer code should use the ComboBox::Listener class directly. */ | |||||
typedef ComboBox::Listener ComboBoxListener; | |||||
#endif // __JUCE_COMBOBOX_JUCEHEADER__ | #endif // __JUCE_COMBOBOX_JUCEHEADER__ |
@@ -403,12 +403,12 @@ KeyboardFocusTraverser* Label::createFocusTraverser() | |||||
} | } | ||||
//============================================================================== | //============================================================================== | ||||
void Label::addListener (LabelListener* const listener) throw() | |||||
void Label::addListener (Listener* const listener) throw() | |||||
{ | { | ||||
listeners.add (listener); | listeners.add (listener); | ||||
} | } | ||||
void Label::removeListener (LabelListener* const listener) throw() | |||||
void Label::removeListener (Listener* const listener) throw() | |||||
{ | { | ||||
listeners.remove (listener); | listeners.remove (listener); | ||||
} | } | ||||
@@ -416,7 +416,7 @@ void Label::removeListener (LabelListener* const listener) throw() | |||||
void Label::callChangeListeners() | void Label::callChangeListeners() | ||||
{ | { | ||||
Component::BailOutChecker checker (this); | Component::BailOutChecker checker (this); | ||||
listeners.callChecked (checker, &LabelListener::labelTextChanged, this); | |||||
listeners.callChecked (checker, &Listener::labelTextChanged, this); | |||||
} | } | ||||
//============================================================================== | //============================================================================== | ||||
@@ -27,30 +27,6 @@ | |||||
#define __JUCE_LABEL_JUCEHEADER__ | #define __JUCE_LABEL_JUCEHEADER__ | ||||
#include "juce_TextEditor.h" | #include "juce_TextEditor.h" | ||||
class Label; | |||||
//============================================================================== | |||||
/** | |||||
A class for receiving events from a Label. | |||||
You can register a LabelListener with a Label using the Label::addListener() | |||||
method, and it will be called when the text of the label changes, either because | |||||
of a call to Label::setText() or by the user editing the text (if the label is | |||||
editable). | |||||
@see Label::addListener, Label::removeListener | |||||
*/ | |||||
class JUCE_API LabelListener | |||||
{ | |||||
public: | |||||
/** Destructor. */ | |||||
virtual ~LabelListener() {} | |||||
/** Called when a Label's text has changed. | |||||
*/ | |||||
virtual void labelTextChanged (Label* labelThatHasChanged) = 0; | |||||
}; | |||||
//============================================================================== | //============================================================================== | ||||
@@ -60,7 +36,7 @@ public: | |||||
*/ | */ | ||||
class JUCE_API Label : public Component, | class JUCE_API Label : public Component, | ||||
public SettableTooltipClient, | public SettableTooltipClient, | ||||
protected TextEditorListener, | |||||
protected TextEditor::Listener, | |||||
private ComponentListener, | private ComponentListener, | ||||
private Value::Listener | private Value::Listener | ||||
{ | { | ||||
@@ -81,11 +57,10 @@ public: | |||||
/** Changes the label text. | /** Changes the label text. | ||||
If broadcastChangeMessage is true and the new text is different to the current | If broadcastChangeMessage is true and the new text is different to the current | ||||
text, then the class will broadcast a change message to any LabelListeners that | |||||
are registered. | |||||
text, then the class will broadcast a change message to any Label::Listener objects | |||||
that are registered. | |||||
*/ | */ | ||||
void setText (const String& newText, | |||||
bool broadcastChangeMessage); | |||||
void setText (const String& newText, bool broadcastChangeMessage); | |||||
/** Returns the label's current text. | /** Returns the label's current text. | ||||
@@ -195,11 +170,32 @@ public: | |||||
float getMinimumHorizontalScale() const throw() { return minimumHorizontalScale; } | float getMinimumHorizontalScale() const throw() { return minimumHorizontalScale; } | ||||
//============================================================================== | //============================================================================== | ||||
/** | |||||
A class for receiving events from a Label. | |||||
You can register a Label::Listener with a Label using the Label::addListener() | |||||
method, and it will be called when the text of the label changes, either because | |||||
of a call to Label::setText() or by the user editing the text (if the label is | |||||
editable). | |||||
@see Label::addListener, Label::removeListener | |||||
*/ | |||||
class JUCE_API Listener | |||||
{ | |||||
public: | |||||
/** Destructor. */ | |||||
virtual ~Listener() {} | |||||
/** Called when a Label's text has changed. | |||||
*/ | |||||
virtual void labelTextChanged (Label* labelThatHasChanged) = 0; | |||||
}; | |||||
/** Registers a listener that will be called when the label's text changes. */ | /** Registers a listener that will be called when the label's text changes. */ | ||||
void addListener (LabelListener* listener) throw(); | |||||
void addListener (Listener* listener) throw(); | |||||
/** Deregisters a previously-registered listener. */ | /** Deregisters a previously-registered listener. */ | ||||
void removeListener (LabelListener* listener) throw(); | |||||
void removeListener (Listener* listener) throw(); | |||||
//============================================================================== | //============================================================================== | ||||
/** Makes the label turn into a TextEditor when clicked. | /** Makes the label turn into a TextEditor when clicked. | ||||
@@ -262,26 +258,20 @@ public: | |||||
protected: | protected: | ||||
/** Creates the TextEditor component that will be used when the user has clicked on the label. | /** Creates the TextEditor component that will be used when the user has clicked on the label. | ||||
Subclasses can override this if they need to customise this component in some way. | Subclasses can override this if they need to customise this component in some way. | ||||
*/ | */ | ||||
virtual TextEditor* createEditorComponent(); | virtual TextEditor* createEditorComponent(); | ||||
/** Called after the user changes the text. | |||||
*/ | |||||
/** Called after the user changes the text. */ | |||||
virtual void textWasEdited(); | virtual void textWasEdited(); | ||||
/** Called when the text has been altered. | |||||
*/ | |||||
/** Called when the text has been altered. */ | |||||
virtual void textWasChanged(); | virtual void textWasChanged(); | ||||
/** Called when the text editor has just appeared, due to a user click or other | |||||
focus change. | |||||
*/ | |||||
/** Called when the text editor has just appeared, due to a user click or other focus change. */ | |||||
virtual void editorShown (TextEditor* editorComponent); | virtual void editorShown (TextEditor* editorComponent); | ||||
/** Called when the text editor is going to be deleted, after editing has finished. | |||||
*/ | |||||
/** Called when the text editor is going to be deleted, after editing has finished. */ | |||||
virtual void editorAboutToBeHidden (TextEditor* editorComponent); | virtual void editorAboutToBeHidden (TextEditor* editorComponent); | ||||
//============================================================================== | //============================================================================== | ||||
@@ -326,7 +316,7 @@ private: | |||||
Font font; | Font font; | ||||
Justification justification; | Justification justification; | ||||
ScopedPointer <TextEditor> editor; | ScopedPointer <TextEditor> editor; | ||||
ListenerList <LabelListener> listeners; | |||||
ListenerList <Listener> listeners; | |||||
Component::SafePointer<Component> ownerComponent; | Component::SafePointer<Component> ownerComponent; | ||||
int horizontalBorderSize, verticalBorderSize; | int horizontalBorderSize, verticalBorderSize; | ||||
float minimumHorizontalScale; | float minimumHorizontalScale; | ||||
@@ -342,5 +332,8 @@ private: | |||||
Label& operator= (const Label&); | Label& operator= (const Label&); | ||||
}; | }; | ||||
/** This typedef is just for compatibility with old code - newer code should use the Label::Listener class directly. */ | |||||
typedef Label::Listener LabelListener; | |||||
#endif // __JUCE_LABEL_JUCEHEADER__ | #endif // __JUCE_LABEL_JUCEHEADER__ |
@@ -159,7 +159,7 @@ void Slider::handleAsyncUpdate() | |||||
cancelPendingUpdate(); | cancelPendingUpdate(); | ||||
Component::BailOutChecker checker (this); | Component::BailOutChecker checker (this); | ||||
listeners.callChecked (checker, &SliderListener::sliderValueChanged, this); | |||||
listeners.callChecked (checker, &Listener::sliderValueChanged, this); | |||||
} | } | ||||
void Slider::sendDragStart() | void Slider::sendDragStart() | ||||
@@ -167,7 +167,7 @@ void Slider::sendDragStart() | |||||
startedDragging(); | startedDragging(); | ||||
Component::BailOutChecker checker (this); | Component::BailOutChecker checker (this); | ||||
listeners.callChecked (checker, &SliderListener::sliderDragStarted, this); | |||||
listeners.callChecked (checker, &Listener::sliderDragStarted, this); | |||||
} | } | ||||
void Slider::sendDragEnd() | void Slider::sendDragEnd() | ||||
@@ -177,15 +177,15 @@ void Slider::sendDragEnd() | |||||
sliderBeingDragged = -1; | sliderBeingDragged = -1; | ||||
Component::BailOutChecker checker (this); | Component::BailOutChecker checker (this); | ||||
listeners.callChecked (checker, &SliderListener::sliderDragEnded, this); | |||||
listeners.callChecked (checker, &Listener::sliderDragEnded, this); | |||||
} | } | ||||
void Slider::addListener (SliderListener* const listener) | |||||
void Slider::addListener (Listener* const listener) | |||||
{ | { | ||||
listeners.add (listener); | listeners.add (listener); | ||||
} | } | ||||
void Slider::removeListener (SliderListener* const listener) | |||||
void Slider::removeListener (Listener* const listener) | |||||
{ | { | ||||
listeners.remove (listener); | listeners.remove (listener); | ||||
} | } | ||||
@@ -1423,11 +1423,11 @@ void Slider::mouseWheelMove (const MouseEvent& e, float wheelIncrementX, float w | |||||
} | } | ||||
} | } | ||||
void SliderListener::sliderDragStarted (Slider*) | |||||
void Slider::Listener::sliderDragStarted (Slider*) | |||||
{ | { | ||||
} | } | ||||
void SliderListener::sliderDragEnded (Slider*) | |||||
void Slider::Listener::sliderDragEnded (Slider*) | |||||
{ | { | ||||
} | } | ||||
@@ -26,7 +26,6 @@ | |||||
#ifndef __JUCE_SLIDER_JUCEHEADER__ | #ifndef __JUCE_SLIDER_JUCEHEADER__ | ||||
#define __JUCE_SLIDER_JUCEHEADER__ | #define __JUCE_SLIDER_JUCEHEADER__ | ||||
#include "juce_SliderListener.h" | |||||
#include "juce_Label.h" | #include "juce_Label.h" | ||||
#include "../buttons/juce_Button.h" | #include "../buttons/juce_Button.h" | ||||
#include "../../../events/juce_AsyncUpdater.h" | #include "../../../events/juce_AsyncUpdater.h" | ||||
@@ -49,16 +48,16 @@ | |||||
some of the virtual methods, such as changing the scaling, changing the format of | some of the virtual methods, such as changing the scaling, changing the format of | ||||
the text display, custom ways of limiting the values, etc. | the text display, custom ways of limiting the values, etc. | ||||
You can register SliderListeners with a slider, which will be informed when the value | |||||
changes, or a subclass can override valueChanged() to be informed synchronously. | |||||
You can register Slider::Listener objects with a slider, and they'll be called when | |||||
the value changes. | |||||
@see SliderListener | |||||
@see Slider::Listener | |||||
*/ | */ | ||||
class JUCE_API Slider : public Component, | class JUCE_API Slider : public Component, | ||||
public SettableTooltipClient, | public SettableTooltipClient, | ||||
private AsyncUpdater, | private AsyncUpdater, | ||||
private ButtonListener, | |||||
private LabelListener, | |||||
private Button::Listener, | |||||
private Label::Listener, | |||||
private Value::Listener | private Value::Listener | ||||
{ | { | ||||
public: | public: | ||||
@@ -333,7 +332,7 @@ public: | |||||
//============================================================================== | //============================================================================== | ||||
/** Changes the slider's current value. | /** Changes the slider's current value. | ||||
This will trigger a callback to SliderListener::sliderValueChanged() for any listeners | |||||
This will trigger a callback to Slider::Listener::sliderValueChanged() for any listeners | |||||
that are registered, and will synchronously call the valueChanged() method in case subclasses | that are registered, and will synchronously call the valueChanged() method in case subclasses | ||||
want to handle it. | want to handle it. | ||||
@@ -341,8 +340,8 @@ public: | |||||
minimum and maximum range, and will be snapped to the | minimum and maximum range, and will be snapped to the | ||||
nearest interval if one has been set | nearest interval if one has been set | ||||
@param sendUpdateMessage if false, a change to the value will not trigger a call to | @param sendUpdateMessage if false, a change to the value will not trigger a call to | ||||
any SliderListeners or the valueChanged() method | |||||
@param sendMessageSynchronously if true, then a call to the SliderListeners will be made | |||||
any Slider::Listeners or the valueChanged() method | |||||
@param sendMessageSynchronously if true, then a call to the Slider::Listeners will be made | |||||
synchronously; if false, it will be asynchronous | synchronously; if false, it will be asynchronous | ||||
*/ | */ | ||||
void setValue (double newValue, | void setValue (double newValue, | ||||
@@ -408,7 +407,7 @@ public: | |||||
/** For a slider with two or three thumbs, this sets the lower of its values. | /** For a slider with two or three thumbs, this sets the lower of its values. | ||||
This will trigger a callback to SliderListener::sliderValueChanged() for any listeners | |||||
This will trigger a callback to Slider::Listener::sliderValueChanged() for any listeners | |||||
that are registered, and will synchronously call the valueChanged() method in case subclasses | that are registered, and will synchronously call the valueChanged() method in case subclasses | ||||
want to handle it. | want to handle it. | ||||
@@ -416,8 +415,8 @@ public: | |||||
minimum and maximum range, and will be snapped to the nearest | minimum and maximum range, and will be snapped to the nearest | ||||
interval if one has been set. | interval if one has been set. | ||||
@param sendUpdateMessage if false, a change to the value will not trigger a call to | @param sendUpdateMessage if false, a change to the value will not trigger a call to | ||||
any SliderListeners or the valueChanged() method | |||||
@param sendMessageSynchronously if true, then a call to the SliderListeners will be made | |||||
any Slider::Listeners or the valueChanged() method | |||||
@param sendMessageSynchronously if true, then a call to the Slider::Listeners will be made | |||||
synchronously; if false, it will be asynchronous | synchronously; if false, it will be asynchronous | ||||
@param allowNudgingOfOtherValues if false, this value will be restricted to being below the | @param allowNudgingOfOtherValues if false, this value will be restricted to being below the | ||||
max value (in a two-value slider) or the mid value (in a three-value | max value (in a two-value slider) or the mid value (in a three-value | ||||
@@ -450,7 +449,7 @@ public: | |||||
/** For a slider with two or three thumbs, this sets the lower of its values. | /** For a slider with two or three thumbs, this sets the lower of its values. | ||||
This will trigger a callback to SliderListener::sliderValueChanged() for any listeners | |||||
This will trigger a callback to Slider::Listener::sliderValueChanged() for any listeners | |||||
that are registered, and will synchronously call the valueChanged() method in case subclasses | that are registered, and will synchronously call the valueChanged() method in case subclasses | ||||
want to handle it. | want to handle it. | ||||
@@ -458,8 +457,8 @@ public: | |||||
minimum and maximum range, and will be snapped to the nearest | minimum and maximum range, and will be snapped to the nearest | ||||
interval if one has been set. | interval if one has been set. | ||||
@param sendUpdateMessage if false, a change to the value will not trigger a call to | @param sendUpdateMessage if false, a change to the value will not trigger a call to | ||||
any SliderListeners or the valueChanged() method | |||||
@param sendMessageSynchronously if true, then a call to the SliderListeners will be made | |||||
any Slider::Listeners or the valueChanged() method | |||||
@param sendMessageSynchronously if true, then a call to the Slider::Listeners will be made | |||||
synchronously; if false, it will be asynchronous | synchronously; if false, it will be asynchronous | ||||
@param allowNudgingOfOtherValues if false, this value will be restricted to being above the | @param allowNudgingOfOtherValues if false, this value will be restricted to being above the | ||||
min value (in a two-value slider) or the mid value (in a three-value | min value (in a two-value slider) or the mid value (in a three-value | ||||
@@ -473,11 +472,55 @@ public: | |||||
bool allowNudgingOfOtherValues = false); | bool allowNudgingOfOtherValues = false); | ||||
//============================================================================== | //============================================================================== | ||||
/** A class for receiving callbacks from a Slider. | |||||
To be told when a slider's value changes, you can register a Slider::Listener | |||||
object using Slider::addListener(). | |||||
@see Slider::addListener, Slider::removeListener | |||||
*/ | |||||
class JUCE_API Listener | |||||
{ | |||||
public: | |||||
//============================================================================== | |||||
/** Destructor. */ | |||||
virtual ~Listener() {} | |||||
//============================================================================== | |||||
/** Called when the slider's value is changed. | |||||
This may be caused by dragging it, or by typing in its text entry box, | |||||
or by a call to Slider::setValue(). | |||||
You can find out the new value using Slider::getValue(). | |||||
@see Slider::valueChanged | |||||
*/ | |||||
virtual void sliderValueChanged (Slider* slider) = 0; | |||||
//============================================================================== | |||||
/** Called when the slider is about to be dragged. | |||||
This is called when a drag begins, then it's followed by multiple calls | |||||
to sliderValueChanged(), and then sliderDragEnded() is called after the | |||||
user lets go. | |||||
@see sliderDragEnded, Slider::startedDragging | |||||
*/ | |||||
virtual void sliderDragStarted (Slider* slider); | |||||
/** Called after a drag operation has finished. | |||||
@see sliderDragStarted, Slider::stoppedDragging | |||||
*/ | |||||
virtual void sliderDragEnded (Slider* slider); | |||||
}; | |||||
/** Adds a listener to be called when this slider's value changes. */ | /** Adds a listener to be called when this slider's value changes. */ | ||||
void addListener (SliderListener* listener); | |||||
void addListener (Listener* listener); | |||||
/** Removes a previously-registered listener. */ | /** Removes a previously-registered listener. */ | ||||
void removeListener (SliderListener* listener); | |||||
void removeListener (Listener* listener); | |||||
//============================================================================== | //============================================================================== | ||||
/** This lets you choose whether double-clicking moves the slider to a given position. | /** This lets you choose whether double-clicking moves the slider to a given position. | ||||
@@ -563,19 +606,19 @@ public: | |||||
//============================================================================== | //============================================================================== | ||||
/** Callback to indicate that the user is about to start dragging the slider. | /** Callback to indicate that the user is about to start dragging the slider. | ||||
@see SliderListener::sliderDragStarted | |||||
@see Slider::Listener::sliderDragStarted | |||||
*/ | */ | ||||
virtual void startedDragging(); | virtual void startedDragging(); | ||||
/** Callback to indicate that the user has just stopped dragging the slider. | /** Callback to indicate that the user has just stopped dragging the slider. | ||||
@see SliderListener::sliderDragEnded | |||||
@see Slider::Listener::sliderDragEnded | |||||
*/ | */ | ||||
virtual void stoppedDragging(); | virtual void stoppedDragging(); | ||||
/** Callback to indicate that the user has just moved the slider. | /** Callback to indicate that the user has just moved the slider. | ||||
@see SliderListener::sliderValueChanged | |||||
@see Slider::Listener::sliderValueChanged | |||||
*/ | */ | ||||
virtual void valueChanged(); | virtual void valueChanged(); | ||||
@@ -749,7 +792,7 @@ protected: | |||||
int getNumDecimalPlacesToDisplay() const throw() { return numDecimalPlaces; } | int getNumDecimalPlacesToDisplay() const throw() { return numDecimalPlaces; } | ||||
private: | private: | ||||
ListenerList <SliderListener> listeners; | |||||
ListenerList <Listener> listeners; | |||||
Value currentValue, valueMin, valueMax; | Value currentValue, valueMin, valueMax; | ||||
double lastCurrentValue, lastValueMin, lastValueMax; | double lastCurrentValue, lastValueMin, lastValueMax; | ||||
double minimum, maximum, interval, doubleClickReturnValue; | double minimum, maximum, interval, doubleClickReturnValue; | ||||
@@ -793,5 +836,8 @@ private: | |||||
Slider& operator= (const Slider&); | Slider& operator= (const Slider&); | ||||
}; | }; | ||||
/** This typedef is just for compatibility with old code - newer code should use the Slider::Listener class directly. */ | |||||
typedef Slider::Listener SliderListener; | |||||
#endif // __JUCE_SLIDER_JUCEHEADER__ | #endif // __JUCE_SLIDER_JUCEHEADER__ |
@@ -1,78 +0,0 @@ | |||||
/* | |||||
============================================================================== | |||||
This file is part of the JUCE library - "Jules' Utility Class Extensions" | |||||
Copyright 2004-10 by Raw Material Software Ltd. | |||||
------------------------------------------------------------------------------ | |||||
JUCE can be redistributed and/or modified under the terms of the GNU General | |||||
Public License (Version 2), as published by the Free Software Foundation. | |||||
A copy of the license is included in the JUCE distribution, or can be found | |||||
online at www.gnu.org/licenses. | |||||
JUCE 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. | |||||
------------------------------------------------------------------------------ | |||||
To release a closed-source product which uses JUCE, commercial licenses are | |||||
available: visit www.rawmaterialsoftware.com/juce for more information. | |||||
============================================================================== | |||||
*/ | |||||
#ifndef __JUCE_SLIDERLISTENER_JUCEHEADER__ | |||||
#define __JUCE_SLIDERLISTENER_JUCEHEADER__ | |||||
class Slider; | |||||
//============================================================================== | |||||
/** | |||||
A class for receiving callbacks from a Slider. | |||||
To be told when a slider's value changes, you can register a SliderListener | |||||
object using Slider::addListener(). | |||||
@see Slider::addListener, Slider::removeListener | |||||
*/ | |||||
class JUCE_API SliderListener | |||||
{ | |||||
public: | |||||
//============================================================================== | |||||
/** Destructor. */ | |||||
virtual ~SliderListener() {} | |||||
//============================================================================== | |||||
/** Called when the slider's value is changed. | |||||
This may be caused by dragging it, or by typing in its text entry box, | |||||
or by a call to Slider::setValue(). | |||||
You can find out the new value using Slider::getValue(). | |||||
@see Slider::valueChanged | |||||
*/ | |||||
virtual void sliderValueChanged (Slider* slider) = 0; | |||||
//============================================================================== | |||||
/** Called when the slider is about to be dragged. | |||||
This is called when a drag begins, then it's followed by multiple calls | |||||
to sliderValueChanged(), and then sliderDragEnded() is called after the | |||||
user lets go. | |||||
@see sliderDragEnded, Slider::startedDragging | |||||
*/ | |||||
virtual void sliderDragStarted (Slider* slider); | |||||
/** Called after a drag operation has finished. | |||||
@see sliderDragStarted, Slider::stoppedDragging | |||||
*/ | |||||
virtual void sliderDragEnded (Slider* slider); | |||||
}; | |||||
#endif // __JUCE_SLIDERLISTENER_JUCEHEADER__ |
@@ -492,12 +492,12 @@ void TableHeaderComponent::restoreFromString (const String& storedVersion) | |||||
} | } | ||||
//============================================================================== | //============================================================================== | ||||
void TableHeaderComponent::addListener (TableHeaderListener* const newListener) | |||||
void TableHeaderComponent::addListener (Listener* const newListener) | |||||
{ | { | ||||
listeners.addIfNotAlreadyThere (newListener); | listeners.addIfNotAlreadyThere (newListener); | ||||
} | } | ||||
void TableHeaderComponent::removeListener (TableHeaderListener* const listenerToRemove) | |||||
void TableHeaderComponent::removeListener (Listener* const listenerToRemove) | |||||
{ | { | ||||
listeners.removeValue (listenerToRemove); | listeners.removeValue (listenerToRemove); | ||||
} | } | ||||
@@ -937,7 +937,7 @@ void TableHeaderComponent::showColumnChooserMenu (const int columnIdClicked) | |||||
} | } | ||||
} | } | ||||
void TableHeaderListener::tableColumnDraggingChanged (TableHeaderComponent*, int) | |||||
void TableHeaderComponent::Listener::tableColumnDraggingChanged (TableHeaderComponent*, int) | |||||
{ | { | ||||
} | } | ||||
@@ -29,50 +29,6 @@ | |||||
#include "../menus/juce_PopupMenu.h" | #include "../menus/juce_PopupMenu.h" | ||||
#include "../../../events/juce_AsyncUpdater.h" | #include "../../../events/juce_AsyncUpdater.h" | ||||
class TableHeaderComponent; | |||||
//============================================================================== | |||||
/** | |||||
Receives events from a TableHeaderComponent when columns are resized, moved, etc. | |||||
You can register one of these objects for table events using TableHeaderComponent::addListener() | |||||
and TableHeaderComponent::removeListener(). | |||||
@see TableHeaderComponent | |||||
*/ | |||||
class JUCE_API TableHeaderListener | |||||
{ | |||||
public: | |||||
//============================================================================== | |||||
TableHeaderListener() {} | |||||
/** Destructor. */ | |||||
virtual ~TableHeaderListener() {} | |||||
//============================================================================== | |||||
/** This is called when some of the table's columns are added, removed, hidden, | |||||
or rearranged. | |||||
*/ | |||||
virtual void tableColumnsChanged (TableHeaderComponent* tableHeader) = 0; | |||||
/** This is called when one or more of the table's columns are resized. | |||||
*/ | |||||
virtual void tableColumnsResized (TableHeaderComponent* tableHeader) = 0; | |||||
/** This is called when the column by which the table should be sorted is changed. | |||||
*/ | |||||
virtual void tableSortOrderChanged (TableHeaderComponent* tableHeader) = 0; | |||||
/** This is called when the user begins or ends dragging one of the columns around. | |||||
When the user starts dragging a column, this is called with the ID of that | |||||
column. When they finish dragging, it is called again with 0 as the ID. | |||||
*/ | |||||
virtual void tableColumnDraggingChanged (TableHeaderComponent* tableHeader, | |||||
int columnIdNowBeingDragged); | |||||
}; | |||||
//============================================================================== | //============================================================================== | ||||
/** | /** | ||||
@@ -86,7 +42,7 @@ public: | |||||
To use one of these, create it and use addColumn() to add all the columns that you need. | To use one of these, create it and use addColumn() to add all the columns that you need. | ||||
Each column must be given a unique ID number that's used to refer to it. | Each column must be given a unique ID number that's used to refer to it. | ||||
@see TableListBox, TableHeaderListener | |||||
@see TableListBox, TableHeaderComponent::Listener | |||||
*/ | */ | ||||
class JUCE_API TableHeaderComponent : public Component, | class JUCE_API TableHeaderComponent : public Component, | ||||
private AsyncUpdater | private AsyncUpdater | ||||
@@ -340,11 +296,51 @@ public: | |||||
void restoreFromString (const String& storedVersion); | void restoreFromString (const String& storedVersion); | ||||
//============================================================================== | //============================================================================== | ||||
/** | |||||
Receives events from a TableHeaderComponent when columns are resized, moved, etc. | |||||
You can register one of these objects for table events using TableHeaderComponent::addListener() | |||||
and TableHeaderComponent::removeListener(). | |||||
@see TableHeaderComponent | |||||
*/ | |||||
class JUCE_API Listener | |||||
{ | |||||
public: | |||||
//============================================================================== | |||||
Listener() {} | |||||
/** Destructor. */ | |||||
virtual ~Listener() {} | |||||
//============================================================================== | |||||
/** This is called when some of the table's columns are added, removed, hidden, | |||||
or rearranged. | |||||
*/ | |||||
virtual void tableColumnsChanged (TableHeaderComponent* tableHeader) = 0; | |||||
/** This is called when one or more of the table's columns are resized. | |||||
*/ | |||||
virtual void tableColumnsResized (TableHeaderComponent* tableHeader) = 0; | |||||
/** This is called when the column by which the table should be sorted is changed. | |||||
*/ | |||||
virtual void tableSortOrderChanged (TableHeaderComponent* tableHeader) = 0; | |||||
/** This is called when the user begins or ends dragging one of the columns around. | |||||
When the user starts dragging a column, this is called with the ID of that | |||||
column. When they finish dragging, it is called again with 0 as the ID. | |||||
*/ | |||||
virtual void tableColumnDraggingChanged (TableHeaderComponent* tableHeader, | |||||
int columnIdNowBeingDragged); | |||||
}; | |||||
/** Adds a listener to be informed about things that happen to the header. */ | /** Adds a listener to be informed about things that happen to the header. */ | ||||
void addListener (TableHeaderListener* newListener); | |||||
void addListener (Listener* newListener); | |||||
/** Removes a previously-registered listener. */ | /** Removes a previously-registered listener. */ | ||||
void removeListener (TableHeaderListener* listenerToRemove); | |||||
void removeListener (Listener* listenerToRemove); | |||||
//============================================================================== | //============================================================================== | ||||
/** This can be overridden to handle a mouse-click on one of the column headers. | /** This can be overridden to handle a mouse-click on one of the column headers. | ||||
@@ -412,7 +408,7 @@ private: | |||||
}; | }; | ||||
OwnedArray <ColumnInfo> columns; | OwnedArray <ColumnInfo> columns; | ||||
Array <TableHeaderListener*> listeners; | |||||
Array <Listener*> listeners; | |||||
ScopedPointer <Component> dragOverlayComp; | ScopedPointer <Component> dragOverlayComp; | ||||
bool columnsChanged, columnsResized, sortChanged, menuActive, stretchToFit; | bool columnsChanged, columnsResized, sortChanged, menuActive, stretchToFit; | ||||
@@ -433,5 +429,8 @@ private: | |||||
TableHeaderComponent operator= (const TableHeaderComponent&); | TableHeaderComponent operator= (const TableHeaderComponent&); | ||||
}; | }; | ||||
/** This typedef is just for compatibility with old code - newer code should use the TableHeaderComponent::Listener class directly. */ | |||||
typedef TableHeaderComponent::Listener TableHeaderListener; | |||||
#endif // __JUCE_TABLEHEADERCOMPONENT_JUCEHEADER__ | #endif // __JUCE_TABLEHEADERCOMPONENT_JUCEHEADER__ |
@@ -199,7 +199,7 @@ public: | |||||
*/ | */ | ||||
class JUCE_API TableListBox : public ListBox, | class JUCE_API TableListBox : public ListBox, | ||||
private ListBoxModel, | private ListBoxModel, | ||||
private TableHeaderListener | |||||
private TableHeaderComponent::Listener | |||||
{ | { | ||||
public: | public: | ||||
//============================================================================== | //============================================================================== | ||||
@@ -1274,12 +1274,12 @@ void TextEditor::escapePressed() | |||||
postCommandMessage (TextEditorDefs::escapeKeyMessageId); | postCommandMessage (TextEditorDefs::escapeKeyMessageId); | ||||
} | } | ||||
void TextEditor::addListener (TextEditorListener* const newListener) | |||||
void TextEditor::addListener (Listener* const newListener) | |||||
{ | { | ||||
listeners.add (newListener); | listeners.add (newListener); | ||||
} | } | ||||
void TextEditor::removeListener (TextEditorListener* const listenerToRemove) | |||||
void TextEditor::removeListener (Listener* const listenerToRemove) | |||||
{ | { | ||||
listeners.remove (listenerToRemove); | listeners.remove (listenerToRemove); | ||||
} | } | ||||
@@ -2207,19 +2207,19 @@ void TextEditor::handleCommandMessage (const int commandId) | |||||
switch (commandId) | switch (commandId) | ||||
{ | { | ||||
case TextEditorDefs::textChangeMessageId: | case TextEditorDefs::textChangeMessageId: | ||||
listeners.callChecked (checker, &TextEditorListener::textEditorTextChanged, (TextEditor&) *this); | |||||
listeners.callChecked (checker, &Listener::textEditorTextChanged, (TextEditor&) *this); | |||||
break; | break; | ||||
case TextEditorDefs::returnKeyMessageId: | case TextEditorDefs::returnKeyMessageId: | ||||
listeners.callChecked (checker, &TextEditorListener::textEditorReturnKeyPressed, (TextEditor&) *this); | |||||
listeners.callChecked (checker, &Listener::textEditorReturnKeyPressed, (TextEditor&) *this); | |||||
break; | break; | ||||
case TextEditorDefs::escapeKeyMessageId: | case TextEditorDefs::escapeKeyMessageId: | ||||
listeners.callChecked (checker, &TextEditorListener::textEditorEscapeKeyPressed, (TextEditor&) *this); | |||||
listeners.callChecked (checker, &Listener::textEditorEscapeKeyPressed, (TextEditor&) *this); | |||||
break; | break; | ||||
case TextEditorDefs::focusLossMessageId: | case TextEditorDefs::focusLossMessageId: | ||||
listeners.callChecked (checker, &TextEditorListener::textEditorFocusLost, (TextEditor&) *this); | |||||
listeners.callChecked (checker, &Listener::textEditorFocusLost, (TextEditor&) *this); | |||||
break; | break; | ||||
default: | default: | ||||
@@ -34,33 +34,6 @@ | |||||
#include "../menus/juce_PopupMenu.h" | #include "../menus/juce_PopupMenu.h" | ||||
#include "../../../containers/juce_Value.h" | #include "../../../containers/juce_Value.h" | ||||
#include "../keyboard/juce_TextInputTarget.h" | #include "../keyboard/juce_TextInputTarget.h" | ||||
class TextEditor; | |||||
//============================================================================== | |||||
/** | |||||
Receives callbacks from a TextEditor component when it changes. | |||||
@see TextEditor::addListener | |||||
*/ | |||||
class JUCE_API TextEditorListener | |||||
{ | |||||
public: | |||||
/** Destructor. */ | |||||
virtual ~TextEditorListener() {} | |||||
/** Called when the user changes the text in some way. */ | |||||
virtual void textEditorTextChanged (TextEditor& editor) = 0; | |||||
/** Called when the user presses the return key. */ | |||||
virtual void textEditorReturnKeyPressed (TextEditor& editor) = 0; | |||||
/** Called when the user presses the escape key. */ | |||||
virtual void textEditorEscapeKeyPressed (TextEditor& editor) = 0; | |||||
/** Called when the text editor loses focus. */ | |||||
virtual void textEditorFocusLost (TextEditor& editor) = 0; | |||||
}; | |||||
//============================================================================== | //============================================================================== | ||||
@@ -70,7 +43,7 @@ public: | |||||
A TextEditor can either be in single- or multi-line mode, and supports mixed | A TextEditor can either be in single- or multi-line mode, and supports mixed | ||||
fonts and colours. | fonts and colours. | ||||
@see TextEditorListener, Label | |||||
@see TextEditor::Listener, Label | |||||
*/ | */ | ||||
class JUCE_API TextEditor : public Component, | class JUCE_API TextEditor : public Component, | ||||
public TextInputTarget, | public TextInputTarget, | ||||
@@ -117,7 +90,7 @@ public: | |||||
/** Changes the behaviour of the return key. | /** Changes the behaviour of the return key. | ||||
If set to true, the return key will insert a new-line into the text; if false | If set to true, the return key will insert a new-line into the text; if false | ||||
it will trigger a call to the TextEditorListener::textEditorReturnKeyPressed() | |||||
it will trigger a call to the TextEditor::Listener::textEditorReturnKeyPressed() | |||||
method. By default this is set to false, and when true it will only insert | method. By default this is set to false, and when true it will only insert | ||||
new-lines when in multi-line mode (see setMultiLine()). | new-lines when in multi-line mode (see setMultiLine()). | ||||
*/ | */ | ||||
@@ -328,17 +301,41 @@ public: | |||||
void setScrollBarButtonVisibility (bool buttonsVisible); | void setScrollBarButtonVisibility (bool buttonsVisible); | ||||
//============================================================================== | //============================================================================== | ||||
/** | |||||
Receives callbacks from a TextEditor component when it changes. | |||||
@see TextEditor::addListener | |||||
*/ | |||||
class JUCE_API Listener | |||||
{ | |||||
public: | |||||
/** Destructor. */ | |||||
virtual ~Listener() {} | |||||
/** Called when the user changes the text in some way. */ | |||||
virtual void textEditorTextChanged (TextEditor& editor) = 0; | |||||
/** Called when the user presses the return key. */ | |||||
virtual void textEditorReturnKeyPressed (TextEditor& editor) = 0; | |||||
/** Called when the user presses the escape key. */ | |||||
virtual void textEditorEscapeKeyPressed (TextEditor& editor) = 0; | |||||
/** Called when the text editor loses focus. */ | |||||
virtual void textEditorFocusLost (TextEditor& editor) = 0; | |||||
}; | |||||
/** Registers a listener to be told when things happen to the text. | /** Registers a listener to be told when things happen to the text. | ||||
@see removeListener | @see removeListener | ||||
*/ | */ | ||||
void addListener (TextEditorListener* newListener); | |||||
void addListener (Listener* newListener); | |||||
/** Deregisters a listener. | /** Deregisters a listener. | ||||
@see addListener | @see addListener | ||||
*/ | */ | ||||
void removeListener (TextEditorListener* listenerToRemove); | |||||
void removeListener (Listener* listenerToRemove); | |||||
//============================================================================== | //============================================================================== | ||||
/** Returns the entire contents of the editor. */ | /** Returns the entire contents of the editor. */ | ||||
@@ -661,7 +658,7 @@ private: | |||||
} dragType; | } dragType; | ||||
String allowedCharacters; | String allowedCharacters; | ||||
ListenerList <TextEditorListener> listeners; | |||||
ListenerList <Listener> listeners; | |||||
void coalesceSimilarSections(); | void coalesceSimilarSections(); | ||||
void splitSection (int sectionIndex, int charToSplitAt); | void splitSection (int sectionIndex, int charToSplitAt); | ||||
@@ -691,4 +688,8 @@ private: | |||||
TextEditor& operator= (const TextEditor&); | TextEditor& operator= (const TextEditor&); | ||||
}; | }; | ||||
/** This typedef is just for compatibility with old code - newer code should use the TextEditor::Listener class directly. */ | |||||
typedef TextEditor::Listener TextEditorListener; | |||||
#endif // __JUCE_TEXTEDITOR_JUCEHEADER__ | #endif // __JUCE_TEXTEDITOR_JUCEHEADER__ |
@@ -172,7 +172,7 @@ private: | |||||
}; | }; | ||||
//============================================================================== | //============================================================================== | ||||
class MissingItemsComponent : public PopupMenuCustomComponent | |||||
class Toolbar::MissingItemsComponent : public PopupMenuCustomComponent | |||||
{ | { | ||||
public: | public: | ||||
MissingItemsComponent (Toolbar& owner_, const int height_) | MissingItemsComponent (Toolbar& owner_, const int height_) | ||||
@@ -782,8 +782,8 @@ private: | |||||
Toolbar* const toolbar; | Toolbar* const toolbar; | ||||
class CustomiserPanel : public Component, | class CustomiserPanel : public Component, | ||||
private ComboBoxListener, | |||||
private ButtonListener | |||||
private ComboBox::Listener, | |||||
private Button::Listener | |||||
{ | { | ||||
public: | public: | ||||
CustomiserPanel (ToolbarItemFactory& factory_, | CustomiserPanel (ToolbarItemFactory& factory_, | ||||
@@ -31,7 +31,6 @@ | |||||
#include "../buttons/juce_Button.h" | #include "../buttons/juce_Button.h" | ||||
class ToolbarItemComponent; | class ToolbarItemComponent; | ||||
class ToolbarItemFactory; | class ToolbarItemFactory; | ||||
class MissingItemsComponent; | |||||
//============================================================================== | //============================================================================== | ||||
@@ -54,7 +53,7 @@ class MissingItemsComponent; | |||||
class JUCE_API Toolbar : public Component, | class JUCE_API Toolbar : public Component, | ||||
public DragAndDropContainer, | public DragAndDropContainer, | ||||
public DragAndDropTarget, | public DragAndDropTarget, | ||||
private ButtonListener | |||||
private Button::Listener | |||||
{ | { | ||||
public: | public: | ||||
//============================================================================== | //============================================================================== | ||||
@@ -299,6 +298,7 @@ private: | |||||
bool vertical, isEditingActive; | bool vertical, isEditingActive; | ||||
ToolbarItemStyle toolbarStyle; | ToolbarItemStyle toolbarStyle; | ||||
ComponentAnimator animator; | ComponentAnimator animator; | ||||
class MissingItemsComponent; | |||||
friend class MissingItemsComponent; | friend class MissingItemsComponent; | ||||
Array <ToolbarItemComponent*> items; | Array <ToolbarItemComponent*> items; | ||||
@@ -48,9 +48,9 @@ | |||||
class JUCE_API FileBrowserComponent : public Component, | class JUCE_API FileBrowserComponent : public Component, | ||||
public ChangeBroadcaster, | public ChangeBroadcaster, | ||||
private FileBrowserListener, | private FileBrowserListener, | ||||
private TextEditorListener, | |||||
private ButtonListener, | |||||
private ComboBoxListener, | |||||
private TextEditor::Listener, | |||||
private Button::Listener, | |||||
private ComboBox::Listener, | |||||
private FileFilter | private FileFilter | ||||
{ | { | ||||
public: | public: | ||||
@@ -66,7 +66,7 @@ | |||||
@see FileChooser | @see FileChooser | ||||
*/ | */ | ||||
class JUCE_API FileChooserDialogBox : public ResizableWindow, | class JUCE_API FileChooserDialogBox : public ResizableWindow, | ||||
public ButtonListener, | |||||
public Button::Listener, | |||||
public FileBrowserListener | public FileBrowserListener | ||||
{ | { | ||||
public: | public: | ||||
@@ -43,7 +43,7 @@ | |||||
class JUCE_API FileSearchPathListComponent : public Component, | class JUCE_API FileSearchPathListComponent : public Component, | ||||
public SettableTooltipClient, | public SettableTooltipClient, | ||||
public FileDragAndDropTarget, | public FileDragAndDropTarget, | ||||
private ButtonListener, | |||||
private Button::Listener, | |||||
private ListBoxModel | private ListBoxModel | ||||
{ | { | ||||
public: | public: | ||||
@@ -72,8 +72,8 @@ class JUCE_API FilenameComponent : public Component, | |||||
public SettableTooltipClient, | public SettableTooltipClient, | ||||
public FileDragAndDropTarget, | public FileDragAndDropTarget, | ||||
private AsyncUpdater, | private AsyncUpdater, | ||||
private ButtonListener, | |||||
private ComboBoxListener | |||||
private Button::Listener, | |||||
private ComboBox::Listener | |||||
{ | { | ||||
public: | public: | ||||
//============================================================================== | //============================================================================== | ||||
@@ -2907,7 +2907,7 @@ void Component::takeKeyboardFocus (const FocusChangeType cause) | |||||
if (peer->isFocused() && currentlyFocusedComponent != this) | if (peer->isFocused() && currentlyFocusedComponent != this) | ||||
{ | { | ||||
Component* const componentLosingFocus = currentlyFocusedComponent; | |||||
SafePointer<Component> componentLosingFocus (currentlyFocusedComponent); | |||||
currentlyFocusedComponent = this; | currentlyFocusedComponent = this; | ||||
@@ -2915,7 +2915,7 @@ void Component::takeKeyboardFocus (const FocusChangeType cause) | |||||
// call this after setting currentlyFocusedComponent so that the one that's | // call this after setting currentlyFocusedComponent so that the one that's | ||||
// losing it has a chance to see where focus is going | // losing it has a chance to see where focus is going | ||||
if (componentLosingFocus->isValidComponent()) | |||||
if (componentLosingFocus != 0) | |||||
componentLosingFocus->internalFocusLoss (cause); | componentLosingFocus->internalFocusLoss (cause); | ||||
if (currentlyFocusedComponent == this) | if (currentlyFocusedComponent == this) | ||||
@@ -3047,11 +3047,12 @@ Component* JUCE_CALLTYPE Component::getCurrentlyFocusedComponent() throw() | |||||
void Component::giveAwayFocus() | void Component::giveAwayFocus() | ||||
{ | { | ||||
// use a copy so we can clear the value before the call | // use a copy so we can clear the value before the call | ||||
Component* const componentLosingFocus = currentlyFocusedComponent; | |||||
SafePointer<Component> componentLosingFocus (currentlyFocusedComponent); | |||||
currentlyFocusedComponent = 0; | currentlyFocusedComponent = 0; | ||||
Desktop::getInstance().triggerFocusCallback(); | Desktop::getInstance().triggerFocusCallback(); | ||||
if (componentLosingFocus->isValidComponent()) | |||||
if (componentLosingFocus != 0) | |||||
componentLosingFocus->internalFocusLoss (focusChangedDirectly); | componentLosingFocus->internalFocusLoss (focusChangedDirectly); | ||||
} | } | ||||
@@ -41,7 +41,7 @@ | |||||
class JUCE_API KeyMappingEditorComponent : public Component, | class JUCE_API KeyMappingEditorComponent : public Component, | ||||
public TreeViewItem, | public TreeViewItem, | ||||
public ChangeListener, | public ChangeListener, | ||||
private ButtonListener | |||||
private Button::Listener | |||||
{ | { | ||||
public: | public: | ||||
//============================================================================== | //============================================================================== | ||||
@@ -186,12 +186,12 @@ void ScrollBar::setButtonRepeatSpeed (const int initialDelayInMillisecs_, | |||||
} | } | ||||
//============================================================================== | //============================================================================== | ||||
void ScrollBar::addListener (ScrollBarListener* const listener) | |||||
void ScrollBar::addListener (Listener* const listener) | |||||
{ | { | ||||
listeners.add (listener); | listeners.add (listener); | ||||
} | } | ||||
void ScrollBar::removeListener (ScrollBarListener* const listener) | |||||
void ScrollBar::removeListener (Listener* const listener) | |||||
{ | { | ||||
listeners.remove (listener); | listeners.remove (listener); | ||||
} | } | ||||
@@ -199,7 +199,7 @@ void ScrollBar::removeListener (ScrollBarListener* const listener) | |||||
void ScrollBar::handleAsyncUpdate() | void ScrollBar::handleAsyncUpdate() | ||||
{ | { | ||||
double start = visibleRange.getStart(); // (need to use a temp variable for VC7 compatibility) | double start = visibleRange.getStart(); // (need to use a temp variable for VC7 compatibility) | ||||
listeners.call (&ScrollBarListener::scrollBarMoved, this, start); | |||||
listeners.call (&Listener::scrollBarMoved, this, start); | |||||
} | } | ||||
//============================================================================== | //============================================================================== | ||||
@@ -30,32 +30,6 @@ | |||||
#include "../../../containers/juce_Range.h" | #include "../../../containers/juce_Range.h" | ||||
#include "../../../events/juce_Timer.h" | #include "../../../events/juce_Timer.h" | ||||
#include "../buttons/juce_Button.h" | #include "../buttons/juce_Button.h" | ||||
class ScrollBar; | |||||
//============================================================================== | |||||
/** | |||||
A class for receiving events from a ScrollBar. | |||||
You can register a ScrollBarListener with a ScrollBar using the ScrollBar::addListener() | |||||
method, and it will be called when the bar's position changes. | |||||
@see ScrollBar::addListener, ScrollBar::removeListener | |||||
*/ | |||||
class JUCE_API ScrollBarListener | |||||
{ | |||||
public: | |||||
/** Destructor. */ | |||||
virtual ~ScrollBarListener() {} | |||||
/** Called when a ScrollBar is moved. | |||||
@param scrollBarThatHasMoved the bar that has moved | |||||
@param newRangeStart the new range start of this bar | |||||
*/ | |||||
virtual void scrollBarMoved (ScrollBar* scrollBarThatHasMoved, | |||||
double newRangeStart) = 0; | |||||
}; | |||||
//============================================================================== | //============================================================================== | ||||
@@ -66,7 +40,7 @@ public: | |||||
sets the range of values it can represent. Then you can use setCurrentRange() to | sets the range of values it can represent. Then you can use setCurrentRange() to | ||||
change the position and size of the scrollbar's 'thumb'. | change the position and size of the scrollbar's 'thumb'. | ||||
Registering a ScrollBarListener with the scrollbar will allow you to find out when | |||||
Registering a ScrollBar::Listener with the scrollbar will allow you to find out when | |||||
the user moves it, and you can use the getCurrentRangeStart() to find out where | the user moves it, and you can use the getCurrentRangeStart() to find out where | ||||
they moved it to. | they moved it to. | ||||
@@ -76,7 +50,7 @@ public: | |||||
For most purposes, it's probably easier to use a ViewportContainer or ListBox | For most purposes, it's probably easier to use a ViewportContainer or ListBox | ||||
instead of handling a scrollbar directly. | instead of handling a scrollbar directly. | ||||
@see ScrollBarListener | |||||
@see ScrollBar::Listener | |||||
*/ | */ | ||||
class JUCE_API ScrollBar : public Component, | class JUCE_API ScrollBar : public Component, | ||||
public AsyncUpdater, | public AsyncUpdater, | ||||
@@ -166,7 +140,7 @@ public: | |||||
/** Changes the position of the scrollbar's 'thumb'. | /** Changes the position of the scrollbar's 'thumb'. | ||||
If this method call actually changes the scrollbar's position, it will trigger an | If this method call actually changes the scrollbar's position, it will trigger an | ||||
asynchronous call to ScrollBarListener::scrollBarMoved() for all the listeners that | |||||
asynchronous call to ScrollBar::Listener::scrollBarMoved() for all the listeners that | |||||
are registered. | are registered. | ||||
@see getCurrentRange. setCurrentRangeStart | @see getCurrentRange. setCurrentRangeStart | ||||
@@ -179,7 +153,7 @@ public: | |||||
changing the size, you can use setCurrentRangeStart(). | changing the size, you can use setCurrentRangeStart(). | ||||
If this method call actually changes the scrollbar's position, it will trigger an | If this method call actually changes the scrollbar's position, it will trigger an | ||||
asynchronous call to ScrollBarListener::scrollBarMoved() for all the listeners that | |||||
asynchronous call to ScrollBar::Listener::scrollBarMoved() for all the listeners that | |||||
are registered. | are registered. | ||||
@param newStart the top (or left) of the thumb, in the range | @param newStart the top (or left) of the thumb, in the range | ||||
@@ -198,7 +172,7 @@ public: | |||||
that the maximum thumb start position is (getMaximumRangeLimit() - getCurrentRangeSize()). | that the maximum thumb start position is (getMaximumRangeLimit() - getCurrentRangeSize()). | ||||
If this method call actually changes the scrollbar's position, it will trigger an | If this method call actually changes the scrollbar's position, it will trigger an | ||||
asynchronous call to ScrollBarListener::scrollBarMoved() for all the listeners that | |||||
asynchronous call to ScrollBar::Listener::scrollBarMoved() for all the listeners that | |||||
are registered. | are registered. | ||||
@see setCurrentRange | @see setCurrentRange | ||||
@@ -287,11 +261,34 @@ public: | |||||
}; | }; | ||||
//============================================================================== | //============================================================================== | ||||
/** | |||||
A class for receiving events from a ScrollBar. | |||||
You can register a ScrollBar::Listener with a ScrollBar using the ScrollBar::addListener() | |||||
method, and it will be called when the bar's position changes. | |||||
@see ScrollBar::addListener, ScrollBar::removeListener | |||||
*/ | |||||
class JUCE_API Listener | |||||
{ | |||||
public: | |||||
/** Destructor. */ | |||||
virtual ~Listener() {} | |||||
/** Called when a ScrollBar is moved. | |||||
@param scrollBarThatHasMoved the bar that has moved | |||||
@param newRangeStart the new range start of this bar | |||||
*/ | |||||
virtual void scrollBarMoved (ScrollBar* scrollBarThatHasMoved, | |||||
double newRangeStart) = 0; | |||||
}; | |||||
/** Registers a listener that will be called when the scrollbar is moved. */ | /** Registers a listener that will be called when the scrollbar is moved. */ | ||||
void addListener (ScrollBarListener* listener); | |||||
void addListener (Listener* listener); | |||||
/** Deregisters a previously-registered listener. */ | /** Deregisters a previously-registered listener. */ | ||||
void removeListener (ScrollBarListener* listener); | |||||
void removeListener (Listener* listener); | |||||
//============================================================================== | //============================================================================== | ||||
/** @internal */ | /** @internal */ | ||||
@@ -326,7 +323,7 @@ private: | |||||
class ScrollbarButton; | class ScrollbarButton; | ||||
friend class ScopedPointer<ScrollbarButton>; | friend class ScopedPointer<ScrollbarButton>; | ||||
ScopedPointer<ScrollbarButton> upButton, downButton; | ScopedPointer<ScrollbarButton> upButton, downButton; | ||||
ListenerList <ScrollBarListener> listeners; | |||||
ListenerList <Listener> listeners; | |||||
void updateThumbPosition(); | void updateThumbPosition(); | ||||
void timerCallback(); | void timerCallback(); | ||||
@@ -335,5 +332,8 @@ private: | |||||
ScrollBar& operator= (const ScrollBar&); | ScrollBar& operator= (const ScrollBar&); | ||||
}; | }; | ||||
/** This typedef is just for compatibility with old code - newer code should use the ScrollBar::Listener class directly. */ | |||||
typedef ScrollBar::Listener ScrollBarListener; | |||||
#endif // __JUCE_SCROLLBAR_JUCEHEADER__ | #endif // __JUCE_SCROLLBAR_JUCEHEADER__ |
@@ -105,7 +105,7 @@ private: | |||||
*/ | */ | ||||
class JUCE_API TabbedButtonBar : public Component, | class JUCE_API TabbedButtonBar : public Component, | ||||
public ChangeBroadcaster, | public ChangeBroadcaster, | ||||
public ButtonListener | |||||
public Button::Listener | |||||
{ | { | ||||
public: | public: | ||||
//============================================================================== | //============================================================================== | ||||
@@ -44,7 +44,7 @@ | |||||
*/ | */ | ||||
class JUCE_API Viewport : public Component, | class JUCE_API Viewport : public Component, | ||||
private ComponentListener, | private ComponentListener, | ||||
private ScrollBarListener | |||||
private ScrollBar::Listener | |||||
{ | { | ||||
public: | public: | ||||
//============================================================================== | //============================================================================== | ||||
@@ -36,7 +36,7 @@ | |||||
@see MenuBarModel | @see MenuBarModel | ||||
*/ | */ | ||||
class JUCE_API MenuBarComponent : public Component, | class JUCE_API MenuBarComponent : public Component, | ||||
private MenuBarModelListener, | |||||
private MenuBarModel::Listener, | |||||
private Timer | private Timer | ||||
{ | { | ||||
public: | public: | ||||
@@ -61,12 +61,12 @@ void MenuBarModel::setApplicationCommandManagerToWatch (ApplicationCommandManage | |||||
} | } | ||||
} | } | ||||
void MenuBarModel::addListener (MenuBarModelListener* const newListener) throw() | |||||
void MenuBarModel::addListener (Listener* const newListener) throw() | |||||
{ | { | ||||
listeners.add (newListener); | listeners.add (newListener); | ||||
} | } | ||||
void MenuBarModel::removeListener (MenuBarModelListener* const listenerToRemove) throw() | |||||
void MenuBarModel::removeListener (Listener* const listenerToRemove) throw() | |||||
{ | { | ||||
// Trying to remove a listener that isn't on the list! | // Trying to remove a listener that isn't on the list! | ||||
// If this assertion happens because this object is a dangling pointer, make sure you've not | // If this assertion happens because this object is a dangling pointer, make sure you've not | ||||
@@ -79,12 +79,12 @@ void MenuBarModel::removeListener (MenuBarModelListener* const listenerToRemove) | |||||
//============================================================================== | //============================================================================== | ||||
void MenuBarModel::handleAsyncUpdate() | void MenuBarModel::handleAsyncUpdate() | ||||
{ | { | ||||
listeners.call (&MenuBarModelListener::menuBarItemsChanged, this); | |||||
listeners.call (&Listener::menuBarItemsChanged, this); | |||||
} | } | ||||
void MenuBarModel::applicationCommandInvoked (const ApplicationCommandTarget::InvocationInfo& info) | void MenuBarModel::applicationCommandInvoked (const ApplicationCommandTarget::InvocationInfo& info) | ||||
{ | { | ||||
listeners.call (&MenuBarModelListener::menuCommandInvoked, this, info); | |||||
listeners.call (&Listener::menuCommandInvoked, this, info); | |||||
} | } | ||||
void MenuBarModel::applicationCommandListChanged() | void MenuBarModel::applicationCommandListChanged() | ||||
@@ -27,32 +27,6 @@ | |||||
#define __JUCE_MENUBARMODEL_JUCEHEADER__ | #define __JUCE_MENUBARMODEL_JUCEHEADER__ | ||||
#include "juce_PopupMenu.h" | #include "juce_PopupMenu.h" | ||||
class MenuBarModel; | |||||
//============================================================================== | |||||
/** | |||||
A class to receive callbacks when a MenuBarModel changes. | |||||
@see MenuBarModel::addListener, MenuBarModel::removeListener, MenuBarModel::menuItemsChanged | |||||
*/ | |||||
class JUCE_API MenuBarModelListener | |||||
{ | |||||
public: | |||||
/** Destructor. */ | |||||
virtual ~MenuBarModelListener() {} | |||||
//============================================================================== | |||||
/** This callback is made when items are changed in the menu bar model. | |||||
*/ | |||||
virtual void menuBarItemsChanged (MenuBarModel* menuBarModel) = 0; | |||||
/** This callback is made when an application command is invoked that | |||||
is represented by one of the items in the menu bar model. | |||||
*/ | |||||
virtual void menuCommandInvoked (MenuBarModel* menuBarModel, | |||||
const ApplicationCommandTarget::InvocationInfo& info) = 0; | |||||
}; | |||||
//============================================================================== | //============================================================================== | ||||
@@ -62,7 +36,7 @@ public: | |||||
This class is used to tell a MenuBar what menus to show, and to respond | This class is used to tell a MenuBar what menus to show, and to respond | ||||
to a menu being selected. | to a menu being selected. | ||||
@see MenuBarModelListener, MenuBarComponent, PopupMenu | |||||
@see MenuBarModel::Listener, MenuBarComponent, PopupMenu | |||||
*/ | */ | ||||
class JUCE_API MenuBarModel : private AsyncUpdater, | class JUCE_API MenuBarModel : private AsyncUpdater, | ||||
private ApplicationCommandManagerListener | private ApplicationCommandManagerListener | ||||
@@ -97,6 +71,29 @@ public: | |||||
*/ | */ | ||||
void setApplicationCommandManagerToWatch (ApplicationCommandManager* manager) throw(); | void setApplicationCommandManagerToWatch (ApplicationCommandManager* manager) throw(); | ||||
//============================================================================== | |||||
/** A class to receive callbacks when a MenuBarModel changes. | |||||
@see MenuBarModel::addListener, MenuBarModel::removeListener, MenuBarModel::menuItemsChanged | |||||
*/ | |||||
class JUCE_API Listener | |||||
{ | |||||
public: | |||||
/** Destructor. */ | |||||
virtual ~Listener() {} | |||||
//============================================================================== | |||||
/** This callback is made when items are changed in the menu bar model. | |||||
*/ | |||||
virtual void menuBarItemsChanged (MenuBarModel* menuBarModel) = 0; | |||||
/** This callback is made when an application command is invoked that | |||||
is represented by one of the items in the menu bar model. | |||||
*/ | |||||
virtual void menuCommandInvoked (MenuBarModel* menuBarModel, | |||||
const ApplicationCommandTarget::InvocationInfo& info) = 0; | |||||
}; | |||||
/** Registers a listener for callbacks when the menu items in this model change. | /** Registers a listener for callbacks when the menu items in this model change. | ||||
The listener object will get callbacks when this object's menuItemsChanged() | The listener object will get callbacks when this object's menuItemsChanged() | ||||
@@ -104,13 +101,13 @@ public: | |||||
@see removeListener | @see removeListener | ||||
*/ | */ | ||||
void addListener (MenuBarModelListener* listenerToAdd) throw(); | |||||
void addListener (Listener* listenerToAdd) throw(); | |||||
/** Removes a listener. | /** Removes a listener. | ||||
@see addListener | @see addListener | ||||
*/ | */ | ||||
void removeListener (MenuBarModelListener* listenerToRemove) throw(); | |||||
void removeListener (Listener* listenerToRemove) throw(); | |||||
//============================================================================== | //============================================================================== | ||||
/** This method must return a list of the names of the menus. */ | /** This method must return a list of the names of the menus. */ | ||||
@@ -172,11 +169,14 @@ public: | |||||
private: | private: | ||||
ApplicationCommandManager* manager; | ApplicationCommandManager* manager; | ||||
ListenerList <MenuBarModelListener> listeners; | |||||
ListenerList <Listener> listeners; | |||||
MenuBarModel (const MenuBarModel&); | MenuBarModel (const MenuBarModel&); | ||||
MenuBarModel& operator= (const MenuBarModel&); | MenuBarModel& operator= (const MenuBarModel&); | ||||
}; | }; | ||||
/** This typedef is just for compatibility with old code - newer code should use the MenuBarModel::Listener class directly. */ | |||||
typedef MenuBarModel::Listener MenuBarModelListener; | |||||
#endif // __JUCE_MENUBARMODEL_JUCEHEADER__ | #endif // __JUCE_MENUBARMODEL_JUCEHEADER__ |
@@ -40,7 +40,7 @@ | |||||
@see PropertyComponent | @see PropertyComponent | ||||
*/ | */ | ||||
class JUCE_API BooleanPropertyComponent : public PropertyComponent, | class JUCE_API BooleanPropertyComponent : public PropertyComponent, | ||||
private ButtonListener | |||||
private Button::Listener | |||||
{ | { | ||||
protected: | protected: | ||||
//============================================================================== | //============================================================================== | ||||
@@ -40,7 +40,7 @@ | |||||
@see PropertyComponent | @see PropertyComponent | ||||
*/ | */ | ||||
class JUCE_API ButtonPropertyComponent : public PropertyComponent, | class JUCE_API ButtonPropertyComponent : public PropertyComponent, | ||||
private ButtonListener | |||||
private Button::Listener | |||||
{ | { | ||||
public: | public: | ||||
//============================================================================== | //============================================================================== | ||||
@@ -50,7 +50,7 @@ | |||||
@see PropertyComponent, PropertyPanel | @see PropertyComponent, PropertyPanel | ||||
*/ | */ | ||||
class JUCE_API ChoicePropertyComponent : public PropertyComponent, | class JUCE_API ChoicePropertyComponent : public PropertyComponent, | ||||
private ComboBoxListener | |||||
private ComboBox::Listener | |||||
{ | { | ||||
protected: | protected: | ||||
/** Creates the component. | /** Creates the component. | ||||
@@ -37,7 +37,7 @@ | |||||
@see PropertyComponent, Slider | @see PropertyComponent, Slider | ||||
*/ | */ | ||||
class JUCE_API SliderPropertyComponent : public PropertyComponent, | class JUCE_API SliderPropertyComponent : public PropertyComponent, | ||||
private SliderListener | |||||
private Slider::Listener | |||||
{ | { | ||||
protected: | protected: | ||||
//============================================================================== | //============================================================================== | ||||
@@ -207,9 +207,9 @@ private: | |||||
//============================================================================== | //============================================================================== | ||||
class AudioDeviceSettingsPanel : public Component, | class AudioDeviceSettingsPanel : public Component, | ||||
public ComboBoxListener, | |||||
public ChangeListener, | public ChangeListener, | ||||
public ButtonListener | |||||
public ComboBox::Listener, | |||||
public Button::Listener | |||||
{ | { | ||||
public: | public: | ||||
AudioDeviceSettingsPanel (AudioIODeviceType* type_, | AudioDeviceSettingsPanel (AudioIODeviceType* type_, | ||||
@@ -40,8 +40,8 @@ | |||||
@see AudioDeviceManager | @see AudioDeviceManager | ||||
*/ | */ | ||||
class JUCE_API AudioDeviceSelectorComponent : public Component, | class JUCE_API AudioDeviceSelectorComponent : public Component, | ||||
public ComboBoxListener, | |||||
public ButtonListener, | |||||
public ComboBox::Listener, | |||||
public Button::Listener, | |||||
public ChangeListener | public ChangeListener | ||||
{ | { | ||||
public: | public: | ||||
@@ -41,7 +41,7 @@ | |||||
*/ | */ | ||||
class JUCE_API ColourSelector : public Component, | class JUCE_API ColourSelector : public Component, | ||||
public ChangeBroadcaster, | public ChangeBroadcaster, | ||||
protected SliderListener | |||||
protected Slider::Listener | |||||
{ | { | ||||
public: | public: | ||||
//============================================================================== | //============================================================================== | ||||
@@ -49,7 +49,7 @@ | |||||
for each of these pages. | for each of these pages. | ||||
*/ | */ | ||||
class JUCE_API PreferencesPanel : public Component, | class JUCE_API PreferencesPanel : public Component, | ||||
private ButtonListener | |||||
private Button::Listener | |||||
{ | { | ||||
public: | public: | ||||
//============================================================================== | //============================================================================== | ||||
@@ -46,7 +46,7 @@ | |||||
@see ThreadWithProgressWindow | @see ThreadWithProgressWindow | ||||
*/ | */ | ||||
class JUCE_API AlertWindow : public TopLevelWindow, | class JUCE_API AlertWindow : public TopLevelWindow, | ||||
private ButtonListener | |||||
private Button::Listener | |||||
{ | { | ||||
public: | public: | ||||
//============================================================================== | //============================================================================== | ||||
@@ -34,7 +34,7 @@ BEGIN_JUCE_NAMESPACE | |||||
//============================================================================== | //============================================================================== | ||||
class DocumentWindow::ButtonListenerProxy : public ButtonListener | |||||
class DocumentWindow::ButtonListenerProxy : public Button::Listener | |||||
{ | { | ||||
public: | public: | ||||
ButtonListenerProxy (DocumentWindow& owner_) | ButtonListenerProxy (DocumentWindow& owner_) | ||||
@@ -28,31 +28,10 @@ | |||||
#if JUCE_USE_CAMERA || DOXYGEN | #if JUCE_USE_CAMERA || DOXYGEN | ||||
//============================================================================== | |||||
/** | |||||
Receives callbacks with images from a CameraDevice. | |||||
@see CameraDevice::addListener | |||||
*/ | |||||
class CameraImageListener | |||||
{ | |||||
public: | |||||
CameraImageListener() {} | |||||
virtual ~CameraImageListener() {} | |||||
/** This method is called when a new image arrives. | |||||
This may be called by any thread, so be careful about thread-safety, | |||||
and make sure that you process the data as quickly as possible to | |||||
avoid glitching! | |||||
*/ | |||||
virtual void imageReceived (const Image& image) = 0; | |||||
}; | |||||
//============================================================================== | //============================================================================== | ||||
/** | /** | ||||
Controls any camera capture devices that might be available. | |||||
Controls any video capture devices that might be available. | |||||
Use getAvailableDevices() to list the devices that are attached to the | Use getAvailableDevices() to list the devices that are attached to the | ||||
system, then call openDevice to open one for use. Once you have a CameraDevice | system, then call openDevice to open one for use. Once you have a CameraDevice | ||||
@@ -128,16 +107,36 @@ public: | |||||
const Time getTimeOfFirstRecordedFrame() const; | const Time getTimeOfFirstRecordedFrame() const; | ||||
//============================================================================== | //============================================================================== | ||||
/** | |||||
Receives callbacks with images from a CameraDevice. | |||||
@see CameraDevice::addListener | |||||
*/ | |||||
class JUCE_API Listener | |||||
{ | |||||
public: | |||||
Listener() {} | |||||
virtual ~Listener() {} | |||||
/** This method is called when a new image arrives. | |||||
This may be called by any thread, so be careful about thread-safety, | |||||
and make sure that you process the data as quickly as possible to | |||||
avoid glitching! | |||||
*/ | |||||
virtual void imageReceived (const Image& image) = 0; | |||||
}; | |||||
/** Adds a listener to receive images from the camera. | /** Adds a listener to receive images from the camera. | ||||
Be very careful not to delete the listener without first removing it by calling | Be very careful not to delete the listener without first removing it by calling | ||||
removeListener(). | removeListener(). | ||||
*/ | */ | ||||
void addListener (CameraImageListener* listenerToAdd); | |||||
void addListener (Listener* listenerToAdd); | |||||
/** Removes a listener that was previously added with addListener(). | /** Removes a listener that was previously added with addListener(). | ||||
*/ | */ | ||||
void removeListener (CameraImageListener* listenerToRemove); | |||||
void removeListener (Listener* listenerToRemove); | |||||
//============================================================================== | //============================================================================== | ||||
@@ -156,6 +155,9 @@ private: | |||||
CameraDevice& operator= (const CameraDevice&); | CameraDevice& operator= (const CameraDevice&); | ||||
}; | }; | ||||
/** This typedef is just for compatibility with old code - newer code should use the CameraDevice::Listener class directly. */ | |||||
typedef CameraDevice::Listener CameraImageListener; | |||||
#endif | #endif | ||||
#endif // __JUCE_CAMERADEVICE_JUCEHEADER__ | #endif // __JUCE_CAMERADEVICE_JUCEHEADER__ |
@@ -326,9 +326,6 @@ | |||||
#ifndef __JUCE_SLIDER_JUCEHEADER__ | #ifndef __JUCE_SLIDER_JUCEHEADER__ | ||||
#include "gui/components/controls/juce_Slider.h" | #include "gui/components/controls/juce_Slider.h" | ||||
#endif | #endif | ||||
#ifndef __JUCE_SLIDERLISTENER_JUCEHEADER__ | |||||
#include "gui/components/controls/juce_SliderListener.h" | |||||
#endif | |||||
#ifndef __JUCE_TABLEHEADERCOMPONENT_JUCEHEADER__ | #ifndef __JUCE_TABLEHEADERCOMPONENT_JUCEHEADER__ | ||||
#include "gui/components/controls/juce_TableHeaderComponent.h" | #include "gui/components/controls/juce_TableHeaderComponent.h" | ||||
#endif | #endif | ||||
@@ -160,7 +160,7 @@ public: | |||||
} | } | ||||
} | } | ||||
void addListener (CameraImageListener* listenerToAdd) | |||||
void addListener (CameraDevice::Listener* listenerToAdd) | |||||
{ | { | ||||
const ScopedLock sl (listenerLock); | const ScopedLock sl (listenerLock); | ||||
@@ -170,7 +170,7 @@ public: | |||||
listeners.addIfNotAlreadyThere (listenerToAdd); | listeners.addIfNotAlreadyThere (listenerToAdd); | ||||
} | } | ||||
void removeListener (CameraImageListener* listenerToRemove) | |||||
void removeListener (CameraDevice::Listener* listenerToRemove) | |||||
{ | { | ||||
const ScopedLock sl (listenerLock); | const ScopedLock sl (listenerLock); | ||||
listeners.removeValue (listenerToRemove); | listeners.removeValue (listenerToRemove); | ||||
@@ -192,7 +192,7 @@ public: | |||||
for (int i = listeners.size(); --i >= 0;) | for (int i = listeners.size(); --i >= 0;) | ||||
{ | { | ||||
CameraImageListener* const l = listeners[i]; | |||||
CameraDevice::Listener* const l = listeners[i]; | |||||
if (l != 0) | if (l != 0) | ||||
l->imageReceived (image); | l->imageReceived (image); | ||||
@@ -209,7 +209,7 @@ public: | |||||
QTCaptureCallbackDelegate* callbackDelegate; | QTCaptureCallbackDelegate* callbackDelegate; | ||||
String openingError; | String openingError; | ||||
Array<CameraImageListener*> listeners; | |||||
Array<CameraDevice::Listener*> listeners; | |||||
CriticalSection listenerLock; | CriticalSection listenerLock; | ||||
}; | }; | ||||
@@ -385,13 +385,13 @@ void CameraDevice::stopRecording() | |||||
} | } | ||||
} | } | ||||
void CameraDevice::addListener (CameraImageListener* listenerToAdd) | |||||
void CameraDevice::addListener (Listener* listenerToAdd) | |||||
{ | { | ||||
if (listenerToAdd != 0) | if (listenerToAdd != 0) | ||||
static_cast <QTCameraDeviceInteral*> (internal)->addListener (listenerToAdd); | static_cast <QTCameraDeviceInteral*> (internal)->addListener (listenerToAdd); | ||||
} | } | ||||
void CameraDevice::removeListener (CameraImageListener* listenerToRemove) | |||||
void CameraDevice::removeListener (Listener* listenerToRemove) | |||||
{ | { | ||||
if (listenerToRemove != 0) | if (listenerToRemove != 0) | ||||
static_cast <QTCameraDeviceInteral*> (internal)->removeListener (listenerToRemove); | static_cast <QTCameraDeviceInteral*> (internal)->removeListener (listenerToRemove); | ||||
@@ -53,7 +53,7 @@ BEGIN_JUCE_NAMESPACE | |||||
//============================================================================== | //============================================================================== | ||||
class JuceMainMenuHandler : private MenuBarModelListener, | |||||
class JuceMainMenuHandler : private MenuBarModel::Listener, | |||||
private DeletedAtShutdown | private DeletedAtShutdown | ||||
{ | { | ||||
public: | public: | ||||
@@ -338,7 +338,7 @@ public: | |||||
} | } | ||||
//============================================================================== | //============================================================================== | ||||
void addListener (CameraImageListener* listenerToAdd) | |||||
void addListener (CameraDevice::Listener* listenerToAdd) | |||||
{ | { | ||||
const ScopedLock sl (listenerLock); | const ScopedLock sl (listenerLock); | ||||
@@ -348,7 +348,7 @@ public: | |||||
listeners.addIfNotAlreadyThere (listenerToAdd); | listeners.addIfNotAlreadyThere (listenerToAdd); | ||||
} | } | ||||
void removeListener (CameraImageListener* listenerToRemove) | |||||
void removeListener (CameraDevice::Listener* listenerToRemove) | |||||
{ | { | ||||
const ScopedLock sl (listenerLock); | const ScopedLock sl (listenerLock); | ||||
listeners.removeValue (listenerToRemove); | listeners.removeValue (listenerToRemove); | ||||
@@ -363,7 +363,7 @@ public: | |||||
for (int i = listeners.size(); --i >= 0;) | for (int i = listeners.size(); --i >= 0;) | ||||
{ | { | ||||
CameraImageListener* const l = listeners[i]; | |||||
CameraDevice::Listener* const l = listeners[i]; | |||||
if (l != 0) | if (l != 0) | ||||
l->imageReceived (image); | l->imageReceived (image); | ||||
@@ -647,7 +647,7 @@ private: | |||||
}; | }; | ||||
ComSmartPtr <GrabberCallback> callback; | ComSmartPtr <GrabberCallback> callback; | ||||
Array <CameraImageListener*> listeners; | |||||
Array <CameraDevice::Listener*> listeners; | |||||
CriticalSection listenerLock; | CriticalSection listenerLock; | ||||
//============================================================================== | //============================================================================== | ||||
@@ -706,7 +706,7 @@ void CameraDevice::stopRecording() | |||||
} | } | ||||
} | } | ||||
void CameraDevice::addListener (CameraImageListener* listenerToAdd) | |||||
void CameraDevice::addListener (Listener* listenerToAdd) | |||||
{ | { | ||||
DShowCameraDeviceInteral* const d = (DShowCameraDeviceInteral*) internal; | DShowCameraDeviceInteral* const d = (DShowCameraDeviceInteral*) internal; | ||||
@@ -714,7 +714,7 @@ void CameraDevice::addListener (CameraImageListener* listenerToAdd) | |||||
d->addListener (listenerToAdd); | d->addListener (listenerToAdd); | ||||
} | } | ||||
void CameraDevice::removeListener (CameraImageListener* listenerToRemove) | |||||
void CameraDevice::removeListener (Listener* listenerToRemove) | |||||
{ | { | ||||
DShowCameraDeviceInteral* const d = (DShowCameraDeviceInteral*) internal; | DShowCameraDeviceInteral* const d = (DShowCameraDeviceInteral*) internal; | ||||