summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES.txt~293
-rw-r--r--Fl_File_Chooser.cxx0
-rw-r--r--fluid/alignment_panel.cxx44
-rw-r--r--fluid/alignment_panel.fl45
-rw-r--r--fluid/test.fll11
-rw-r--r--fluid/widget_panel.txt182
-rw-r--r--image.dd0
7 files changed, 540 insertions, 35 deletions
diff --git a/CHANGES.txt~ b/CHANGES.txt~
new file mode 100644
index 000000000..fa67bf7d3
--- /dev/null
+++ b/CHANGES.txt~
@@ -0,0 +1,293 @@
+Changes in FLTK 1.4.0 Released: ??? ?? 2022
+
+ General Information about this Release
+
+ - FLTK 1.4.0 is based on FLTK 1.3.4 (released Nov 15 2016),
+ see CHANGES_1.3.txt for more information.
+
+ - CMake is the primary supported build system in FLTK 1.4.0 and later.
+ CMake can be used to generate Makefiles, IDE project files, and
+ several other build systems by using different "generators" provided
+ by CMake (for instance Ninja, CodeBlocks, Eclipse, KDevelop3, Xcode, etc.).
+ See README.CMake.txt for more information.
+
+ - autoconf/configure is still supported by the FLTK team for backwards
+ compatibility with older systems that lack CMake support.
+
+ - FLTK 1.4 introduces a new platform, Wayland, available for recent Linux
+ distributions and FreeBSD. More information in README.Wayland.txt
+
+ New Features and Extensions
+
+ - X11 and Wayland platforms: Added support of HiDPI displays. FLTK apps
+ detect the current display scaling factor and use it to scale all windows.
+ - MSWindows platform: FLTK applications detect the display scaling factor and
+ automatically scale their GUI accordingly. This effectively renders WIN32
+ FLTK apps "per-monitor DPI-aware" whereas they were "DPI-unaware" before.
+ - Dynamical GUI rescaling: it is possible on all platforms to rescale all
+ FLTK windows mapped to a screen by typing ctrl-'+' (enlarge), ctrl-'-'
+ (shrink) or ctrl-'0' (back to starting scaling factor value). Under macOS,
+ the corresponding keystrokes are cmd-'+', cmd-'-', cmd-'0'. The resulting
+ GUI scaling factor (e.g., 170 %) transiently appears in a yellow popup window.
+ Use new Fl::option() item OPTION_SHOW_SCALING to turn on/off these popups.
+ Windows moved between screens adjust to the scaling factor of their screen.
+ This supports desktops mixing screens with distinct resolutions.
+ In addition, use environment variable FLTK_SCALING_FACTOR to further adjust
+ the starting scaling factor of all FLTK apps.
+ - New Fl_Flex class to layout one row or one column of widgets.
+ - New Fl::keyboard_screen_scaling(0) call stops recognition of ctrl/+/-/0/
+ keystrokes as scaling all windows of a screen.
+ - New member function Fl_Image::scale(int width, int height) to set
+ the drawing size of an image independently from its data size. The
+ same function was previously available only for class Fl_Shared_Image
+ and with FL_ABI_VERSION >= 10304. New member functions Fl_Image::data_w()
+ and Fl_Image::data_h() give the width and height of the image data.
+ - New member functions Fl_Widget::bind_image(Fl_Image *img) and
+ Fl_Widget::bind_deimage(Fl_Image *img) to bind an image to a widget, that is,
+ to set an image to be used as part of the widget label and also
+ to be deleted when the widget is deleted.
+ - New Fl_SVG_Image class: gives support of scalable vector graphics images
+ to FLTK using the nanosvg software.
+ - New Fl_ICO_Image class to read Windows .ico icon files.
+ - New classes Fl_SVG_File_Surface and Fl_EPS_File_Surface to save any FLTK
+ graphics to SVG or EPS files, respectively.
+ - Fl_Button now supports a compact flag that visually groups closely set
+ buttons into keypads.
+ - Fl_Tabs now supports close buttons for individual tabs.
+ - Fl_Tabs now supports four different modes for handling an
+ overflowing number of tabs.
+ - New constructor for creating Fl_Preferences files with flags for the
+ correct locale and for overwriting existing files.
+ - Windows platform: added support for using a manifest to set the
+ application's level of DPI awareness (issue #309).
+ - class Fl_Native_File_Chooser on the X11/Wayland platform relies on external
+ commands zenity (PR #599), or kdialog (issue #278), or on the GTK library
+ to construct file dialogs. New "Preview" switch added to the GTK dialog.
+ The libgtk-based dialog uses in priority the file chooser dialog
+ of GTK version 3 when available on the running platform, and falls back
+ to version 2 when V3 is not available. In contrast, GTK version 2 was used
+ in priority by FLTK 1.3.x. New FL::option() item OPTION_FNFC_USES_ZENITY
+ to turn on/off use of zenity-based file dialogs.
+ - The undocumented feature FLTK_CONSOLIDATE_MOTION is now OFF on X11 and
+ removed on macOS. In FLTK 1.3 this feature has been ON on X11. The macro can now
+ be set on the compiler commandline and can be used to reduce the number
+ of mouse move events sent to the application but it may be unreliable.
+ Recommendation: let it switched OFF unless you really need it.
+ - New function fl_capture_window() to capture the content of a rectangular
+ zone of a mapped window and return it as an Fl_RGB_Image. It improves
+ with HighDPI displays what can be done with fl_read_image().
+ - The Windows platform now draws oblique and curved lines in antialiased
+ form. The new function void fl_antialias(int state); allows to turn off
+ or on such antialiased drawing. The new function int fl_antialias(); returns
+ whether line and curve drawing is currently antialiased.
+ - The border radius of "rounded" box types can be limited and
+ the shadow width of "shadow" box types can be configured (issue #130).
+ See Fl::box_border_radius_max() and Fl::box_shadow_width().
+ - New fl_putenv() is a cross-platform putenv() wrapper (see docs).
+ - New public variable Fl_Image::register_images_done allows an app. to detect
+ whether function fl_register_images() has been called.
+ - Fix Fl::add_timeout() under Linux (STR 3516).
+ - Fix early timeouts in Fl_Clock seen in some environments (STR 3516).
+ - Fl_Printer::begin_job() uses by default the Gnome print dialog on the X11
+ platform when the GTK library is available at run-time. That can be turned off
+ with Fl::option(OPTION_PRINTER_USES_GTK, false).
+ - New member functions Fl_Paged_Device::begin_job() and begin_page()
+ replace start_job() and start_page(). The start_... names are maintained
+ for API compatibility.
+ - OpenGL draws text using textures on all platforms, when the necessary
+ hardware support is present (a backup mechanism is available in absence
+ of this support). Thus, all text drawable in Fl_Window's can be drawn
+ in Fl_Gl_Window's (STR#3450).
+ - New member functions Fl::program_should_quit(void),
+ and Fl::program_should_quit(int) to support detection by the library
+ of a request to terminate cleanly the program.
+ - MacOS platform: the processing of the application menu's "Quit" item
+ has been changed. With FLTK 1.3.x, the application terminated when all
+ windows were closed even before Fl::run() or Fl::wait() could return.
+ With FLTK 1.4, Fl::run() returns so the app follows its normal termination path.
+ - FLTK apps on the MacOS platform contain automatically a Window menu, which,
+ under MacOS ≥ 10.12, allows to group/ungroup windows in tabbed form. The new
+ Fl_Sys_Menu_Bar::window_menu_style() function allows to specify various
+ styles for the Window menu, even not to create it.
+ - New function: int fl_open_ext(const char* fname, int binary, int oflags, ...)
+ to control the opening of files in binary/text mode in a cross-platform way.
+ - Fix for issue #247 : loading SVG image with BOM.
+ - Fl_Text_Selection got a new method length() and returns 0 in length()
+ and in all offsets (start(), end(), position()) if no text is selected
+ (selected() == false). The behavior in FLTK 1.3 and earlier versions
+ (returning undefined values if !selected()) was confusing.
+ - New method Fl_Group::bounds() replaces Fl_Group::sizes() which is now
+ deprecated. Fl_Group::bounds() uses the new class Fl_Rect that contains
+ widget coordinates and sizes x(), y(), w(), and h() (STR #3385).
+ Documentation for bounds() and its internal structure was added.
+ - New method shadow(int) allows to disable the shadows of the hands
+ of Fl_Clock, Fl_Clock_Output, and derived widgets.
+ - New method Fl_Tabs::tab_align() allows to set alignment of tab labels,
+ particularly to support icons on tab labels (STR #3076).
+ - Added Fl_Surface_Device::push_current(new_surface) and
+ Fl_Surface_Device::pop_current() to set/unset the current surface
+ receiving graphics commands.
+ - New macros for easy function and method callbacks with multiple
+ type safe arguments (see FL_METHOD_CALLBACK_1 etc.) .
+
+ New Configuration Options (ABI Version)
+
+ - X11 platform: Added support for drawing text with the pango library
+ which allows to draw most scripts supported by Unicode, including CJK
+ and right-to-left scripts. FLTK now outputs PostScript that draws
+ those scripts in vectorial form. The corresponding CMake option is
+ OPTION_USE_PANGO. The corresponding configure option is --enable-pango.
+ This option is OFF by default.
+ - Configure option --enable-wayland allows to build the FLTK library for
+ the new Wayland platform while remaining compatible with X11. The
+ corresponding CMake option is OPTION_USE_WAYLAND. This option is ON by default.
+ - Configure options --enable-wayland --disable-x11 used together allow to
+ build FLTK for the Wayland backend only (no x11 backend). Under CMake, the
+ equivalent is to set both OPTION_USE_WAYLAND and OPTION_WAYLAND_ONLY.
+ - The new configure option --disable-gdiplus removes the possibility to draw
+ antialiased lines and curves on the Windows platform. The corresponding CMake
+ option is OPTION_USE_GDIPLUS.
+ - The library can be built without support for reading SVG images or writing
+ graphics in SVG format using the --disable-svg configure option
+ or turning off OPTION_USE_SVG in CMake.
+ - The library can be built without support for PostScript, thus reducing
+ its size, using the --disable-print configure option or turning off
+ OPTION_PRINT_SUPPORT in CMake. That makes classes Fl_PostScript_File_Device,
+ Fl_EPS_File_Surface and Fl_Printer (under X11 platform only) ineffective.
+ - FLTK's ABI version can be configured with 'configure' and CMake.
+ See documentation in README.abi-version.txt.
+
+ Bundled libraries
+
+ - Bundled image libraries have been upgraded to newer versions.
+ For details see README.bundled-libs.txt.
+
+ 1.4.0 ABI FEATURES
+
+ - None. FLTK 1.4.0 has a new ABI, breaking 1.3.x ABI.
+
+
+ Other Improvements
+
+ - (add new items here)
+ - Reported support of macOS 14.0 "Sonoma".
+ - Added support for macOS 13.0 "Ventura".
+ - Added support for macOS 12.0 "Monterey".
+ - Added support for macOS 11.0 "Big Sur" and for building for
+ the arm64 architecture.
+ - Added support for macOS 10.15 "Catalina"
+ - Added support for macOS 10.14 "Mojave": all drawing to windows is done
+ through "layer-backed views" when the app is linked to SDK 10.14.
+ - Added support for macOS 10.13 "High Sierra".
+ - Fixed X11 Input Method window badly positioned with Fl_Text_Editor
+ widget (issue #270).
+ - Fixed X11 copy-paste and drag-and-drop target selection (issue #182).
+ This fix has been backported to 1.3.6 as well.
+ - Add optional argument to Fl_Printer::begin_job() to receive
+ a string describing the error when an error occurs.
+ - Fix Windows-specific bug when the program tries to enlarge a
+ maximized window, that would freeze the window (git issue #65).
+ - Improve X11 16-bit coordinate clipping for text (STR 2798). This
+ assumes that text is "small" WRT 16-bit coordinate space and clips
+ text if at least one of the x/y coordinates is out of bounds.
+ - Fix Fl::add_timeout() in draw() under Linux (STR 3188)
+ - Improved documentation for '@' symbols in labels (STR #2940).
+ - Fl_Roller can now be controlled via the mouse wheel (STR #3120).
+ - Tooltips hide by themselves after 12 seconds (STR #2584).
+ - Added widget visibility indicator to Fluid (STR #2669).
+ - Improved shell script support in FLUID
+ - Added Fl_Input_::append() method (STR #2953).
+ - Fix for STR#3473 (and its duplicate STR#3507) to restore configure-based
+ builds on recent Linux/Unix distributions where the freetype-config
+ command has been replaced by pkg-config.
+ - MacOS ≥ 10.10: Fl_Window::fullscreen() and fullscreen_off() no longer
+ proceed by Fl_Window::hide() + Fl_Window::show() but essentially
+ resize the window, as done on the X11+EWMH and Windows platforms.
+ - Fl_Cairo_Window constructors are now compatible with Fl_Double_Window
+ constructors - fixed missing constructors (STR #3160).
+ - The include file for platform specific functions and definitions
+ (FL/x.H) has been replaced with FL/platform.H. FL/x.H is deprecated
+ but still available for backwards compatibility (STR #3435).
+ FL/x.H will be removed in a (not yet specified) future FLTK release.
+ We recommend to change your #include statements accordingly.
+ - The Fl_Boxtype and Fl_Labeltype definitions contained enum values
+ (names) with a leading underscore (e.g. _FL_MULTI_LABEL) that had to
+ be used in this form. Now all boxtypes and labeltypes can and should
+ be used without the leading underscore. A note was added to the enum
+ documentations to make clear that the leading underscore must not be
+ used in user code, although the enum documentation still contains
+ leading underscores for technical reasons (internal use).
+ - The blocks demo program got a new keyboard shortcut (ALT+SHIFT+H) to
+ reset the user's high score. It is now slower than before in higher
+ levels, hence you can expect higher scores (due to a bug fix in the
+ timer code). You can use the '+' key to increase the level at all times.
+ - Some methods of Fl_Tabs are now virtual and/or protected for easier
+ subclassing without code duplication (STR #3211 and others).
+ To be continued...
+ - Separated Fl_Input_Choice.H and Fl_Input_Choice.cxx (STR #2750, #2752).
+ - Separated Fl_Spinner.H and Fl_Spinner.cxx (STR #2776).
+ - New method Fl_Spinner::wrap(int) allows to set wrap mode at bounds if
+ value is changed by pressing or holding one of the buttons (STR #3365).
+ - Fl_Spinner now handles Up and Down keys when the input field has
+ keyboard focus (STR #2989).
+ - Renamed test/help.cxx demo program to test/help_dialog.cxx to avoid
+ name conflict with CMake's auto-generated target 'help'.
+ - Many documentation fixes, clarifications, and enhancements.
+
+
+ Bug Fixes
+
+ - (add new items here)
+ - Fixed all Pixmaps to be '*const' (STR #3108).
+ - Fixed Fl_Text_Editor selection range after paste (STR #3248).
+ - Fixed crash for very small Fl_Color_Chooser (STR #3490).
+ - Removed all shadow lint in header files (STR #2714).
+ - Fixed pulldown menu position when at the bottom of the screen (STR #2880).
+ - Fixed missing item handling in Fl_Check_Browser (STR #3480).
+ - Fixed Delete key in Fl_Input deleting entire widgets in Fluid (STR #2841).
+ - Reorganized Fluid Template feature (STR #3336).
+ - Updated Fluid documentation and image (STR #3328).
+ - Duplicating Widget Class in Fluid no longer crashes (STR #3445).
+ - Fl_Check_Browser::add(item) now accepts NULL (STR #3498).
+ - Interface to set maximum width of spinner text field (STR #3386).
+ - Fl_Text_Display no longer wiggles (STR #2531).
+ - Fixed Help_View return value (STR #3430).
+ - Fix 'fluid.app' on case sensitive macOS (was: Fluid.app).
+ - Fix FL_PUSH event handling of Fl_Check_Browser (STR #3004).
+ - Fix a potential crash when a program exits before it opens a window
+ (Windows only, STR #3484).
+ - Fix Fl_PNG_Image error handling. An error was potentially caused
+ by error handling of the image library with setjmp/longjmp.
+ - Fix Fl_Browser background and text color parsing (STR #3376).
+ - Fix Windows CreateDC/DeleteDC mismatch (STR #3373).
+ - Fix Fl_Tabs label drawing for Fl_Window children (STR #3075).
+ - Fix line number alignment in Fl_Text_Display/Editor (STR #3363).
+ - Fix ignored buffer pre-allocation (requestedSize) in Fl_Text_Buffer.
+ See fltk.general "Fl_Text_Buffer constructor bug" on Dec 5, 2016.
+ - Fix build with configure --enable-cairo --enable-cairoext,
+ see this report in fltk.general:
+ https://groups.google.com/forum/#!topic/fltkgeneral/x80qQ6wt0s4
+
+
+ Removed Features
+
+ - Bundled IDE project files (Xcode and Visual Studio) have been
+ removed. Please use CMake to generate your IDE project files.
+ See README.CMake.txt for more information.
+ - Dropped FLTK 1.0 compatibility (macro FLTK_1_0_COMPAT). This "feature"
+ was no longer usable since FLTK 1.3, hence it can be dropped safely.
+
+
+Changes in FLTK 1.3
+
+ See CHANGES_1.3.txt
+
+
+Changes in FLTK 1.1
+
+ See CHANGES_1.1.txt
+
+
+Changes in FLTK 1.0
+
+ See CHANGES_1.0.txt
diff --git a/Fl_File_Chooser.cxx b/Fl_File_Chooser.cxx
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/Fl_File_Chooser.cxx
diff --git a/fluid/alignment_panel.cxx b/fluid/alignment_panel.cxx
index 49348eb24..0afcd63e3 100644
--- a/fluid/alignment_panel.cxx
+++ b/fluid/alignment_panel.cxx
@@ -907,6 +907,9 @@ static void cb_w_settings_shell_remove(Fl_Button* o, void* v) {
}
} else {
if (!selected) return;
+ int ret = fl_choice("Delete the shell command\n\"%s\"?\n\nThis can not be undone.",
+ "Delete", "Cancel", NULL, g_shell_config->list[selected-1]->name.c_str());
+ if (ret==1) return;
g_shell_config->remove(selected-1);
w_settings_shell_list->remove(selected);
if (selected <= w_settings_shell_list->size())
@@ -935,11 +938,11 @@ static void cb_Export(Fl_Menu_*, void* v) {
Fl_Menu_Item menu_w_settings_shell_menu[] = {
{"Import...", 0, (Fl_Callback*)cb_Import, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
{"Export selected...", 0, (Fl_Callback*)cb_Export, 0, 128, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
- {"Import Example Scripts:", 0, 0, 0, 1, (uchar)FL_NORMAL_LABEL, 1, 10, 0},
- {"Compile with fltk-config", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
- {"Build and run", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
- {"Build with Xcode on macOS", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
- {"Build with CMake", 0, 0, 0, 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"Example Scripts:", 0, 0, 0, 17, (uchar)FL_NORMAL_LABEL, 1, 10, 0},
+ {"Compile with fltk-config", 0, 0, 0, 16, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"Build and run", 0, 0, 0, 16, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"Build with Xcode on macOS", 0, 0, 0, 16, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
+ {"Build with CMake", 0, 0, 0, 16, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
{0,0,0,0,0,0,0,0,0}
};
@@ -992,7 +995,7 @@ static void cb_Name(Fl_Input* o, void* v) {
}
}
-static void cb_Label(Fl_Input* o, void* v) {
+static void cb_Menu(Fl_Input* o, void* v) {
int selected = w_settings_shell_list_selected;
if (v == LOAD) {
if (selected) {
@@ -1090,7 +1093,7 @@ Fl_Menu_Item menu_Condition[] = {
{0,0,0,0,0,0,0,0,0}
};
-static void cb_Label1(Fl_Input* o, void* v) {
+static void cb_Label(Fl_Input* o, void* v) {
if (v == LOAD) {
// o->value(g_shell_command.c_str());
} else {
@@ -2621,16 +2624,21 @@ ped using octal notation `\\0123`. If this option is checked, Fluid will write\
{ w_settings_shell_toolbox = new Fl_Group(100, 200, 220, 22);
w_settings_shell_toolbox->callback((Fl_Callback*)cb_w_settings_shell_toolbox);
{ Fl_Button* o = new Fl_Button(100, 200, 24, 22, "+");
+ o->tooltip("insert a new shell command into the list after the selected command");
+ o->labelfont(1);
o->labelsize(11);
o->callback((Fl_Callback*)cb_8);
} // Fl_Button* o
{ w_settings_shell_dup = new Fl_Button(124, 200, 24, 22, "++");
+ w_settings_shell_dup->tooltip("duplicate the selected shell command and insert it into the list");
+ w_settings_shell_dup->labelfont(1);
w_settings_shell_dup->labelsize(11);
w_settings_shell_dup->callback((Fl_Callback*)cb_w_settings_shell_dup);
w_settings_shell_dup->deactivate();
} // Fl_Button* w_settings_shell_dup
- { w_settings_shell_remove = new Fl_Button(148, 200, 24, 22, "-");
- w_settings_shell_remove->labelsize(11);
+ { w_settings_shell_remove = new Fl_Button(148, 200, 24, 22, "DEL");
+ w_settings_shell_remove->tooltip("remove the selected shell command - this can not be undone");
+ w_settings_shell_remove->labelsize(10);
w_settings_shell_remove->callback((Fl_Callback*)cb_w_settings_shell_remove);
w_settings_shell_remove->deactivate();
} // Fl_Button* w_settings_shell_remove
@@ -2640,6 +2648,7 @@ ped using octal notation `\\0123`. If this option is checked, Fluid will write\
w_settings_shell_menu->menu(menu_w_settings_shell_menu);
} // Fl_Menu_Button* w_settings_shell_menu
{ w_settings_shell_play = new Fl_Button(270, 200, 50, 22, "Run");
+ w_settings_shell_play->tooltip("run the selected shell command");
w_settings_shell_play->labelsize(11);
w_settings_shell_play->callback((Fl_Callback*)cb_w_settings_shell_play);
w_settings_shell_play->deactivate();
@@ -2649,6 +2658,7 @@ ped using octal notation `\\0123`. If this option is checked, Fluid will write\
{ w_settings_shell_cmd = new Fl_Group(10, 235, 320, 291);
w_settings_shell_cmd->callback((Fl_Callback*)cb_w_settings_shell_cmd);
{ Fl_Input* o = new Fl_Input(100, 246, 220, 20, "Name:");
+ o->tooltip("file the shell command under this name in the shell command list");
o->labelfont(1);
o->labelsize(11);
o->textfont(4);
@@ -2656,14 +2666,16 @@ ped using octal notation `\\0123`. If this option is checked, Fluid will write\
o->callback((Fl_Callback*)cb_Name);
o->when(FL_WHEN_RELEASE | FL_WHEN_CHANGED | FL_WHEN_ENTER_KEY);
} // Fl_Input* o
- { Fl_Input* o = new Fl_Input(100, 272, 220, 20, "Label:");
+ { Fl_Input* o = new Fl_Input(100, 272, 220, 20, "Menu Label:");
+ o->tooltip("label text for the Shell menu in the main menu bar");
o->labelfont(1);
o->labelsize(11);
o->textfont(4);
o->textsize(11);
- o->callback((Fl_Callback*)cb_Label);
+ o->callback((Fl_Callback*)cb_Menu);
} // Fl_Input* o
{ Fl_Shortcut_Button* o = new Fl_Shortcut_Button(100, 297, 130, 20, "Shortcut");
+ o->tooltip("an optional keyboard shortcut to run this shell command");
o->box(FL_UP_BOX);
o->color(FL_BACKGROUND_COLOR);
o->selection_color(FL_BACKGROUND_COLOR);
@@ -2676,6 +2688,8 @@ ped using octal notation `\\0123`. If this option is checked, Fluid will write\
o->when(FL_WHEN_RELEASE);
} // Fl_Shortcut_Button* o
{ Fl_Choice* o = new Fl_Choice(100, 322, 130, 20, "Store:");
+ o->tooltip("store this shell command as a user setting or save it with the .fl project fi\
+le");
o->down_box(FL_BORDER_BOX);
o->labelfont(1);
o->labelsize(11);
@@ -2684,6 +2698,7 @@ ped using octal notation `\\0123`. If this option is checked, Fluid will write\
o->menu(menu_Store);
} // Fl_Choice* o
{ Fl_Choice* o = new Fl_Choice(100, 348, 130, 20, "Condition:");
+ o->tooltip("add this command to the main menu bar only if this condition is true");
o->down_box(FL_BORDER_BOX);
o->labelfont(1);
o->labelsize(11);
@@ -2696,7 +2711,7 @@ ped using octal notation `\\0123`. If this option is checked, Fluid will write\
o->labelsize(11);
o->textfont(4);
o->textsize(11);
- o->callback((Fl_Callback*)cb_Label1);
+ o->callback((Fl_Callback*)cb_Label);
o->hide();
} // Fl_Input* o
{ Fl_Text_Editor* o = w_settings_shell_command = new Fl_Text_Editor(100, 373, 196, 80, "Shell script:");
@@ -2710,15 +2725,16 @@ ped using octal notation `\\0123`. If this option is checked, Fluid will write\
} // Fl_Text_Editor* w_settings_shell_command
{ Fl_Group* o = new Fl_Group(296, 373, 24, 44);
{ w_settings_shell_text_macros = new Fl_Menu_Button(296, 373, 24, 22);
+ w_settings_shell_text_macros->tooltip("a list of text replacements available for the shell script");
w_settings_shell_text_macros->labelsize(11);
w_settings_shell_text_macros->textsize(11);
w_settings_shell_text_macros->callback((Fl_Callback*)cb_w_settings_shell_text_macros);
w_settings_shell_text_macros->menu(menu_w_settings_shell_text_macros);
} // Fl_Menu_Button* w_settings_shell_text_macros
{ Fl_Button* o = new Fl_Button(296, 395, 24, 22, "@square");
- o->tooltip("open big code editor");
+ o->tooltip("open the big code editor");
o->labelsize(11);
- o->labelcolor(FL_BACKGROUND_COLOR);
+ o->labelcolor(FL_DARK3);
o->callback((Fl_Callback*)cb_square);
} // Fl_Button* o
o->end();
diff --git a/fluid/alignment_panel.fl b/fluid/alignment_panel.fl
index ef9d48455..560a2433d 100644
--- a/fluid/alignment_panel.fl
+++ b/fluid/alignment_panel.fl
@@ -858,7 +858,7 @@ list:}
w_settings_shell_toolbox->do_callback(w_settings_shell_toolbox, LOAD);
g_shell_config->rebuild_shell_menu();
}}
- xywh {100 200 24 22} labelsize 11
+ tooltip {insert a new shell command into the list after the selected command} xywh {100 200 24 22} labelfont 1 labelsize 11
}
Fl_Button w_settings_shell_dup {
label {++}
@@ -886,10 +886,10 @@ if (v==LOAD) {
w_settings_shell_toolbox->do_callback(w_settings_shell_toolbox, LOAD);
g_shell_config->rebuild_shell_menu();
}}
- xywh {124 200 24 22} labelsize 11 deactivate
+ tooltip {duplicate the selected shell command and insert it into the list} xywh {124 200 24 22} labelfont 1 labelsize 11 deactivate
}
Fl_Button w_settings_shell_remove {
- label {-}
+ label DEL
callback {int selected = w_settings_shell_list_selected;
if (v==LOAD) {
if (selected) {
@@ -899,6 +899,9 @@ if (v==LOAD) {
}
} else {
if (!selected) return;
+ int ret = fl_choice("Delete the shell command\\n\\"%s\\"?\\n\\nThis can not be undone.",
+ "Delete", "Cancel", NULL, g_shell_config->list[selected-1]->name.c_str());
+ if (ret==1) return;
g_shell_config->remove(selected-1);
w_settings_shell_list->remove(selected);
if (selected <= w_settings_shell_list->size())
@@ -910,7 +913,7 @@ if (v==LOAD) {
w_settings_shell_toolbox->do_callback(w_settings_shell_toolbox, LOAD);
g_shell_config->rebuild_shell_menu();
}}
- xywh {148 200 24 22} labelsize 11 deactivate
+ tooltip {remove the selected shell command - this can not be undone} xywh {148 200 24 22} labelsize 10 deactivate
}
Fl_Menu_Button w_settings_shell_menu {open
xywh {172 200 24 22} labelsize 11 textsize 11
@@ -919,33 +922,33 @@ if (v==LOAD) {
label {Import...}
callback {if (v != LOAD)
Fd_Shell_Command_List::import_from_file();}
- xywh {90 90 100 20} labelsize 11
+ tooltip {import shell commands from an external file} xywh {90 90 100 20} labelsize 11
}
MenuItem {} {
label {Export selected...}
callback {if (v != LOAD)
Fd_Shell_Command_List::export_selected();}
- xywh {10 10 100 20} labelsize 11 divider
+ tooltip {export selected shell commands to an external file} xywh {10 10 100 20} labelsize 11 divider
}
MenuItem {} {
- label {Import Example Scripts:}
- xywh {20 20 100 20} labelfont 1 labelsize 10 deactivate
+ label {Example Scripts:}
+ xywh {20 20 100 20} labelfont 1 labelsize 10 hide deactivate
}
MenuItem {} {
label {Compile with fltk-config}
- xywh {30 30 100 20} labelsize 11
+ xywh {30 30 100 20} labelsize 11 hide
}
MenuItem {} {
label {Build and run}
- xywh {40 40 100 20} labelsize 11
+ xywh {40 40 100 20} labelsize 11 hide
}
MenuItem {} {
label {Build with Xcode on macOS}
- xywh {50 50 100 20} labelsize 11
+ xywh {50 50 100 20} labelsize 11 hide
}
MenuItem {} {
label {Build with CMake}
- xywh {60 60 100 20} labelsize 11
+ xywh {60 60 100 20} labelsize 11 hide
}
}
Fl_Button w_settings_shell_play {
@@ -962,7 +965,7 @@ if (v==LOAD) {
Fd_Shell_Command *cmd = g_shell_config->list[selected-1];
cmd->run();
}}
- xywh {270 200 50 22} labelsize 11 deactivate
+ tooltip {run the selected shell command} xywh {270 200 50 22} labelsize 11 deactivate
}
}
Fl_Group w_settings_shell_cmd {
@@ -994,10 +997,10 @@ if (v == LOAD) {
if (cmd->storage == FD_STORE_PROJECT) set_modflag(1);
}
}}
- xywh {100 246 220 20} labelfont 1 labelsize 11 when 13 textfont 4 textsize 11
+ tooltip {file the shell command under this name in the shell command list} xywh {100 246 220 20} labelfont 1 labelsize 11 when 13 textfont 4 textsize 11
}
Fl_Input {} {
- label {Label:}
+ label {Menu Label:}
callback {int selected = w_settings_shell_list_selected;
if (v == LOAD) {
if (selected) {
@@ -1013,7 +1016,7 @@ if (v == LOAD) {
if (cmd->storage == FD_STORE_PROJECT) set_modflag(1);
}
}}
- xywh {100 272 220 20} labelfont 1 labelsize 11 textfont 4 textsize 11
+ tooltip {label text for the Shell menu in the main menu bar} xywh {100 272 220 20} labelfont 1 labelsize 11 textfont 4 textsize 11
}
Fl_Button {} {
label Shortcut
@@ -1033,7 +1036,7 @@ if (v == LOAD) {
if (cmd->storage == FD_STORE_PROJECT) set_modflag(1);
}
}}
- xywh {100 297 130 20} labelsize 11 align 16
+ tooltip {an optional keyboard shortcut to run this shell command} xywh {100 297 130 20} labelsize 11 align 16
code0 {\#include <FL/Fl_Shortcut_Button.H>}
class Fl_Shortcut_Button
}
@@ -1061,7 +1064,7 @@ if (v == LOAD) {
if (cmd->storage == FD_STORE_PROJECT) set_modflag(1);
}
}} open
- xywh {100 322 130 20} down_box BORDER_BOX labelfont 1 labelsize 11 textsize 11
+ tooltip {store this shell command as a user setting or save it with the .fl project file} xywh {100 322 130 20} down_box BORDER_BOX labelfont 1 labelsize 11 textsize 11
} {
MenuItem {} {
label {@fd_user User Setting}
@@ -1093,7 +1096,7 @@ if (v == LOAD) {
if (cmd->storage == FD_STORE_PROJECT) set_modflag(1);
}
}} open
- xywh {100 348 130 20} down_box BORDER_BOX labelfont 1 labelsize 11 textsize 11
+ tooltip {add this command to the main menu bar only if this condition is true} xywh {100 348 130 20} down_box BORDER_BOX labelfont 1 labelsize 11 textsize 11
} {
MenuItem {} {
label {all platforms}
@@ -1176,7 +1179,7 @@ if (mi) {
}
w_settings_shell_command->do_callback(w_settings_shell_command, (void*)NULL);
}} open
- xywh {296 373 24 22} labelsize 11 textsize 11
+ tooltip {a list of text replacements available for the shell script} xywh {296 373 24 22} labelsize 11 textsize 11
} {
MenuItem {} {
label {@@BASENAME@@}
@@ -1241,7 +1244,7 @@ w_settings_shell_command->buffer()->text(script_input->buffer()->text());
w_settings_shell_command->do_callback();
BREAK2:
script_panel->hide();}
- tooltip {open big code editor} xywh {296 395 24 22} labelsize 11 labelcolor 49
+ tooltip {open the big code editor} xywh {296 395 24 22} labelsize 11 labelcolor 39
}
}
Fl_Check_Button {} {
diff --git a/fluid/test.fll b/fluid/test.fll
new file mode 100644
index 000000000..91dda2f0e
--- /dev/null
+++ b/fluid/test.fll
@@ -0,0 +1,11 @@
+; FLTK preferences file format 1.0
+; vendor: layout.fluid.fltk.org
+; application: unknown
+
+[.]
+
+
+[./Layouts]
+
+current_suite:My Test
+current_preset:1
diff --git a/fluid/widget_panel.txt b/fluid/widget_panel.txt
new file mode 100644
index 000000000..7b7903d2c
--- /dev/null
+++ b/fluid/widget_panel.txt
@@ -0,0 +1,182 @@
+# generated by Fast Light User Interface Designer (fluid) version 1.0400
+GUI
+Label:
+The label text for the widget.\012Use Ctrl-J for newlines.
+The label style for the widget.
+Image:
+The active image for the widget.
+Browse...
+Click to choose the active image.
+store image uncompressed as RGBA data\012or compressed in the original file format
+bind the image to the widget, so it will be deleted automatically
+Inactive:
+The inactive image for the widget.
+Browse...
+Click to choose the inactive image.
+store image uncompressed as RGBA data\012or compressed in the original file format
+bind the image to the widget, so it will be deleted automatically
+Alignment:
+Clip
+Clip the label to the inside of the widget.
+Wrap
+Wrap the label text.
+@-1<-
+Left-align the label.
+@-1->
+Right-align the label.
+@-18
+Top-align the label.
+@-12
+Bottom-align the label.
+ Image Alignment
+image over text
+text over image
+text next to image
+image next to text
+image is backdrop
+ Inside && Outside
+top left
+top
+top right
+left
+center
+right
+bottom left
+bottom
+bottom right
+ Outside Alignment
+left top
+right top
+left bottom
+right bottom
+@-3square
+Show the label inside the widget.
+Position:
+X:
+The X position of the widget as a number or formula.\012Formulas can be simple math, including the variables\012x, px, sx, cx, and i
+Y:
+The Y position of the widget as a number or formula.\012Formulas can be simple math, including the variables\012y, py, sy, cy, and i
+Width:
+The width of the widget as a number or formula.\012Formulas can be simple math, including the variables\012w, pw, sw, cw, and i
+Height:
+The height of the widget as a number or formula.\012Formulas can be simple math, including the variables\012h, ph, sh, ch, and i
+Children:
+When instantiating a widget class, the children can either be fixed in their original position, automatically be repositioned, or both repsositioned and resized to fit the container.
+Fixed
+Reposition
+Resize
+Flex Parent:
+Size:
+Fixed Width or Height for a horizontal or vertical Fl_Flex Parent.
+fixed
+If checked, the size of the widget stays fixed.
+Values:
+Size:
+The size of the slider.
+Minimum:
+The minimum value of the widget.
+Maximum:
+The maximum value of the widget.
+Step:
+The resolution of the widget value.
+Value:
+The current widget value.
+Margins:
+Left:
+Left margin in group.
+Top:
+Top margin in group.
+Right:
+Right margin in group.
+Bottom:
+Bottom margin in group.
+Gap:
+Gap between children.
+Size Range:
+Minimum Size:
+The size of the slider.
+The minimum value of the widget.
+set
+Maximum Size:
+The maximum value of the widget.
+The resolution of the widget value.
+set
+Shortcut:
+The shortcut key for the widget.\012Use 'Backspace' key to clear.
+X Class:
+:
+The X resource class.
+Border
+Add a border around the window.
+Modal
+Make the window modal.
+Nonmodal
+Make the window non-modal.
+Attributes:
+Visible
+Show the widget.
+Active
+Activate the widget.
+Resizable
+Make the widget resizable.
+Hotspot
+Center the window under this widget.
+Tooltip:
+The tooltip text for the widget.\012Use Ctrl-J for newlines.
+Style
+Label Font:
+The style of the label text.
+The size of the label text.
+Label Color
+The color of the label text.
+Box:
+The \042up\042 box of the widget.
+Color
+The background color of the widget.
+Down Box:
+The \042down\042 box of the widget.
+Select Color
+The selection color of the widget.
+Text Font:
+The value text style.
+The value text size.
+Text Color
+The value text color.
+Compact
+use compact box types for closely set buttons
+C++
+Class:
+The widget subclass.
+The widget subtype.
+Name:
+The name of the widget.
+Change member access attribute.
+private
+public
+protected
+Change widget accessibility.
+local
+global
+Extra Code:
+Extra initialization code for the widget.
+Extra initialization code for the widget.
+Extra initialization code for the widget.
+Extra initialization code for the widget.
+Comment:
+Write a comment that will appear in the source code and in the widget tree overview.
+Callback:
+The callback function or code for the widget. Use the variable name 'o' to access the Widget pointer and 'v' to access the user value.
+User Data:
+The user data to pass into the callback code.
+When
+When to call the callback function.
+Type:
+The type of the user data.
+void*
+long
+FL_WHEN_NEVER
+Live &Resize
+Create a live duplicate of the selected widgets to test resizing and menu behavior.
+Hide &Overlays
+Hide the widget overlay box.
+Close
diff --git a/image.dd b/image.dd
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/image.dd