+/* $Id$
+
+This file is part of libmspgltk
+Copyright © 2007 Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
#ifndef MSP_GLTK_PANEL_H_
#define MSP_GLTK_PANEL_H_
namespace Msp {
namespace GLtk {
+/**
+Panels are containers for other widgets. Panel styles should have a special
+part "children" to render the child widgets. All properties of this part are
+ignored.
+*/
class Panel: public Widget
{
public:
void panel(const std::string &);
};
+private:
+ typedef std::list<Widget *> ChildSeq;
+
+ ChildSeq children;
+ Widget *pointer_focus;
+ unsigned pointer_grab;
+ Widget *input_focus;
+
+ Panel(const Panel &);
+ Panel &operator=(const Panel &);
+public:
Panel(const Resources &);
~Panel();
void add(Widget &);
+
void button_press(int, int, unsigned);
void button_release(int, int, unsigned);
void pointer_motion(int, int);
void key_release(unsigned, unsigned);
void focus_out();
private:
- typedef std::list<Widget *> ChildSeq;
-
- ChildSeq children;
- Widget *pointer_focus;
- unsigned pointer_grab;
- Widget *input_focus;
-
- Panel(const Panel &);
- Panel &operator=(const Panel &);
const char *get_class() const { return "panel"; }
void render_part(const Part &) const;
void set_pointer_focus(Widget *);