summaryrefslogtreecommitdiff
path: root/src/drivers/WinAPI
AgeCommit message (Collapse)Author
2018-04-24Windows: avoid changing the current Fl_Surface_Device when drawing an ↵Manolo Gouy
Fl_Double_Window. This change was previously attempted at r.12792 but the test/offscreen demo did not run well with it. This commit fixes the problem: the global fl_window should not be changed when drawing to an Fl_Double_Window. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12868 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-04-23Undo change at r12792 (24 march 2018) because test/offscreen does not work ↵Manolo Gouy
with it. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12867 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-04-18Simplify the implementation of printing of Fl_Pixmap images under Windows.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12851 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-24Windows: avoid changing the current Fl_Surface_Device when drawing an ↵Manolo Gouy
Fl_Double_Window. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12792 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-09Windows: remove necessity to compile with -DFLTK_HIDPI_SUPPORT to make WIN32 ↵Manolo Gouy
FLTK apps DPI-aware. At this point, Windows FLTK apps detect HighDPI displays and rescale their GUI accordingly. They also all reply to ctrl/+/-/0/ keystrokes to enlarge/shrink/reset their windows. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12723 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-20Remove unnecessary #ifdef _WIN32Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12682 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-16Remove Fl_Window_Driver::current_cursor() and its platform-specific forms ↵Manolo Gouy
that are now unused. This became unused when window scaling no longer involved window destruction/recreation. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12668 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-09Replace "WIN32" with "_WIN32" or "Windows".Albrecht Schlosser
Replace compiler/preprocessor/platform macro "WIN32" with "_WIN32". Replace "WIN32" in text and documentation with "Windows". Replace "MSWindows" with "Windows". To do: README.Windows.txt (and maybe other documentation as well) needs updates. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12655 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-09Fix fl_read_image() under MacOS platform when GUI is rescaled.Manolo Gouy
This commit also simplifies the platform-dependent support of fl_read_image(): only Fl_XXX_Screen_Driver::read_win_rectangle() contains platform-specific code to capture pixels from the current window or from an offscreen buffer. Platform-independent function Fl_Screen_Driver::traverse_to_gl_subwindows() captures subwindows that intersect with the area fl_read_image() targets. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12653 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-01-31Replace FL/x.H with FL/platform.H - step 2 (STR #3435).Albrecht Schlosser
This second step replaces FL/x.H with FL/platform.H in all source files. Dependencies have been adjusted as well. This commit completes the replacement of FL/x.H with FL/platform.H. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12641 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-01-09Put a default implementation of parse_color() in Fl_Screen_Driver and only ↵Manolo Gouy
Fl_X11_Screen_Driver reimplements it. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12628 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-12-18STR#3444: Add MacOS support for application rescaling (not quite complete)Manolo Gouy
With this, most MacOS FLTK app can be scaled with command/+/-/0/ keystrokes. A scaling problem remains, visible in test/cube, where the "Test" string is not positioned correctly. GLUT apps can also be scaled (across platforms). SVG images are re-rasterized after app scaling for optimal drawing. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12594 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-11-17Replace remaining calls of getenv() with fl_getenv().Albrecht Schlosser
Note: don't use fl_getenv() in Fl_System_Driver and derived classes. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12563 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-11-11Refactor Fl_WinAPI_System_Driver string conversion and more.Albrecht Schlosser
Remove duplicated code by using local (static) string conversion functions. This makes the code better maintainable and removes redundancies. Rename some variables (particularly one-letter names) to more useful names, minor code reformatting to be more compatible with the CMP. To do: check for potential memory leaks, maybe free temporary buffers. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12556 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-11-10Add missing platform wrapper fl_chdir() for chdir().Albrecht Schlosser
Tested under Windows and Linux, but not yet used in library code. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12549 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-15Rename fl_open_ext() parameter 'translation' to 'binary'.Albrecht Schlosser
The default (0) is 'text' mode, non-zero is 'binary' mode on platforms that distinguish text and binary mode. Currently Windows is the only supported platform that needs this. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12500 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-12Add fl_open_ext() to control whether the file is opened in binary/text mode.Manolo Gouy
This new function allows to write Fl_SVG_Image::fl_gzopen() in a completely platform-independent way. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12489 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-04Undo commit at r.12475 that is not adequate.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12476 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-04Fl_SVG_Image class: add support for compressed .svgz image files.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12475 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-09-19Convert the initialisation of global variables fl_local_shift, ↵Manolo Gouy
fl_local_meta, etc... using the driver approach. This avoids repeating the default values "Shift", "Meta", etc... for several platforms. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12463 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-09-19Fl_XXX_System_Driver::clocale_printf() : use thread-specific, locale-setting ↵Manolo Gouy
APIs where possible This commit uses thread-specific, locale-setting functions under Linux and MSWindows-Visual Studio They are already used by the Mac OS system driver, when possible. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12461 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-08-20Remove undesirable statement.Manolo Gouy
A bug was visible in test/unittests when moving between lines and rectangles. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12394 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-08-19Prevent situation where SetProcessDPIAwareness was called after ↵Manolo Gouy
Fl_WinAPI_Screen_Driver::init(). The effect was that the file_chooser test app did not recognize the window scaling factor. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12393 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-30Improve rescaling when window moved across screens: make sure center stays ↵Manolo Gouy
on new screen. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12367 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-26X11 platform, resize window when moved across screens: remove hide()/show() ↵Manolo Gouy
calls. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12355 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-25Remove virtual Fl_Window_Driver::reuse_icons() no longer useful after r.12349.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12351 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-25Remove Fl_Window_Driver::reuse_cursor() that is no longer used since commit ↵Manolo Gouy
r12349. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12350 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-07Define Fl_WinAPI_Screen_Driver::DWM_scaling_factor() only without ↵Manolo Gouy
FLTK_HIDPI_SUPPORT. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12298 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-07Fix Fl_WinAPI_Window_Driver::border_width_title_bar_height() when built ↵Manolo Gouy
without FLTK_HIDPI_SUPPORT git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12296 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-04HiDPI support under WIN32: fix fullscreen when several monitors of distinct ↵Manolo Gouy
resolution. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12288 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-04Slight improvement of Fl_WinAPI_Window_Driver::border_width_title_bar_height()Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12287 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-03HiDPI support under WIN32 platform: completed.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12285 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-29HiDPI support for WIN32 platform: begin to support screen-specific scale factor.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12280 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-28Better implementation of Fl_WinAPI_Window_Driver::reuse_cursor() that will ↵Manolo Gouy
also work with custom cursors. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12277 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-28HiDPI support: keep window's icons after rescalingManolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12276 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-28HiDPI support: keep window's cursor after rescaling.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12275 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-27WIN32 platform: more progress for full HiDPI supportManolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12273 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-19HiDPI support under WIN32: fix bugs with tile demo and with fullscreen demo.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12268 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-19HiDPI support under WIN32: fix fullscreen mode when scaling factor is > 1.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12267 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-19HiDPI support under WIN32 platform: fix ↵Manolo Gouy
Fl_WinAPI_Window_Driver::capture_titlebar_and_borders() under XP. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12266 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-18Advancing HiDPI support for the WIN32 platform - still incomplete.Manolo Gouy
It's still necessary to compile with -DFLTK_HIDPI_SUPPORT to activate the new HiDPI support. Default builds get the same HiDPI support as in FLTK 1.3 git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12265 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-17Make Fl_Screen_Driver::get_mouse(int&, int&) return the number of the ↵Manolo Gouy
mouse-containing screen. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12264 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-02Fix problem introduced at r.12247Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12251 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-01Remove the 'defined(WIN32)' and 'defined(__APPLE__)' preprocessor directives ↵Manolo Gouy
introduced at r.12239 git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12247 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-01Divide virtual Fl_Screen_Driver::open_display() in a platform-specific part ↵Manolo Gouy
followed by a platform-independent part. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12245 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-05-17Introduce HiDPI + rescaling support for the X11 platform (+ partial support ↵Manolo Gouy
for WIN32) Corresponds to STR #3320 1) HiDPI support consists in detecting the adequate scaling factor for the screen on which FLTK maps a window, and scaling all FLTK units by this factor. FLTK tries to detect the correct value of this factor at startup (see more details below). Environment variable FLTK_SCALING_FACTOR can also be used to set this value. 2) Rescaling support consists in changing the scaling factor of all FLTK windows in reply to ctrl/+/-/0/ keystrokes. More details for the various platforms : - X11: Support is very advanced. Some details need still to be improved. Automatic detection of the correct starting value of the scaling factor works well with the gnome desktop. The present code contains no support for this on other desktops. FLTK_SCALING_FACTOR provides a workaround. -WIN32: Support is incomplete at this point, although many test applications have partial or complete HiDPI and scaling support. The current value of the system's scaling factor is correctly detected at application startup. Apps respond to changes of this value in real time. Support needs to define the FLTK_HIDPI_SUPPORT preprocessor variable at compile time. This way, standard builds produce a code with the default WIN32 HiDPI support, that is, where all graphics goes to an internal buffer that gets enlarged by the system and then mapped to the HiDPI display. To experiment with (or develop) the new HiDPI support requires a modified build procedure in which FLTK_HIDPI_SUPPORT is defined at compile time. When the support will be complete, the requirement for the definition of this preprocessor variable will be removed. The present commit contains support for a single scaling factor. Eventually, per-screen scaling factors should be implemented, as done for X11. - MacOS: this commit does not give new HiDPI for this platform. Eventually, window rescaling in reply to command/+/-/0/ is desirable. Per-screen scaling factor makes no sense on this platform because the OS itself takes care of the difference between the resolutions of traditional and retina displays. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12239 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-05-05Fix erroneously cased include file namesManolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12233 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-04-11Fix Windows CreateDC/DeleteDC mismatch (STR #3373).Albrecht Schlosser
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12217 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-03-07Add to Fl_System_Driver support for measuring time with split second resolution.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12187 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-12-14Implement a platform-independent version of ↵Manolo Gouy
Fl_Graphics_Driver::copy_offscreen() usable when drawing to PostScript. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12147 ea41ed52-d2ee-0310-a9c1-e6b18d33e121