Commit Graph

106 Commits

Author SHA1 Message Date
Albrecht Schlosser
be928430a6 Fix Fl_Group::insert() and Fl_Scroll::on_move() 2022-11-20 14:11:19 +01:00
Matthias Melcher
72415b534d
Fix rearranging children in Fl_Scroll (#546)
Implement Fl_Scroll::on_move()
Fix indexing in Fl_Group::on_move()
2022-11-17 08:34:06 +01:00
Albrecht Schlosser
0ebb113584 Implement destructor of Fl_Scroll and fix inconsistencies 2022-11-03 18:58:28 +01:00
Matthias Melcher
33f01ecb83
Added Fl_Group::on_insert/on_remove/on_move (#527) 2022-11-01 20:45:31 +01:00
Albrecht Schlosser
a09b0e2357 Remove reversal of children in Fl_Group::clear()
See implementation note in src/Fl_Group.cxx: Fl_Group::clear().
2022-11-01 17:25:07 +01:00
Albrecht Schlosser
a918292547 Fix removal and deletion of the resizable() of Fl_Group
If the resizable() of an Fl_Group is deleted it is automatically
removed from the group.

New: to avoid dangling resizable() pointers the resizable widget
is set to the group itself.
2022-10-28 17:37:18 +02:00
Albrecht Schlosser
b12ed61548 Remove obsolete (dead) code from Fl_Group.cxx
This code had been inactive at least since Mar 29, 2018.
2022-01-08 16:23:01 +01:00
Albrecht Schlosser
9abbff2078 Add virtual int Fl_Group::delete_child(int n) (STR 3218)
This is a convenience method that does range checking (index n),
removes the child given by index n from the group and deletes it.
2021-05-25 17:39:20 +02:00
Robert Schumacher
8d5eed3c82 Convert Fl_Group::array_ to union to better represent its behavior
Amended by Albrecht:

- rename union member variables as discussed
- add comments to new array_ union members

Fixes #96

Signed-off-by: Albrecht Schlosser <albrechts.fltk@online.de>
2020-07-10 18:09:28 +02:00
Albrecht Schlosser
f09e17c3c5 Remove $Id$ tags, update URL's, and more
- remove obsolete svn '$Id$' tags from all source files
- update .fl files and generated files accordingly
- replace 'http://www.fltk.org' URL's with 'https://...'
- replace bug report URL 'str.php' with 'bugs.php'
- remove trailing whitespace
- fix other whitespace errors flagged by Git
- add and/or fix missing or wrong standard headers
- convert tabs to spaces in all source files

The only relevant code changes are in the fluid/ folder where
some .fl files and other source files were used to generate
the '$Id' headers and footers.
2020-07-06 20:28:20 +02:00
Albrecht Schlosser
a7a1e1594c Fix stale current_ pointer when deleting Fl_Group
If a user program accidentally deletes the "current" group, then
the pointer would still point at the deleted widget. This commit
prevents this and makes the Fl_Group's parent the current group.

Fixes issue #88.
2020-06-15 01:38:18 +02:00
ManoloFLTK
7f7e0e4ea1 Replace Fl_Window_Driver::is_a_rescale() by Fl_Window::is_a_rescale()
so it can be called by any user code.
2020-05-08 17:08:33 +02:00
Albrecht Schlosser
8a7d4c9f61 Remove CodeWarrior "support"
Metrowerks CodeWarrior was an ancient macOS compiler (discontinued
since 2005) that defined the macro __MWERKS__. Code using this macro
and several comments have been removed.
2020-03-11 14:38:02 +01:00
ManoloFLTK
59295b52a1 Remove unnecessary extern declaration 2020-01-23 15:44:14 +01:00
Manolo Gouy
7ebe8e21b0 Move Fl_Window_Driver.H from FL/ to src/
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12974 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-06-26 13:43:18 +00:00
Albrecht Schlosser
efc3ec1b7b Remove unnecessary dependency on FL/Fl_Rect.H.
Fl_Rect.H is no longer included by Fl_Group.H to avoid unnecessary
dependencies on Fl_Rect.H. Currently it is only needed to access the
array returned by the protected method bounds().

Also clarified documentation.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12827 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-04-12 12:58:10 +00:00
Albrecht Schlosser
69584dda96 Minimal code edit, no functional change.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12814 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-30 10:11:24 +00:00
Albrecht Schlosser
59af6563db Refactor and simplify Fl_Group::resize().
I renamed variables (more consistent names), fixed code formatting, and
refactored the code around the resizing of widgets. I put common code
before and after the conditional '#if 1' that separated old code from
new "much simpler code from Francois Ostiguy" as a comment in the existing
code mentioned. Then I deactivated the old code and activated the new
"much simpler" code. Tested, works well.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12813 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-03-29 15:09:32 +00:00
Manolo Gouy
c88466928d Replace static protected bool Fl_Window_Driver::is_a_rescale by a private static variable and a public getter.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12364 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-28 15:51:05 +00:00
Manolo Gouy
3f572e327f Rename Fl_Window_Driver::in_resize_after_scale_change to 'is_a_rescale' which is more expressive.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12358 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-27 14:38:35 +00:00
Manolo Gouy
225c3d6da3 Rewrite Fl_Window_Driver::resize_after_scale_change() removing calls to Fl_Window::hide() and Fl_Window::show().
Windows are now rescaled with a call to Fl_Window::resize() which has been slightly modified.
Static member variable bool Fl_Window_Driver::in_resize_after_scale_change is created,
and is true if and only if Fl_Window::resize() is called by Fl_Window_Driver::resize_after_scale_change().
This new flag allows Fl_Window::resize() to perform correctly the rescaling of the window.
Fl_Gl_Window::resize() and Fl_Double_Window::resize() also consult the value of
the Fl_Window_Driver::in_resize_after_scale_change flag.
The platform-specific Fl_WinAPI_Window_Driver::resize() and Fl_X11_Window_Driver::resize()
also use  the Fl_Window_Driver::in_resize_after_scale_change flag.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12349 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-25 10:57:24 +00:00
Albrecht Schlosser
0c210ae867 Introduce Fl_Group::bounds(), deprecate Fl_Group::sizes().
The new method Fl_Group::bounds() replaces Fl_Group::sizes() whose
internal array structure was not documented.

Fl_Group::bounds() uses the new and documented class Fl_Rect for its
internal structure.

src/Fl_Tile.cxx now uses bounds() instead of sizes().


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12302 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-07 19:16:40 +00:00
Albrecht Schlosser
a1d555bd80 Separated Fl_Input_Choice.H and Fl_Input_Choice.cxx (STR #2750).
As proposed in STR #2750 and #2752: only status quo, i.e.:

  - no new method Fl_Input_Choice::maximum_size(int) (STR #2750 and #2752)
  - no handling of FL_Down key to open menu (STR #2752)


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12192 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-03-11 23:26:32 +00:00
Albrecht Schlosser
7123b78f3f Separated Fl_Spinner.H and Fl_Spinner.cxx (STR #2776).
Also removed deprecated (misspelled) method names mininum() and maxinum().


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12189 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-03-09 22:08:29 +00:00
Albrecht Schlosser
a60f99d4a1 Improve label alignment docs and border case implementations.
Make clear that some alignment bit combinations are "illegal" and yield
undefined behavior that can be changed without notice.

Fix label alignment in some border cases where illegal bit combinations like
FL_ALIGN_LEFT and FL_ALIGN_RIGHT or FL_ALIGN_TOP and FL_ALIGN_BOTTOM are
both set, respectively.

Todo: There appears to be inconsistent handling WRT these "illegal" cases,
for instance with inside labels as opposed to outside labels, such that
the behavior seems to be unpredictable. See test/label.cxx.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12181 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-02-27 17:00:41 +00:00
Manolo Gouy
22af09dae7 Mac OS: support for high resolution OpenGL windows.
Methods Fl::event_x_pixel() and Fl::event_y_pixel() committed at r.10941
are removed. Instead method Fl_Gl_Window::pixels_per_unit() is added.

The documentation explains in more detail how to write cross-platform
FLTK code supporting high resolution OpenGL windows on retina displays.

The examples/OpenGL3test.cxx app exercises Fl_Gl_Window::pixels_per_unit().

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10945 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-02 09:59:37 +00:00
Manolo Gouy
597ac17bda Mac OS: added Fl::event_x_pixel() and Fl::event_y_pixel() that return the mouse event position
in pixel units that differ from FLTK units for OpenGL windows mapped to a retina display.
On non Mac OS platforms, these are synonyms of Fl::event_x() and Fl::event_y().
The example/OpenGL3test demo program is modified to call these new functions.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10941 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-01 16:17:37 +00:00
Lauri Kasanen
795342693d Don't grab navkeys with modifiers, as the app may want them. STR #3104
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10261 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-08-29 12:10:11 +00:00
Matthias Melcher
398acd9c2a STR 2705: moved all inline constructors (that I could find) from header files into source files. Even though this breaks downward compatibility, it does make dynamic linking possible for all classes.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9637 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2012-07-24 04:37:22 +00:00
Greg Ercolano
4f4a8fc3c7 Modifications to all LGPL headers for STR #2685.
(to clarify static exception LGPL by changing license references)



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8864 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-07-19 04:49:30 +00:00
Matthias Melcher
cf95f8d261 Some minor doc changes to avoid doxygen warning.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8184 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-01-04 18:28:01 +00:00
Matthias Melcher
e454f97acc Fixed Copyright to 2010.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7903 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-11-28 21:06:39 +00:00
Matthias Melcher
b5a73c78e6 Fixed label alignment (STR #2436)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7782 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-10-30 21:32:15 +00:00
Matthias Melcher
8e30c66a92 Fixed special handling for ISO back-tab keycode (STR #2369)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7779 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-10-30 19:56:20 +00:00
Albrecht Schlosser
aea80474f8 Optimized Fl_Group::clear() and Fl_Scroll::clear(). This speeds
up mass deletes (lots of children in a group) significantly.
See also STR #2409.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7718 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-10-12 08:12:44 +00:00
Albrecht Schlosser
5a3aced3ab New method: Fl_Group::remove(int index) to speed up the removal
of widgets if the widget's index is known. Thanks to Greg for the
patch. See also STR #2409.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7693 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-08-31 10:01:59 +00:00
Albrecht Schlosser
a493692f01 Fixed compiler warnings
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7687 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-08-24 08:16:54 +00:00
Matthias Melcher
f899c3897d Added new flags for label alignment: FL_LEFT_TOP, FL_RIGHT_TOP, FL_LEFT_BOTTOM, and FL_RIGHT_BOTTOM align outside labels first to the side, then to the top or botton, filling a gap in possible alignment. Also FL_ALIGN_TEXT_NEXT_TO_IMAGE and FL_ALIGN_IMAGE_NEXT_TO_TEXT which do just that, and finally FL_ALIGN_IMAGE_BACKDROP which renders the image in the background and draws the label on top.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7469 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-04-07 23:17:33 +00:00
Matthias Melcher
86d292b6c1 Adding FALLTHROUGH label to a buch of case fallthroughs in order to make lint happy. STR #2285
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7162 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-02-26 21:10:46 +00:00
Matthias Melcher
2f82fd0663 Mixed bag. Please see CHANGES.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7117 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-02-20 21:14:47 +00:00
Albrecht Schlosser
7ae0c170ad Added Fl_Widget_Tracker in handle() methods etc. to avoid accessing widgets
after deletion (STR #1306). This is all I could find, but maybe there are
more places in the code.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7115 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-02-20 17:40:07 +00:00
Albrecht Schlosser
ee36ebc394 Reverting previous change (optimization of Fl_Group::clear),
because fl_throw_focus and fl_fix_focus would send events
that could access deleted widgets. This must be fixed first.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7039 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-02-07 21:14:35 +00:00
Albrecht Schlosser
ce7da76d6a Optimized Fl_Group::clear() and Fl_Scroll::clear() as discussed in
fltk.development in "Fl_Group::clear SLOW!" on Feb. 06/07, 2010 (no STR)


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7038 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-02-07 18:52:26 +00:00
Albrecht Schlosser
4ac63b788a Improved image layout in Fl_Group::resizable() docs.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6656 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2009-02-09 11:41:56 +00:00
Albrecht Schlosser
3ebc315ad2 Documentation updates, in parts concerning changes done for STR #1894.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6652 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2009-02-08 17:26:02 +00:00
Albrecht Schlosser
eec7f80e94 Widgets now remove themselves from their parent group (if any), when destroyed
(STR #1894). Fl_Group::clear() removes widget by widget (one at a time) to
allow widgets to remove other related widgets from the same group, when they
are deleted.
Also fixed a bug in Fl_Value_Input (added a destructor), because it used
a non-Fl_Group widget as parent of another widget.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6623 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2009-01-08 17:12:34 +00:00
Matthias Melcher
5251b64d57 Changed Copyright in 'src' directory
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6616 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2009-01-01 21:28:26 +00:00
Albrecht Schlosser
1849b8df5c Removed extraneous html tag.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6574 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-12-09 08:54:00 +00:00
Albrecht Schlosser
c23538ef54 Fixed typos and amended doxygen docs.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6573 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-12-09 08:49:25 +00:00
Albrecht Schlosser
acbb5af54b doxygen docs for some missing Fl_Group methods, updated Fl::focus().
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6351 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-09-28 22:25:23 +00:00