[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 Apps      FLTK Library      Forums      Links     Login 
 All Forums  |  Back to fltk.commit  ]
 
Previous Message ]Next Message ]

[master] 0f3619b - Reimplement Fl_Group::delete_child(int) for Fl_Scroll "Albrecht Schlosser" 08:47 May 25 top right image
 
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 ]
 
bottom left image   bottom right image
Previous Message ]Next Message ]
 
 

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