diff --git a/modules/juce_gui_basics/native/juce_android_Windowing.cpp b/modules/juce_gui_basics/native/juce_android_Windowing.cpp index 6625d48fd5..b0377be321 100644 --- a/modules/juce_gui_basics/native/juce_android_Windowing.cpp +++ b/modules/juce_gui_basics/native/juce_android_Windowing.cpp @@ -454,6 +454,11 @@ public: // TODO } + StringArray getAvailableRenderingEngines() override + { + return StringArray ("Software Renderer"); + } + //============================================================================== static AndroidComponentPeer* findPeerForJavaView (JNIEnv* env, jobject viewToFind) { diff --git a/modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm b/modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm index 88eef5a884..a35acfb09d 100644 --- a/modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm +++ b/modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm @@ -130,43 +130,39 @@ public: ~UIViewComponentPeer(); //============================================================================== - void* getNativeHandle() const override; + void* getNativeHandle() const override { return view; } void setVisible (bool shouldBeVisible) override; void setTitle (const String& title) override; void setBounds (const Rectangle&, bool isNowFullScreen) override; - Rectangle getBounds() const override; + Rectangle getBounds() const override { return getBounds (! isSharedWindow); } Rectangle getBounds (bool global) const; Point localToGlobal (Point relativePosition) override; Point globalToLocal (Point screenPosition) override; void setAlpha (float newAlpha) override; - void setMinimised (bool shouldBeMinimised) override; - bool isMinimised() const override; + void setMinimised (bool) override {} + bool isMinimised() const override { return false; } void setFullScreen (bool shouldBeFullScreen) override; - bool isFullScreen() const override; + bool isFullScreen() const override { return fullScreen; } bool contains (Point localPos, bool trueIfInAChildWindow) const override; - BorderSize getFrameSize() const override; + BorderSize getFrameSize() const override { return BorderSize(); } bool setAlwaysOnTop (bool alwaysOnTop) override; void toFront (bool makeActiveWindow) override; void toBehind (ComponentPeer* other) override; void setIcon (const Image& newIcon) override; + StringArray getAvailableRenderingEngines() override { return StringArray ("CoreGraphics Renderer"); } - virtual void drawRect (CGRect); - - virtual bool canBecomeKeyWindow(); - virtual bool windowShouldClose(); - - virtual void redirectMovedOrResized(); - virtual CGRect constrainRect (CGRect r); + void drawRect (CGRect); + bool canBecomeKeyWindow(); //============================================================================== - virtual void viewFocusGain(); - virtual void viewFocusLoss(); + void viewFocusGain(); + void viewFocusLoss(); bool isFocused() const override; void grabFocus() override; - void textInputRequired (const Point& position) override; + void textInputRequired (const Point&) override; - virtual BOOL textViewReplaceCharacters (const Range& range, const String& text); + BOOL textViewReplaceCharacters (Range, const String&); void updateHiddenTextContent (TextInputTarget*); void globalFocusChanged (Component*) override; @@ -249,6 +245,24 @@ public: private: JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (UIViewComponentPeer) + + class AsyncRepaintMessage : public CallbackMessage + { + public: + UIViewComponentPeer* const peer; + const Rectangle rect; + + AsyncRepaintMessage (UIViewComponentPeer* const p, const Rectangle& r) + : peer (p), rect (r) + { + } + + void messageCallback() override + { + if (ComponentPeer::isValidPeer (peer)) + peer->repaint (rect); + } + }; }; } // (juce namespace) @@ -509,11 +523,6 @@ UIViewComponentPeer::~UIViewComponentPeer() } //============================================================================== -void* UIViewComponentPeer::getNativeHandle() const -{ - return view; -} - void UIViewComponentPeer::setVisible (bool shouldBeVisible) { view.hidden = ! shouldBeVisible; @@ -564,11 +573,6 @@ Rectangle UIViewComponentPeer::getBounds (const bool global) const return convertToRectInt (r); } -Rectangle UIViewComponentPeer::getBounds() const -{ - return getBounds (! isSharedWindow); -} - Point UIViewComponentPeer::localToGlobal (Point relativePosition) { return relativePosition + getBounds (true).getPosition(); @@ -579,50 +583,11 @@ Point UIViewComponentPeer::globalToLocal (Point screenPosition) return screenPosition - getBounds (true).getPosition(); } -CGRect UIViewComponentPeer::constrainRect (CGRect r) -{ - if (constrainer != nullptr) - { - CGRect mainScreen = [UIScreen mainScreen].bounds; - - CGRect current = window.frame; - current.origin.y = mainScreen.size.height - current.origin.y - current.size.height; - - r.origin.y = mainScreen.size.height - r.origin.y - r.size.height; - - Rectangle pos (convertToRectInt (r)); - Rectangle original (convertToRectInt (current)); - - constrainer->checkBounds (pos, original, - Desktop::getInstance().getDisplays().getTotalBounds (true), - pos.getY() != original.getY() && pos.getBottom() == original.getBottom(), - pos.getX() != original.getX() && pos.getRight() == original.getRight(), - pos.getY() == original.getY() && pos.getBottom() != original.getBottom(), - pos.getX() == original.getX() && pos.getRight() != original.getRight()); - - r.origin.x = pos.getX(); - r.origin.y = mainScreen.size.height - r.size.height - pos.getY(); - r.size.width = pos.getWidth(); - r.size.height = pos.getHeight(); - } - - return r; -} - void UIViewComponentPeer::setAlpha (float newAlpha) { [view.window setAlpha: (CGFloat) newAlpha]; } -void UIViewComponentPeer::setMinimised (bool shouldBeMinimised) -{ -} - -bool UIViewComponentPeer::isMinimised() const -{ - return false; -} - void UIViewComponentPeer::setFullScreen (bool shouldBeFullScreen) { if (! isSharedWindow) @@ -641,11 +606,6 @@ void UIViewComponentPeer::setFullScreen (bool shouldBeFullScreen) } } -bool UIViewComponentPeer::isFullScreen() const -{ - return fullScreen; -} - void UIViewComponentPeer::updateTransformAndScreenBounds() { Desktop& desktop = Desktop::getInstance(); @@ -693,11 +653,6 @@ bool UIViewComponentPeer::contains (Point localPos, bool trueIfInAChildWind return v == view; } -BorderSize UIViewComponentPeer::getFrameSize() const -{ - return BorderSize(); -} - bool UIViewComponentPeer::setAlwaysOnTop (bool alwaysOnTop) { if (! isSharedWindow) @@ -853,7 +808,7 @@ void UIViewComponentPeer::updateHiddenTextContent (TextInputTarget* target) view->hiddenTextView.selectedRange = NSMakeRange (target->getHighlightedRegion().getStart(), 0); } -BOOL UIViewComponentPeer::textViewReplaceCharacters (const Range& range, const String& text) +BOOL UIViewComponentPeer::textViewReplaceCharacters (Range range, const String& text) { if (TextInputTarget* const target = findCurrentTextInputTarget()) { @@ -917,20 +872,6 @@ bool UIViewComponentPeer::canBecomeKeyWindow() return (getStyleFlags() & juce::ComponentPeer::windowIgnoresKeyPresses) == 0; } -bool UIViewComponentPeer::windowShouldClose() -{ - if (! isValidPeer (this)) - return YES; - - handleUserClosingWindow(); - return NO; -} - -void UIViewComponentPeer::redirectMovedOrResized() -{ - handleMovedOrResized(); -} - //============================================================================== void Desktop::setKioskComponent (Component* kioskModeComponent, bool enableOrDisable, bool allowMenusAndBars) { @@ -944,34 +885,12 @@ void Desktop::setKioskComponent (Component* kioskModeComponent, bool enableOrDis } //============================================================================== -class AsyncRepaintMessage : public CallbackMessage -{ -public: - UIViewComponentPeer* const peer; - const Rectangle rect; - - AsyncRepaintMessage (UIViewComponentPeer* const p, const Rectangle& r) - : peer (p), rect (r) - { - } - - void messageCallback() override - { - if (ComponentPeer::isValidPeer (peer)) - peer->repaint (rect); - } -}; - void UIViewComponentPeer::repaint (const Rectangle& area) { if (insideDrawRect || ! MessageManager::getInstance()->isThisTheMessageThread()) - { (new AsyncRepaintMessage (this, area))->post(); - } else - { [view setNeedsDisplayInRect: convertToCGRect (area)]; - } } void UIViewComponentPeer::performAnyPendingRepaintsNow() diff --git a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm index 87e0dc4786..8ec18397ee 100644 --- a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm +++ b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm @@ -473,7 +473,7 @@ public: StringArray getAvailableRenderingEngines() override { - StringArray s (ComponentPeer::getAvailableRenderingEngines()); + StringArray s ("Software Renderer"); #if USE_COREGRAPHICS_RENDERING s.add ("CoreGraphics Renderer"); diff --git a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp index 449415c4c5..5b0c2127d3 100644 --- a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp +++ b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp @@ -1594,7 +1594,7 @@ private: StringArray getAvailableRenderingEngines() override { - StringArray s (ComponentPeer::getAvailableRenderingEngines()); + StringArray s ("Software Renderer"); #if JUCE_DIRECT2D if (SystemStats::getOperatingSystemType() >= SystemStats::Windows7) diff --git a/modules/juce_gui_basics/windows/juce_ComponentPeer.cpp b/modules/juce_gui_basics/windows/juce_ComponentPeer.cpp index 082a8e2b54..681599905e 100644 --- a/modules/juce_gui_basics/windows/juce_ComponentPeer.cpp +++ b/modules/juce_gui_basics/windows/juce_ComponentPeer.cpp @@ -574,6 +574,5 @@ void ComponentPeer::setRepresentedFile (const File&) } //============================================================================== -StringArray ComponentPeer::getAvailableRenderingEngines() { return StringArray ("Software Renderer"); } int ComponentPeer::getCurrentRenderingEngine() const { return 0; } void ComponentPeer::setCurrentRenderingEngine (int index) { jassert (index == 0); (void) index; } diff --git a/modules/juce_gui_basics/windows/juce_ComponentPeer.h b/modules/juce_gui_basics/windows/juce_ComponentPeer.h index ca73b55cb7..c47343ea53 100644 --- a/modules/juce_gui_basics/windows/juce_ComponentPeer.h +++ b/modules/juce_gui_basics/windows/juce_ComponentPeer.h @@ -343,7 +343,7 @@ public: static bool isValidPeer (const ComponentPeer* peer) noexcept; //============================================================================== - virtual StringArray getAvailableRenderingEngines(); + virtual StringArray getAvailableRenderingEngines() = 0; virtual int getCurrentRenderingEngine() const; virtual void setCurrentRenderingEngine (int index);