+ const char *set_name(const char *new_name);
+ const char *set_name(const char *new_name, const char *def_name);
+ bool is_named(const char *the_name);
+ bool is_inamed(const char *the_name);
+
+ class cl_base *get_parent(void) { return(parent); }
+ int nuof_children(void);
+
+ virtual void add_child(class cl_base *child);
+ virtual void remove_child(class cl_base *child);
+ virtual void remove_from_chain(void);
+ virtual void unlink(void);
+ virtual class cl_base *first_child(void);
+ virtual class cl_base *next_child(class cl_base *child);
+
+ virtual bool handle_event(class cl_event &event);
+ virtual bool pass_event_down(class cl_event &event);
+};
+
+
+/*
+ * Event
+ */
+
+class cl_event: public cl_base
+{
+protected:
+ bool handled;
+public:
+ enum event what;
+public:
+ cl_event(enum event what_event);
+ virtual ~cl_event(void);
+
+ bool is_handled(void) { return(handled); }
+ virtual void handle(void) { handled= DD_TRUE; }