summaryrefslogtreecommitdiff
path: root/src/Fl_cocoa.mm
AgeCommit message (Collapse)Author
2016-03-01Moved timer code to screen drivers. Not sure if this should be in System ↵Matthias Melcher
Drivers instead. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11253 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-27Rewrite all fl_XXX_offscreen() functions so they use an Fl_Image_Surface object.Manolo Gouy
These functions become therefore platform-independent. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11241 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-26Create class Fl_Widget_Surface that supports draw(Fl_Widget *, int, int).Manolo Gouy
This simplifies the implementation of Fl_Copy_Surface and Fl_Image_Surface which now are made to derive from Fl_Widget_Surface. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11220 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-19Instantiate the right Fl_Window_Driver.Matthias Melcher
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11195 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-19Rename Fl_Graphics_Driver::set_gc(void*) to gc(void*) and ↵Manolo Gouy
Fl_Graphics_Driver::get_gc() to gc(). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11191 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-18Remove all uses of the fl_gc global variable. Towards a clean driver model.Manolo Gouy
fl_gc remains usable by the application as a hook into the system. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11189 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-14Remove Fl_X::q_fill_context() used only once.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11171 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-14Remove Fl_X::q_clear_clipping() used only once.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11170 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-13New member function Fl_Quartz_Graphics_Driver::draw_CGImage() used ↵Manolo Gouy
internally for all image drawing. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11165 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-13Simpler code to support drawing to high-resolution Fl_Image_Surface object.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11162 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-12Fl_Window::capture_titlebar_and_borders() returns a double-resolution top image.Manolo Gouy
Also, Fl_Image_Surface now can draw a scaled Fl_Shared_Image to a double-resolution surface. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11160 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-12Add Fl_Shared_Image *Fl_Image_Surface::highres_image() to draw into ↵Manolo Gouy
high-resolution bitmap. Also, change arguments of void Fl_Window::capture_titlebar_and_borders() from Fl_RGB_Image to F_Shared_Image so, in the future, scaled images having a drawing size distinct from a pixel size can be returned, to support high-resolution displays. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11159 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-12Add Fl_Shared_Image *Fl_Image_Surface::highres_image() to draw into ↵Manolo Gouy
high-resolution bitmap. This new member function returns a high resolution bitmap image scaled to the adequate drawing size. This allows to create a bitmap image able to fill all pixels of a high resolution display. This is functional only for the Mac OS platform. On other platforms, the new member function returns an unscaled bitmap. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11158 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-11Mark places that need to be refactored with // PORTME:Matthias Melcher
Searching for __APPLE, WIN32 or X11 did give me many false results. I instead marked most ifdef's that I would like to get rid of with the text // PORTME:, so they can be easily found by a global search. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11155 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-10Basic Screen Driver Structure. LIMBO!Matthias Melcher
Creating the basic structure for a screen driver system. OS X works X11 and WinAPI are in limbo and will be fixed in the next hour or so. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11148 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-01Fix Mac OS "Print front window" of the application menu.Manolo Gouy
This is part of r.10990 committed to the 1.3 branch, still to be replicated in this branch. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11105 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-31Fix compiler warnings (STR 2988), porting from branch-1.3.Albrecht Schlosser
This commit is the accumulated patch introduced in branch 1.3 in svn r 11094, 11095, and 11096. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11097 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-28Added Fl_Window::capture_titlebar_and_borders a new private member functionManolo Gouy
that triggers a warning when FL_PORTING is ON and with a default platform-neutral implementation. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11074 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-27Removed all references to Quartz driver files from library headers in Xcode. ↵Matthias Melcher
Works in Xcode. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11065 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-271) Added a new way to detect whether the drawing operation is using the ↵Manolo Gouy
platform's native driver and whether we are printing: virtual int Fl_Graphics_Driver::has_feature(driver_feature feature) This is also because it is not convenient to derive a printer-specific driver with its own implementation of virtual functions when this implementation differs only in one line of code. 2) Solved the problem of inclusion of non public header by the public header FL/Fl_Device.H: bracket this with #if FL_LIBRARY / #endif so this non public header is included only when building FLTK itself. 3) Removed several (but not all) of the FLTK_ABI_VERSION guards that are no longer useful for code targeting FLTK 1.4. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11063 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-101) Replicate in branch-1.3-porting all recent changes of branch-1.3Manolo Gouy
2) Advance branch-1.3-porting with new function Fl_X::capture_titlebar_and_borders() that contains all the platform-specific code of all operations related to drawing window borders and title bars. What is platform-specific and what is not is therefore much clearer, to ease porting. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11002 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-23Mac OS: It is not necessary to open the display to send theManolo Gouy
+[NSWindow frameRectForContentRect:styleMask:] message (checked on 10.11 and 10.3). Therefore fluid -c will run without opening the display. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10979 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-23Mac OS: when an app is asked to open a file by Applescript, have it redraw ↵Manolo Gouy
itself without waiting for the next event to come, because AppleScript does not break the event loop. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10978 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-21Mac OS: Fix for STR#3268 where a fullscreen window could become relocated Manolo Gouy
behind the menu bar and dock. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10975 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-13Allowing to use FLTK objects in static initializers (cont'd).Manolo Gouy
On the Mac platform, it is also necessary to change the initialization of the macKeyLookUp array for keyboard events to work in a static initializer. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10962 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-09Mac OS: using true system windows for FLTK sub-Fl_Window's.Manolo Gouy
Improved handling of the situations where a subwindow is created, hidden, the parent window resized, and the subwindow shown, with a new size. This change no longer sends setFrame: or setFrameOrigin: messages to hidden subwindows. Instead, subwindows acquire their correct size and position when they are shown again and Fl_X::map() is called. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10954 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-09Mac OS: the present code asks the system to build the mini window image when ↵Manolo Gouy
a subwindow-less window is miniaturized, and builds itself the image when a window with subwindow is miniaturized. That is mostly OK, but it fails when a window containing a subwindow is miniaturized (a mini image is computed), deminiaturized, the subwindow is removed or hidden, and the window is miniaturized again: the old mini image is used, and that is not appropriate. The solution is to remove the FLTK-computed mini image when a window with subwindow is deminiaturized. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10953 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-07Mac OS: added visibility test necessary after a subwindow-containing group ↵Manolo Gouy
was hidden. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10951 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-07Mac OS: removed some code that was duplicated by checkSubwindowFrame run later.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10950 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-03Removed compilation warning with SDKs 10.3 and 10.4uManolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10948 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-02Mac OS: send the setWantsBestResolutionOpenGLSurface:YES message in Manolo Gouy
Fl_X::create_GLcontext_for_window() where it is directly relevant. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10947 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-02Mac OS: support for high resolution OpenGL windows.Manolo Gouy
Methods Fl::event_x_pixel() and Fl::event_y_pixel() committed at r.10941 are removed. Instead method Fl_Gl_Window::pixels_per_unit() is added. The documentation explains in more detail how to write cross-platform FLTK code supporting high resolution OpenGL windows on retina displays. The examples/OpenGL3test.cxx app exercises Fl_Gl_Window::pixels_per_unit(). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10945 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-01Mac OS: added Fl::event_x_pixel() and Fl::event_y_pixel() that return the ↵Manolo Gouy
mouse event position in pixel units that differ from FLTK units for OpenGL windows mapped to a retina display. On non Mac OS platforms, these are synonyms of Fl::event_x() and Fl::event_y(). The example/OpenGL3test demo program is modified to call these new functions. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10941 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-11-30Mac OS: fixed possible crash when closing fullscreen GL window with close ↵Manolo Gouy
button of title bar. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10937 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-11-30Mac OS: allow calling Fl_Gl_Window::pixel_w() before the window is shown.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10936 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-11-24Added new method Fl_Copy_Surface::draw_decorated_window()Manolo Gouy
that copies a window to the clipboard together with its title bar and borders. This requires very little new code because the capture of window decorations is shared with the Fl_Paged_Device::print window() method. The device test program is changed to call the new method. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10928 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-11-19Mac OS: have Fl_Paged_Device::print_widget() print top-level windows with Manolo Gouy
rounded bottom corners as they appear on screen. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10916 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-11-16Mac OS. This simpler algorithm is just as good: remove the constraintManolo Gouy
altogether for subwindows; keep it unchanged for windows. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10913 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-11-16Corrected typo.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10912 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-11-16Mac OS: with OS 10.11, the (green) window maximize button turns the window ↵Manolo Gouy
fullscreen so it covers the dock and the system menu bar. The default behavior of a subwindow of such a fullscreen window is to be prevented to cover the menu bar (which makes not much sense because this bar is covered by the main window). If the location of the subwindow within its parent window expected by FLTK would have it cover the menu bar, Mac OS moves it down. The subwindow therefore does not lie where FLTK wants it. This patch overrides the adequate method of the NSWindow class to prevent this bad behavior. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10911 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-11-15Mac OS: Added necessary check because a non-FLTK window can be found Manolo Gouy
as child of an FLTK window when turning a window full-screen. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10909 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-11-13Mac OS X: simplified code for moving and resizing subwindows.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10908 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-11-11Mac OS X: with OS 10.11 "El Capitan" window capture returns an ARGB image ↵Manolo Gouy
(it used to return RGBA) whereas OpenGL window capture returns RGBA as before. Capturing a window with subwindow(s) requires ARGB <--> RGBA conversion when Quartz and OpenGL windows are mixed. The OpenGL-inside-Quartz case was taken care of before. Here, the Quartz-inside-OpenGL case is properly handled. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10900 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-11-10Mac OS X: added checks that subwindows do not leak out ofManolo Gouy
enclosing window when they are programmatically resized or moved. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10899 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-11-09Mac OS: fixed bad window resizing when presence of sub-sub-window and windowManolo Gouy
resized by top border. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10898 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-11-08Mac OS: improved control that subwindows do not leak outside their parentManolo Gouy
after window resize. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10893 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-11-07Mac OS only.Manolo Gouy
Allow proper initial display of a subwindow-containing window in iconized state (previously, the subwindow was not displayed in the icon). Also fixes a problem with subwindows when the screen resolution was changed while the window was iconized. Tested with Mac OS 10.11, 10.6 and 10.3. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10891 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-10-27Added support for OpenGL V3 and higher.Manolo Gouy
On the X11/MSWindows platforms, this requires external installation of the GLEW library. This fixes STR#3198 and STR#3257. Added two new examples programs. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10876 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-10-20More careful coding that does not read beyond the end of the image dataManolo Gouy
when an ARGB system image is converted to the RGBA format. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10870 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-10-19More detailed comment.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10869 ea41ed52-d2ee-0310-a9c1-e6b18d33e121