00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 #ifndef GUI_LAYEREDREGION_HPP
00010 #define GUI_LAYEREDREGION_HPP
00011 
00012 #include <utils.hpp>
00013 #include "gui_region.hpp"
00014 
00015 namespace gui
00016 {
00018 
00021     class layered_region : public region
00022     {
00023     public :
00024 
00026         explicit layered_region(manager* pManager);
00027 
00029         virtual ~layered_region();
00030 
00032 
00035         virtual std::string serialize(const std::string& sTab) const;
00036 
00038         virtual void create_glue();
00039 
00041 
00044         virtual void set_parent(uiobject* pParent);
00045 
00047 
00050         virtual void show();
00051 
00053 
00056         virtual void hide();
00057 
00059 
00061         virtual bool is_visible() const;
00062 
00064 
00066         layer_type get_draw_layer();
00067 
00069 
00071         virtual void set_draw_layer(layer_type mLayer);
00072 
00074 
00076         virtual void set_draw_layer(const std::string& sLayer);
00077 
00079 
00081         virtual void notify_renderer_need_redraw() const;
00082 
00084 
00086         virtual void parse_block(xml::block* pBlock);
00087 
00088     protected :
00089 
00090         virtual void parse_attributes_(xml::block* pBlock);
00091 
00092         layer_type mLayer_;
00093         frame*     pFrameParent_;
00094     };
00095 
00099     class lua_layered_region : public lua_uiobject
00100     {
00101     public :
00102 
00103         explicit lua_layered_region(lua_State* pLua);
00104 
00105         int _get_draw_layer(lua_State*);
00106         int _set_draw_layer(lua_State*);
00107 
00108         static const char className[];
00109         static const char* classList[];
00110         static Lunar<lua_layered_region>::RegType methods[];
00111 
00112     protected :
00113 
00114         layered_region* pLayeredRegionParent_;
00115     };
00116 
00119 }
00120 
00121 #endif