From 04232a17c1a02edd390bf7bc23c60a338c3bd4e137ff8046e08ec4821b04bed4 Mon Sep 17 00:00:00 2001 From: ADAM David Alan Martin Date: Sat, 9 Aug 2025 12:01:00 -0400 Subject: [PATCH] And another one's gone... --- dw/fltkviewport.cc | 25 +++++++++---------------- dw/fltkviewport.hh | 5 ++--- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/dw/fltkviewport.cc b/dw/fltkviewport.cc index 3ec2e43..ad14829 100644 --- a/dw/fltkviewport.cc +++ b/dw/fltkviewport.cc @@ -83,15 +83,10 @@ FltkViewport::FltkViewport (int X, int Y, int W, int H, const char *label): gadgetOrientation[1] = GADGET_HORIZONTAL; gadgetOrientation[2] = GADGET_VERTICAL; gadgetOrientation[3] = GADGET_HORIZONTAL; - - gadgets = - new container::typed::List > - (true); } FltkViewport::~FltkViewport () { - delete gadgets; DBG_OBJ_DELETE (); } @@ -106,15 +101,15 @@ void FltkViewport::adjustScrollbarsAndGadgetsAllocation () if (vscrollbar->visible ()) visibility |= 2; - if (gadgets->size () > 0) { + if (gadgets.size () > 0) { switch (gadgetOrientation [visibility]) { case GADGET_VERTICAL: hdiff = SCROLLBAR_THICKNESS; - vdiff = SCROLLBAR_THICKNESS * gadgets->size (); + vdiff = SCROLLBAR_THICKNESS * gadgets.size (); break; case GADGET_HORIZONTAL: - hdiff = SCROLLBAR_THICKNESS * gadgets->size (); + hdiff = SCROLLBAR_THICKNESS * gadgets.size (); vdiff = SCROLLBAR_THICKNESS; break; } @@ -137,9 +132,8 @@ void FltkViewport::adjustScrollbarsAndGadgetsAllocation () //int X = x () + w () - SCROLLBAR_THICKNESS; //int Y = y () + h () - SCROLLBAR_THICKNESS; - for (Iterator > it = gadgets->iterator (); - it.hasNext (); ) { - Fl_Widget *widget = it.getNext()->getTypedValue (); + for( auto &widget : gadgets ) + { widget->resize(x (), y (), SCROLLBAR_THICKNESS, SCROLLBAR_THICKNESS); /* FIXME: This has no effect */ @@ -205,9 +199,8 @@ void FltkViewport::draw_area (void *data, int x, int y, int w, int h) vp->FltkWidgetView::draw (); - for (Iterator > it = vp->gadgets->iterator(); - it.hasNext (); ) { - Fl_Widget *widget = it.getNext()->getTypedValue (); + for( auto &widget: vp->gadgets ) + { vp->draw_child (*widget); } @@ -666,11 +659,11 @@ void FltkViewport::setGadgetOrientation (bool hscrollbarVisible, adjustScrollbarsAndGadgetsAllocation (); } -void FltkViewport::addGadget (Fl_Widget *gadget) +void FltkViewport::addGadget (std::unique_ptr< Fl_Widget > gadget) { /** \bug Reparent? */ - gadgets->append (new TypedPointer < Fl_Widget> (gadget)); + gadgets.push_back( std::move( gadget ) ); adjustScrollbarsAndGadgetsAllocation (); } diff --git a/dw/fltkviewport.hh b/dw/fltkviewport.hh index 2f2dfe0..4af7f81 100644 --- a/dw/fltkviewport.hh +++ b/dw/fltkviewport.hh @@ -53,8 +53,7 @@ private: Fl_Scrollbar *vscrollbar, *hscrollbar; GadgetOrientation gadgetOrientation[4]; - lout::container::typed::List > - *gadgets; + std::list< std::unique_ptr < Fl_Widget > > gadgets; void adjustScrollbarsAndGadgetsAllocation (); void adjustScrollbarValues (); @@ -104,7 +103,7 @@ public: void setGadgetOrientation (bool hscrollbarVisible, bool vscrollbarVisible, GadgetOrientation gadgetOrientation); void setDragScroll (bool enable) { hasDragScroll = enable ? 1 : 0; } - void addGadget (Fl_Widget *gadget); + void addGadget( std::unique_ptr< Fl_Widget > gadget ); void setScrollbarOnLeft (bool enable); void setScrollbarPageMode(bool enable); void setPageOverlap(int overlap);