From ce71c4b679b7afdb07de1133d0c600051e2601f6 Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Tue, 22 May 2018 17:00:27 +0000 Subject: Add Fl::screen_scale(int) function to get the scaling factor value of a screen. This allows to keep class Fl_Screen_Driver away from the public API. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12926 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl.cxx | 6 ++++++ src/Fl_Window.cxx | 2 +- src/drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/Fl.cxx b/src/Fl.cxx index 6e60e524c..81aecdb25 100644 --- a/src/Fl.cxx +++ b/src/Fl.cxx @@ -2110,6 +2110,12 @@ int Fl::get_font_sizes(Fl_Font fnum, int*& sizep) { return Fl_Graphics_Driver::default_driver().get_font_sizes(fnum, sizep); } +/** Current value of the GUI scaling factor for screen number \p n */ +float Fl::screen_scale(int n) { + return Fl::screen_driver()->scale(n); +} + + // Pointers you can use to change FLTK to another language. // Note: Similar pointers are defined in FL/fl_ask.H and src/fl_ask.cxx FL_EXPORT const char* fl_local_shift = Fl::system_driver()->shift_name(); diff --git a/src/Fl_Window.cxx b/src/Fl_Window.cxx index c34988cf3..f8b25042c 100644 --- a/src/Fl_Window.cxx +++ b/src/Fl_Window.cxx @@ -632,7 +632,7 @@ void Fl_Window::size_range(int minw, int minh, int maxw, int maxh, int dw, int d } /** The number of the screen containing the mapped window */ -inline int Fl_Window::screen_num() { +int Fl_Window::screen_num() { return pWindowDriver->screen_num(); } diff --git a/src/drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm b/src/drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm index fabfcaa8f..fbc4584b7 100644 --- a/src/drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm +++ b/src/drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm @@ -383,7 +383,7 @@ void Fl_Cocoa_Printer_Driver::draw_decorated_window(Fl_Window *win, int x_offset CGContextRef gc = (CGContextRef)driver()->gc(); CGContextSaveGState(gc); CGContextTranslateCTM(gc, x_offset - 0.5, y_offset + bt - 0.5); - float s = Fl::screen_driver()->scale(Fl_Window_Driver::driver(win)->screen_num()); + float s = Fl::screen_scale(win->screen_num()); CGContextScaleCTM(gc, 1/s, -1/s); Fl_Cocoa_Window_Driver::draw_layer_to_context(layer, gc, win->w() * s, bt); CGContextRestoreGState(gc); -- cgit v1.2.3