FLTK logo

[master] 0f3619b - Reimplement Fl_Group::delete_child(int) for Fl_Scroll

FLTK matrix user chat room
(using Element browser app)   FLTK gitter user chat room   GitHub FLTK Project   FLTK News RSS Feed  
  FLTK Library      Forums      Links      Apps     Login 
 All Forums  |  Back to fltk.commit  ]
 
Previous Message ]Next Message ]

[master] 0f3619b - Reimplement Fl_Group::delete_child(int) for Fl_Scroll "Albrecht Schlosser" May 25, 2021  
 
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 ]
 
     
Previous Message ]Next Message ]
 
 

Comments are owned by the poster. All other content is copyright 1998-2025 by Bill Spitzak and others. This project is hosted by The FLTK Team. Please report site problems to 'erco@seriss.com'.