X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fpanel.h;h=54e75ef5309e9e23d62645fadaf5064cafa7fddb;hb=73afd124ab87e8bace98db55517a56c797a9b8c7;hp=b431a854cdcc284ad751fa45e926ea082e274962;hpb=8a0058b5b90bb7e9eacf1646142f4d73b426fd66;p=libs%2Fgltk.git diff --git a/source/panel.h b/source/panel.h index b431a85..54e75ef 100644 --- a/source/panel.h +++ b/source/panel.h @@ -1,7 +1,7 @@ /* $Id$ This file is part of libmspgltk -Copyright © 2007-2009 Mikko Rasa, Mikkosoft Productions +Copyright © 2007-2011 Mikko Rasa, Mikkosoft Productions Distributed under the LGPL */ @@ -23,19 +23,22 @@ class Panel: public Container public: class Loader: public Widget::Loader { + public: + typedef std::map WidgetMap; + private: Panel &pnl; - std::map &wdg_map; + WidgetMap &wdg_map; public: - Loader(Panel &, std::map &); + Loader(Panel &, WidgetMap &); private: template void child(const std::string &); void panel(const std::string &); }; -private: +protected: struct Child: public Container::Child { Child(Panel &, Widget *); @@ -55,10 +58,22 @@ private: Panel(const Panel &); Panel &operator=(const Panel &); public: - Panel(const Resources &); + Panel(); + + virtual const char *get_class() const { return "panel"; } +protected: + virtual Child *create_child(Widget *); + +public: void raise(Widget &); + Widget *get_input_focus() const { return input_focus; } + Widget *get_final_input_focus() const; +protected: + virtual void render_special(const Part &) const; + +public: virtual void button_press(int, int, unsigned); virtual void button_release(int, int, unsigned); virtual void pointer_motion(int, int); @@ -66,11 +81,8 @@ public: virtual void key_press(unsigned, unsigned, wchar_t); virtual void key_release(unsigned, unsigned); virtual void focus_out(); -private: - virtual const char *get_class() const { return "panel"; } - virtual void render_special(const Part &) const; - virtual Child *create_child(Widget *); +protected: void set_pointer_focus(Widget *); void set_input_focus(Widget *); };