From f18b5ee74c9d73879a6a03dd5d864e442c4793d3 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Tue, 22 Feb 2011 18:51:10 +0000 Subject: [PATCH] supporting content size scaling (retina display) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67001 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/osx/core/private.h | 4 ++++ include/wx/osx/iphone/private.h | 3 ++- include/wx/osx/window.h | 3 +++ src/osx/iphone/window.mm | 7 +++++++ src/osx/window_osx.cpp | 5 +++++ 5 files changed, 21 insertions(+), 1 deletion(-) diff --git a/include/wx/osx/core/private.h b/include/wx/osx/core/private.h index fff53bc513..285561a45d 100644 --- a/include/wx/osx/core/private.h +++ b/include/wx/osx/core/private.h @@ -235,6 +235,10 @@ public : virtual void GetPosition( int &x, int &y ) const = 0; virtual void GetSize( int &width, int &height ) const = 0; virtual void SetControlSize( wxWindowVariant variant ) = 0; + virtual float GetContentScaleFactor() const + { + return 1.0; + } // the native coordinates may have an 'aura' for shadows etc, if this is the case the layout // inset indicates on which insets the real control is drawn diff --git a/include/wx/osx/iphone/private.h b/include/wx/osx/iphone/private.h index fca0be2880..f08a8917a2 100644 --- a/include/wx/osx/iphone/private.h +++ b/include/wx/osx/iphone/private.h @@ -56,7 +56,8 @@ public : virtual void GetPosition( int &x, int &y ) const; virtual void GetSize( int &width, int &height ) const; virtual void SetControlSize( wxWindowVariant variant ); - + virtual float GetContentScaleFactor() const ; + virtual void SetNeedsDisplay( const wxRect* where = NULL ); virtual bool GetNeedsDisplay() const; diff --git a/include/wx/osx/window.h b/include/wx/osx/window.h index c548f2171e..184e135910 100644 --- a/include/wx/osx/window.h +++ b/include/wx/osx/window.h @@ -266,6 +266,9 @@ public: virtual bool OSXHandleKeyEvent( wxKeyEvent& event ); bool IsNativeWindowWrapper() const { return m_isNativeWindowWrapper; } + + float GetContentScaleFactor() const ; + protected: // For controls like radio buttons which are genuinely composite wxList m_subControls; diff --git a/src/osx/iphone/window.mm b/src/osx/iphone/window.mm index 83e902bbe1..faebee53dd 100644 --- a/src/osx/iphone/window.mm +++ b/src/osx/iphone/window.mm @@ -392,6 +392,8 @@ void wxWidgetIPhoneImpl::Move(int x, int y, int width, int height) [m_osxView setFrame:r]; } + + void wxWidgetIPhoneImpl::GetPosition( int &x, int &y ) const { CGRect r = [m_osxView frame]; @@ -591,6 +593,11 @@ void wxWidgetIPhoneImpl::SetControlSize( wxWindowVariant variant ) { } +float wxWidgetIPhoneImpl::GetContentScaleFactor() const +{ + return [m_osxView contentScaleFactor]; +} + void wxWidgetIPhoneImpl::SetFont( const wxFont & font , const wxColour& foreground , long windowStyle, bool ignoreBlack ) { } diff --git a/src/osx/window_osx.cpp b/src/osx/window_osx.cpp index ce444b9913..63ea791e8c 100644 --- a/src/osx/window_osx.cpp +++ b/src/osx/window_osx.cpp @@ -1115,6 +1115,11 @@ void wxWindowMac::DoSetClientSize(int clientwidth, int clientheight) } } +float wxWindowMac::GetContentScaleFactor() const +{ + return m_peer->GetContentScaleFactor(); +} + void wxWindowMac::SetLabel(const wxString& title) { if ( title == m_label ) -- 2.47.2