summaryrefslogtreecommitdiffstats
path: root/fltk/fltk/WidgetAssociation.h
diff options
context:
space:
mode:
Diffstat (limited to 'fltk/fltk/WidgetAssociation.h')
-rw-r--r--fltk/fltk/WidgetAssociation.h81
1 files changed, 0 insertions, 81 deletions
diff --git a/fltk/fltk/WidgetAssociation.h b/fltk/fltk/WidgetAssociation.h
deleted file mode 100644
index 0d4d512..0000000
--- a/fltk/fltk/WidgetAssociation.h
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef fltk_WidgetAssociation_h
-#define fltk_WidgetAssociation_h
-
-#include <fltk/FL_API.h>
-
-namespace fltk {
-
-class FL_API Widget;
-class FL_API AssociationType;
-
-/*! \brief Class used by the foreach() functions.
- *
- * Base class for the association functor that is used in foreach(). If you want to supply
- * your specific actions to do with the associated data found by the foreach() functions
- * you need to derive from this class and provide a new handle function.
- */
-class FL_API AssociationFunctor {
- public:
- /*!
- * For each
- * found association this function is called. If the function returns true the
- * loop is aborted and the data pointer for the current association is returned
- */
- virtual bool handle(const AssociationType&, const Widget*, void* data) = 0;
-};
-
-/*! \relates AssociationType
- * This function allows traversing all associations of a certain association type, a certain widget,
- * both, or none of the constraints.
- * For each found widget the handle function in the associaionFunctor class is called. If that
- * function returns true the scan is aborted and the data for the current widget is returned
- * A NULL pointer for the AssociationType or the Widget pointer means to call the functor for all
- * AssociationTypes and/or all Widgets.
- *
- * The function either returns the first associated data for which the functor returns true, or NULL.
- * See also Widget::foreach() and AssociationType::foreach().
- */
-FL_API void* foreach(const AssociationType*, const Widget*, AssociationFunctor&);
-
-/*! \brief Base class for the association type.
- *
- * FLTK allows you to attach any kind of user data to a widget. This data is automatically freed when the
- * widget to which it is attached is destroyed. Internally an association table is used to connect the
- * widget pointer with the data pointer that is why all the functions concerned with this feature contain
- * "association" in their name. The advantage of this is that no space is taken on widgets that do not
- * contain the data (or that have the "default value"), and that the destructor code is not linked in
- * if the association is not used.
- *
- * To be able to associate data and to be able to have a customized way of freeing the data you need
- * to derive from this class and then create an instance of that class. With the pointer to that instance
- * the type of the data is identified.
- *
- * possible uses:
- * - assign key shortcuts to certain widgets
- * - assign a tooltip to some widgets
- * - assign a help-index to widgets
- * - assign a unique identifier to widgets to remote controlling
- * - assign additional layouting data for new container widgets
- * - assign data needed by typesafe callback mechanisms
- * - assign all kind of data not always required within a widget / each widget
- */
-class FL_API AssociationType {
-
- public:
- /*! \brief This function is called when associated data is freed
- * This function must be proveded when creating a data specific subclass. The function
- * must do whatever is necessary to free associated data. Most of the time it will be a cast
- * to the right datatype and a delete
- */
- virtual void destroy(void* data) const = 0;
-
- /*! \brief Finds all data of this association type for a widget
- * This function just calls fltk::foreach(this, wg, fkt). If \a wg
- * is NULL this function will find all data for any widget.
- */
- void* foreach(const Widget* wg, AssociationFunctor& fkt) { return fltk::foreach(this, wg, fkt); }
-};
-
-}
-
-#endif