Commit Graph

6248 Commits

Author SHA1 Message Date
ManoloFLTK
503492db78 Simplify prototype of Fl_Wayland_Graphics_Driver::buffer_commit() member 2022-12-08 10:16:06 +01:00
ManoloFLTK
cbd37a2870 Wayland: fix progressive drawing as in test/mandelbrot 2022-12-07 08:46:50 +01:00
ManoloFLTK
90c7e6bcb1 Fix issue #537 without damaging test/mandelbrot 2022-12-06 14:46:11 +01:00
Matthias Melcher
0d485b34a2
Fixing fl_complex_polygon() compilation for WIN32 (#571) 2022-12-05 19:57:30 +01:00
Matthias Melcher
9f92972729
Implement fl_complex_polygon() for OpenGL (#570) 2022-12-05 19:27:12 +01:00
ManoloFLTK
a8923a0fd4 Wayland: remove regression in mandelbrot introduced by 1a5d657
The panel was drawn solid black when test/mandelbrot was unfocussed.
2022-12-04 12:29:24 +01:00
ManoloFLTK
1b938ab8b1 Fl_Cairo_Graphics_Driver: simpler way to construct font from name+size 2022-12-04 09:31:24 +01:00
ManoloFLTK
70e19a9e00 Fix dotted line drawing under Cairo graphics driver 2022-12-03 06:38:25 +01:00
ManoloFLTK
e5c3caeb6b Fix text drawn by pango is offset +1 pixel on x and y) (#568) 2022-12-02 16:14:38 +01:00
Matthias Melcher
bf825f8ebd
Add a unit test for drawing complex shapes (#565) 2022-11-30 22:40:52 +01:00
ManoloFLTK
bc3bbb7ca0 Remove useless fl_matrix member variable of class Fl_Graphics_Driver 2022-11-30 18:57:39 +01:00
ManoloFLTK
67817f696c Remove small files fl_XXX_gl_platform_init.cxx
The single-function content of these files is moved to Fl_XXX_Gl_Window_Driver.cxx.
2022-11-30 17:51:35 +01:00
ManoloFLTK
00884f28e2 Fix for issue [Cairo]: Arrows have a "gap" (#561)
The problem to fix is that the arrow drawn by draw_arrow1() in src/fl_symbols.cxx
displays a faint clear line between the stem and head of the arrow with the Cairo
graphics driver.

This occurs because draw_arrow1() draws the arrow in 2 steps (a rectangle +
a triangle) and the Cairo driver is configured to use antialiasing when filling
polygons. The antialiasing produces the faint line between stem and head.

Why does draw_arrow1() draw a rectangle + a triangle rather than a
7-vertex polygon? That's because the X11 graphics driver fails with its polygon-
drawing function when the polygon is also rotated: the polygon is drawn
empty.

We want to keep using antialiasing under Cairo for polygons because
the result is better with non horizontal/vertical polygon edges.

This implementation changes function draw_arrow1() which draws
the arrow as a 7-vertex filled polygon except when the graphics driver
returns false for its virtual member function can_fill_non_convex_polygon().
In that situation, draw_arrow1() draws, as before, a rectangle + a triangle.
The new, virtual member function can_fill_non_convex_polygon() returns
true except for the X11 graphics driver. Therefore, draw_arrow1() is effectively
unchanged under the X11 driver.
2022-11-29 12:28:31 +01:00
ManoloFLTK
7a42a80caf Undoing commit at f7a1777 that breaks X11 drawing
Under X11, rotated arrows loose their inside color with f7a1777
2022-11-29 10:46:39 +01:00
ManoloFLTK
f7a1777017 Fix for issue: Arrows have a "gap" (#561) 2022-11-29 09:47:08 +01:00
ManoloFLTK
401b3dc008 Doc: repeat that screens are numbered starting from 0 in the API 2022-11-28 10:08:44 +01:00
Matthias Melcher
c827292ec9 Fix forgotten name change 2022-11-27 15:35:50 +01:00
ManoloFLTK
acf7254fe8 macOS+OpenGL3: remove "warning: gl.h and gl3.h are both included" 2022-11-27 08:06:33 +01:00
Albrecht Schlosser
8ec935b4ce Simplify and improve "oxy" arrow drawing functions
- change drawing arrows from lines to polygons
- remove superfluous functions
- add more comments
2022-11-26 21:56:38 +01:00
Matthias Melcher
87fe29372c
Local undo per Fl_Text_Buffer and Fl_Input_ (#557) 2022-11-26 20:28:12 +01:00
Albrecht Schlosser
191aeefc4a Make the value box size of Fl_Value_Slider user settable (STR 3222)
For a very simple test program see STR 3222, File 2:
https://www.fltk.org/strfiles/3222/value_slider.cxx

Known issues:
 - range checking of the value box size is very limited
 - resizing the widget does not change the value box size
 - drawing issues are possible if the value box size and the widget
   size are not compatible (e.g. value box too large)
2022-11-26 19:56:32 +01:00
Matthias Melcher
6e5c472cf9
Handle Fluid project settings better (#556)
Fix allocation bug in Fl_String
2022-11-26 01:35:50 +01:00
ManoloFLTK
4de491d02e Make Fl_XXX_Graphics_Driver::create_bitmask() a static member function 2022-11-25 15:53:28 +01:00
Albrecht Schlosser
cda501f914 Fix silly Visual Studio compiler warnings in oxy scheme 2022-11-25 15:09:30 +01:00
Matthias Melcher
ffc2caea07 Avoid thin gray line in round box in hires 2022-11-25 12:53:54 +01:00
Matthias Melcher
09697c4738 Fix GDI graphics driver use for bitmasks 2022-11-25 10:52:46 +01:00
Albrecht Schlosser
b1ba37c5ba Add "Oxy" scheme (STR 2675, STR 3477)
This commit is similar to the patch given in STR 3477, oxy_v5.diff:
https://www.fltk.org/strfiles/3477/oxy_v5.diff

... with modifications, and updated to current FLTK code.
2022-11-25 00:00:48 +01:00
Albrecht Schlosser
40f376a6f7 Fix two new Visual Studio compiler warnings 2022-11-24 17:29:26 +01:00
ManoloFLTK
c3011e32e4 Improve text drawing above GL3 scene under macOS 2022-11-24 15:48:39 +01:00
ManoloFLTK
be0f06e791 Remove two "warning: pointer xxx used after void* realloc()" messages 2022-11-24 14:35:47 +01:00
Albrecht Schlosser
c1ba9f31ec Fix two Visual Studio compiler warnings
+ fix trailing whitespace (fluid)
2022-11-24 12:51:26 +01:00
Matthias Melcher
b16309f13e
Refactor code to make rounded rectangles accessible (#553)
This adds fl_rounded_rect and fl_rounded_rectf so the
user can draw rounded rectangles. This uses existing and
optimised code that is rearranged.
2022-11-24 12:47:49 +01:00
Matthias Melcher
12dccaf711
Check boundary conditions in Cocoa scroll code (#554) 2022-11-24 12:44:08 +01:00
ManoloFLTK
e19d2d98ba OpenGL3 under macOS: simpler implementation of support of child widgets 2022-11-24 09:13:40 +01:00
ManoloFLTK
b6c5de7c05 Restore build with HAVE_GL = 1 and HAVE_GL_GLU_H = 0 2022-11-23 18:12:33 +01:00
ManoloFLTK
27a6fd9609 Configure-based build: control presence of GL-related packages 2022-11-23 17:24:59 +01:00
Albrecht Schlosser
b684f70ad7 Update remaining "arrow drawing" in menus
Use the new standard arrow drawing methods (whose style depends on
the active scheme) for "arrows" used in Fl_Menu and Fl_Menu_Button.

To do: maybe we need some "fine tuning" of arrow sizes in some of
the modified widgets using the new "arrow drawing" methods.
2022-11-23 15:21:34 +01:00
Albrecht Schlosser
5e4643621b Save and restore current color when drawing arrows
Make sure we don't change the current color after we finish drawing.
2022-11-23 15:21:34 +01:00
Albrecht Schlosser
bd18d9de26 Fix border size of FL_PLASTIC_UP_BOX 2022-11-23 15:21:34 +01:00
Matthias Melcher
35f2827d1f
Keep indicator that menubar is still active (#551) 2022-11-23 12:33:14 +01:00
ManoloFLTK
42b74919e5 Improve Fl_Cocoa_Gl_Window_Driver::switch_to_GL1() to support multiple GL3 windows 2022-11-23 11:59:49 +01:00
Matthias Melcher
73b24c2104
Add missing FL_RELEASE event after dnd() (#549)
On X11, FLTK would not send a required FL_RELEASE
event to the data source window.
2022-11-23 10:33:34 +01:00
ManoloFLTK
d215ddef81 Fix for issue #412 for the Wayland backend
The problem was that after a drag-n-drop within a window, text selection
by shift+arrow key stopped working.

Also, improves drag-n-drop within a window by leaving insertion point
at end of dragged text.
2022-11-23 09:33:41 +01:00
ManoloFLTK
4dcced5b29 Wayland+CMake: stop forcing GTK_FOUND to 0
This removes the cause of this developer's message
  # FIXME: This needs to be redesigned! Forcing GTK_FOUND to 0 (NO) is a bad
  # FIXME: idea because there could be unwanted side effects. AlbrechtS
2022-11-23 05:59:57 +01:00
Albrecht Schlosser
39bb38447b Update dependencies 2022-11-22 19:35:34 +01:00
Albrecht Schlosser
ecc47d0cc3 Refactor and simplify "arrow drawing" in widgets
"Arrows" in widgets are those GUI elements mostly represented by
triangles pointing in a particular direction as in scrollbars,
choice widgets, some menus, valuators and Fl_Counter widgets.

The code has been simplified and standardized such that all these
GUI elements are drawn identically per FLTK scheme.

Widget authors no longer need to write code to calculate arrow sizes
and draw polygons etc.

Different schemes can and do implement different drawing functions.

Todo: see comments "FIXME_ARROW" in src/Fl_Menu_Button.cxx and
      src/Fl_Menu.cxx
2022-11-22 19:32:54 +01:00
ManoloFLTK
4daec2a940 macOS: Fix release of extra NSView holding child widgets of GL window 2022-11-22 19:18:29 +01:00
Matthias Melcher
495b2395c1
Fix selection extension in Fl_Text_*, issue 196 (#550)
Selecting a text range programmatically would not sync
some variables with the actual selection. This also fixes
a crash bug in macOS when dragging text that was
selected by buffer()->select() only.
2022-11-22 16:18:56 +01:00
Albrecht Schlosser
be928430a6 Fix Fl_Group::insert() and Fl_Scroll::on_move() 2022-11-20 14:11:19 +01:00
ManoloFLTK
8a53fc9611 Replace #if FLTK_USE_X11 by #ifdef FLTK_USE_X11 2022-11-20 07:33:08 +01:00