Commit Graph

1220 Commits

Author SHA1 Message Date
Albrecht Schlosser
7992b0b9ab CMake: fix installation on macOS
fluid and fltk-options are now installed correctly as bundles and as
stand-alone executables side by side in the 'bin' folder relative
to CMAKE_INSTALL_PREFIX.

This works but the installation folders may be changed in the future.

Targets fltk::fluid is now exported correctly so

  find_package(FLTK CONFIG ...)

works with both the build folder and an installed version.
2024-02-14 17:06:10 +01:00
Albrecht Schlosser
bddcecd28a CMake: set FLTK_VERSION and FLTK_FLUID_EXECUTABLE in the cache
This is useful if FLTK is built as a subproject, for instance by
using FetchContent.
2024-02-12 16:53:20 +01:00
Matthias Melcher
a7bc26e12a FLUID: Fix double reverse logic in FL_COMMAND handling 2024-02-10 14:55:52 +01:00
Matthias Melcher
1ed14867e6 Fixes FLUID shortcut generation
and makes the C++ code human readable
2024-02-10 14:28:33 +01:00
Albrecht Schlosser
fd5cd80935 Introduce "Modern CMake" in FLTK
This is a big commit and there are too many changes to list them all.
The main changes are:

- rename all CMake build options to 'FLTK_*'
- export library targets with namespace (prefix) 'fltk::'
- standardize shared library target names with suffix '-shared'
- set public build properties on libraries for consumers
- document library names and aliases in README.CMake.txt
- document changes in "Migrating Code from FLTK 1.3 to 1.4"
- partial backwards compatibility for old user projects

Included but not directly related changes:

- fix Windows (Visual Studio) DLL build
- add CMake function fl_debug_target() to show target properties
- don't build test programs if FLTK is a subproject
- internal: reformat CMake code: remove space before '('

Thanks to Matthias and Manolo for their help, testing, and feeback.
2024-02-07 18:37:34 +01:00
Matthias Melcher
826eb39d68 #877: Fixes shortcut callbacks for Fl_Button
- this commit does rewrite some of the logic,
hoping to make thing more, um, logical. The bits
react mostly the same and hopefully as expected.
Everything is documented in the Fl_Button ctor.
2024-01-13 22:36:35 +01:00
Albrecht Schlosser
b4697c33ff Remove Fl_Simple_Terminal (replaced by Fl_Terminal)
... as discussed previously.
2024-01-06 18:29:25 +01:00
Albrecht Schlosser
ecb3e40d69 Fluid: fix "MergeBack" preference location
... although currently disabled - just in case this feature will be
re-enabled.
2023-12-30 17:37:31 +01:00
Albrecht Schlosser
76a2c95f07 Fix a typo, trailing whitespace, and dependencies 2023-12-21 14:03:04 +01:00
Albrecht Schlosser
5df5daf78e Make the 'Forms' compatibility library 'fltk_forms' optional
This library is no longer needed in FLTK itself. There is only one
demo program (test/forms.cxx) that uses it if it is built. The demo
program displays a message if fltk_forms is not available.

The default is 'enabled' for backwards compatibility but this may
be changed to 'disabled' in a future version.
2023-12-20 17:33:37 +01:00
Matthias Melcher
638e762d3e #674: FLUID: Scrolls shell script terminal to the bottom on every run 2023-12-16 18:53:01 +01:00
Matthias Melcher
5f3bea4614 #832: FLUID: Improves widget browser output 2023-12-16 18:43:27 +01:00
Matthias Melcher
04a5098a58 #840: Generously adds Fl::args_to_utf8() for MinGW support. 2023-12-15 13:04:57 +01:00
Matthias Melcher
a118930d95 #832: FLUID: Adds custom fonts and colors for widget browser. 2023-12-15 12:31:29 +01:00
Matthias Melcher
14f4dec0b9 FLUID: Adds image scaling to widget dialog 2023-12-14 23:37:10 +01:00
Matthias Melcher
33d0718756 FLUID: option to show terminal, clear terminal, and clear history 2023-12-14 19:40:34 +01:00
Matthias Melcher
6b39bc095f #862: FLUID "Open FIle..." no longer closes current project...
...when user cancels out of file choose
2023-12-13 17:31:04 +01:00
Matthias Melcher
41dd84016d #862: Removes default shortcut from Fl_Shortcut_Button
- the current UI for fallback/default/original shortcut was
confusing, so I remove it until we find something better. I
kept the values so we can reinstate a better interface without
changing the API.
2023-12-13 16:55:16 +01:00
Greg Ercolano
e77ec078e9 fluid: Clear button clears scroll history too 2023-12-06 15:37:36 -08:00
Matthias Melcher
68594ec7fa #860: FLUID: Increments Shell history to 1000 lines 2023-12-05 18:38:51 +01:00
Matthias Melcher
49dd9289b8 #860: FLUID: Removes Group attributes from Fl_Terminal 2023-12-05 18:34:17 +01:00
Matthias Melcher
7a69c22bd7 #856: FLUID: improved Declaration dialog
Also makes enum comment in Fl_File_Chooser.fl manageable.
Not backward compatible: don't try to recreate the
File Chooser with older FLUID versions.
2023-12-05 17:54:13 +01:00
Matthias Melcher
5b96fca1c1 #859: FLUID: Improves widget class code formatting
- categorizes multiple comments before a widget class member
correctly vs. before a widget member
- reintrodues newline characters for comment preview in the widget browser
2023-12-04 22:03:55 +01:00
Matthias Melcher
ed910b7368 FLUID: improves special handling of widget_class members 2023-12-04 17:42:45 +01:00
Albrecht Schlosser
a73a14347d Fix compiler warnings
fluid/code.cxx: unused variable

src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_x.cxx:
  function may return address of local variable [-Wreturn-local-addr]
2023-12-04 16:50:23 +01:00
Matthias Melcher
75c97edb1e #858: Fluid: removed duplicate and false code 2023-12-04 16:28:07 +01:00
Matthias Melcher
1476d215f3 FLUID: Refactored writing escaped strings 2023-12-04 16:12:02 +01:00
Matthias Melcher
d8dac2a088 #858: FLUID: fixes control character replacement in widget browser 2023-12-02 16:21:56 +01:00
Matthias Melcher
96730f80cb Adds some possible NULL references and small fixes 2023-12-01 16:53:27 +01:00
Matthias Melcher
ccc21d381a Fixes a few minor compiler warnings. 2023-12-01 15:25:17 +01:00
Matthias Melcher
2025481f8c FLUID: Add dialog box when processes are still runing when user tries to quit. 2023-11-30 15:02:21 +01:00
Albrecht Schlosser
57371365d8 Fix compiler warning, dependencies, and trailing whitespace
The benign warning was:
  ‘Fl_Browser_::hscrollbar’ will be initialized after [-Wreorder]
  ‘int Fl_Browser_::linespacing_’ ...
2023-11-27 15:33:53 +01:00
Matthias Melcher
34ed30fe1a Adds linespacing() to Fl_Browser_ and all derived widgets 2023-11-25 18:20:08 +01:00
Matthias Melcher
01d30ed9cc FLUID: inlined data can be stored compressed. 2023-11-16 13:21:17 +01:00
Matthias Melcher
d28d03e1ac FLUID: Adds wrapping to "find" in source view. 2023-11-16 11:20:42 +01:00
Matthias Melcher
348c1876e6 FLUID: Adds text attribute support to Fl_Terminal. 2023-11-16 00:42:57 +01:00
Albrecht Schlosser
6f021d4830 CMake: Raise cmake_minimum_required from 3.12 to 3.15
Remove code that checks CMake versions lower than 3.15
2023-11-15 21:30:12 +01:00
Matthias Melcher
4e1f2e7568 FLUID: Removes two warnings. 2023-11-15 16:09:17 +01:00
Matthias Melcher
69189c8f07 FLUID: Fixes missing DISPLAY connection.
Fl_Terminal opens the X11 Display before shown, so we need
to generate a proxy in batch mode. This will no longer  work
when we add more Fl_Terminal attributes to FLUID.
2023-11-15 16:05:14 +01:00
Matthias Melcher
fc03d304e7 FLUID: fixing test/valuator.fl and test/tree.fl
Using Fl_Terminal widget instead of subclassing from Fl_Group
2023-11-15 15:48:22 +01:00
Matthias Melcher
4cf758f9c4 FLUID: updates file structure README 2023-11-15 15:05:38 +01:00
Matthias Melcher
ee0637688d FLUID: Fixes generating default templates 2023-11-15 13:43:19 +01:00
Matthias Melcher
36bd2afef5 esc character replacement 2023-11-15 13:06:50 +01:00
Matthias Melcher
dd8ac4d557 FLUID: Replaces Fl_Simple_Terminal with Fl_Terminal 2023-11-15 13:02:48 +01:00
Albrecht Schlosser
4b315d190c Fix dependencies and whitespace issues 2023-11-14 18:14:48 +01:00
Matthias Melcher
aa2d058f10 FLUID: Removes non-obvious option "Cancel Dialog"
from message boxes, pointing out potential syntax errors
in code related dialogs.
2023-11-07 14:52:01 +01:00
Matthias Melcher
5667dfc51b FLUID: More user documentation 2023-11-07 14:28:22 +01:00
Matthias Melcher
d7768b76d0 FLUID: Adds template for tutorial.
Tutorial still to be written.
Also adds convenience methods to Fl_Input_
for getting and setting numeric values.
2023-11-07 14:28:22 +01:00
Matthias Melcher
c86ca1a9fc FLUID: '\r' (CR) is skipped when reading project files
Project and code files are now always written with LF instead of
CRLF, even on MSWindows machines.
2023-11-06 11:36:02 +01:00
Matthias Melcher
e690e76da1 FLUID: Adds undo for all grid operations. 2023-11-05 22:19:03 +01:00
Matthias Melcher
95daa77c49 FLUID: Fixes undo/redo mixup.
If undo or redo menu is deactivated, fltk resends undo events
as redo and vice versa, so instead now we just beep.
2023-11-05 22:19:03 +01:00
Matthias Melcher
1f5472a7d3 FLUID: Adds transient cells to Fl_Grid
This allows multiple widgets to occupy a single cell which is
needed when moving cells across the grid interactively.
2023-11-05 20:04:49 +01:00
Matthias Melcher
a31409f7bb FLUID: Documentation 2023-11-05 16:12:15 +01:00
Matthias Melcher
681363849c FLUID: Adds missing Include for MSWindows. 2023-11-05 15:00:44 +01:00
Matthias Melcher
032d3f5cf4 FLUID: Fixes child properties reader. 2023-11-05 14:53:47 +01:00
Matthias Melcher
8c87427403 FLUID: Separates developer and user documentation 2023-11-05 14:20:13 +01:00
ManoloFLTK
4b55a5af63 Fix "overlay dotted line rendering problem" (#816) 2023-11-04 06:52:23 +01:00
Matthias Melcher
c22a7bb6a7 FLUID: Restructures user documentation. 2023-11-02 22:25:54 +01:00
Matthias Melcher
7c6266f67e FLUID: Simplifies and improves Ghosted Outlines 2023-11-02 17:45:36 +01:00
Matthias Melcher
9ca4aed1fa FLUID: Adds more interactive editing to Fl_Grid
* this commit introduces a few FIXMEs and TODOs that probably
can't be solved until we do some major refactoring. They work for
now, but adding more layout controlling widgets will be hard.
2023-11-02 15:18:09 +01:00
Matthias Melcher
fb6c38b1a4 FLUID: Arrow keys move widgets inside Fl_Flex 2023-11-01 23:34:53 +01:00
Matthias Melcher
904d25dafe FLUID: Improves adding widgets to Fl_Flex. 2023-11-01 20:17:08 +01:00
Matthias Melcher
aaaf0a0537 FLUID: Adds options to draw ghosted outlines. 2023-11-01 17:22:40 +01:00
Matthias Melcher
5f836377a0 FLUID: Adds options to draw ghosted outlines. 2023-11-01 17:22:40 +01:00
Matthias Melcher
8bd1bd7162 FLUID: Improves interactive handling of Grid and Flex 2023-10-31 22:00:38 +01:00
Matthias Melcher
4b02c36149 FLUID: Disables MergeBack.
I decided to disable MergeBack for now. During testing,
some issues could not be resolved, and focus should
be on V1.4.
2023-10-31 19:33:50 +01:00
Matthias Melcher
a2d7fde645 FLUID: Stroe uid's in hex 2023-10-31 11:21:13 +01:00
Matthias Melcher
2dc7ae8edb FLUID: Changes uid to hexadecimal in project file
for constancy with the code file
2023-10-28 22:52:01 +02:00
Matthias Melcher
961d9ee719 FLUID: Store path to last written code file.
After some discussions it became clear that the code file may be written
into an unpredictable location by the build system. Fluid now remembers
that location in a user setting file and seems to do the expected thing after
a brief test.
2023-10-27 22:51:35 +02:00
Matthias Melcher
900337f1e3
FLUID: Fixes compile error. 2023-10-27 19:06:25 +02:00
Matthias Melcher
4b5985eb49 FLUID: Fixes issues when pasting widget into Fl_Flex #809
* new virtual function layout_widget() to inform parents after
all children were added
2023-10-27 18:31:20 +02:00
Matthias Melcher
aab6afd32c FLUID: Documentation and typos. 2023-10-27 16:09:06 +02:00
Matthias Melcher
0b408792c0 FLUID: Refactors MergeBack
* moved functionality into its own files
* refactored all methods to be less than a page
* documented all calls
* tested all situations I could think of
2023-10-26 23:31:29 +02:00
Matthias Melcher
8663b86749 FLUID: Fixes compile time error and docs. 2023-10-26 14:41:33 +02:00
Matthias Melcher
19d1e3f195 FLUID: Adds more capabilities to MergeBack.
* better diagnostic dialog texts in interactive mode
* won't merge back again after a first mergeback is applied
* code needs refactoring and must be in its ow source file
2023-10-26 14:15:58 +02:00
Matthias Melcher
0d5ae9ceac FLUID: Fixes warnings. 2023-10-26 03:29:03 +02:00
Matthias Melcher
f33dfc1c6a FLUID: Adds helpful message for MergeBack. 2023-10-26 03:19:05 +02:00
Matthias Melcher
6d5021c00e FLUID: Adds initial MergeBack feature. 2023-10-26 00:39:10 +02:00
Matthias Melcher
b270e1409c FLUID: Adds hierarchical node search in header files. 2023-10-25 14:44:02 +02:00
Matthias Melcher
8c03cb7884 FLUID: Updates file format documentation 2023-10-25 14:28:22 +02:00
Matthias Melcher
38b529c01b FLUID: Adds text search to source, header, and project view 2023-10-24 16:14:30 +02:00
Matthias Melcher
238b3a1be4 FLUID: Adds Reveal button to SourceView
Position your text cursor in the source header, or
.fl project file text preview and click reveal, and the
corresponding node will be selected. Double will
open the corresponding editor.
2023-10-24 15:36:11 +02:00
Matthias Melcher
e8d218109e FLUID: Adds much more detailed CodeView
in preparation for "find" and "reveal"
2023-10-24 14:29:01 +02:00
Matthias Melcher
434e6a09ed FLUID: Merging changes from generated cxx file back to fl file 2023-10-23 18:32:26 +02:00
Matthias Melcher
b9758f564f FLUID: Fixes two minor bugs
* Fl_Grid mixed up gap_ro_ vs. gap_col_ once
* Code formatting warning
2023-10-23 18:28:52 +02:00
ManoloFLTK
975ebaaf8b Remove "double to int conversion" warnings 2023-10-23 16:42:08 +02:00
Matthias Melcher
667d5b9b72 FLUID: Fixes completion dialog, early shell read.
* when saving the source code from a shell command, the
  completion dialog is  suppressed because the shell window
  pops up anyway, confirming our action
* when reading no project at startup, the user shell commands
  were read, but the shell main menu was not updated
2023-10-23 11:46:56 +02:00
Matthias Melcher
17baeceb7a FLUID: Positioning grid cells intuitively.
User can now drag widgets from the toolbox into the grid
or use the context menu to add them into the corresponding
cell. If no position is indicated, now children are added at the
first free cell.
2023-10-23 01:36:55 +02:00
Matthias Melcher
ab6ef9d52f FLUID: Stops overriding Ctrl-0 shortcut. #802
Ctrl-0 is used by FLTK globally to zoom all windows back to 100%,
so FLUID should not override that. Loading the previous file is now
Ctrl-1 instead of Ctrl-0.
2023-10-23 00:52:30 +02:00
Matthias Melcher
d573bfe799 FLUID: Adds grid child positioning via +/- keys 2023-10-23 00:44:26 +02:00
Matthias Melcher
bf62959f1f FLUID: New layout of Grid tab. 2023-10-22 20:25:50 +02:00
Albrecht Schlosser
1209e9dcd7 Make Fl_String and Fl_Int_Vector private (#789)
- add CMake option 'OPTION_USE_STD'
- add configure option '--enable-use_std'
- move FL/Fl_String.H to src/Fl_String.H
- move FL/Fl_Int_Vector.H to src/Fl_Int_Vector.H
- remove Fl_String from demo program examples/callbacks.cxx
- remove Fl_Int_Vector from public header FL/Fl_Table.H
- some methods of Fl_Table are no longer inline
- add CMake option OPTION_USE_STD to allow std::string in some
  selected functions and methods

Experimental, may be removed before release:

- use either Fl_Int_Vector or std::vector in Fl_Table depending
  on CMake OPTION_USE_STD or configure --enable-use_std

Move all fl_filename* functions that use Fl_String to fluid

Main changes in fluid:
 - add fluid_filename.h and .cxx
 - include "fluid_filename.h" rather than <FL/filename.H>

Update fl_input(), fl_password() and test/ask

- add maxchar parameter to fl_input() and fl_password()
- fl_input_str() and fl_password_str() are optional and return
  std::string if enabled (FLTK_USE_STD)
2023-10-22 19:35:17 +02:00
Matthias Melcher
05ac0247cb FLUID: Moves grid settings into dynamic tab 2023-10-22 12:33:49 +02:00
Matthias Melcher
17f61f923b FLUID: Adds remaining Fl_Grid attributes 2023-10-22 02:33:55 +02:00
Matthias Melcher
5832f108fe FLUID: fixes conflict 2023-10-22 01:53:34 +02:00
Matthias Melcher
b4fd7037ac FLUID: more Fl_Grid settings 2023-10-22 01:51:53 +02:00
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
Albrecht Schlosser
e18762bff8 Fix fluid build with configure/make + dependencies 2023-10-21 13:26:43 +02:00
Matthias Melcher
f8d7ee6f5c FLUID: adding a subset of Fl_Grid child parameters. 2023-10-21 13:20:11 +02:00