Commit Graph

1307 Commits

Author SHA1 Message Date
Matthias Melcher
b966e87eb9 Fluid: lambda 2026-02-23 13:33:41 +01:00
Matthias Melcher
e4b3713fad Fluid: user_data_ 2026-02-23 13:33:41 +01:00
Matthias Melcher
5f6a2cbb16 Fluid: user_data_type_ 2026-02-23 13:33:41 +01:00
Albrecht Schlosser
8b4af06a96 CMake: don't export unnecessary executable files
Exporting executable files means that they would appear in the CMake
config files as "imported targets". This could break the config files
of Linux and other distributions if such executables are not installed
when building FLTK programs.

The only executable files that need to be exported are the `fluid`
executables that may be used to convert .fl files during building.
2026-02-07 20:08:23 +01:00
Matthias Melcher
71cee83f77 Fluid: Formatting changes. 2026-01-05 22:58:40 +01:00
Matthias Melcher
89aa5726f8 Fluid: Improve std::string output
Fluid: Update Widget_Node to std::string

Fluid: Image names to std::string

Fluid: std::string tooltip

Fluid: stringify Widget_Node::subtype

Fluid:: extra_code
2026-01-05 21:06:04 +01:00
Matthias Melcher
11325da073 Fluid: Modernize Function Nodes 2026-01-05 11:52:34 +01:00
Matthias Melcher
48617a8075 Fluid: Modernize use of strings.
Testing MergeBack at the same time.
2026-01-05 00:36:28 +01:00
Matthias Melcher
296f2fc5da Fix missing return in mergeback 2026-01-04 22:35:20 +01:00
Matthias Melcher
452ed8d86d Improve mergeback timing.
Avoid recursion in event handling by
deferred calling mergeback.
2026-01-04 21:49:52 +01:00
Matthias Melcher
7306b66d99 Fluid: Add automated MergeBack 2026-01-04 20:43:34 +01:00
Albrecht Schlosser
c17c2e3808 Clean up .gitignore files
Since FLTK 1.5 building FLTK in the source tree is prohibited by our
CMake setup. Therefore all build artifacts are stored in the build
tree and don't need to be "ignored" in the source tree.
This simplifies the .gitignore files significantly.

There are some exceptions though, for instance .cxx and .h files
generated by fluid which might be created by a user/developer
executing fluid in the source tree.
2025-12-30 18:41:33 +01:00
Matthias Melcher
f5e7d62f90 Generate code block documentation using FLTK (#1353)
The Doxygen-to-pdf toolchain can not easily generate
pdf's with Japanese and Chinese characters. This patch
generates code blocks by rendering them in FLTK.
2025-12-28 21:37:30 +01:00
Matthias Melcher
33199dab78 FLUID: Add support for lambda callbacks.
Starting the callback text with a '[' assumes that
the rest of the callback is a lambda and generates
inlined code for it.
2025-12-22 23:12:42 +01:00
Matthias Melcher
73556ca5fb Fluid: Increase setting panel fonts. 2025-12-13 00:11:57 +01:00
Matthias Melcher
b1d3ee13bd Fluid: modernize Function Node class 2025-12-06 02:50:28 +01:00
Matthias Melcher
5e7ed2f653 Fluid: fix class prefix user input check. 2025-12-06 02:29:57 +01:00
Matthias Melcher
87160b6eb9 Remove boxtype linke trick.
By defining boxtypes with underscores, box
drawing cod ethat was not used was not linked,
but with the introduction of themes, all boxes
are available at all times. Reducing complexity.
2025-12-03 23:33:14 +01:00
Matthias Melcher
8f55e0634c Fluid: Fix crash when saving an empty project. 2025-11-29 17:21:47 +01:00
Matthias Melcher
349b818d3f
Fluid: convert modal panels into tabs in the widget panel (#1339) 2025-11-29 12:57:08 +01:00
Matthias Melcher
725be0116f Fluid: Fix unique id reader. 2025-11-29 12:38:55 +01:00
Matthias Melcher
7da07038f9 Update Fluid format README. 2025-11-19 19:19:23 +01:00
Matthias Melcher
94008f57c3 Add headline menu item style (#1059)
A menu item can be designated as a headline.
Fully integrated and used in Fluid.
2025-11-19 16:58:08 +01:00
MatthiasWM
1ba957eb60 Fix MSVC Level 4 warnings (#1126) 2025-10-31 19:15:38 +01:00
Matthias Melcher
f05ee88359 Fluid: Fix relative project paths in GUI mode #1293
Also fixes native "Save as... project file chooser to start
with current project path.
2025-08-13 21:23:48 +02:00
Matthias Melcher
16aa61efb5 Fluid: Fix include guard between 0 and 127
if the UCS is not a number or letter
2025-07-08 15:34:11 +02:00
Albrecht Schlosser
5d68428a00 Fix trailing whitespace and convert a few tabs to spaces
... according to CMP
2025-07-08 15:25:14 +02:00
Matthias Melcher
66b73c8e76 #1276: New code to generate include guard
- generating macro identifier with unicode encoding
   if the filename has international character
- optional user defined include guard
2025-07-07 23:19:41 +02:00
Matthias Melcher
5475f2dddd FLUID: Multiple fixes
- fixes new naming of i18n class
- fixes use of deprecated setonly()
- fixes false assumption that all children of a Window are Widgets
2025-07-02 12:45:00 +02:00
Matthias Melcher
3459e43ca8 FLUID: Move i18n settings into its own class 2025-06-27 14:34:49 +02:00
Albrecht Schlosser
7897bbc04f Fix several compiler warnings [-Wextra-semi]
Example:
  warning: extra ‘;’ after in-class function definition [-Wextra-semi]

Also: replace 'FL_OVERRIDE' with 'override' in all modified files
2025-06-05 09:50:07 +02:00
Albrecht Schlosser
2d2f474794 Fix compiler warning warning [-Wundef]
warning: "_WIN32" is not defined, evaluates to 0 [-Wundef]
2025-06-05 09:50:07 +02:00
Albrecht Schlosser
4d55983833 Remove hardcoded version numbers (part 2) and more documentation
The goal is to change the version number for a new release only in
CMakeLists.txt. This is the second step.

This commit also adds a chapter "Migrating Code from FLTK 1.4 to 1.5".

Details:

- documentation/CMakeLists.txt: configure 'version.dox'
- fluid/documentation/CMakeLists.txt: same as above
- documentation/Doxyfile.in: add "Migrating Code from FLTK 1.4 to 1.5"
- documentation/src/index.dox: include 'version.dox' and 'migrating...'
- fluid/documentation/src/index.dox: same as above
- documentation/src/preface.dox: include 'version.dox'
- documentation/version.dox.in: input to CMake configure 'version.dox'
- fluid/documentation/version.dox.in: same as above
- documentation/src/migration_1_4.dox: update links
- documentation/src/migration_1_5.dox: new documentation chapter
2025-05-07 21:21:35 +02:00
Matthias Melcher
9af8abc080 Fix forgotten run_pdflatex call (1.5) 2025-04-23 15:47:31 +02:00
Albrecht Schlosser
1066b69c8e Fix "fully support ... own shared libraries" (#1238)
- If shared libraries are built, then fluid, fltk-options, and the
  "games" are linked against the shared FLTK libraries. On some
  platforms the static and the shared versions of fluid and
  fltk-options are built. The games are only built if
  FLTK_BUILD_TEST is enabled.

- The CMake 'install' target now installs the games (if built)
  and their man pages on all platforms (no matter if that is
  useful, for instance on Windows).

- On macOS 'CMAKE_INSTALL_RPATH' is set so *installed* programs
  automatically find their shared FLTK libraries. The "shared"
  versions of fluid and fltk-options got their own '.plist' files.
  This works for both the executables themselves as well as those
  included in bundles. There may be more to do on the macOS platform.
2025-04-21 19:50:12 +02:00
Matthias Melcher
48e22d246d Fluid: update documentation scripts
TeX and pdf generation untested at this point
2025-04-18 21:40:37 +02:00
Matthias Melcher
219c623b4b Fluid: hiding MergeBack form the main menu.
Hiding menuitem if option is not available.
Also testing the new FL_BEFORE_MENU event.
2025-04-15 15:28:37 +02:00
Matthias Melcher
fc91880faf
Reactivating Mergeback functionality. (#1226)
Reactivated code.
Various fixes.
New documentation.
2025-04-15 14:47:24 +02:00
Matthias Melcher
63db80c078 Fluid: avoid bad function pointer casting warning in Clang 17. 2025-04-15 14:38:45 +02:00
Greg Ercolano
ed57306a43 Adjusted .fl files too, regen code (#1245) 2025-04-06 08:21:31 -07:00
Greg Ercolano
70a104131a Solve Mac 10.10.5 fluid build errors (#1245) 2025-04-05 14:53:24 -07:00
Albrecht Schlosser
61f132845b CMake: simplify fluid build
- define variable MAIN_FILES to avoid repetition
- make target_include_directories(fluid-lib) PUBLIC rather than PRIVATE
2025-04-04 15:54:36 +02:00
Matthias Melcher
bd9d1bc038 Fixes a couple of compiler warnings on AppleClang. 2025-03-30 00:38:10 +01:00
Albrecht Schlosser
80c73b508c Fluid documentation: fix image name "main_window.png"
Remove prefix "Fluid." from generated image name.
2025-03-23 15:04:40 +01:00
Matthias Melcher
51a55bc736
Fluid: restructuring and rejuvenation of the source code.
* Add classes for application and project
* Removed all globals from Fluid.h
* Extracting args and project history into their own classes
* Moving globals into Application class
* Initialize values inside headers for some classes.
* Undo functionality wrapped in a class inside Project.
* File reader and writer are now linked to a project.
* Avoid global project access
* Nodes (former Types) will be managed by a new Tree class.
* Removed static members (hidden globals) form Node/Fl_Type.
* Adding Tree iterator.
* Use nullptr instead of 0, NULL, or 0L
* Renamed Fl_..._Type to ..._Node, FL_OVERRIDE -> override
* Renaming ..._type to ...::prototype
* Splitting Widget Panel into multiple files.
* Moved callback code into widget panel file.
* Cleaning up Fluid_Image -> Image_asset
* Moving Fd_Snap_Action into new namespace fld::app::Snap_Action etc.
* Moved mergeback into proj folder.
* `enum ID` is now `enum class Type`.
2025-03-16 17:16:12 -04:00
Albrecht Schlosser
f99fdcdc71 Fix fluid documentation generation
std::string doesn't allow nullptr as input string
2025-03-10 18:15:21 +01:00
Albrecht Schlosser
8838e976a0 More (mostly) documentation updates for FLTK 1.5.0
All files: remove autoconf/configure related stuff, update links.

- README.txt: describe prerequisites, provide generic instructions
  on how to use CMake to build FLTK
- test/demo.cxx: remove code used for configure/make build
- test/CMakeLists.txt: remove obsolete 'target_compile_definitions()'
2025-03-10 15:43:12 +01:00
Matthias Melcher
ff62ed249e Fluid: one small fix. 2025-03-08 00:21:12 +01:00
Matthias Melcher
15ad447e2a Fluid: last incremental chage, restructuring 2025-03-08 00:14:27 +01:00
Matthias Melcher
ca22660bbb Fluid: last incremental change: restructuring 2025-03-08 00:14:27 +01:00