00001 #include "gui_checkbutton.hpp"
00002
00003 #include "gui_frame.hpp"
00004 #include "gui_texture.hpp"
00005
00006 #include <luapp_function.hpp>
00007
00008 namespace gui
00009 {
00010 void check_button::register_glue(utils::wptr<lua::state> pLua)
00011 {
00012 pLua->reg<lua_check_button>();
00013 }
00014
00015 lua_check_button::lua_check_button(lua_State* pLua) : lua_button(pLua)
00016 {
00017 pCheckButtonParent_ = dynamic_cast<check_button*>(pParent_);
00018 if (pParent_ && !pCheckButtonParent_)
00019 throw exception("lua_check_button", "Dynamic cast failed !");
00020 }
00021
00022 int lua_check_button::_is_checked(lua_State* pLua)
00023 {
00024 if (!check_parent_())
00025 return 0;
00026
00027 lua::function mFunc("CheckButton:is_checked", pLua, 1);
00028
00029 mFunc.push(pCheckButtonParent_->is_checked());
00030
00031 return mFunc.on_return();
00032 }
00033
00034 int lua_check_button::_get_checked_texture(lua_State* pLua)
00035 {
00036 if (!check_parent_())
00037 return 0;
00038
00039 lua::function mFunc("CheckButton:get_checked_texture", pLua, 1);
00040
00041 texture* pTexture = pCheckButtonParent_->get_checked_texture();
00042 if (pTexture)
00043 {
00044 pTexture->push_on_lua(mFunc.get_state());
00045 mFunc.notify_pushed();
00046 }
00047 else
00048 mFunc.push_nil();
00049
00050 return mFunc.on_return();
00051 }
00052
00053 int lua_check_button::_get_disabled_checked_texture(lua_State* pLua)
00054 {
00055 if (!check_parent_())
00056 return 0;
00057
00058 lua::function mFunc("CheckButton:get_disabled_checked_texture", pLua, 1);
00059
00060 texture* pTexture = pCheckButtonParent_->get_disabled_checked_texture();
00061 if (pTexture)
00062 {
00063 pTexture->push_on_lua(mFunc.get_state());
00064 mFunc.notify_pushed();
00065 }
00066 else
00067 mFunc.push_nil();
00068
00069 return mFunc.on_return();
00070 }
00071
00072 int lua_check_button::_set_checked(lua_State* pLua)
00073 {
00074 if (!check_parent_())
00075 return 0;
00076
00077
00078
00079
00080
00081 if (lua_gettop(pLua) > 0)
00082 {
00083 if (lua_toboolean(pLua, 1) == 0)
00084 pCheckButtonParent_->uncheck();
00085 else
00086 pCheckButtonParent_->check();
00087 }
00088 else
00089 pCheckButtonParent_->check();
00090
00091 return 0;
00092 }
00093
00094 int lua_check_button::_set_checked_texture(lua_State* pLua)
00095 {
00096 if (!check_parent_())
00097 return 0;
00098
00099 lua::function mFunc("CheckButton:set_checked_texture", pLua);
00100 mFunc.add(0, "texture", lua::TYPE_USERDATA);
00101 if (mFunc.check())
00102 {
00103 lua_texture* pLuaTexture = mFunc.get_state()->get<lua_texture>();
00104 if (pLuaTexture)
00105 {
00106 texture* pTexture = dynamic_cast<texture*>(pLuaTexture->get_parent());
00107 pCheckButtonParent_->set_checked_texture(pTexture);
00108 }
00109 }
00110
00111 return mFunc.on_return();
00112 }
00113
00114 int lua_check_button::_set_disabled_checked_texture(lua_State* pLua)
00115 {
00116 if (!check_parent_())
00117 return 0;
00118
00119 lua::function mFunc("CheckButton:set_disabled_checked_texture", pLua);
00120 mFunc.add(0, "texture", lua::TYPE_USERDATA);
00121 if (mFunc.check())
00122 {
00123 lua_texture* pLuaTexture = mFunc.get_state()->get<lua_texture>();
00124 if (pLuaTexture)
00125 {
00126 texture* pTexture = dynamic_cast<texture*>(pLuaTexture->get_parent());
00127 pCheckButtonParent_->set_disabled_checked_texture(pTexture);
00128 }
00129 }
00130
00131 return mFunc.on_return();
00132 }
00133 }