Commit Graph

2457 Commits

Author SHA1 Message Date
Matthias Melcher
bbf0ea664d Removes dependency on Fl_Preferences::get/set(.., Fl_String, ...) 2023-10-21 18:41:57 +02:00
Matthias Melcher
0c35212467 FLUID: grid becomes a bit more interactive 2023-10-21 17:45:40 +02:00
Matthias Melcher
f8d7ee6f5c FLUID: adding a subset of Fl_Grid child parameters. 2023-10-21 13:20:11 +02:00
Matthias Melcher
9817536cfd FLUID: basic Fl_Grid support
* no settings for children yet
* ne good interactive editing for children
2023-10-20 19:00:52 +02:00
ManoloFLTK
143a18ee11 Add "#define MAC_OS_VERSION_14_0 140000" to mac.H 2023-10-20 10:57:48 +02:00
Albrecht Schlosser
5c7ad00e07 Improve Fl_Grid example code
Add 'grid->end();' although it's redundant in this specific example.
2023-10-19 14:22:58 +02:00
Albrecht Schlosser
27a779b235 Fix trailing whitespace 2023-10-18 15:00:37 +02:00
Albrecht Schlosser
38871c5b31 Add Fl_Grid widget and test and demo programs
- FL/Fl_Grid.H: header file
- src/Fl_Grid.cxx: implementation

- examples/grid-simple.cxx: simple example program
- test/cube.cxx:            use Fl_Grid for layout
- test/grid_alignment.cxx:  test cell alignment and other functions
- test/grid_buttons.cxx:    demo program as discussed in fltk.general
- test/grid_login.cxx:      like test/flex_login.cxx but with Fl_Grid
- test/flex_login.cxx:      modified to match test/grid_login.cxx
2023-10-16 22:18:24 +02:00
ManoloFLTK
ae4ed35229 Add virtual void Fl_Graphics_Driver::draw_circle() 2023-10-16 20:53:55 +02:00
Albrecht Schlosser
6ba7b49baf Improve subclassing cababilities of Fl_Tile (STR 2791)
- remove static variables and functions
- make move_intersection() virtual
- add (protected) cursor access methods

These changes were inspired by STR 2791 where the user proposing an
enhancement was not able to subclass Fl_Tile properly. This commit
fixes the mentioned issues and enables subclassing without copying
internal code.
2023-10-16 13:33:40 +02:00
ManoloFLTK
52f5653545 Doxygen-only: warn when current color is changed
Also, remove the statement that rectangles are drawn with 1-pixel lines
which is wrong with HighDPI displays.
2023-10-16 11:24:17 +02:00
Albrecht Schlosser
01038e832a Fix trailing whitespace and dependencies 2023-10-13 19:08:30 +02:00
Matthias Melcher
b1321bb97e #748: Adds option to choose menu window boxtype
...independently from the menu button or menu bar boxtype
2023-10-13 12:49:26 +02:00
Matthias Melcher
c41b3a1a64
Fixes fl_filename_relative on Linux, Mac, and Windows (#787)
* fixed filename_relative for Linux
* Fixing fl_filename_relative for MSWindows.
* Update documentation
* Fixed docs.
* Fixes Linux and macOS builds
2023-10-11 23:26:36 +02:00
Albrecht Schlosser
1fd6f0dd3a Fix STR 3458: "GLUT compatibility mode segfaults"
... "when there's no current window".

Silently ignore GLUT function calls that need a current window if the
current window is NULL, return 0 from functions that return an 'int'.

Check if window is shown in Fl_X11_Gl_Window_Driver::swap_buffers().
This would issue "XRequest.nnn: GLXBadDrawable 0x0" on X11 otherwise.

Note: the chosen implementation to ignore GLUT calls silently appears
to be compatible with GLUT (3.7) whereas FreeGLUT 3.0 would issue error
messages and exit. The latter could be implemented as well but would
be much more work.
2023-10-07 17:14:11 +02:00
ManoloFLTK
f20e2188fd Change prototype to Fl::now(double offset = 0) - cont'd 2023-10-06 17:11:43 +02:00
ManoloFLTK
4d9805537b Change prototype to Fl::now(double offset = 0) 2023-10-06 16:23:08 +02:00
Matthias Melcher
144d7d3529 Adds Fl_Menu_::prev_mvalue() (#685) 2023-09-29 15:22:47 +02:00
Matthias Melcher
f3eae58c52 Draw parent window backdrop on Fl_Tabs (#718) 2023-09-29 14:12:39 +02:00
Matthias Melcher
71b8e77935
FLUID: adds greatly enhanced Shell Commands (#774)
The user can add an arbitrary number of highly configurable 
shell commands through the setting panel. The commands can
be saved as user preferences, inside the .fl file, or exported
to an external file. Shell scripts can be limited to individual 
platforms, can have shortcut keys, etc. .

* documentation will follow
* support to call `fltk-config` will follow
2023-09-26 16:01:03 +02:00
ManoloFLTK
75273c06c5 Add Fl_Timestamp Fl::distant_past()
Can be handy when Fl::seconds_since() is used early at program startup
2023-09-26 12:31:20 +02:00
Greg Ercolano
cee69943e5 Small FNFC doc clarification; "pilots" -> "presets" 2023-09-20 23:34:43 -07:00
ManoloFLTK
824818303c Restore Doxygen doc of fl_graphics_driver 2023-09-17 09:00:48 +02:00
Albrecht Schlosser
ede381c005 Fix Visual Studio shared library build
Todo: fluid-shared can't (yet) be built agains the shared fltk lib
  because of some linker errors. Needs investigation.

Note: fluid-shared is basically a test program to demonstrate linking
  against the shared FLTK libs but doesn't work yet using VS (MSVC).
  This is no problem for the functionality.
2023-09-12 23:18:46 +02:00
Albrecht Schlosser
a75024213f Fix doxygen "undocumented parameter" warnings
... and argument order in FL_INLINE_CALLBACK_2 macro
2023-09-07 12:01:43 +02:00
Matthias Melcher
5ef29202ed Fixes Fl_Tabs to be more robust.
No children in Fl_Tabs should no longer crash the draw
method. Also, drawing an Fl_Tabs with no children inside
is now defined and documented.
2023-09-06 17:02:13 +02:00
Matthias Melcher
6bb5a81cee Adds some convenience methods.
fl_filename_absolute can no generate a path using arbitrary source paths.
Fl_Menu_ adds find_item_with_user_data and find_item_with_argument
Fl_String adds find(string, start)
2023-09-05 14:45:57 +02:00
Albrecht Schlosser
b2a41e08c3 Introduce Fl_Flex::need_layout() to optimize layout calculation
This is intended to reduce layout calculation and resizing of child
widgets until necessary before the Fl_Flex widget and all its
children are drawn in Fl_Flex::draw().

With this commit users no longer need to call layout() to layout the
Fl_Flex widget and its children properly unless they change widget
sizes or show/hide children.
2023-09-04 16:16:42 +02:00
Matthias Melcher
5e8adebac2 Adds compact buttons feature to create keypads.
See test/buttons for an example.
2023-09-03 00:09:40 +02:00
Matthias Melcher
502fa72eb4 #718: Fixes drawing issues for Fl_Tabs
Tabs were drawn incorrectly when children's box was not FL_NO_BOX
Current solution is cleaned up and always redraws tabs area
without leaving breadcrumbs behind
2023-09-02 20:56:57 +02:00
ManoloFLTK
0caa2c99c2 Special (UTF-8) characters in PDF docs maybe not rendered correctly (#772)
Use an image to display the table of the detailed description of class
Fl_PostScript_File_Device in PDF format, and keep using a dynamic table
for the HTML format.

Replace use of the '⌘' character in file drawing.dox by text 'cmd'.
2023-08-31 12:51:16 +02:00
ManoloFLTK
2e88b5efd1 Remove Doxygen warnings in processing of class Fl_Tabs 2023-08-31 12:41:02 +02:00
Matthias Melcher
443ce62300 #718: Fixes Fl_Tabs overlapping calculations
This method should greatly improve the overlapping calculations.
Tested with super wide and super many tabs.
Also documented every method in the class.
2023-08-30 20:03:44 +02:00
Matthias Melcher
b5a1da9612 FLUID: minor fixes 2023-08-29 22:50:12 +02:00
Albrecht Schlosser
ad5e49464b Document some protected methods and variables of Fl_Tabs
Todo: There are more protected methods that should be documented,
particularly the virtual ones that might be overridden by subclasses.
2023-08-29 15:19:07 +02:00
Matthias Melcher
5da15de174 FLUID: simplified worker handling 2023-08-29 01:38:39 +02:00
Albrecht Schlosser
8dfb83d990 Add missing FL_EXPORT for Windows shared lib build 2023-08-26 17:24:20 +02:00
Matthias Melcher
92ac709b7e Adds safe versions of fl_filename_*, returning Fl_String 2023-08-26 16:48:28 +02:00
Matthias Melcher
94a75b012f Fixes a bunch of typos in comments. 2023-08-26 15:17:28 +02:00
ManoloFLTK
3384776f8e Improve handling of type Fl_Offscreen under Wayland
Type Fl_Offscreen is now to be cast to cairo_t*.
Also, make sure the dimensions of GL windows are
multiples of the screen scale factor.
2023-08-18 18:02:35 +02:00
ManoloFLTK
64f64835dd Fix typos in names of Doxygen items (#729) 2023-08-17 08:22:25 +02:00
Matthias Melcher
10d9010ed9
Improved, yet compatible, widget callback system using macros (#729)
* adds FL/fl_callback.macros.H
* adds FL_FUNCTION_CALLBACK_n(widget, function, [type, data])
* adds FL_METHOD_CALLBACK_n(widget, class, instance, method, [type, data])
* adds FL_INLINE_CALLBACK_n(widget, [type, name, data], callback_body)
* adds `examples/callback`
* full documentation
2023-08-15 11:36:58 +02:00
Matthias Melcher
5e484524c8 Fl_Tabs now supports horizontal mouse wheel events. 2023-08-13 14:32:41 +02:00
ManoloFLTK
1943fe54c8 Wayland: fix fl_read_image() from offscreen buffer 2023-08-09 10:31:36 +02:00
ManoloFLTK
27c3d0b780 Wayland: improve layout of struct fl_wld_draw_buffer 2023-08-08 16:08:53 +02:00
Albrecht Schlosser
5bcd6ca8f2 Revert "#733 partial: Adds rotation gesture event on MacOS"
This reverts commit 3049e6394a
as agreed upon in GitHub Issue #733.
2023-08-05 16:37:38 +02:00
Matthias Melcher
3049e6394a #733 partial: Adds rotation gesture event on MacOS 2023-08-05 12:19:42 +02:00
Matthias Melcher
ee4ab86c3c #211: adds optional parameter for Fl_Input_::drawtext()
Does not change the original API but adds a function and
keeps the original automatic.
2023-08-03 17:35:27 +02:00
Matthias Melcher
f0375d6213 Adds default shortcut to Fl_Shortcut_Button. 2023-07-22 15:30:17 +02:00
Albrecht Schlosser
069a6b430b Enable compilation with VS 2022 and clang (#752)
Ensure that <stdint.h> is included in Visual Studio 2010 and later
(_MSC_VER >= 1600).
2023-07-19 14:25:14 +02:00