Commit Graph

237 Commits

Author SHA1 Message Date
Matthias Melcher
371ff17639 FLUID: fixing settings dialog update 2023-09-27 13:14:09 +02:00
Matthias Melcher
e68f5e6c42 FLUID: minor fixes 2023-09-27 12:57:12 +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
Matthias Melcher
2c528b816c FLUID: Typos in docs 2023-09-26 12:39:52 +02:00
Matthias Melcher
0a2f05a2fe FLUID: Fixes regression #777
Wrote wrong path in #inlude statement under certain
conditions. Also removed 'snap' tag if not needed.
2023-09-26 00:29:26 +02:00
Matthias Melcher
a683752e4b Fixes warning on unused variable. 2023-09-05 15:31:09 +02:00
Matthias Melcher
2e38007d1f FLUID: increases readability
- removed some direct filename manipulation
- central place to generate file names and paths
- fixes command line filename override if no actual
  batch command is given
2023-09-05 15:11:09 +02:00
Matthias Melcher
814d642e5d FLUID: separate SourceView panel into its own file
hereby removing almost 200 lines of unrelated code form fluid.cxx
and making the location of the panel code more obvious.
Needs a make depend on Linux.
2023-08-29 02:20:50 +02:00
Matthias Melcher
33353550d9 FLUID: code cleanup, redundancies, typos 2023-08-29 01:38:39 +02:00
Matthias Melcher
496289fd35 FLUID: simplifies filename handling 2023-08-29 01:38:39 +02:00
Matthias Melcher
5da15de174 FLUID: simplified worker handling 2023-08-29 01:38:39 +02:00
Matthias Melcher
94a75b012f Fixes a bunch of typos in comments. 2023-08-26 15:17:28 +02:00
Matthias Melcher
828d8a0e2b FLUID: shell code cleanup 2023-07-22 16:01:49 +02:00
Matthias Melcher
e8eccde8db FLUID: RTTI improvements, 'is_a90' now const, apply RTTI 2023-07-19 20:42:08 +02:00
Matthias Melcher
5d69828ed0 FLUID: fixes all overlapping widgets in all .fl files
Also fixes an issue with multiple use of the same variable
for different types of i18n.
2023-07-14 23:42:17 +02:00
Matthias Melcher
2e9c1a5097 FLUID adding hatch pattern to overlapping widgets 2023-07-11 23:13:55 +02:00
Matthias Melcher
71088b7fe2 FLUID mark project change when changing window visibility 2023-07-11 14:27:58 +02:00
Matthias Melcher
982d104adb FLUID: Initialisation orner in menus: #722 2023-04-26 20:24:33 +02:00
Albrecht Schlosser
652b69842b Fix tiny memory leak in fluid (setting scheme)
Also initialize 'scheme_name' to make static code analyzer happy.
2023-04-14 19:52:33 +02:00
Matthias Melcher
f37347dd6e
Fix and consolidate settings dialogs (#346, #703) 2023-03-19 20:04:01 +01:00
Matthias Melcher
5c482f9d9b
Fix and update alignment #346 (#701)
* interactive layout alignment rewritten
* interface for new alignment rules
* new alignment dialog box
* user defined layout rules added
* layout rules can be stored in projects, settings, and external files
* Valgrind verification
2023-03-18 17:33:27 +01:00
Matthias Melcher
9f87af8ad9
Fl_String refactoring and extension (#683)
- add true unittest and Fl_String testing
- interface and printout are similar to gtest
  without requiring external linkage.
  just run `unittest --core`.
- new Fl_String API
- extended API to fl_input_str and fl_password_str
- co-authored-by: Albrecht Schlosser <albrechts.fltk@online.de>
2023-02-23 15:42:05 +01:00
Matthias Melcher
179771acd2
Fixing FLUID file corruption from issue #653 (#662)
Removing all globals in file writer (#653 )
Fix some static analyser complaints
Valgrind: handle width==0 in GfxDrivers on Wayland and X11
Don't use `Fl_Input_::static_value`, it accesses previous
buffer that may be deleted
Project file write encapsulated, removing globals
Encapsulating project file reader, removing states in glbals
Project i/o increased source code readability
2023-01-26 15:23:43 +01:00
Matthias Melcher
1fc269b0d4
Move global FLTK options into new app fltk-admin (#560) 2023-01-21 17:14:41 +01:00
Albrecht Schlosser
bafd3fd3d7 Add Fl_Scheme_Choice widget and use it in test programs
This widget offers the selection of all known FLTK schemes as a simple
widget based on Fl_Choice.

Some test and demo programs use Fl_Scheme_Choice to enable the developer
or user to switch schemes quickly for comparison.

Todo:
 - add features to add new schemes during runtime (partially done)
 - update status when the scheme is changed by Fl::scheme("...")
2023-01-12 19:21:09 +01:00
Matthias Melcher
a63ad76603
FLUID refactor and macOS warnings removed (#623)
P renamed to g_project
class Project renamed to class Fluid_Project
fixes macOS type cast warnings
2023-01-01 20:05:42 +01:00
Matthias Melcher
d98c663893
Fix compilation on old gcc (#606)
* Fixing char* use in FLUID
* Fixing const cast
2022-12-22 00:18:01 +01:00
Matthias Melcher
fa41211cca
FLUID event handling and UI changes (#575)
* Full support o when()
* Making undo suspend nesting
* Finally correct undo handling for Label: input
* Documentation.
* Adding more undo checkpoints for the Widget Panel
* Quick selection of default user_data types
* Pulldown menu for system colors
* Make sure that partially typed text fields are propagated before saving
2022-12-10 13:11:49 +01:00
Matthias Melcher
8f9728d511 Fix -o and -h command line arg handling 2022-11-29 00:05:00 +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
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
Matthias Melcher
817a97bb65 Fluid: Fix variable naming and a memory leak 2022-11-23 15:18:01 +01:00
Matthias Melcher
be6e5fad72 Fluid: Fix commandline parameter error message 2022-11-23 10:59:43 +01:00
Matthias Melcher
3ecae0459c
Improve Fluid argument handling and relative paths. (#545)
Fix typos, fix merge conflict.
2022-11-15 17:48:06 +01:00
Matthias Melcher
56cba05672
Fluid Fl_Widget::image() path fixes. (#536)
* Adding strings and design file to source view panel

* Fluid: Fixed source dir recursion, fixed relative image reading path.

* Renaming source_dir to designfile_dir in some functions.
2022-11-09 23:12:55 +01:00
Matthias Melcher
09eff7243a
Fixing and upgrading Fl_Preferences (#374)
* Added filename function to Fl_Preferences

Static function to get filename before opening.
Member to get filename after opening.
Bug fixes for memory mapped preferences.

* ERROR is a macro on Windows, don't use it

* Added Fl_Preferences::dirty().

User can now check if the database will be written
when flushed or destroyed.
Flush returns a crude error code.

* Fl_Preferences::get binary data returns # of bytes read.

* Verified group deletion code

* Fl_Preferences ignores locale.

This will make .prefs files interchangeable
between different computers.

* Updating the Preferences Mode to ignore locale.

* Fixes in docs.
2022-01-19 16:08:29 +01:00
Albrecht Schlosser
92e9181a0a Rename FL/fl_string.h to FL/fl_string_functions.h
This is part 1 of the final fix for a previous name clash on case
insensitive file systems (fl_string.h vs. Fl_String.H).
2022-01-16 19:47:16 +01:00
Matthias Melcher
29531873ea STR 3289: Fluid i18n, gettext, catguts improvements
Removed some unneeded code.
2021-12-19 02:03:05 +01:00
Matthias Melcher
3626e82057 GitHub #326: browser scrolling should be much improved
Code now convinces browser to rebuild when the tree changes by UI.
When widgets are move, the current widget should always be visible.
It's the responsibility of the UI callback to update the browser.
2021-12-17 18:38:26 +01:00
Matthias Melcher
160832ce04 STR 3442: copy/paste now inserts widget as expected.
Fluid would add pasted widgets as the last child of the
current group, even if they were cut at the beginning
of the group. This patch adds a 'startegy' to adding
widgets to allow merging closer to the 'current' widget.

Also added d'n'd for the widget bin and some other
UI improvements.

STR 3442: some preparation, variable renaming

STR 3442: unifying functions to add widgets.

Adding widgets interactively is merged into one function,
making undo/redo work as expected and removing
unexpected differences between adding by menu or bin.

STR 3442: adding drag'n'drop for windows from bin.

Just drag the window symbol out of the tree and drop it anywhere
on the desktop.

Visual representation of dragged Window.

STR 3442: insert individual nodes after 'current'

STR 3442: adding new widget at expected positions.

The widget bin can finally do drag'n'drop.
Widgets appear in the tree close to the last selection.
Duplicating now ads right below.
Cut and paste inserts after last selection.

Fluid: replaced #define with strict enum type.
2021-12-13 18:17:07 +01:00
Matthias Melcher
5655f79d63 STR 3426: indicating in the title bar if the design is newer than the code file.
In this first version, we assume that the code file is newer whenever it is written,
until the current design is modified in any way. So instead of a status bar at the bottom
of the main window, the title bar will now show the status of the design and the code at
the same place.
2021-12-10 01:22:24 +01:00
Matthias Melcher
4f2febd801 Fluid STR 3460.D: Shell commands are now saved in the .fl file (user option)
The shell properties toolbox is completely redesigned:

This dialog box offers a field for a command line and three check buttons
 to generate and save various files before the command is run.

 If the fourth checkbox, "use settings in .fl design files" is checked,
 all shell settings will be store in the current .fl file, and they will
 be read and restored when the .fl is loaded again.

 Fluid will save different shell settings for different operating system as
 it is common that a different OS requires a different shell command.

 Fluid comes with default shell settings. Pressing the "save as default" button
 will store the current setting in the Fluid app settings and are used for new
 designs, or if the "use settings..." box is not checked.

 Fluid app settings are saved per user and per machine.
2021-12-09 02:48:40 +01:00
Matthias Melcher
1be158a840 STR 3460.b: fixed scrollbar update in widget_browser
Also fixed a bug where a Manu item was accessed by index, which
already was out of sync.
2021-12-08 20:52:51 +01:00
Matthias Melcher
16dae3ea06 Fluid: restructuring and commenting.
tl;dr : making Fluid maintainable, no changes in code execution and logic.

This is a pretty extensive restructuring of the Fluid source tree.
It was neccessary because source and header files were getting
much too big to handle. Many source files had no header, and many
headers declared functions that were in diffrent source files.

Reorganized much of the include statements.
Added comments to some of the files.
Added Doxygen configuration file for standalone Fluid docs.

Tested everything by rebuilding Fluid .fl designs with the resorted
version of Fluid.
2021-12-08 15:52:15 +01:00
Matthias Melcher
a646c3f012 Fluid: fixing missing return. 2021-12-05 23:46:11 +01:00
Matthias Melcher
ff869e7419 Fluid STR 3460: Shell Cmd would saye code to wrong path. 2021-12-05 23:30:41 +01:00
Matthias Melcher
204ac3dfdf Fluid: adapting menu to pixmap changes. 2021-12-05 00:18:41 +01:00
Matthias Melcher
21a75a18f8 Fluid support for high res graphics
Changing all pixmaps to Hi DPI
Fixed wrong tooltip
Fixed misleading "invisible" indicator
2021-12-04 23:28:07 +01:00
Albrecht Schlosser
6d1f5608ba Support all image depths (1-4) in fl_write_png() 2021-11-11 20:58:09 +01:00
Albrecht Schlosser
500e470d39 Refactor fluid: make fl_write_png() public
The new function fl_write_png() was moved to its own file and is now
publicly available ("exported") so other programs can use it.

This function was used in fluid to write a window screenshot (.png)
together with a template (.fl) to preferences storage.
2021-11-09 20:36:23 +01:00