| @@ -2294,32 +2294,32 @@ private: | |||||
| uint8 componentTransparency; | uint8 componentTransparency; | ||||
| //============================================================================== | //============================================================================== | ||||
| void internalMouseEnter (MouseInputSource& source, const Point<int>& relativePos, const Time& time); | |||||
| void internalMouseExit (MouseInputSource& source, const Point<int>& relativePos, const Time& time); | |||||
| void internalMouseDown (MouseInputSource& source, const Point<int>& relativePos, const Time& time); | |||||
| void internalMouseUp (MouseInputSource& source, const Point<int>& relativePos, const Time& time, const ModifierKeys& oldModifiers); | |||||
| void internalMouseDrag (MouseInputSource& source, const Point<int>& relativePos, const Time& time); | |||||
| void internalMouseMove (MouseInputSource& source, const Point<int>& relativePos, const Time& time); | |||||
| void internalMouseWheel (MouseInputSource& source, const Point<int>& relativePos, const Time& time, float amountX, float amountY); | |||||
| void internalMouseEnter (MouseInputSource&, const Point<int>&, const Time&); | |||||
| void internalMouseExit (MouseInputSource&, const Point<int>&, const Time&); | |||||
| void internalMouseDown (MouseInputSource&, const Point<int>&, const Time&); | |||||
| void internalMouseUp (MouseInputSource&, const Point<int>&, const Time&, const ModifierKeys& oldModifiers); | |||||
| void internalMouseDrag (MouseInputSource&, const Point<int>&, const Time&); | |||||
| void internalMouseMove (MouseInputSource&, const Point<int>&, const Time&); | |||||
| void internalMouseWheel (MouseInputSource&, const Point<int>&, const Time&, float amountX, float amountY); | |||||
| void internalBroughtToFront(); | void internalBroughtToFront(); | ||||
| void internalFocusGain (const FocusChangeType cause, const WeakReference<Component>&); | |||||
| void internalFocusGain (const FocusChangeType cause); | |||||
| void internalFocusLoss (const FocusChangeType cause); | |||||
| void internalChildFocusChange (FocusChangeType cause, const WeakReference<Component>&); | |||||
| void internalFocusGain (const FocusChangeType, const WeakReference<Component>&); | |||||
| void internalFocusGain (const FocusChangeType); | |||||
| void internalFocusLoss (const FocusChangeType); | |||||
| void internalChildFocusChange (FocusChangeType, const WeakReference<Component>&); | |||||
| void internalModalInputAttempt(); | void internalModalInputAttempt(); | ||||
| void internalModifierKeysChanged(); | void internalModifierKeysChanged(); | ||||
| void internalChildrenChanged(); | void internalChildrenChanged(); | ||||
| void internalHierarchyChanged(); | void internalHierarchyChanged(); | ||||
| Component* removeChildComponent (int index, bool sendParentEvents, bool sendChildEvents); | Component* removeChildComponent (int index, bool sendParentEvents, bool sendChildEvents); | ||||
| void moveChildInternal (int sourceIndex, int destIndex); | void moveChildInternal (int sourceIndex, int destIndex); | ||||
| void paintComponentAndChildren (Graphics& g); | |||||
| void paintComponent (Graphics& g); | |||||
| void paintWithinParentContext (Graphics& g); | |||||
| void paintComponentAndChildren (Graphics&); | |||||
| void paintComponent (Graphics&); | |||||
| void paintWithinParentContext (Graphics&); | |||||
| void sendMovedResizedMessages (bool wasMoved, bool wasResized); | void sendMovedResizedMessages (bool wasMoved, bool wasResized); | ||||
| void repaintParent(); | void repaintParent(); | ||||
| void sendFakeMouseMove() const; | void sendFakeMouseMove() const; | ||||
| void takeKeyboardFocus (const FocusChangeType cause); | |||||
| void grabFocusInternal (const FocusChangeType cause, bool canTryParent = true); | |||||
| void takeKeyboardFocus (const FocusChangeType); | |||||
| void grabFocusInternal (const FocusChangeType, bool canTryParent = true); | |||||
| static void giveAwayFocus (bool sendFocusLossEvent); | static void giveAwayFocus (bool sendFocusLossEvent); | ||||
| void sendEnablementChangeMessage(); | void sendEnablementChangeMessage(); | ||||
| void sendVisibilityChangeMessage(); | void sendVisibilityChangeMessage(); | ||||
| @@ -391,13 +391,13 @@ private: | |||||
| int getNumDisplayMonitors() const noexcept; | int getNumDisplayMonitors() const noexcept; | ||||
| const Rectangle<int> getDisplayMonitorCoordinates (int index, bool clippedToWorkArea) const noexcept; | const Rectangle<int> getDisplayMonitorCoordinates (int index, bool clippedToWorkArea) const noexcept; | ||||
| static void getCurrentMonitorPositions (Array <Rectangle<int> >& monitorCoords, const bool clipToWorkArea); | |||||
| static void getCurrentMonitorPositions (Array <Rectangle<int> >&, const bool clipToWorkArea); | |||||
| void addDesktopComponent (Component* c); | |||||
| void removeDesktopComponent (Component* c); | |||||
| void componentBroughtToFront (Component* c); | |||||
| void addDesktopComponent (Component*); | |||||
| void removeDesktopComponent (Component*); | |||||
| void componentBroughtToFront (Component*); | |||||
| static void setKioskComponent (Component* kioskModeComponent, bool enableOrDisable, bool allowMenusAndBars); | |||||
| static void setKioskComponent (Component*, bool enableOrDisable, bool allowMenusAndBars); | |||||
| void triggerFocusCallback(); | void triggerFocusCallback(); | ||||
| void handleAsyncUpdate(); | void handleAsyncUpdate(); | ||||
| @@ -139,9 +139,9 @@ private: | |||||
| friend class OwnedArray <ModalItem>; | friend class OwnedArray <ModalItem>; | ||||
| OwnedArray <ModalItem> stack; | OwnedArray <ModalItem> stack; | ||||
| void startModal (Component* component); | |||||
| void endModal (Component* component, int returnValue); | |||||
| void endModal (Component* component); | |||||
| void startModal (Component*); | |||||
| void endModal (Component*, int returnValue); | |||||
| void endModal (Component*); | |||||
| JUCE_DECLARE_NON_COPYABLE (ModalComponentManager); | JUCE_DECLARE_NON_COPYABLE (ModalComponentManager); | ||||
| }; | }; | ||||
| @@ -205,8 +205,11 @@ const File& FileBrowserComponent::getRoot() const | |||||
| void FileBrowserComponent::setRoot (const File& newRootDirectory) | void FileBrowserComponent::setRoot (const File& newRootDirectory) | ||||
| { | { | ||||
| bool callListeners = false; | |||||
| if (currentRoot != newRootDirectory) | if (currentRoot != newRootDirectory) | ||||
| { | { | ||||
| callListeners = true; | |||||
| fileListComponent->scrollToTop(); | fileListComponent->scrollToTop(); | ||||
| String path (newRootDirectory.getFullPathName()); | String path (newRootDirectory.getFullPathName()); | ||||
| @@ -246,6 +249,12 @@ void FileBrowserComponent::setRoot (const File& newRootDirectory) | |||||
| goUpButton->setEnabled (currentRoot.getParentDirectory().isDirectory() | goUpButton->setEnabled (currentRoot.getParentDirectory().isDirectory() | ||||
| && currentRoot.getParentDirectory() != currentRoot); | && currentRoot.getParentDirectory() != currentRoot); | ||||
| if (callListeners) | |||||
| { | |||||
| Component::BailOutChecker checker (this); | |||||
| listeners.callChecked (checker, &FileBrowserListener::browserRootChanged, currentRoot); | |||||
| } | |||||
| } | } | ||||
| void FileBrowserComponent::resetRecentPaths() | void FileBrowserComponent::resetRecentPaths() | ||||
| @@ -367,6 +376,8 @@ void FileBrowserComponent::fileDoubleClicked (const File& f) | |||||
| } | } | ||||
| } | } | ||||
| void FileBrowserComponent::browserRootChanged (const File&) {} | |||||
| bool FileBrowserComponent::keyPressed (const KeyPress& key) | bool FileBrowserComponent::keyPressed (const KeyPress& key) | ||||
| { | { | ||||
| (void) key; | (void) key; | ||||
| @@ -177,27 +177,29 @@ public: | |||||
| /** @internal */ | /** @internal */ | ||||
| void resized(); | void resized(); | ||||
| /** @internal */ | /** @internal */ | ||||
| void buttonClicked (Button* b); | |||||
| void buttonClicked (Button*); | |||||
| /** @internal */ | /** @internal */ | ||||
| void comboBoxChanged (ComboBox*); | void comboBoxChanged (ComboBox*); | ||||
| /** @internal */ | /** @internal */ | ||||
| void textEditorTextChanged (TextEditor& editor); | |||||
| void textEditorTextChanged (TextEditor&); | |||||
| /** @internal */ | /** @internal */ | ||||
| void textEditorReturnKeyPressed (TextEditor& editor); | |||||
| void textEditorReturnKeyPressed (TextEditor&); | |||||
| /** @internal */ | /** @internal */ | ||||
| void textEditorEscapeKeyPressed (TextEditor& editor); | |||||
| void textEditorEscapeKeyPressed (TextEditor&); | |||||
| /** @internal */ | /** @internal */ | ||||
| void textEditorFocusLost (TextEditor& editor); | |||||
| void textEditorFocusLost (TextEditor&); | |||||
| /** @internal */ | /** @internal */ | ||||
| bool keyPressed (const KeyPress& key); | |||||
| bool keyPressed (const KeyPress&); | |||||
| /** @internal */ | /** @internal */ | ||||
| void selectionChanged(); | void selectionChanged(); | ||||
| /** @internal */ | /** @internal */ | ||||
| void fileClicked (const File& f, const MouseEvent& e); | |||||
| void fileClicked (const File&, const MouseEvent&); | |||||
| /** @internal */ | /** @internal */ | ||||
| void fileDoubleClicked (const File& f); | |||||
| void fileDoubleClicked (const File&); | |||||
| /** @internal */ | /** @internal */ | ||||
| bool isFileSuitable (const File& file) const; | |||||
| void browserRootChanged (const File&); | |||||
| /** @internal */ | |||||
| bool isFileSuitable (const File&) const; | |||||
| /** @internal */ | /** @internal */ | ||||
| bool isDirectorySuitable (const File&) const; | bool isDirectorySuitable (const File&) const; | ||||
| @@ -51,6 +51,9 @@ public: | |||||
| /** Callback when the user double-clicks on a file in the browser. */ | /** Callback when the user double-clicks on a file in the browser. */ | ||||
| virtual void fileDoubleClicked (const File& file) = 0; | virtual void fileDoubleClicked (const File& file) = 0; | ||||
| /** Callback when the browser's root folder changes. */ | |||||
| virtual void browserRootChanged (const File& newRoot) = 0; | |||||
| }; | }; | ||||
| @@ -190,16 +190,15 @@ void FileChooserDialogBox::selectionChanged() | |||||
| && content->chooserComponent.getRoot().isDirectory()); | && content->chooserComponent.getRoot().isDirectory()); | ||||
| } | } | ||||
| void FileChooserDialogBox::fileClicked (const File&, const MouseEvent&) | |||||
| { | |||||
| } | |||||
| void FileChooserDialogBox::fileDoubleClicked (const File&) | void FileChooserDialogBox::fileDoubleClicked (const File&) | ||||
| { | { | ||||
| selectionChanged(); | selectionChanged(); | ||||
| content->okButton.triggerClick(); | content->okButton.triggerClick(); | ||||
| } | } | ||||
| void FileChooserDialogBox::fileClicked (const File&, const MouseEvent&) {} | |||||
| void FileChooserDialogBox::browserRootChanged (const File&) {} | |||||
| void FileChooserDialogBox::okToOverwriteFileCallback (int result, FileChooserDialogBox* box) | void FileChooserDialogBox::okToOverwriteFileCallback (int result, FileChooserDialogBox* box) | ||||
| { | { | ||||
| if (result != 0 && box != nullptr) | if (result != 0 && box != nullptr) | ||||
| @@ -138,15 +138,17 @@ public: | |||||
| //============================================================================== | //============================================================================== | ||||
| /** @internal */ | /** @internal */ | ||||
| void buttonClicked (Button* button); | |||||
| void buttonClicked (Button*); | |||||
| /** @internal */ | /** @internal */ | ||||
| void closeButtonPressed(); | void closeButtonPressed(); | ||||
| /** @internal */ | /** @internal */ | ||||
| void selectionChanged(); | void selectionChanged(); | ||||
| /** @internal */ | /** @internal */ | ||||
| void fileClicked (const File& file, const MouseEvent& e); | |||||
| void fileClicked (const File&, const MouseEvent&); | |||||
| /** @internal */ | /** @internal */ | ||||
| void fileDoubleClicked (const File& file); | |||||
| void fileDoubleClicked (const File&); | |||||
| /** @internal */ | |||||
| void browserRootChanged (const File&); | |||||
| private: | private: | ||||
| class ContentComponent; | class ContentComponent; | ||||
| @@ -43,59 +43,33 @@ struct TextEditorKeyMapper | |||||
| */ | */ | ||||
| static bool invokeKeyFunction (CallbackClass& target, const KeyPress& key) | static bool invokeKeyFunction (CallbackClass& target, const KeyPress& key) | ||||
| { | { | ||||
| const bool isShiftDown = key.getModifiers().isShiftDown(); | |||||
| const bool isShiftDown = key.getModifiers().isShiftDown(); | |||||
| const bool ctrlOrAltDown = key.getModifiers().isCtrlDown() || key.getModifiers().isAltDown(); | const bool ctrlOrAltDown = key.getModifiers().isCtrlDown() || key.getModifiers().isAltDown(); | ||||
| if (key == KeyPress (KeyPress::downKey, ModifierKeys::ctrlModifier, 0) | |||||
| && target.scrollUp()) | |||||
| return true; | |||||
| if (key == KeyPress (KeyPress::upKey, ModifierKeys::ctrlModifier, 0) | |||||
| && target.scrollDown()) | |||||
| return true; | |||||
| if (key == KeyPress (KeyPress::downKey, ModifierKeys::ctrlModifier, 0) && target.scrollUp()) return true; | |||||
| if (key == KeyPress (KeyPress::upKey, ModifierKeys::ctrlModifier, 0) && target.scrollDown()) return true; | |||||
| #if JUCE_MAC | #if JUCE_MAC | ||||
| if (key.getModifiers().isCommandDown()) | if (key.getModifiers().isCommandDown()) | ||||
| { | { | ||||
| if (key.isKeyCode (KeyPress::upKey)) | |||||
| return target.moveCaretToTop (isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::downKey)) | |||||
| return target.moveCaretToEnd (isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::leftKey)) | |||||
| return target.moveCaretToStartOfLine (isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::rightKey)) | |||||
| return target.moveCaretToEndOfLine (isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::upKey)) return target.moveCaretToTop (isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::downKey)) return target.moveCaretToEnd (isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::leftKey)) return target.moveCaretToStartOfLine (isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::rightKey)) return target.moveCaretToEndOfLine (isShiftDown); | |||||
| } | } | ||||
| #endif | #endif | ||||
| if (key.isKeyCode (KeyPress::upKey)) | |||||
| return target.moveCaretUp (isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::downKey)) | |||||
| return target.moveCaretDown (isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::leftKey)) | |||||
| return target.moveCaretLeft (ctrlOrAltDown, isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::upKey)) return target.moveCaretUp (isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::downKey)) return target.moveCaretDown (isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::leftKey)) return target.moveCaretLeft (ctrlOrAltDown, isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::rightKey)) return target.moveCaretRight (ctrlOrAltDown, isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::pageUpKey)) return target.pageUp (isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::pageDownKey)) return target.pageDown (isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::rightKey)) | |||||
| return target.moveCaretRight (ctrlOrAltDown, isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::pageUpKey)) | |||||
| return target.pageUp (isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::pageDownKey)) | |||||
| return target.pageDown (isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::homeKey)) | |||||
| return ctrlOrAltDown ? target.moveCaretToTop (isShiftDown) | |||||
| : target.moveCaretToStartOfLine (isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::endKey)) | |||||
| return ctrlOrAltDown ? target.moveCaretToEnd (isShiftDown) | |||||
| : target.moveCaretToEndOfLine (isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::homeKey)) return ctrlOrAltDown ? target.moveCaretToTop (isShiftDown) | |||||
| : target.moveCaretToStartOfLine (isShiftDown); | |||||
| if (key.isKeyCode (KeyPress::endKey)) return ctrlOrAltDown ? target.moveCaretToEnd (isShiftDown) | |||||
| : target.moveCaretToEndOfLine (isShiftDown); | |||||
| if (key == KeyPress ('c', ModifierKeys::commandModifier, 0) | if (key == KeyPress ('c', ModifierKeys::commandModifier, 0) | ||||
| || key == KeyPress (KeyPress::insertKey, ModifierKeys::ctrlModifier, 0)) | || key == KeyPress (KeyPress::insertKey, ModifierKeys::ctrlModifier, 0)) | ||||
| @@ -109,11 +83,8 @@ struct TextEditorKeyMapper | |||||
| || key == KeyPress (KeyPress::insertKey, ModifierKeys::shiftModifier, 0)) | || key == KeyPress (KeyPress::insertKey, ModifierKeys::shiftModifier, 0)) | ||||
| return target.pasteFromClipboard(); | return target.pasteFromClipboard(); | ||||
| if (key.isKeyCode (KeyPress::backspaceKey)) | |||||
| return target.deleteBackwards (ctrlOrAltDown); | |||||
| if (key.isKeyCode (KeyPress::deleteKey)) | |||||
| return target.deleteForwards (ctrlOrAltDown); | |||||
| if (key.isKeyCode (KeyPress::backspaceKey)) return target.deleteBackwards (ctrlOrAltDown); | |||||
| if (key.isKeyCode (KeyPress::deleteKey)) return target.deleteForwards (ctrlOrAltDown); | |||||
| if (key == KeyPress ('a', ModifierKeys::commandModifier, 0)) | if (key == KeyPress ('a', ModifierKeys::commandModifier, 0)) | ||||
| return target.selectAll(); | return target.selectAll(); | ||||