|
|
commit 0f3619ba0e725a6a9d57b9da328f3b1e2a0cd150
Author: Albrecht Schlosser <albrechts.fltk@online.de>
AuthorDate: Tue May 25 17:41:00 2021 +0200
Commit: Albrecht Schlosser <albrechts.fltk@online.de>
CommitDate: Tue May 25 17:41:00 2021 +0200
Reimplement Fl_Group::delete_child(int) for Fl_Scroll
FL/Fl_Scroll.H | 4 ++++
src/Fl_Scroll.cxx | 27 +++++++++++++++++++++++++++
2 files changed, 31 insertions(+)
diff --git FL/Fl_Scroll.H FL/Fl_Scroll.H
index ed0f6ac..35fcf9a 100644
--- FL/Fl_Scroll.H
+++ FL/Fl_Scroll.H
@@ -163,6 +163,10 @@ public:
int yposition() const {return yposition_;}
void scroll_to(int, int);
void clear();
+
+ /* delete child n (by index) */
+ virtual int delete_child(int n);
+
/**
Gets the current size of the scrollbars' troughs, in pixels.
diff --git src/Fl_Scroll.cxx src/Fl_Scroll.cxx
index 6d754d1..f0dab47 100644
--- src/Fl_Scroll.cxx
+++ src/Fl_Scroll.cxx
@@ -44,6 +44,33 @@ void Fl_Scroll::fix_scrollbar_order() {
}
}
+
+/**
+ Removes the widget at \p index from the group and deletes it.
+
+ This method does nothing if \p index is out of bounds or
+ if Fl_Group::child(index) is one of the scrollbars.
+
+ \param[in] index index of child to be removed
+
+ \returns success (0) or error code
+ \retval 0 success
+ \retval 1 index out of range
+ \retval 2 widget not allowed to be removed (see note)
+
+ \see Fl_Group::delete_child()
+
+ \since FLTK 1.4.0
+*/
+int Fl_Scroll::delete_child(int index) {
+ if (index < 0 || index >= children())
+ return 1;
+ Fl_Widget *w = child(index);
+ if (w == &scrollbar || w == &hscrollbar)
+ return 2; // can't delete scrollbars
+ return Fl_Group::delete_child(index);
+}
+
// Draw widget's background and children within a specific clip region
// So widget can just redraw damaged parts.
//
[ Direct Link to Message ] | |
|
| |