Commit Graph

4825 Commits

Author SHA1 Message Date
Matthias Melcher
88ce4aec17 Android: Made Fl_Rect virtual. Maybe a bad idea?
Also, added rectangular clipping which works.
Expanding now to a more complex clipping scheme to make multiple
windows work.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12739 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-11 22:00:59 +00:00
Albrecht Schlosser
0b1fd7ee37 Document fl_numericsort() and fl_casenumericsort().
Note: These two functions are not yet UTF-8 aware. Results may be unexpected.

Possible test case: run test/file_chooser or any FLTK program with
Fl_File_Chooser. The default display order is determined by fl_numericsort():

  Fl_File_Chooser::sort = fl_numericsort;


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12738 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-11 16:24:36 +00:00
Manolo Gouy
d8d04bf772 Documentation: homogenize to 'scale factor' and 'drawing unit'
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12737 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-11 14:49:09 +00:00
Manolo Gouy
e82e430c3b Documentation of fl_create_offscreen: give more details useful because the screen scale factor can now vary.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12736 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-11 08:33:36 +00:00
Manolo Gouy
7ab977ac86 Documentation: homogenize uses of "FLTK units" and "drawing units".
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12734 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-11 07:17:20 +00:00
Matthias Melcher
70e629b05d Android: finally taught AndroidStudio where the SVN root directory is
located. No more SVN from the command line.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12732 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-10 17:35:00 +00:00
Matthias Melcher
1cf4371b69 Android: fixed some variables to avoid crashing.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12730 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-10 16:22:44 +00:00
Matthias Melcher
5591ba811a Android: adding and fixing to the graphics clipping code
Android has no classic window manager, so FLTK has to
make sure that popup windows, dialog boxes and multi
window interfaces work as expectd.



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12729 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-10 13:17:41 +00:00
Manolo Gouy
2adaadbd94 Remove useless #include statement.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12728 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-10 06:55:57 +00:00
Manolo Gouy
fd1696d18e Fl_Xlib_Graphics_Driver::scale_clip: restrict the computed X11 region to the 16-bit coordinate space.
This member function transforms the current clip region from FLTK units to pixel units
multiplying FLTK units by the current value of the scale factor to get pixel units.
The current clip region has been, by construction, restricted to the 16-bit coordinate space.
But these data can evade this space after multiplication by the scale factor.
Thus, it's necessary to enforce the 16-bit space here which is done with Fl_Xlib_Graphics_Driver::XRectangleRegion.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12727 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-10 06:46:13 +00:00
Matthias Melcher
c0cbf0fbde Android: crude graphics clipping
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12726 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-10 00:46:12 +00:00
Albrecht Schlosser
dc2fb581b7 Improve X11 (16-bit) clipping of lines and rectangles.
In FLTK 1.3.x only horizontal and vertical long lines with endpoints
outside the 16-bit coordinate space could be drawn with proper X11
coordinate clipping. Now arbitrary lines are clipped so they can be
drawn with X11 functions.

All rectangles are clipped as well (as in 1.3).

Todo: The code needs better documentation and clipping of polygons,
circles, curves etc. is still missing. The next step should be the
clipping of polygons...


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12725 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-09 22:30:07 +00:00
Matthias Melcher
7b3e9347ba Android: move Android specific platform events to FL/android.H
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12724 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-09 21:21:23 +00:00
Manolo Gouy
7f78b1ef14 Windows: remove necessity to compile with -DFLTK_HIDPI_SUPPORT to make WIN32 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-03-09 16:27:27 +00:00
Albrecht Schlosser
12f6285147 Fix X11 clip region outside 16-bit coordinate space.
This is the first commit of X11 16-bit coordinate space (clipping) fixes.
More to follow...


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12722 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-08 23:09:23 +00:00
Matthias Melcher
ad10e4adaf Cleaning FLTK namespace
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12721 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-07 23:06:55 +00:00
Matthias Melcher
626ecbfca0 Android: specific event for Android. Use Fl::add_system_handler() and Fl::event(), for example: FL_ANDROID_EVENT_LOW_MEMORY
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12720 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-07 23:01:50 +00:00
Matthias Melcher
2e5b983f4b Android: moved all Android code from the main app into the driver system. All non-driver-FLTK code and main app are now Android-free.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12719 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-07 22:12:34 +00:00
Matthias Melcher
f058d3a99c Android: using wait_for_expose to sync screen and windows
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12718 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-07 21:07:35 +00:00
Matthias Melcher
dcc10a6a0a Android: improvements to Fl:flush() implementation. Initial draw, no wasted draw cycles.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12717 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-07 16:29:31 +00:00
Manolo Gouy
e94dd318be Windows: complete support for GUI rescaling.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12713 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-06 13:03:24 +00:00
Matthias Melcher
3ed5e71da7 Android: moved to IDE directory.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12711 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-05 23:17:51 +00:00
Matthias Melcher
b47db80af3 Android: drawing behaves nice enough. Fl::flush seems to bring the expected results, although optimization is required at some point.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12710 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-05 22:57:33 +00:00
Matthias Melcher
8c51282770 Android: more cleanup. Trying to solve the problem of undefined screen buffer content. Moved gradlew.bat into gradlew.zip to make some svn's happy.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12709 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-05 21:26:51 +00:00
Matthias Melcher
900457f0b4 Android: beautified the Fl_Android_Application interface.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12708 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-04 13:22:52 +00:00
Matthias Melcher
774503e35b Android: reorganizing
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12707 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-03 14:37:53 +00:00
Matthias Melcher
b57199097a Android: case of .h and .H
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12706 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-03 14:11:58 +00:00
Matthias Melcher
6ba638f5d6 Android: need more source files
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12705 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-03 14:05:18 +00:00
Albrecht Schlosser
4b00b0f320 Set svn properties on new Android source files.
The Android example files in directory Android/... are not touched.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12702 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-02 20:16:51 +00:00
Matthias Melcher
42555053a1 More Android changes.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12699 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-02 20:03:04 +00:00
Matthias Melcher
abbd7b9918 CMake rules to integrate Android drivers.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12696 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-02 16:35:59 +00:00
Matthias Melcher
b19efed409 Adding crude Android native screen driver
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12695 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-02 16:34:43 +00:00
Albrecht Schlosser
0e60b49b52 Update dependencies.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12691 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-25 19:24:45 +00:00
Manolo Gouy
ba5106e758 Replace calls to Fl_Surface_Device::set_current() by calls to Fl_Surface_Device::push_current()
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12690 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-25 16:54:21 +00:00
Albrecht Schlosser
7d1488507d CMake: Fix fltk-config for Windows and Unix/Linux.
This update ought to work with

  fltk-config [--use-images] [--use-gl] --compile <c source file>

on both Windows and Unix/Linux when built with CMake. It was tested
under Windows and Linux using fltk-config directly from the build tree,
but it should work as well after installation.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12686 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-23 19:41:52 +00:00
Manolo Gouy
a0863e393a Document that fl_mac_set_about() is deprecated, MacOS-specific and replaced by cross-platform Fl_Sys_Menu_Bar::about().
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12685 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-22 17:04:37 +00:00
Manolo Gouy
9dce38099a Make forms_timer.cxx platform-independent calling virtual function Fl_System_Driver::gettime().
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12684 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-22 06:00:28 +00:00
Manolo Gouy
7aaaf59e15 Remove "#ifdef _WIN32" that made this source file break the separation between platform-independent and -dependent files.
Several other platform-independent source files (e.g., Fl_Browser.cxx, Fl_Group.cxx) use malloc/realloc/free without
including a special header file for the Windows platform. Thus, Fl_Table.cxx can just be likewise.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12683 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-21 06:56:21 +00:00
Manolo Gouy
fb7d2b770d Remove unnecessary #ifdef _WIN32
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12682 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-20 12:48:48 +00:00
Manolo Gouy
31848b8565 MacOS: correct handling of window tabbing/untabbing together with GUI rescaling.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12681 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-20 12:09:32 +00:00
Manolo Gouy
06b925964d Remove Fl::run_also_windowless() and FL::wait_also_windowless() from planned public FLTK 1.4 API.
These were introduced at r12647, that is, during development of the 1.4 API.
These functions provided windowless support only on the MacOS platform,
where this can be obtained without those functions.
Windowless support on other platforms would require changing the event 
loop. There's no evidence from STR's there's a demand for windowless mode
on other platforms.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12680 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-20 09:08:38 +00:00
Manolo Gouy
78183fb45b Don't use FLTK's way to support HighDPI screens when the app has set a DPI awareness through a manifest - cont'd.
It's also necessary to prevent FLTK from rescaling windows moved between screens with different DPI's.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12678 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-19 10:18:55 +00:00
Manolo Gouy
288d61a953 Don't use FLTK's way to support HighDPI screens when the app has set a DPI awareness through a manifest.
FLTK reads during fl_open_display() the scaling factor of each screen and uses that to transform
FLTK units into screen units. This change avoids this reading if the app declared to be DPI-aware
though a manifest, a symptom that the app supports HighDPI independently from FLTK.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12677 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-18 16:58:38 +00:00
Manolo Gouy
a401c6c038 Fix Fl_Cocoa_Window_Driver::size_range() to make it support GUI rescaling.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12674 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-18 08:04:57 +00:00
Manolo Gouy
1884ebf501 Documentation: fix inconsistency in doc of Fl::wait(double).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12671 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-17 08:00:54 +00:00
Manolo Gouy
5bf7e5ece7 Fix Fl_Cocoa_Screen_Driver::screen_work_area() when the GUI is scaled - continued.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12670 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-16 17:12:23 +00:00
Manolo Gouy
38b924e12b Fix Fl_Cocoa_Screen_Driver::screen_work_area() when the GUI is scaled.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12669 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-16 17:10:06 +00:00
Manolo Gouy
0cef82d746 Remove Fl_Window_Driver::current_cursor() and its platform-specific forms 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-16 16:24:32 +00:00
Manolo Gouy
838168defc Restore documentation of function Fl_Mac_App_Menu::custom_application_menu_items()
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12666 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-12 09:16:04 +00:00
Manolo Gouy
4dde3e5485 Documentation: separate the doc of the 2 versions of Fl::add_fd() as Doxygen mandates.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12662 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-02-10 17:51:17 +00:00