From 668f0e7c54a969df1ea643f038afbcae0cda6128 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Sat, 18 Jul 2020 20:01:23 +0200 Subject: [PATCH] Implement wxWindow::GetDPI() on macOS and iOS --- include/wx/osx/window.h | 2 ++ src/osx/window_osx.cpp | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/include/wx/osx/window.h b/include/wx/osx/window.h index 19cd7d21d7..af92472618 100644 --- a/include/wx/osx/window.h +++ b/include/wx/osx/window.h @@ -120,6 +120,8 @@ public: virtual bool UnregisterHotKey(int hotkeyId) wxOVERRIDE; #endif // wxUSE_HOTKEY + virtual wxSize GetDPI() const wxOVERRIDE; + #if wxUSE_DRAG_AND_DROP virtual void SetDropTarget( wxDropTarget *dropTarget ) wxOVERRIDE; diff --git a/src/osx/window_osx.cpp b/src/osx/window_osx.cpp index beccd49723..6e0ab1cfe8 100644 --- a/src/osx/window_osx.cpp +++ b/src/osx/window_osx.cpp @@ -2599,6 +2599,19 @@ bool wxWindowMac::OSXHandleKeyEvent( wxKeyEvent& event ) return handled ; } +wxSize wxWindowMac::GetDPI() const +{ + wxNonOwnedWindow* tlw = MacGetTopLevelWindow() ; + + double scaleFactor; + if ( tlw ) + scaleFactor = tlw->GetContentScaleFactor(); + else + scaleFactor = wxOSXGetMainScreenContentScaleFactor(); + + return wxSize(wxRound(scaleFactor*72.0),wxRound(scaleFactor*72.0)); +} + // // wxWidgetImpl //