Commit Graph

3741 Commits

Author SHA1 Message Date
Matthias Melcher
7d0cf9299a Wrapping up fl_rect.cxx implementation. Introducing 3 moer virtual functions to Fl_Graphics_Device - will that break binary compatibility?
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11017 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-20 21:40:12 +00:00
Matthias Melcher
d34974ace7 Reorganized all integer line and polygon drawing functions
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11016 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-20 15:21:11 +00:00
Matthias Melcher
d3bd470734 Re-ordering a few more functions. It's nice to see how clear functions like rectf() become without the #ifdef mess.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11013 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-20 00:39:46 +00:00
Matthias Melcher
bd78fa1c48 Starting to cut out individual graphics function, so that multiple drivers can coexist (cfg_gfx). Found the missing pixels in the OpenGL gfx driver.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11012 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-20 00:11:43 +00:00
Matthias Melcher
9872f74053 Fixed typos for Linux compilation. OpenGL driver compiles and somewhat works, except for text rendering (as expected).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11009 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-19 00:46:54 +00:00
Matthias Melcher
b86f2f735a Replaced static initializer with Fl_OpenGL_Display_Device.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11008 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-18 22:55:46 +00:00
Matthias Melcher
884928f68c Fixed stupid typo in variable name
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11007 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-18 21:23:54 +00:00
Matthias Melcher
eb8207ff1b Trying to create a more detaild way to configure the library, added runtime information, added an OpenGL graphics driver that renders a button on top of an OpenGL window (see test/cube).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11006 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-17 00:44:07 +00:00
Manolo Gouy
3235168654 Better use of FL_PORTING preprocessor variable.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11004 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-11 09:42:50 +00:00
Manolo Gouy
c8ca93de71 Transferred required Doxygen description of a method.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11003 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-10 19:29:54 +00:00
Manolo Gouy
eeb65bef23 1) Replicate in branch-1.3-porting all recent changes of branch-1.3
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
2016-01-10 19:08:16 +00:00
Manolo Gouy
acc5080653 Replicate in branch-1.3-porting a recent change of branch-1.3
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11001 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-10 19:00:39 +00:00
Matthias Melcher
19c8c9b918 Compiling in OS X from the command line goes pretty far for __APPLE__ undefined and FL_PORTING defined.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@10995 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-04 23:31:55 +00:00
Matthias Melcher
64aa17ca09 Two more fixes for the command line version
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@10994 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-04 23:12:36 +00:00
Matthias Melcher
b1520373ae Created pseudo code for all FL_PORTED section so that FLTK compiles and links (Xcode, hello, other C flags: -D FL_PORTING -U __APPLE__ -U __APPLE_QUARTZ__)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@10993 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-04 23:09:32 +00:00
Albrecht Schlosser
d32b291a72 Fix typos in #pragma FL_PORTING.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@10991 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-04 13:40:57 +00:00
Matthias Melcher
acf6c881d3 Updated platform specific #if's to report unimplemented code when compiling with FL_PORTING defined and WIN32 and __APPLE__ undefined>
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@10989 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-03 22:54:29 +00:00
Manolo Gouy
d37269a23b The changes introduced at r.10921 destroyed program-controlled window resizing.
This change hopefully repairs that.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10987 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-31 10:39:51 +00:00
Manolo Gouy
69ec698e41 Mac OS: modified CMake config files to allow use of OPTION_APPLE_X11
to build an X11-using version of FLTK on the Mac OS platform.
This matches the recent support of the --enable-x11 option
by the configure script on the mac.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10986 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-31 06:19:59 +00:00
Albrecht Schlosser
17c4817592 Add configure and CMake checks for X11/Xregion.h.
Configure and CMake now both check if X11/Xregion.h exists on the
build system and set HAVE_X11_XREGION_H in config.h accordingly.

src/Fl_Pixmap.cxx: modified to use the configure test as proposed by Manolo
in fltk.coredev on Dec 13 2015 in thread "Using X11 backend on OS X".


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10983 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-30 12:10:15 +00:00
Manolo Gouy
59823515cf Mac OS: It is not necessary to open the display to send the
+[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-23 09:33:06 +00:00
Manolo Gouy
527d5943d0 Mac OS: when an app is asked to open a file by Applescript, have it redraw 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-23 07:34:49 +00:00
Manolo Gouy
ca5811e8bc Documentation only: removed warnings that appeared with Doxygen 1.8.10
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10977 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-22 11:49:03 +00:00
Manolo Gouy
25fc85190e Mac OS: Fix for STR#3268 where a fullscreen window could become relocated
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-21 13:38:49 +00:00
Manolo Gouy
309a76e81c Trying to find how to best write the // "$Id$" lines in src/Fl_File_Chooser.fl
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10973 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-19 06:35:26 +00:00
Manolo Gouy
43bfe74b25 Running FLTK in static initializers (cont'd):
1) Changed the way fluid attaches images to widgets and menu items so
it is compatible with running fluid-generated code containing such images
in a static initializer. Images are now attached calling a function:
  widget->image( image_function_name() );
and this function is defined before in fluid-generated code as:
   static Fl_Image *image_function_name() {
     static Fl_Image *image = new image_type(......);
     return image;
   }

2) Changed src/Fl_File_Chooser.fl so the source code generate by fluid
from it is compatible with running in a static initializer.

3) Changed src/Fl_File_Chooser.cxx and FL/Fl_File_Chooser.H
to the result of running fluid on src/Fl_File_Chooser.fl 

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10972 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-18 18:56:58 +00:00
Manolo Gouy
5c7ef30341 Running FLTK in static initializers (cont'd):
To make sure that fl_graphics_driver is initialized, it is enough to test whether it is null.
This saves the memory cost of a static variable.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10971 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-16 10:22:13 +00:00
Manolo Gouy
1b548ae1d5 Running FLTK in static initializers (cont'd):
the static method Fl_Surface_Device::surface() can be called before main() starts.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10970 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-16 07:18:34 +00:00
Albrecht Schlosser
14669685d8 Fix Fl_Browser if text argument to some methods is NULL (STR #3269).
Fl_Browser::add(), Fl_Browser::insert(), and Fl_Browser::text() didn't
test if the provided text argument was NULL, although this was explicitly
allowed in the documentation.

Also applied some minor documentation fixes.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10966 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-15 10:16:56 +00:00
Manolo Gouy
dd8c33b19a Mac OS: it is clearer to initialize the fl_fonts global variable in font-related code.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10965 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-15 08:31:20 +00:00
Manolo Gouy
291cf838bf Allowing to use FLTK objects in static initializers (cont'd).
Mac OS: a more convenient position where to initialize the fl_fonts global variable.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10964 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-13 13:24:17 +00:00
Manolo Gouy
69644d4032 Allowing to use FLTK objects in static initializers (cont'd).
Case of Fl_Native_File_Chooser.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10963 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-13 10:26:09 +00:00
Manolo Gouy
09cd712c0d Allowing to use FLTK objects in static initializers (cont'd).
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-13 09:51:07 +00:00
Manolo Gouy
cf14f77a90 Allowing to use FLTK objects in static initializers (cont'd).
For fl_file_chooser() and Fl_File_Chooser objects.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10961 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-13 09:36:14 +00:00
Manolo Gouy
6bdb661c2a Allowing to use FLTK objects in static initializers (cont'd).
On the Mac platform, it's also necessary to initialize the fl_fonts
global variable.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10960 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-13 08:38:16 +00:00
Manolo Gouy
6a608d4862 Restore the possibility to construct FLTK objects and draw them within static initializers
(which run before main() begins in an uncontrolled order). This was failing because
calls to drawing functions (e.g., fl_font(f,s);) crashed due to uninitialized fl_graphics_driver
global variable.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10959 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-13 06:55:30 +00:00
Manolo Gouy
fe92bbed66 Allow compilation with old Mac OS versions + USE_X11 mode with which
header X11/Xregion.h is not available.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10958 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-12 15:33:56 +00:00
Manolo Gouy
8d1d2df0c2 Mac OS: using true system windows for FLTK sub-Fl_Window's.
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-09 12:52:17 +00:00
Manolo Gouy
c7950b30c4 Mac OS: the present code asks the system to build the mini window image when 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-09 10:13:46 +00:00
Manolo Gouy
ade095f240 Mac OS: added visibility test necessary after a subwindow-containing group was hidden.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10951 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-07 20:10:07 +00:00
Manolo Gouy
caba454f39 Mac OS: removed some code that was duplicated by checkSubwindowFrame run later.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10950 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-07 17:53:26 +00:00
Manolo Gouy
f79f70b96a Removed compilation warning with SDKs 10.3 and 10.4u
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10948 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-03 17:18:33 +00:00
Manolo Gouy
58afd21c73 Mac OS: send the setWantsBestResolutionOpenGLSurface:YES message in
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-02 14:22:52 +00:00
Manolo Gouy
22af09dae7 Mac OS: support for high resolution OpenGL windows.
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-02 09:59:37 +00:00
Manolo Gouy
597ac17bda Mac OS: added Fl::event_x_pixel() and Fl::event_y_pixel() that return the 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-12-01 16:17:37 +00:00
Manolo Gouy
b2f24781d4 Mac OS: fixed possible crash when closing fullscreen GL window with close button of title bar.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10937 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-11-30 13:06:31 +00:00
Manolo Gouy
d74f373552 Mac OS: allow calling Fl_Gl_Window::pixel_w() before the window is shown.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10936 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-11-30 12:46:42 +00:00
Manolo Gouy
792cebf92b Mac OS: support standard Mac OS localization procedure for system menu items.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10935 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-11-28 13:41:33 +00:00
Manolo Gouy
ff65dbb5ae Mac OS only: added the Fl_Mac_App_Menu::custom_application_menu_items() method
that allows customization of the application menu on the Mac platform.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10932 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-11-26 16:34:58 +00:00
Manolo Gouy
b0696db39a Added new method Fl_Copy_Surface::draw_decorated_window()
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-24 14:26:52 +00:00