summaryrefslogtreecommitdiff
path: root/source/Asura.Editor/controls/binding/_button.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/Asura.Editor/controls/binding/_button.cpp')
-rw-r--r--source/Asura.Editor/controls/binding/_button.cpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/source/Asura.Editor/controls/binding/_button.cpp b/source/Asura.Editor/controls/binding/_button.cpp
new file mode 100644
index 0000000..fbae64f
--- /dev/null
+++ b/source/Asura.Editor/controls/binding/_button.cpp
@@ -0,0 +1,60 @@
+#include "../button.h"
+
+using namespace Luax;
+
+namespace AsuraEditor
+{
+
+ LUAX_REGISTRY(Button)
+ {
+
+ // Button.EStatus.xxx
+ LUAX_REGISTER_ENUM(state, "EStatus",
+ { "NORMAL", BUTTON_STATUS_NORMAL },
+ { "PUSHED", BUTTON_STATUS_PUSHED },
+ { "HOVER", BUTTON_STATUS_HOVER },
+ { "DISABLED", BUTTON_STATUS_DISABLED },
+ { "FOCUSED", BUTTON_STATUS_FOCUSED }
+ );
+
+ // Button.EMsg.xxx
+ LUAX_REGISTER_ENUM(state, "EMessage",
+ { "CLICK", BUTTON_MSG_CLICK },
+ { "HOVER", BUTTON_MSG_HOVER },
+ { "FOCUS", BUTTON_MSG_KILLFOCUS }
+ );
+
+ }
+
+ LUAX_POSTPROCESS(Button)
+ {
+
+ }
+
+ // button:Connect(msg, callback)
+ LUAX_IMPL_METHOD(Button, _Connect)
+ {
+ LUAX_STATE(L);
+
+ Button* self = state.GetUserdata<Button>(1);
+ int msg = state.CheckValue<int>(2);
+ if (!lua_isfunction(L, 3))
+ return state.ErrorType(3, "callback");
+
+ LuaxMemberRef ref;
+ self->SetLuaxMemberRef(state, ref, 3);
+ if (ref)
+ {
+ self->mCallbacksRef.push_back(ref);
+ Slot slot = Slot(state, (*self), ref.refID);
+ self->Connect(msg, slot);
+ }
+ }
+
+ // button:SetImage(image)
+ LUAX_IMPL_METHOD(Button, _SetImage)
+ {
+
+ }
+
+} \ No newline at end of file