From 793fa5a91f24358aa7ce21abf6ee4e93a17b04ee Mon Sep 17 00:00:00 2001 From: maxim nikonov Date: Fri, 6 Feb 2026 19:04:24 +0500 Subject: wip --- FL/Fl_Widget_Tracker.H | 55 ++++++-------------------------------------------- 1 file changed, 6 insertions(+), 49 deletions(-) (limited to 'FL/Fl_Widget_Tracker.H') diff --git a/FL/Fl_Widget_Tracker.H b/FL/Fl_Widget_Tracker.H index 0a2a5b6da..0af6e0fcd 100644 --- a/FL/Fl_Widget_Tracker.H +++ b/FL/Fl_Widget_Tracker.H @@ -76,14 +76,14 @@ class FL_EXPORT Fl_Widget_Tracker { public: Fl_Widget_Tracker(Fl_Widget *wi); - // Rule of five. Note that we *can* implement these when we refactor widget - // tracking with a C++11 map or unordered_map, for example. - Fl_Widget_Tracker(const Fl_Widget_Tracker&) = delete; - Fl_Widget_Tracker(Fl_Widget_Tracker&&) = delete; - Fl_Widget_Tracker& operator=(const Fl_Widget_Tracker&) = delete; - Fl_Widget_Tracker& operator=(Fl_Widget_Tracker&&) = delete; ~Fl_Widget_Tracker(); +private: + Fl_Widget_Tracker(const Fl_Widget_Tracker&); + Fl_Widget_Tracker& operator=(const Fl_Widget_Tracker&); + +public: + /** Clear the widget pointer. */ @@ -109,47 +109,4 @@ public: }; -namespace Fl { - -/** \defgroup fl_del_widget Safe widget deletion support functions - - These functions, declared in , support deletion of widgets inside callbacks. - - Fl::delete_widget() should be called when deleting widgets - or complete widget trees (Fl_Group, Fl_Window, ...) inside - callbacks. - - The other functions are intended for internal use. The preferred - way to use them is by using the helper class Fl_Widget_Tracker. - - The following is to show how it works ... - - There are three groups of related methods: - - -# scheduled widget deletion - - Fl::delete_widget() schedules widgets for deletion - - Fl::do_widget_deletion() deletes all scheduled widgets - -# widget watch list ("smart pointers") - - Fl::watch_widget_pointer() adds a widget pointer to the watch list - - Fl::release_widget_pointer() removes a widget pointer from the watch list - - Fl::clear_widget_pointer() clears a widget pointer \e in the watch list - -# the class Fl_Widget_Tracker: - - the constructor calls Fl::watch_widget_pointer() - - the destructor calls Fl::release_widget_pointer() - - the access methods can be used to test, if a widget has been deleted - \see Fl_Widget_Tracker. - - @{ */ - -// Widget deletion: -FL_EXPORT extern void delete_widget(Fl_Widget *w); -FL_EXPORT extern void do_widget_deletion(); -FL_EXPORT extern void watch_widget_pointer(Fl_Widget *&w); -FL_EXPORT extern void release_widget_pointer(Fl_Widget *&w); -FL_EXPORT extern void clear_widget_pointer(Fl_Widget const *w); - -/** @} */ - -} // namespace Fl - #endif // !Fl_Widget_Tracker_H -- cgit v1.2.3