@@ -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; }; | |||
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; }; | |||
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; }; | |||
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; }; | |||
@@ -1319,7 +1318,6 @@ | |||
1DB68310EA4D6180FF948AA0, | |||
3CE16163A43A6E67428385EE, | |||
E698677EEC8E88CAFF542764, | |||
BBF1D5E94840603712BDB13D, | |||
6BB68B37C7B0BB4DA8326647, | |||
1EA844F7CC5377A14B0FD21C, | |||
76E073B2A3F59A3ACD20CC87, | |||
@@ -491,7 +491,6 @@ | |||
<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.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.h"/> | |||
<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_Slider.cpp"/> | |||
<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.h"/> | |||
<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_Slider.cpp"/> | |||
<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.h"/> | |||
<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_ProgressBar.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_TableListBox.h"/> | |||
<ClInclude Include="..\..\src\gui\components\controls\juce_TextEditor.h"/> | |||
@@ -1650,9 +1650,6 @@ | |||
<ClInclude Include="..\..\src\gui\components\controls\juce_Slider.h"> | |||
<Filter>Juce\Source\gui\components\controls</Filter> | |||
</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"> | |||
<Filter>Juce\Source\gui\components\controls</Filter> | |||
</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; }; | |||
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; }; | |||
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; }; | |||
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; }; | |||
@@ -1319,7 +1318,6 @@ | |||
1DB68310EA4D6180FF948AA0, | |||
3CE16163A43A6E67428385EE, | |||
E698677EEC8E88CAFF542764, | |||
BBF1D5E94840603712BDB13D, | |||
6BB68B37C7B0BB4DA8326647, | |||
1EA844F7CC5377A14B0FD21C, | |||
76E073B2A3F59A3ACD20CC87, | |||
@@ -619,8 +619,6 @@ | |||
file="src/gui/components/controls/juce_Slider.cpp"/> | |||
<FILE id="dvlZ7M2B1" name="juce_Slider.h" compile="0" resource="0" | |||
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" | |||
resource="0" file="src/gui/components/controls/juce_TableHeaderComponent.cpp"/> | |||
<FILE id="EJ1tYAzIS" name="juce_TableHeaderComponent.h" compile="0" | |||
@@ -93,7 +93,7 @@ void JuceDemoPluginAudioProcessorEditor::timerCallback() | |||
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) | |||
{ | |||
if (slider == gainSlider) | |||
@@ -20,7 +20,7 @@ | |||
/** This is the editor component that our filter will display. | |||
*/ | |||
class JuceDemoPluginAudioProcessorEditor : public AudioProcessorEditor, | |||
public SliderListener, | |||
public Slider::Listener, | |||
public Timer | |||
{ | |||
public: | |||
@@ -38,7 +38,7 @@ | |||
that the other plugin wrappers use. | |||
*/ | |||
class StandaloneFilterWindow : public DocumentWindow, | |||
public ButtonListener | |||
public Button::Listener | |||
{ | |||
public: | |||
//============================================================================== | |||
@@ -31,7 +31,7 @@ | |||
This is our top-level component for our plugin.. | |||
*/ | |||
class JuceDemoBrowserPlugin : public BrowserPluginComponent, | |||
public ButtonListener | |||
public Button::Listener | |||
{ | |||
public: | |||
JuceDemoBrowserPlugin() | |||
@@ -39,8 +39,8 @@ class DemoThumbnailComp; | |||
*/ | |||
class AudioDemoPlaybackPage : public Component, | |||
public FileBrowserListener, | |||
public ButtonListener, | |||
public SliderListener | |||
public Button::Listener, | |||
public Slider::Listener | |||
{ | |||
public: | |||
//============================================================================== | |||
@@ -30,9 +30,9 @@ | |||
//============================================================================== | |||
class CameraDemo : public Component, | |||
public ComboBoxListener, | |||
public ButtonListener, | |||
public CameraImageListener | |||
public ComboBox::Listener, | |||
public Button::Listener, | |||
public CameraDevice::Listener | |||
{ | |||
public: | |||
//============================================================================== | |||
@@ -29,8 +29,8 @@ | |||
//============================================================================== | |||
class FontsAndTextDemo : public Component, | |||
public ListBoxModel, | |||
public ButtonListener, | |||
public SliderListener | |||
public Button::Listener, | |||
public Slider::Listener | |||
{ | |||
Array<Font> fonts; | |||
ListBox* listBox; | |||
@@ -28,8 +28,8 @@ | |||
//============================================================================== | |||
class InterprocessCommsDemo : public Component, | |||
public ButtonListener, | |||
public ComboBoxListener | |||
public Button::Listener, | |||
public ComboBox::Listener | |||
{ | |||
public: | |||
//============================================================================== | |||
@@ -38,8 +38,8 @@ class RenderingTestCanvas; | |||
//[/Comments] | |||
*/ | |||
class RenderingTestComponent : public Component, | |||
public ComboBoxListener, | |||
public SliderListener | |||
public ComboBox::Listener, | |||
public Slider::Listener | |||
{ | |||
public: | |||
//============================================================================== | |||
@@ -211,7 +211,7 @@ public: | |||
//============================================================================== | |||
class ThreadingDemo : public Component, | |||
public Timer, | |||
public ButtonListener | |||
public Button::Listener | |||
{ | |||
bool isUsingPool; | |||
ThreadPool pool; | |||
@@ -118,7 +118,7 @@ public: | |||
//============================================================================== | |||
class TreeViewDemo : public Component, | |||
public DragAndDropContainer, | |||
public ButtonListener | |||
public Button::Listener | |||
{ | |||
XmlElement* treeXml; | |||
@@ -65,8 +65,8 @@ private: | |||
//============================================================================== | |||
class WebBrowserDemo : public Component, | |||
public TextEditorListener, | |||
public ButtonListener | |||
public TextEditor::Listener, | |||
public Button::Listener | |||
{ | |||
public: | |||
//============================================================================== | |||
@@ -477,7 +477,7 @@ static Component* createRadioButtonPage() | |||
//============================================================================== | |||
class ButtonsPage : public Component, | |||
public ButtonListener | |||
public Button::Listener | |||
{ | |||
public: | |||
ButtonsPage (ButtonListener* buttonListener) | |||
@@ -643,8 +643,8 @@ static Component* createMiscPage() | |||
//============================================================================== | |||
class ToolbarDemoComp : public Component, | |||
public SliderListener, | |||
public ButtonListener | |||
public Slider::Listener, | |||
public Button::Listener | |||
{ | |||
public: | |||
ToolbarDemoComp() | |||
@@ -917,7 +917,7 @@ private: | |||
//============================================================================== | |||
class DemoTabbedComponent : public TabbedComponent, | |||
public ButtonListener | |||
public Button::Listener | |||
{ | |||
public: | |||
DemoTabbedComponent() | |||
@@ -1115,7 +1115,7 @@ public: | |||
const int numGroups = 4; | |||
class WidgetsDemo : public Component, | |||
public ButtonListener | |||
public Button::Listener | |||
{ | |||
TextButton* menuButton; | |||
ToggleButton* enableButton; | |||
@@ -41362,7 +41362,7 @@ void Component::takeKeyboardFocus (const FocusChangeType cause) | |||
if (peer->isFocused() && currentlyFocusedComponent != this) | |||
{ | |||
Component* const componentLosingFocus = currentlyFocusedComponent; | |||
SafePointer<Component> componentLosingFocus (currentlyFocusedComponent); | |||
currentlyFocusedComponent = this; | |||
@@ -41370,7 +41370,7 @@ void Component::takeKeyboardFocus (const FocusChangeType cause) | |||
// call this after setting currentlyFocusedComponent so that the one that's | |||
// losing it has a chance to see where focus is going | |||
if (componentLosingFocus->isValidComponent()) | |||
if (componentLosingFocus != 0) | |||
componentLosingFocus->internalFocusLoss (cause); | |||
if (currentlyFocusedComponent == this) | |||
@@ -41502,11 +41502,12 @@ Component* JUCE_CALLTYPE Component::getCurrentlyFocusedComponent() throw() | |||
void Component::giveAwayFocus() | |||
{ | |||
// use a copy so we can clear the value before the call | |||
Component* const componentLosingFocus = currentlyFocusedComponent; | |||
SafePointer<Component> componentLosingFocus (currentlyFocusedComponent); | |||
currentlyFocusedComponent = 0; | |||
Desktop::getInstance().triggerFocusCallback(); | |||
if (componentLosingFocus->isValidComponent()) | |||
if (componentLosingFocus != 0) | |||
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); | |||
} | |||
void Button::removeButtonListener (ButtonListener* const listener) | |||
void Button::removeButtonListener (Listener* const listener) | |||
{ | |||
buttonListeners.remove (listener); | |||
} | |||
@@ -42565,7 +42566,7 @@ void Button::sendClickMessage (const ModifierKeys& modifiers) | |||
clicked (modifiers); | |||
if (! checker.shouldBailOut()) | |||
buttonListeners.callChecked (checker, &ButtonListener::buttonClicked, this); | |||
buttonListeners.callChecked (checker, &Listener::buttonClicked, this); | |||
} | |||
void Button::sendStateMessage() | |||
@@ -42575,7 +42576,7 @@ void Button::sendStateMessage() | |||
buttonStateChanged(); | |||
if (! checker.shouldBailOut()) | |||
buttonListeners.callChecked (checker, &ButtonListener::buttonStateChanged, this); | |||
buttonListeners.callChecked (checker, &Listener::buttonStateChanged, this); | |||
} | |||
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); | |||
} | |||
void ComboBox::removeListener (ComboBoxListener* const listener) throw() | |||
void ComboBox::removeListener (Listener* const listener) throw() | |||
{ | |||
listeners.remove (listener); | |||
} | |||
@@ -46969,7 +46970,7 @@ void ComboBox::removeListener (ComboBoxListener* const listener) throw() | |||
void ComboBox::handleAsyncUpdate() | |||
{ | |||
Component::BailOutChecker checker (this); | |||
listeners.callChecked (checker, &ComboBoxListener::comboBoxChanged, this); | |||
listeners.callChecked (checker, &Listener::comboBoxChanged, this); | |||
} | |||
END_JUCE_NAMESPACE | |||
@@ -47342,12 +47343,12 @@ KeyboardFocusTraverser* Label::createFocusTraverser() | |||
return new LabelKeyboardFocusTraverser(); | |||
} | |||
void Label::addListener (LabelListener* const listener) throw() | |||
void Label::addListener (Listener* const listener) throw() | |||
{ | |||
listeners.add (listener); | |||
} | |||
void Label::removeListener (LabelListener* const listener) throw() | |||
void Label::removeListener (Listener* const listener) throw() | |||
{ | |||
listeners.remove (listener); | |||
} | |||
@@ -47355,7 +47356,7 @@ void Label::removeListener (LabelListener* const listener) throw() | |||
void Label::callChangeListeners() | |||
{ | |||
Component::BailOutChecker checker (this); | |||
listeners.callChecked (checker, &LabelListener::labelTextChanged, this); | |||
listeners.callChecked (checker, &Listener::labelTextChanged, this); | |||
} | |||
void Label::textEditorTextChanged (TextEditor& ed) | |||
@@ -48580,7 +48581,7 @@ void Slider::handleAsyncUpdate() | |||
cancelPendingUpdate(); | |||
Component::BailOutChecker checker (this); | |||
listeners.callChecked (checker, &SliderListener::sliderValueChanged, this); | |||
listeners.callChecked (checker, &Listener::sliderValueChanged, this); | |||
} | |||
void Slider::sendDragStart() | |||
@@ -48588,7 +48589,7 @@ void Slider::sendDragStart() | |||
startedDragging(); | |||
Component::BailOutChecker checker (this); | |||
listeners.callChecked (checker, &SliderListener::sliderDragStarted, this); | |||
listeners.callChecked (checker, &Listener::sliderDragStarted, this); | |||
} | |||
void Slider::sendDragEnd() | |||
@@ -48598,15 +48599,15 @@ void Slider::sendDragEnd() | |||
sliderBeingDragged = -1; | |||
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); | |||
} | |||
void Slider::removeListener (SliderListener* const listener) | |||
void Slider::removeListener (Listener* const 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); | |||
} | |||
void TableHeaderComponent::removeListener (TableHeaderListener* const listenerToRemove) | |||
void TableHeaderComponent::removeListener (Listener* const 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); | |||
} | |||
void TextEditor::addListener (TextEditorListener* const newListener) | |||
void TextEditor::addListener (Listener* const newListener) | |||
{ | |||
listeners.add (newListener); | |||
} | |||
void TextEditor::removeListener (TextEditorListener* const listenerToRemove) | |||
void TextEditor::removeListener (Listener* const listenerToRemove) | |||
{ | |||
listeners.remove (listenerToRemove); | |||
} | |||
@@ -53426,19 +53427,19 @@ void TextEditor::handleCommandMessage (const int commandId) | |||
switch (commandId) | |||
{ | |||
case TextEditorDefs::textChangeMessageId: | |||
listeners.callChecked (checker, &TextEditorListener::textEditorTextChanged, (TextEditor&) *this); | |||
listeners.callChecked (checker, &Listener::textEditorTextChanged, (TextEditor&) *this); | |||
break; | |||
case TextEditorDefs::returnKeyMessageId: | |||
listeners.callChecked (checker, &TextEditorListener::textEditorReturnKeyPressed, (TextEditor&) *this); | |||
listeners.callChecked (checker, &Listener::textEditorReturnKeyPressed, (TextEditor&) *this); | |||
break; | |||
case TextEditorDefs::escapeKeyMessageId: | |||
listeners.callChecked (checker, &TextEditorListener::textEditorEscapeKeyPressed, (TextEditor&) *this); | |||
listeners.callChecked (checker, &Listener::textEditorEscapeKeyPressed, (TextEditor&) *this); | |||
break; | |||
case TextEditorDefs::focusLossMessageId: | |||
listeners.callChecked (checker, &TextEditorListener::textEditorFocusLost, (TextEditor&) *this); | |||
listeners.callChecked (checker, &Listener::textEditorFocusLost, (TextEditor&) *this); | |||
break; | |||
default: | |||
@@ -53989,7 +53990,7 @@ private: | |||
ToolbarSpacerComp& operator= (const ToolbarSpacerComp&); | |||
}; | |||
class MissingItemsComponent : public PopupMenuCustomComponent | |||
class Toolbar::MissingItemsComponent : public PopupMenuCustomComponent | |||
{ | |||
public: | |||
MissingItemsComponent (Toolbar& owner_, const int height_) | |||
@@ -54590,8 +54591,8 @@ private: | |||
Toolbar* const toolbar; | |||
class CustomiserPanel : public Component, | |||
private ComboBoxListener, | |||
private ButtonListener | |||
private ComboBox::Listener, | |||
private Button::Listener | |||
{ | |||
public: | |||
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); | |||
} | |||
void ScrollBar::removeListener (ScrollBarListener* const listener) | |||
void ScrollBar::removeListener (Listener* const listener) | |||
{ | |||
listeners.remove (listener); | |||
} | |||
@@ -61962,7 +61963,7 @@ void ScrollBar::removeListener (ScrollBarListener* const listener) | |||
void ScrollBar::handleAsyncUpdate() | |||
{ | |||
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() | |||
@@ -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); | |||
} | |||
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! | |||
// 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() | |||
{ | |||
listeners.call (&MenuBarModelListener::menuBarItemsChanged, this); | |||
listeners.call (&Listener::menuBarItemsChanged, this); | |||
} | |||
void MenuBarModel::applicationCommandInvoked (const ApplicationCommandTarget::InvocationInfo& info) | |||
{ | |||
listeners.call (&MenuBarModelListener::menuCommandInvoked, this, info); | |||
listeners.call (&Listener::menuCommandInvoked, this, info); | |||
} | |||
void MenuBarModel::applicationCommandListChanged() | |||
@@ -72019,9 +72020,9 @@ private: | |||
}; | |||
class AudioDeviceSettingsPanel : public Component, | |||
public ComboBoxListener, | |||
public ChangeListener, | |||
public ButtonListener | |||
public ComboBox::Listener, | |||
public Button::Listener | |||
{ | |||
public: | |||
AudioDeviceSettingsPanel (AudioIODeviceType* type_, | |||
@@ -77221,7 +77222,7 @@ END_JUCE_NAMESPACE | |||
/*** Start of inlined file: juce_DocumentWindow.cpp ***/ | |||
BEGIN_JUCE_NAMESPACE | |||
class DocumentWindow::ButtonListenerProxy : public ButtonListener | |||
class DocumentWindow::ButtonListenerProxy : public Button::Listener | |||
{ | |||
public: | |||
ButtonListenerProxy (DocumentWindow& owner_) | |||
@@ -252282,7 +252283,7 @@ public: | |||
mediaControl->Run(); | |||
} | |||
void addListener (CameraImageListener* listenerToAdd) | |||
void addListener (CameraDevice::Listener* listenerToAdd) | |||
{ | |||
const ScopedLock sl (listenerLock); | |||
@@ -252292,7 +252293,7 @@ public: | |||
listeners.addIfNotAlreadyThere (listenerToAdd); | |||
} | |||
void removeListener (CameraImageListener* listenerToRemove) | |||
void removeListener (CameraDevice::Listener* listenerToRemove) | |||
{ | |||
const ScopedLock sl (listenerLock); | |||
listeners.removeValue (listenerToRemove); | |||
@@ -252307,7 +252308,7 @@ public: | |||
for (int i = listeners.size(); --i >= 0;) | |||
{ | |||
CameraImageListener* const l = listeners[i]; | |||
CameraDevice::Listener* const l = listeners[i]; | |||
if (l != 0) | |||
l->imageReceived (image); | |||
@@ -252586,7 +252587,7 @@ private: | |||
}; | |||
ComSmartPtr <GrabberCallback> callback; | |||
Array <CameraImageListener*> listeners; | |||
Array <CameraDevice::Listener*> listeners; | |||
CriticalSection listenerLock; | |||
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; | |||
@@ -252650,7 +252651,7 @@ void CameraDevice::addListener (CameraImageListener* listenerToAdd) | |||
d->addListener (listenerToAdd); | |||
} | |||
void CameraDevice::removeListener (CameraImageListener* listenerToRemove) | |||
void CameraDevice::removeListener (Listener* listenerToRemove) | |||
{ | |||
DShowCameraDeviceInteral* const d = (DShowCameraDeviceInteral*) internal; | |||
@@ -272769,7 +272770,7 @@ using namespace JUCE_NAMESPACE; | |||
@end | |||
BEGIN_JUCE_NAMESPACE | |||
class JuceMainMenuHandler : private MenuBarModelListener, | |||
class JuceMainMenuHandler : private MenuBarModel::Listener, | |||
private DeletedAtShutdown | |||
{ | |||
public: | |||
@@ -277376,7 +277377,7 @@ public: | |||
} | |||
} | |||
void addListener (CameraImageListener* listenerToAdd) | |||
void addListener (CameraDevice::Listener* listenerToAdd) | |||
{ | |||
const ScopedLock sl (listenerLock); | |||
@@ -277386,7 +277387,7 @@ public: | |||
listeners.addIfNotAlreadyThere (listenerToAdd); | |||
} | |||
void removeListener (CameraImageListener* listenerToRemove) | |||
void removeListener (CameraDevice::Listener* listenerToRemove) | |||
{ | |||
const ScopedLock sl (listenerLock); | |||
listeners.removeValue (listenerToRemove); | |||
@@ -277408,7 +277409,7 @@ public: | |||
for (int i = listeners.size(); --i >= 0;) | |||
{ | |||
CameraImageListener* const l = listeners[i]; | |||
CameraDevice::Listener* const l = listeners[i]; | |||
if (l != 0) | |||
l->imageReceived (image); | |||
@@ -277425,7 +277426,7 @@ public: | |||
QTCaptureCallbackDelegate* callbackDelegate; | |||
String openingError; | |||
Array<CameraImageListener*> listeners; | |||
Array<CameraDevice::Listener*> listeners; | |||
CriticalSection listenerLock; | |||
}; | |||
@@ -277599,13 +277600,13 @@ void CameraDevice::stopRecording() | |||
} | |||
} | |||
void CameraDevice::addListener (CameraImageListener* listenerToAdd) | |||
void CameraDevice::addListener (Listener* listenerToAdd) | |||
{ | |||
if (listenerToAdd != 0) | |||
static_cast <QTCameraDeviceInteral*> (internal)->addListener (listenerToAdd); | |||
} | |||
void CameraDevice::removeListener (CameraImageListener* listenerToRemove) | |||
void CameraDevice::removeListener (Listener* listenerToRemove) | |||
{ | |||
if (listenerToRemove != 0) | |||
static_cast <QTCameraDeviceInteral*> (internal)->removeListener (listenerToRemove); | |||
@@ -41,7 +41,7 @@ | |||
class JUCE_API PluginListComponent : public Component, | |||
public ListBoxModel, | |||
public ChangeListener, | |||
public ButtonListener, | |||
public Button::Listener, | |||
public Timer | |||
{ | |||
public: | |||
@@ -33,7 +33,7 @@ | |||
*/ | |||
#define JUCE_MAJOR_VERSION 1 | |||
#define JUCE_MINOR_VERSION 52 | |||
#define JUCE_BUILDNUMBER 41 | |||
#define JUCE_BUILDNUMBER 42 | |||
/** 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); | |||
} | |||
void Button::removeButtonListener (ButtonListener* const listener) | |||
void Button::removeButtonListener (Listener* const listener) | |||
{ | |||
buttonListeners.remove (listener); | |||
} | |||
@@ -377,7 +377,7 @@ void Button::sendClickMessage (const ModifierKeys& modifiers) | |||
clicked (modifiers); | |||
if (! checker.shouldBailOut()) | |||
buttonListeners.callChecked (checker, &ButtonListener::buttonClicked, this); | |||
buttonListeners.callChecked (checker, &Listener::buttonClicked, this); | |||
} | |||
void Button::sendStateMessage() | |||
@@ -387,7 +387,7 @@ void Button::sendStateMessage() | |||
buttonStateChanged(); | |||
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_Value.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; } | |||
//============================================================================== | |||
/** | |||
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. | |||
If the listener is already registered, this will not register it again. | |||
@see removeButtonListener | |||
*/ | |||
void addButtonListener (ButtonListener* newListener); | |||
void addButtonListener (Listener* newListener); | |||
/** Removes a previously-registered button listener | |||
@see addButtonListener | |||
*/ | |||
void removeButtonListener (ButtonListener* listener); | |||
void removeButtonListener (Listener* listener); | |||
//============================================================================== | |||
/** Causes the button to act as if it's been clicked. | |||
@@ -471,7 +468,7 @@ private: | |||
Array <KeyPress> shortcuts; | |||
Component::SafePointer<Component> keySource; | |||
String text; | |||
ListenerList <ButtonListener> buttonListeners; | |||
ListenerList <Listener> buttonListeners; | |||
class RepeatTimer; | |||
friend class RepeatTimer; | |||
@@ -507,5 +504,8 @@ private: | |||
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__ |
@@ -43,7 +43,7 @@ | |||
class JUCE_API CodeEditorComponent : public Component, | |||
public TextInputTarget, | |||
public Timer, | |||
public ScrollBarListener, | |||
public ScrollBar::Listener, | |||
public CodeDocument::Listener, | |||
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); | |||
} | |||
void ComboBox::removeListener (ComboBoxListener* const listener) throw() | |||
void ComboBox::removeListener (Listener* const listener) throw() | |||
{ | |||
listeners.remove (listener); | |||
} | |||
@@ -636,7 +636,7 @@ void ComboBox::removeListener (ComboBoxListener* const listener) throw() | |||
void ComboBox::handleAsyncUpdate() | |||
{ | |||
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 "../../../text/juce_StringArray.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. | |||
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, | |||
public SettableTooltipClient, | |||
private LabelListener, | |||
private AsyncUpdater, | |||
private Label::Listener, | |||
private Value::Listener | |||
{ | |||
public: | |||
@@ -286,11 +264,29 @@ public: | |||
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. */ | |||
void addListener (ComboBoxListener* listener) throw(); | |||
void addListener (Listener* listener) throw(); | |||
/** 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. | |||
@@ -398,7 +394,7 @@ private: | |||
Value currentId; | |||
int lastCurrentId; | |||
bool isButtonDown, separatorPending, menuActive, textIsCustom; | |||
ListenerList <ComboBoxListener> listeners; | |||
ListenerList <Listener> listeners; | |||
ScopedPointer<Label> label; | |||
String textWhenNothingSelected, noChoicesMessage; | |||
@@ -409,4 +405,8 @@ private: | |||
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__ |
@@ -403,12 +403,12 @@ KeyboardFocusTraverser* Label::createFocusTraverser() | |||
} | |||
//============================================================================== | |||
void Label::addListener (LabelListener* const listener) throw() | |||
void Label::addListener (Listener* const listener) throw() | |||
{ | |||
listeners.add (listener); | |||
} | |||
void Label::removeListener (LabelListener* const listener) throw() | |||
void Label::removeListener (Listener* const listener) throw() | |||
{ | |||
listeners.remove (listener); | |||
} | |||
@@ -416,7 +416,7 @@ void Label::removeListener (LabelListener* const listener) throw() | |||
void Label::callChangeListeners() | |||
{ | |||
Component::BailOutChecker checker (this); | |||
listeners.callChecked (checker, &LabelListener::labelTextChanged, this); | |||
listeners.callChecked (checker, &Listener::labelTextChanged, this); | |||
} | |||
//============================================================================== | |||
@@ -27,30 +27,6 @@ | |||
#define __JUCE_LABEL_JUCEHEADER__ | |||
#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, | |||
public SettableTooltipClient, | |||
protected TextEditorListener, | |||
protected TextEditor::Listener, | |||
private ComponentListener, | |||
private Value::Listener | |||
{ | |||
@@ -81,11 +57,10 @@ public: | |||
/** Changes the label text. | |||
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. | |||
@@ -195,11 +170,32 @@ public: | |||
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. */ | |||
void addListener (LabelListener* listener) throw(); | |||
void addListener (Listener* listener) throw(); | |||
/** Deregisters a previously-registered listener. */ | |||
void removeListener (LabelListener* listener) throw(); | |||
void removeListener (Listener* listener) throw(); | |||
//============================================================================== | |||
/** Makes the label turn into a TextEditor when clicked. | |||
@@ -262,26 +258,20 @@ public: | |||
protected: | |||
/** 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. | |||
*/ | |||
virtual TextEditor* createEditorComponent(); | |||
/** Called after the user changes the text. | |||
*/ | |||
/** Called after the user changes the text. */ | |||
virtual void textWasEdited(); | |||
/** Called when the text has been altered. | |||
*/ | |||
/** Called when the text has been altered. */ | |||
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); | |||
/** 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); | |||
//============================================================================== | |||
@@ -326,7 +316,7 @@ private: | |||
Font font; | |||
Justification justification; | |||
ScopedPointer <TextEditor> editor; | |||
ListenerList <LabelListener> listeners; | |||
ListenerList <Listener> listeners; | |||
Component::SafePointer<Component> ownerComponent; | |||
int horizontalBorderSize, verticalBorderSize; | |||
float minimumHorizontalScale; | |||
@@ -342,5 +332,8 @@ private: | |||
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__ |
@@ -159,7 +159,7 @@ void Slider::handleAsyncUpdate() | |||
cancelPendingUpdate(); | |||
Component::BailOutChecker checker (this); | |||
listeners.callChecked (checker, &SliderListener::sliderValueChanged, this); | |||
listeners.callChecked (checker, &Listener::sliderValueChanged, this); | |||
} | |||
void Slider::sendDragStart() | |||
@@ -167,7 +167,7 @@ void Slider::sendDragStart() | |||
startedDragging(); | |||
Component::BailOutChecker checker (this); | |||
listeners.callChecked (checker, &SliderListener::sliderDragStarted, this); | |||
listeners.callChecked (checker, &Listener::sliderDragStarted, this); | |||
} | |||
void Slider::sendDragEnd() | |||
@@ -177,15 +177,15 @@ void Slider::sendDragEnd() | |||
sliderBeingDragged = -1; | |||
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); | |||
} | |||
void Slider::removeListener (SliderListener* const listener) | |||
void Slider::removeListener (Listener* const 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__ | |||
#define __JUCE_SLIDER_JUCEHEADER__ | |||
#include "juce_SliderListener.h" | |||
#include "juce_Label.h" | |||
#include "../buttons/juce_Button.h" | |||
#include "../../../events/juce_AsyncUpdater.h" | |||
@@ -49,16 +48,16 @@ | |||
some of the virtual methods, such as changing the scaling, changing the format of | |||
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, | |||
public SettableTooltipClient, | |||
private AsyncUpdater, | |||
private ButtonListener, | |||
private LabelListener, | |||
private Button::Listener, | |||
private Label::Listener, | |||
private Value::Listener | |||
{ | |||
public: | |||
@@ -333,7 +332,7 @@ public: | |||
//============================================================================== | |||
/** 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 | |||
want to handle it. | |||
@@ -341,8 +340,8 @@ public: | |||
minimum and maximum range, and will be snapped to the | |||
nearest interval if one has been set | |||
@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 | |||
*/ | |||
void setValue (double newValue, | |||
@@ -408,7 +407,7 @@ public: | |||
/** 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 | |||
want to handle it. | |||
@@ -416,8 +415,8 @@ public: | |||
minimum and maximum range, and will be snapped to the nearest | |||
interval if one has been set. | |||
@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 | |||
@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 | |||
@@ -450,7 +449,7 @@ public: | |||
/** 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 | |||
want to handle it. | |||
@@ -458,8 +457,8 @@ public: | |||
minimum and maximum range, and will be snapped to the nearest | |||
interval if one has been set. | |||
@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 | |||
@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 | |||
@@ -473,11 +472,55 @@ public: | |||
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. */ | |||
void addListener (SliderListener* listener); | |||
void addListener (Listener* 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. | |||
@@ -563,19 +606,19 @@ public: | |||
//============================================================================== | |||
/** Callback to indicate that the user is about to start dragging the slider. | |||
@see SliderListener::sliderDragStarted | |||
@see Slider::Listener::sliderDragStarted | |||
*/ | |||
virtual void startedDragging(); | |||
/** Callback to indicate that the user has just stopped dragging the slider. | |||
@see SliderListener::sliderDragEnded | |||
@see Slider::Listener::sliderDragEnded | |||
*/ | |||
virtual void stoppedDragging(); | |||
/** Callback to indicate that the user has just moved the slider. | |||
@see SliderListener::sliderValueChanged | |||
@see Slider::Listener::sliderValueChanged | |||
*/ | |||
virtual void valueChanged(); | |||
@@ -749,7 +792,7 @@ protected: | |||
int getNumDecimalPlacesToDisplay() const throw() { return numDecimalPlaces; } | |||
private: | |||
ListenerList <SliderListener> listeners; | |||
ListenerList <Listener> listeners; | |||
Value currentValue, valueMin, valueMax; | |||
double lastCurrentValue, lastValueMin, lastValueMax; | |||
double minimum, maximum, interval, doubleClickReturnValue; | |||
@@ -793,5 +836,8 @@ private: | |||
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__ |
@@ -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); | |||
} | |||
void TableHeaderComponent::removeListener (TableHeaderListener* const listenerToRemove) | |||
void TableHeaderComponent::removeListener (Listener* const 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 "../../../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. | |||
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, | |||
private AsyncUpdater | |||
@@ -340,11 +296,51 @@ public: | |||
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. */ | |||
void addListener (TableHeaderListener* newListener); | |||
void addListener (Listener* newListener); | |||
/** 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. | |||
@@ -412,7 +408,7 @@ private: | |||
}; | |||
OwnedArray <ColumnInfo> columns; | |||
Array <TableHeaderListener*> listeners; | |||
Array <Listener*> listeners; | |||
ScopedPointer <Component> dragOverlayComp; | |||
bool columnsChanged, columnsResized, sortChanged, menuActive, stretchToFit; | |||
@@ -433,5 +429,8 @@ private: | |||
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__ |
@@ -199,7 +199,7 @@ public: | |||
*/ | |||
class JUCE_API TableListBox : public ListBox, | |||
private ListBoxModel, | |||
private TableHeaderListener | |||
private TableHeaderComponent::Listener | |||
{ | |||
public: | |||
//============================================================================== | |||
@@ -1274,12 +1274,12 @@ void TextEditor::escapePressed() | |||
postCommandMessage (TextEditorDefs::escapeKeyMessageId); | |||
} | |||
void TextEditor::addListener (TextEditorListener* const newListener) | |||
void TextEditor::addListener (Listener* const newListener) | |||
{ | |||
listeners.add (newListener); | |||
} | |||
void TextEditor::removeListener (TextEditorListener* const listenerToRemove) | |||
void TextEditor::removeListener (Listener* const listenerToRemove) | |||
{ | |||
listeners.remove (listenerToRemove); | |||
} | |||
@@ -2207,19 +2207,19 @@ void TextEditor::handleCommandMessage (const int commandId) | |||
switch (commandId) | |||
{ | |||
case TextEditorDefs::textChangeMessageId: | |||
listeners.callChecked (checker, &TextEditorListener::textEditorTextChanged, (TextEditor&) *this); | |||
listeners.callChecked (checker, &Listener::textEditorTextChanged, (TextEditor&) *this); | |||
break; | |||
case TextEditorDefs::returnKeyMessageId: | |||
listeners.callChecked (checker, &TextEditorListener::textEditorReturnKeyPressed, (TextEditor&) *this); | |||
listeners.callChecked (checker, &Listener::textEditorReturnKeyPressed, (TextEditor&) *this); | |||
break; | |||
case TextEditorDefs::escapeKeyMessageId: | |||
listeners.callChecked (checker, &TextEditorListener::textEditorEscapeKeyPressed, (TextEditor&) *this); | |||
listeners.callChecked (checker, &Listener::textEditorEscapeKeyPressed, (TextEditor&) *this); | |||
break; | |||
case TextEditorDefs::focusLossMessageId: | |||
listeners.callChecked (checker, &TextEditorListener::textEditorFocusLost, (TextEditor&) *this); | |||
listeners.callChecked (checker, &Listener::textEditorFocusLost, (TextEditor&) *this); | |||
break; | |||
default: | |||
@@ -34,33 +34,6 @@ | |||
#include "../menus/juce_PopupMenu.h" | |||
#include "../../../containers/juce_Value.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 | |||
fonts and colours. | |||
@see TextEditorListener, Label | |||
@see TextEditor::Listener, Label | |||
*/ | |||
class JUCE_API TextEditor : public Component, | |||
public TextInputTarget, | |||
@@ -117,7 +90,7 @@ public: | |||
/** Changes the behaviour of the return key. | |||
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 | |||
new-lines when in multi-line mode (see setMultiLine()). | |||
*/ | |||
@@ -328,17 +301,41 @@ public: | |||
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. | |||
@see removeListener | |||
*/ | |||
void addListener (TextEditorListener* newListener); | |||
void addListener (Listener* newListener); | |||
/** Deregisters a listener. | |||
@see addListener | |||
*/ | |||
void removeListener (TextEditorListener* listenerToRemove); | |||
void removeListener (Listener* listenerToRemove); | |||
//============================================================================== | |||
/** Returns the entire contents of the editor. */ | |||
@@ -661,7 +658,7 @@ private: | |||
} dragType; | |||
String allowedCharacters; | |||
ListenerList <TextEditorListener> listeners; | |||
ListenerList <Listener> listeners; | |||
void coalesceSimilarSections(); | |||
void splitSection (int sectionIndex, int charToSplitAt); | |||
@@ -691,4 +688,8 @@ private: | |||
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__ |
@@ -172,7 +172,7 @@ private: | |||
}; | |||
//============================================================================== | |||
class MissingItemsComponent : public PopupMenuCustomComponent | |||
class Toolbar::MissingItemsComponent : public PopupMenuCustomComponent | |||
{ | |||
public: | |||
MissingItemsComponent (Toolbar& owner_, const int height_) | |||
@@ -782,8 +782,8 @@ private: | |||
Toolbar* const toolbar; | |||
class CustomiserPanel : public Component, | |||
private ComboBoxListener, | |||
private ButtonListener | |||
private ComboBox::Listener, | |||
private Button::Listener | |||
{ | |||
public: | |||
CustomiserPanel (ToolbarItemFactory& factory_, | |||
@@ -31,7 +31,6 @@ | |||
#include "../buttons/juce_Button.h" | |||
class ToolbarItemComponent; | |||
class ToolbarItemFactory; | |||
class MissingItemsComponent; | |||
//============================================================================== | |||
@@ -54,7 +53,7 @@ class MissingItemsComponent; | |||
class JUCE_API Toolbar : public Component, | |||
public DragAndDropContainer, | |||
public DragAndDropTarget, | |||
private ButtonListener | |||
private Button::Listener | |||
{ | |||
public: | |||
//============================================================================== | |||
@@ -299,6 +298,7 @@ private: | |||
bool vertical, isEditingActive; | |||
ToolbarItemStyle toolbarStyle; | |||
ComponentAnimator animator; | |||
class MissingItemsComponent; | |||
friend class MissingItemsComponent; | |||
Array <ToolbarItemComponent*> items; | |||
@@ -48,9 +48,9 @@ | |||
class JUCE_API FileBrowserComponent : public Component, | |||
public ChangeBroadcaster, | |||
private FileBrowserListener, | |||
private TextEditorListener, | |||
private ButtonListener, | |||
private ComboBoxListener, | |||
private TextEditor::Listener, | |||
private Button::Listener, | |||
private ComboBox::Listener, | |||
private FileFilter | |||
{ | |||
public: | |||
@@ -66,7 +66,7 @@ | |||
@see FileChooser | |||
*/ | |||
class JUCE_API FileChooserDialogBox : public ResizableWindow, | |||
public ButtonListener, | |||
public Button::Listener, | |||
public FileBrowserListener | |||
{ | |||
public: | |||
@@ -43,7 +43,7 @@ | |||
class JUCE_API FileSearchPathListComponent : public Component, | |||
public SettableTooltipClient, | |||
public FileDragAndDropTarget, | |||
private ButtonListener, | |||
private Button::Listener, | |||
private ListBoxModel | |||
{ | |||
public: | |||
@@ -72,8 +72,8 @@ class JUCE_API FilenameComponent : public Component, | |||
public SettableTooltipClient, | |||
public FileDragAndDropTarget, | |||
private AsyncUpdater, | |||
private ButtonListener, | |||
private ComboBoxListener | |||
private Button::Listener, | |||
private ComboBox::Listener | |||
{ | |||
public: | |||
//============================================================================== | |||
@@ -2907,7 +2907,7 @@ void Component::takeKeyboardFocus (const FocusChangeType cause) | |||
if (peer->isFocused() && currentlyFocusedComponent != this) | |||
{ | |||
Component* const componentLosingFocus = currentlyFocusedComponent; | |||
SafePointer<Component> componentLosingFocus (currentlyFocusedComponent); | |||
currentlyFocusedComponent = this; | |||
@@ -2915,7 +2915,7 @@ void Component::takeKeyboardFocus (const FocusChangeType cause) | |||
// call this after setting currentlyFocusedComponent so that the one that's | |||
// losing it has a chance to see where focus is going | |||
if (componentLosingFocus->isValidComponent()) | |||
if (componentLosingFocus != 0) | |||
componentLosingFocus->internalFocusLoss (cause); | |||
if (currentlyFocusedComponent == this) | |||
@@ -3047,11 +3047,12 @@ Component* JUCE_CALLTYPE Component::getCurrentlyFocusedComponent() throw() | |||
void Component::giveAwayFocus() | |||
{ | |||
// use a copy so we can clear the value before the call | |||
Component* const componentLosingFocus = currentlyFocusedComponent; | |||
SafePointer<Component> componentLosingFocus (currentlyFocusedComponent); | |||
currentlyFocusedComponent = 0; | |||
Desktop::getInstance().triggerFocusCallback(); | |||
if (componentLosingFocus->isValidComponent()) | |||
if (componentLosingFocus != 0) | |||
componentLosingFocus->internalFocusLoss (focusChangedDirectly); | |||
} | |||
@@ -41,7 +41,7 @@ | |||
class JUCE_API KeyMappingEditorComponent : public Component, | |||
public TreeViewItem, | |||
public ChangeListener, | |||
private ButtonListener | |||
private Button::Listener | |||
{ | |||
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); | |||
} | |||
void ScrollBar::removeListener (ScrollBarListener* const listener) | |||
void ScrollBar::removeListener (Listener* const listener) | |||
{ | |||
listeners.remove (listener); | |||
} | |||
@@ -199,7 +199,7 @@ void ScrollBar::removeListener (ScrollBarListener* const listener) | |||
void ScrollBar::handleAsyncUpdate() | |||
{ | |||
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 "../../../events/juce_Timer.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 | |||
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 | |||
they moved it to. | |||
@@ -76,7 +50,7 @@ public: | |||
For most purposes, it's probably easier to use a ViewportContainer or ListBox | |||
instead of handling a scrollbar directly. | |||
@see ScrollBarListener | |||
@see ScrollBar::Listener | |||
*/ | |||
class JUCE_API ScrollBar : public Component, | |||
public AsyncUpdater, | |||
@@ -166,7 +140,7 @@ public: | |||
/** Changes the position of the scrollbar's 'thumb'. | |||
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. | |||
@see getCurrentRange. setCurrentRangeStart | |||
@@ -179,7 +153,7 @@ public: | |||
changing the size, you can use setCurrentRangeStart(). | |||
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. | |||
@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()). | |||
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. | |||
@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. */ | |||
void addListener (ScrollBarListener* listener); | |||
void addListener (Listener* listener); | |||
/** Deregisters a previously-registered listener. */ | |||
void removeListener (ScrollBarListener* listener); | |||
void removeListener (Listener* listener); | |||
//============================================================================== | |||
/** @internal */ | |||
@@ -326,7 +323,7 @@ private: | |||
class ScrollbarButton; | |||
friend class ScopedPointer<ScrollbarButton>; | |||
ScopedPointer<ScrollbarButton> upButton, downButton; | |||
ListenerList <ScrollBarListener> listeners; | |||
ListenerList <Listener> listeners; | |||
void updateThumbPosition(); | |||
void timerCallback(); | |||
@@ -335,5 +332,8 @@ private: | |||
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__ |
@@ -105,7 +105,7 @@ private: | |||
*/ | |||
class JUCE_API TabbedButtonBar : public Component, | |||
public ChangeBroadcaster, | |||
public ButtonListener | |||
public Button::Listener | |||
{ | |||
public: | |||
//============================================================================== | |||
@@ -44,7 +44,7 @@ | |||
*/ | |||
class JUCE_API Viewport : public Component, | |||
private ComponentListener, | |||
private ScrollBarListener | |||
private ScrollBar::Listener | |||
{ | |||
public: | |||
//============================================================================== | |||
@@ -36,7 +36,7 @@ | |||
@see MenuBarModel | |||
*/ | |||
class JUCE_API MenuBarComponent : public Component, | |||
private MenuBarModelListener, | |||
private MenuBarModel::Listener, | |||
private Timer | |||
{ | |||
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); | |||
} | |||
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! | |||
// 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() | |||
{ | |||
listeners.call (&MenuBarModelListener::menuBarItemsChanged, this); | |||
listeners.call (&Listener::menuBarItemsChanged, this); | |||
} | |||
void MenuBarModel::applicationCommandInvoked (const ApplicationCommandTarget::InvocationInfo& info) | |||
{ | |||
listeners.call (&MenuBarModelListener::menuCommandInvoked, this, info); | |||
listeners.call (&Listener::menuCommandInvoked, this, info); | |||
} | |||
void MenuBarModel::applicationCommandListChanged() | |||
@@ -27,32 +27,6 @@ | |||
#define __JUCE_MENUBARMODEL_JUCEHEADER__ | |||
#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 | |||
to a menu being selected. | |||
@see MenuBarModelListener, MenuBarComponent, PopupMenu | |||
@see MenuBarModel::Listener, MenuBarComponent, PopupMenu | |||
*/ | |||
class JUCE_API MenuBarModel : private AsyncUpdater, | |||
private ApplicationCommandManagerListener | |||
@@ -97,6 +71,29 @@ public: | |||
*/ | |||
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. | |||
The listener object will get callbacks when this object's menuItemsChanged() | |||
@@ -104,13 +101,13 @@ public: | |||
@see removeListener | |||
*/ | |||
void addListener (MenuBarModelListener* listenerToAdd) throw(); | |||
void addListener (Listener* listenerToAdd) throw(); | |||
/** Removes a listener. | |||
@see addListener | |||
*/ | |||
void removeListener (MenuBarModelListener* listenerToRemove) throw(); | |||
void removeListener (Listener* listenerToRemove) throw(); | |||
//============================================================================== | |||
/** This method must return a list of the names of the menus. */ | |||
@@ -172,11 +169,14 @@ public: | |||
private: | |||
ApplicationCommandManager* manager; | |||
ListenerList <MenuBarModelListener> listeners; | |||
ListenerList <Listener> listeners; | |||
MenuBarModel (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__ |
@@ -40,7 +40,7 @@ | |||
@see PropertyComponent | |||
*/ | |||
class JUCE_API BooleanPropertyComponent : public PropertyComponent, | |||
private ButtonListener | |||
private Button::Listener | |||
{ | |||
protected: | |||
//============================================================================== | |||
@@ -40,7 +40,7 @@ | |||
@see PropertyComponent | |||
*/ | |||
class JUCE_API ButtonPropertyComponent : public PropertyComponent, | |||
private ButtonListener | |||
private Button::Listener | |||
{ | |||
public: | |||
//============================================================================== | |||
@@ -50,7 +50,7 @@ | |||
@see PropertyComponent, PropertyPanel | |||
*/ | |||
class JUCE_API ChoicePropertyComponent : public PropertyComponent, | |||
private ComboBoxListener | |||
private ComboBox::Listener | |||
{ | |||
protected: | |||
/** Creates the component. | |||
@@ -37,7 +37,7 @@ | |||
@see PropertyComponent, Slider | |||
*/ | |||
class JUCE_API SliderPropertyComponent : public PropertyComponent, | |||
private SliderListener | |||
private Slider::Listener | |||
{ | |||
protected: | |||
//============================================================================== | |||
@@ -207,9 +207,9 @@ private: | |||
//============================================================================== | |||
class AudioDeviceSettingsPanel : public Component, | |||
public ComboBoxListener, | |||
public ChangeListener, | |||
public ButtonListener | |||
public ComboBox::Listener, | |||
public Button::Listener | |||
{ | |||
public: | |||
AudioDeviceSettingsPanel (AudioIODeviceType* type_, | |||
@@ -40,8 +40,8 @@ | |||
@see AudioDeviceManager | |||
*/ | |||
class JUCE_API AudioDeviceSelectorComponent : public Component, | |||
public ComboBoxListener, | |||
public ButtonListener, | |||
public ComboBox::Listener, | |||
public Button::Listener, | |||
public ChangeListener | |||
{ | |||
public: | |||
@@ -41,7 +41,7 @@ | |||
*/ | |||
class JUCE_API ColourSelector : public Component, | |||
public ChangeBroadcaster, | |||
protected SliderListener | |||
protected Slider::Listener | |||
{ | |||
public: | |||
//============================================================================== | |||
@@ -49,7 +49,7 @@ | |||
for each of these pages. | |||
*/ | |||
class JUCE_API PreferencesPanel : public Component, | |||
private ButtonListener | |||
private Button::Listener | |||
{ | |||
public: | |||
//============================================================================== | |||
@@ -46,7 +46,7 @@ | |||
@see ThreadWithProgressWindow | |||
*/ | |||
class JUCE_API AlertWindow : public TopLevelWindow, | |||
private ButtonListener | |||
private Button::Listener | |||
{ | |||
public: | |||
//============================================================================== | |||
@@ -34,7 +34,7 @@ BEGIN_JUCE_NAMESPACE | |||
//============================================================================== | |||
class DocumentWindow::ButtonListenerProxy : public ButtonListener | |||
class DocumentWindow::ButtonListenerProxy : public Button::Listener | |||
{ | |||
public: | |||
ButtonListenerProxy (DocumentWindow& owner_) | |||
@@ -28,31 +28,10 @@ | |||
#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 | |||
system, then call openDevice to open one for use. Once you have a CameraDevice | |||
@@ -128,16 +107,36 @@ public: | |||
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. | |||
Be very careful not to delete the listener without first removing it by calling | |||
removeListener(). | |||
*/ | |||
void addListener (CameraImageListener* listenerToAdd); | |||
void addListener (Listener* listenerToAdd); | |||
/** 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&); | |||
}; | |||
/** This typedef is just for compatibility with old code - newer code should use the CameraDevice::Listener class directly. */ | |||
typedef CameraDevice::Listener CameraImageListener; | |||
#endif | |||
#endif // __JUCE_CAMERADEVICE_JUCEHEADER__ |
@@ -326,9 +326,6 @@ | |||
#ifndef __JUCE_SLIDER_JUCEHEADER__ | |||
#include "gui/components/controls/juce_Slider.h" | |||
#endif | |||
#ifndef __JUCE_SLIDERLISTENER_JUCEHEADER__ | |||
#include "gui/components/controls/juce_SliderListener.h" | |||
#endif | |||
#ifndef __JUCE_TABLEHEADERCOMPONENT_JUCEHEADER__ | |||
#include "gui/components/controls/juce_TableHeaderComponent.h" | |||
#endif | |||
@@ -160,7 +160,7 @@ public: | |||
} | |||
} | |||
void addListener (CameraImageListener* listenerToAdd) | |||
void addListener (CameraDevice::Listener* listenerToAdd) | |||
{ | |||
const ScopedLock sl (listenerLock); | |||
@@ -170,7 +170,7 @@ public: | |||
listeners.addIfNotAlreadyThere (listenerToAdd); | |||
} | |||
void removeListener (CameraImageListener* listenerToRemove) | |||
void removeListener (CameraDevice::Listener* listenerToRemove) | |||
{ | |||
const ScopedLock sl (listenerLock); | |||
listeners.removeValue (listenerToRemove); | |||
@@ -192,7 +192,7 @@ public: | |||
for (int i = listeners.size(); --i >= 0;) | |||
{ | |||
CameraImageListener* const l = listeners[i]; | |||
CameraDevice::Listener* const l = listeners[i]; | |||
if (l != 0) | |||
l->imageReceived (image); | |||
@@ -209,7 +209,7 @@ public: | |||
QTCaptureCallbackDelegate* callbackDelegate; | |||
String openingError; | |||
Array<CameraImageListener*> listeners; | |||
Array<CameraDevice::Listener*> listeners; | |||
CriticalSection listenerLock; | |||
}; | |||
@@ -385,13 +385,13 @@ void CameraDevice::stopRecording() | |||
} | |||
} | |||
void CameraDevice::addListener (CameraImageListener* listenerToAdd) | |||
void CameraDevice::addListener (Listener* listenerToAdd) | |||
{ | |||
if (listenerToAdd != 0) | |||
static_cast <QTCameraDeviceInteral*> (internal)->addListener (listenerToAdd); | |||
} | |||
void CameraDevice::removeListener (CameraImageListener* listenerToRemove) | |||
void CameraDevice::removeListener (Listener* listenerToRemove) | |||
{ | |||
if (listenerToRemove != 0) | |||
static_cast <QTCameraDeviceInteral*> (internal)->removeListener (listenerToRemove); | |||
@@ -53,7 +53,7 @@ BEGIN_JUCE_NAMESPACE | |||
//============================================================================== | |||
class JuceMainMenuHandler : private MenuBarModelListener, | |||
class JuceMainMenuHandler : private MenuBarModel::Listener, | |||
private DeletedAtShutdown | |||
{ | |||
public: | |||
@@ -338,7 +338,7 @@ public: | |||
} | |||
//============================================================================== | |||
void addListener (CameraImageListener* listenerToAdd) | |||
void addListener (CameraDevice::Listener* listenerToAdd) | |||
{ | |||
const ScopedLock sl (listenerLock); | |||
@@ -348,7 +348,7 @@ public: | |||
listeners.addIfNotAlreadyThere (listenerToAdd); | |||
} | |||
void removeListener (CameraImageListener* listenerToRemove) | |||
void removeListener (CameraDevice::Listener* listenerToRemove) | |||
{ | |||
const ScopedLock sl (listenerLock); | |||
listeners.removeValue (listenerToRemove); | |||
@@ -363,7 +363,7 @@ public: | |||
for (int i = listeners.size(); --i >= 0;) | |||
{ | |||
CameraImageListener* const l = listeners[i]; | |||
CameraDevice::Listener* const l = listeners[i]; | |||
if (l != 0) | |||
l->imageReceived (image); | |||
@@ -647,7 +647,7 @@ private: | |||
}; | |||
ComSmartPtr <GrabberCallback> callback; | |||
Array <CameraImageListener*> listeners; | |||
Array <CameraDevice::Listener*> listeners; | |||
CriticalSection listenerLock; | |||
//============================================================================== | |||
@@ -706,7 +706,7 @@ void CameraDevice::stopRecording() | |||
} | |||
} | |||
void CameraDevice::addListener (CameraImageListener* listenerToAdd) | |||
void CameraDevice::addListener (Listener* listenerToAdd) | |||
{ | |||
DShowCameraDeviceInteral* const d = (DShowCameraDeviceInteral*) internal; | |||
@@ -714,7 +714,7 @@ void CameraDevice::addListener (CameraImageListener* listenerToAdd) | |||
d->addListener (listenerToAdd); | |||
} | |||
void CameraDevice::removeListener (CameraImageListener* listenerToRemove) | |||
void CameraDevice::removeListener (Listener* listenerToRemove) | |||
{ | |||
DShowCameraDeviceInteral* const d = (DShowCameraDeviceInteral*) internal; | |||