#ifndef MSP_GLTK_PANEL_H_
#define MSP_GLTK_PANEL_H_
-#include <msp/datafile/loadabletyperegistry.h>
+#include <msp/core/typeregistry.h>
#include "container.h"
#include "layout.h"
+#include "mspgltk_api.h"
namespace Msp {
namespace GLtk {
part "children" to render the child widgets. All properties of this part are
ignored.
*/
-class Panel: public Container
+class MSPGLTK_API Panel: public Container
{
public:
class Loader: public DataFile::DerivedObjectLoader<Panel, Widget::Loader>
template<typename T>
struct AddChildType
{
- static void add(Loader &, const std::string &);
+ void operator()(const std::string &, Loader &) const;
};
WidgetMap &wdg_map;
std::vector<Widget *> nav_order;
Layout *layout;
- static DataFile::LoadableTypeRegistry<Loader, Loader::AddChildType> widget_registry;
+ static TypeRegistry<Loader::AddChildType, Loader &> widget_registry;
static bool widget_registry_init_done;
Panel(const Panel &);
template<typename T>
-void Panel::Loader::AddChildType<T>::add(Loader &ldr, const std::string &kwd)
+void Panel::Loader::AddChildType<T>::operator()(const std::string &kwd, Loader &ldr) const
{
ldr.add(kwd, &Loader::child<T>);
ldr.add(kwd, &Loader::unnamed_child<T>);