ultimatepp/bazaar/CtrlLibBoostPy/Pusher.cpp
kohait 9bbba24d1d bazaar: BoostPyTest: exporting the various edit fields
git-svn-id: svn://ultimatepp.org/upp/trunk@3633 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2011-07-10 20:20:59 +00:00

129 lines
6 KiB
C++

#include "Common.h"
using namespace boost::python;
NAMESPACE_UPP
//a dirty hack to expose protected virtuals
//more see bellow
class PusherExpose : public Pusher
{
public:
typedef Pusher P;
#if 0 // only worked for gcc, without the cast hack bellow
using P::RefreshPush;
using P::RefreshFocus;
using P::PerformAction;
#endif
inline virtual void RefreshPush() { return P::RefreshPush(); }
inline virtual void RefreshFocus() { return P::RefreshFocus(); }
inline virtual void PerformAction() { return P::PerformAction(); }
inline void KeyPush() { P::KeyPush(); }
inline bool IsPush() const { return P::IsPush(); }
inline bool IsKeyPush() { return P::IsKeyPush(); }
inline bool FinishPush() { return P::FinishPush(); }
};
class PusherWrap : public Pusher, public wrapper<Pusher> {
public:
typedef Pusher C;
virtual void CancelMode() { if(override f = this->get_override("cancelmode")) f(); C::CancelMode(); }
void default_CancelMode() { C::CancelMode(); }
virtual void LeftDown(Point p, dword keyflags) { if(override f = this->get_override("leftdown")) f(p, keyflags); C::LeftDown(p, keyflags); }
void default_LeftDown(Point p, dword keyflags) { C::LeftDown(p, keyflags); }
virtual void MouseMove(Point p, dword keyflags) { if(override f = this->get_override("mousemove")) f(p, keyflags); C::MouseMove(p, keyflags); }
void default_MouseMove(Point p, dword keyflags) { C::MouseMove(p, keyflags); }
virtual void MouseLeave() { if(override f = this->get_override("mouseleave")) f(); C::MouseLeave(); }
void default_MouseLeave() { C::MouseLeave(); }
virtual void LeftRepeat(Point p, dword keyflags) { if(override f = this->get_override("leftrepeat")) f(p, keyflags); C::LeftRepeat(p, keyflags); }
void default_LeftRepeat(Point p, dword keyflags) { C::LeftRepeat(p, keyflags); }
virtual void LeftUp(Point p, dword keyflags) { if(override f = this->get_override("leftup")) f(p, keyflags); C::LeftUp(p, keyflags); }
void default_LeftUp(Point p, dword keyflags) { C::LeftUp(p, keyflags); }
virtual void GotFocus() { if(override f = this->get_override("gotfocus")) f(); C::GotFocus(); }
void default_GotFocus() { C::GotFocus(); }
virtual void LostFocus() { if(override f = this->get_override("lostfocus")) f(); C::LostFocus(); }
void default_LostFocus() { C::LostFocus(); }
virtual void State(int reason) { if(override f = this->get_override("state")) f(reason); C::State(reason); }
void default_State(int reason) { C::State(reason); }
virtual String GetDesc() const { if(override f = this->get_override("getdesc")) return f(); return C::GetDesc(); }
String default_GetDesc() const { return C::GetDesc(); }
virtual bool Key(dword key, int count) { if(override f = this->get_override("key")) return f(key, count); return C::Key(key, count); }
bool default_Key(dword key, int count) { return C::Key(key, count); }
virtual dword GetAccessKeys() const { if(override f = this->get_override("getaccesskeys")) return f(); return C::GetAccessKeys(); }
dword default_GetAccessKeys() const { return C::GetAccessKeys(); }
virtual void AssignAccessKeys(dword key) { if(override f = this->get_override("assignaccesskeys")) f(key); C::AssignAccessKeys(key); }
void default_AssignAccessKeys(dword key) { C::AssignAccessKeys(key); }
virtual bool HotKey(dword key) { if(override f = this->get_override("hotkey")) return f(key); return C::HotKey(key); }
bool default_HotKey(dword key) { return C::HotKey(key); }
//own
virtual void RefreshPush() { if(override f = this->get_override("refreshpush")) f(); C::RefreshPush(); }
void default_RefreshPush() { C::RefreshPush(); }
virtual void RefreshFocus() { if(override f = this->get_override("refreshfocus")) f(); C::RefreshFocus(); }
void default_RefreshFocus() { C::RefreshFocus(); }
virtual void PerformAction() { if(override f = this->get_override("performaction")) f(); C::PerformAction(); }
void default_PerformAction() { C::PerformAction(); }
};
void PusherSetLabel(Pusher& c, const String& s) { c.SetLabel(s); }
void PusherClickFocus(Pusher& c, bool b) { c.ClickFocus(b); }
void export_Pusher()
{
ONCELOCK
{
class_<PusherWrap, bases<Ctrl>, boost::noncopyable>("Pusher", "Upp Pusher")
.def("cancelmode", &Pusher::CancelMode, &PusherWrap::default_CancelMode)
.def("leftdown", &Pusher::LeftDown, &PusherWrap::default_LeftDown)
.def("mousemove", &Pusher::MouseMove, &PusherWrap::default_MouseMove)
.def("mouseleave", &Pusher::MouseLeave, &PusherWrap::default_MouseLeave)
.def("leftrepeat", &Pusher::LeftRepeat, &PusherWrap::default_LeftRepeat)
.def("leftup", &Pusher::LeftUp, &PusherWrap::default_LeftUp)
.def("gotfocus", &Pusher::GotFocus, &PusherWrap::default_GotFocus)
.def("lostfocus", &Pusher::LostFocus, &PusherWrap::default_LostFocus)
.def("state", &Pusher::State, &PusherWrap::default_State)
.def("key", &Pusher::Key, &PusherWrap::default_Key)
.def("getaccesskeys", &Pusher::GetAccessKeys, &PusherWrap::default_GetAccessKeys)
.def("assignaccesskeys", &Pusher::AssignAccessKeys, &PusherWrap::default_AssignAccessKeys)
.def("hotkey", &Pusher::HotKey, &PusherWrap::default_HotKey)
.def("refreshpush", (void (Pusher::*)())&PusherExpose::RefreshPush, &PusherWrap::default_RefreshPush)
.def("refreshfocus", (void (Pusher::*)())&PusherExpose::RefreshFocus, &PusherWrap::default_RefreshFocus)
.def("performaction", (void (Pusher::*)())&PusherExpose::PerformAction, &PusherWrap::default_PerformAction)
.def("keypush", (void (Pusher::*)())&PusherExpose::KeyPush)
.def("ispush", (bool (Pusher::* const)())&PusherExpose::IsPush)
.def("iskeypush", (bool (Pusher::*)())&PusherExpose::IsKeyPush)
.def("finishpush", (bool (Pusher::*)())&PusherExpose::FinishPush)
.add_property("clickfocus", &Pusher::IsClickFocus, &PusherClickFocus)
.add_property("label", &Pusher::GetLabel, &PusherSetLabel)
.def("pseudopush", &Pusher::PseudoPush)
.def("getvisualstate", &Pusher::GetVisualState)
.def_readwrite("whenpush", &Pusher::WhenPush)
.def_readwrite("whenrepeat", &Pusher::WhenRepeat)
;
}
}
END_UPP_NAMESPACE