#include <list>
#include <stdexcept>
#include <sigc++/trackable.h>
+#include "mspgltk_api.h"
#include "widget.h"
namespace Msp {
namespace GLtk {
-class hierarchy_error: public std::logic_error
+class MSPGLTK_API hierarchy_error: public std::logic_error
{
public:
hierarchy_error(const std::string &);
};
-class Container: virtual public Widget
+class MSPGLTK_API Container: virtual public Widget
{
protected:
struct Child: public sigc::trackable
void grab_pointer();
void ungrab_pointer();
void request_animation(const Time::TimeDelta &);
+ void rebuild_needed();
};
std::list<Child *> children;
Widget *input_focus;
Widget *saved_input_focus;
Widget *touch_focus;
+ bool children_rebuild_needed;
Container();
public:
private:
void check_animation_interval();
+protected:
+ virtual void rebuild_hierarchy();
+
public:
virtual void button_press(int, int, unsigned);
virtual void button_release(int, int, unsigned);