Commit Graph

9589 Commits

Author SHA1 Message Date
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
James Palmer
a802aaeb17 Fluid: "Widget Class" subclasses Group but incorrectly shows Window subtypes. 2021-12-13 12:06:07 +01:00
ManoloFLTK
3565aa1e60 Windows platform: account for GUI scaling when using input method. 2021-12-13 10:40:05 +01:00
YX
95d862fd5a Fix IME problem (issue #270) 2021-12-12 17:01:30 +01:00
ManoloFLTK
fae9f03cc9 X11 platform: account for GUI scaling in location of input method aux window. 2021-12-12 16:29:48 +01:00
ManoloFLTK
638ad499d0 Documentation: discuss HighDPI support under Windows and app manifests. 2021-12-12 15:48:08 +01:00
ManoloFLTK
12d699a650 Win32 platform: add support of "PROCESS_PER_MONITOR_DPI_AWARE" set via manifest. 2021-12-11 16:39:11 +01:00
Albrecht Schlosser
20f7db27ba Fluid: use fl_strdup() to fix MSVC compiler warning 2021-12-11 14:49:42 +01:00
Matthias Melcher
8e864bae21 Fluid PR 313: update subtype menu to show "Normal" when deactivated.
Based on jdpalmer's pull request:
If the subtype menu is disabled because there are no subtypes, the deactivated menu will still display the subtype of the last widget that had a subtype value. Clearing the menu when there are no subtypes fixes this minor inconsistency.
2021-12-11 13:19:15 +01:00
ManoloFLTK
0a8b1845fe Win32 platform: allow use of manifest to set the app's DpiAwareness level.
This fixes issue #309: FLTK 1.4 does not properly size window when using display scaling on Windows 10.

FLTK now tests whether the app's DpiAwareness has been previously set, presumably
via a manifest, before attempting to set it to FLTK's preferred level DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2
2021-12-11 11:40:02 +01:00
Matthias Melcher
1c962bf5e2 STR 3210: indentation is now controlled in one single position for all source and header files. 2021-12-11 03:40:07 +01:00
Albrecht Schlosser
235f9ed709 Fluid: clean up Doxyfile, fix two minor doxygen issues
Note: I "downgraded" this Doxyfile from 1.9.2 to 1.9.1 and edited all
offending tags in the file for compatibility with 1.9.1 and 1.9.2.

Older versions may issue warnings.
2021-12-10 17:52:39 +01:00
Albrecht Schlosser
a8cc340321 Stabilize resizing of common dialogs like fl_choice()
Thanks to Paul D. Hahn for finding these issues on his very old
"CentOS 6 linux with g++ 5.1" system.

For details see the very long thread "fl_choice() dialog apprearance
discrepancy problem in 1.4" (typo intentionally ignored):
https://groups.google.com/g/fltkgeneral/c/UQk3RRf-l4A/m/0GtPNv1CCQAJ
2021-12-10 17:09:28 +01:00
Matthias Melcher
6d7faa93e1 Fluid: added keyboard shortcuts documentation. 2021-12-10 15:16:42 +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
a4b6175dbe STR 3210: be smarter about appending ';' in callbacks 2021-12-09 22:38:04 +01:00
Matthias Melcher
c175d1276d STR 3210: fixing indentation of Fl_Menu_Item cnd Widget allbacks.
also added and fixed a few comments

STR 3210: fixed indenting of widget callbacks.

Also fixed what is considered a 'name' (could still be improved).
Also better formatting inlined functions in the header.
2021-12-09 21:51:37 +01:00
Matthias Melcher
0c1f78c1f2 STR 3460.D: fixed .fl file reading code 2021-12-09 18:55:51 +01:00
Matthias Melcher
83f6bb50b2 Fluid: sample documentation, please check http://messagepad.org/fluid/code.html 2021-12-09 18:25:51 +01:00
Matthias Melcher
ace6a64161 Fluid STR 3460.D: making dialog more interactive. 2021-12-09 12:42:56 +01:00
ManoloFLTK
08e59770aa Remove compiler warnings about unused parameters (issue #307) - cont'd 2021-12-09 11:40:55 +01:00
ManoloFLTK
5a7a70b895 Remove compiler warnings about unused parameters (issue #307) 2021-12-09 08:09:51 +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
Greg Ercolano
c1edba3137 Solves issue #308. 2021-12-08 10:26:10 -08:00
Albrecht Schlosser
b9c0933de2 Update dependencies (no code changes)
Done after the first large commit of fluid changes.
2021-12-08 19:23:01 +01:00
Matthias Melcher
17c8f73a88 STR 3460.C: Code Properties remembers the editor's scroll bar position. 2021-12-08 18:55:44 +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
engelsman
2d18c6f650
Documentation on widget coordinates and layout, plus new test programs (#304)
Add coordinates and layout section to user manual

add section to user manual to clarify the use of window-relative
coordinates in both Fl_Group and Fl_Window containers, and include
brief descriptions of current layout manager widgets in one place.

add test/coordinates.cxx, test/wizard.cxx and related screenshots
under documentation/src.

update CMakeLists.txt, Makefile and .gitignore for new files.

Co-authored-by: Albrecht Schlosser <albrechts.fltk@online.de>
2021-12-08 15:00:33 +01:00
Albrecht Schlosser
eb7fb00801 Improve Fl_Scroll docs regarding its bounding box
Make clear that outside labels of widgets are not considered when
calculating the bounding box of the children (scroll area) and
include a hint to add an invisible box if necessary.
2021-12-08 14:22:40 +01:00
ManoloFLTK
4bc25f7f9d Fix for issue #278 - continued : add CMake OPTION_USE_KDIALOG
Use of the kdialog command by class Fl_Naive_File_Chooser can now be turned off
at build-time through CMake OPTION_USE_KDIALOG.

If building via configure + make, set #define USE_KDIALOG to 0 in config.h before make.
2021-12-08 09:41:06 +01:00
ManoloFLTK
630517049f Fix for issue #278 - continued
Because kdialog can't select multiple directories, run the GTK chooser
when BROWSE_MULTI_DIRECTORY is used.
2021-12-07 12:57:49 +01:00
ManoloFLTK
663b93a807 Fix for issue #278: Can we use the qt/kde file picker instead of gtk?
Under the X11 platform, class Fl_Native_File_Chooser will behave as follows :
- if the KDE desktop is used and if command "kdialog" is available in the path,
the Qt/KDE file chooser is used;
- otherwise, if the GTK library is available at run-time,
the GTK file chooser is used;
- otherwise, the FLTK file chooser is used.

In addition, when Fl::OPTION_FNFC_USES_GTK is off, the FLTK file chooser
is always used.
2021-12-07 11:24:35 +01:00
ManoloFLTK
939d536b66 Fix for fltk.coredev "reentrant calls with Fl_Window::resize" - cont'd 2021-12-07 10:54:41 +01:00
Albrecht Schlosser
16c9641797 Improve documentation index and chapter "Migrating Code ..."
- remove redundant "Revision 11" from documentation index page.
- update index (missing refs and one wrong ref)
- update page break
- document header requirements and potential FLTK 1.3 code issues
2021-12-07 00:42:05 +01:00
Albrecht Schlosser
8334abe544 Fix whitespace errors (no code changes)
(1) convert tabs to spaces
(2) remove trailing whitespace
2021-12-06 19:56:40 +01:00
Albrecht Schlosser
39b5ae9e6e Fix Fl_Window::size_range() documentation (STR 3352)
"Tiny window problem if child group larger than window"

See Greg's comment 4: "something is wrong here: either the logic or
the docs are incorrect, not sure which."

It turned out that both were incorrect.

Since we fixed the code this commit completes the STR by fixing the
docs as well so they match the behavior.
2021-12-06 19:49:16 +01:00
ManoloFLTK
8bf62c67cf macOS platform: compute the screen number where a top window is mapped. 2021-12-06 10:18:29 +01:00
Albrecht Schlosser
9154291940 Fix filename in doxygen comment, update dependencies 2021-12-06 00:43:24 +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
45d1d95b57 Fluid: Adding shortcuts for Checkbox and Radio Menuitems. 2021-12-05 21:51:18 +01:00
Matthias Melcher
2e08864f9e Fluid: Adding shortcuts for Checkbox and Radio Menuitems. 2021-12-05 21:50:46 +01:00
Greg Ercolano
74dd5164d3 Fixes STR #3352: "tiny window problem if child group larger than window" 2021-12-05 12:26:25 -08:00
Albrecht Schlosser
cf58f7ae2b Fix MSVC compiler warnings 2021-12-05 21:00:15 +01:00
Matthias Melcher
7d26ee6ac2 Fluid: fixed typos in pixmap's XPM format. 2021-12-05 13:02:03 +01:00
Matthias Melcher
30371740ac STR #2842: new widgets will be created where the user clicked the RMB
If a user adds a new widget using the right mouse button in any of the
design's windows, the new widget will be located with its top left corner
at the selected position.
2021-12-05 00:40:08 +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
a0724ab7c4 Add fl_message_icon_label() function (STR #2762)
This message icon label (usually one character) will be used in the
next call of one of the common dialogs.

test/ask.cxx: use fl_message_icon_label()
2021-12-04 20:36:11 +01:00