1 #include "Common.h"
2 using namespace boost::python;
3 
4 NAMESPACE_UPP
5 
6 class OptionExpose : public Option
7 {
8 public:
9 	typedef Option P;
10 
RefreshPush()11 	inline virtual void RefreshPush() { return P::RefreshPush(); }
RefreshFocus()12 	inline virtual void RefreshFocus() { return P::RefreshFocus(); }
PerformAction()13 	inline virtual void PerformAction() { return P::PerformAction(); }
14 };
15 
16 class OptionWrap : public Option, public wrapper<Option> {
17 public:
18 	typedef Option C;
19 
GetMinSize() const20 	virtual Size GetMinSize() const { if(override f = this->get_override("getminsize")) return f(); return C::GetMinSize(); }
default_GetMinSize() const21 	Size default_GetMinSize() const { return C::GetMinSize(); }
22 
SetData(const Value & data)23 	virtual void SetData(const Value& data) { if(override f = this->get_override("setdata")) f(data); C::SetData(data); }
default_SetData(const Value & data)24 	void default_SetData(const Value& data) { C::SetData(data); }
25 
GetData() const26 	virtual Value GetData() const { if(override f = this->get_override("getdata")) return f(); return C::GetData(); }
default_GetData() const27 	Value default_GetData() const { return C::GetData(); }
28 
MouseEnter(Point p,dword keyflags)29 	virtual void MouseEnter(Point p, dword keyflags) { if(override f = this->get_override("mouseenter")) f(p, keyflags); C::MouseEnter(p, keyflags); }
default_MouseEnter(Point p,dword keyflags)30 	void default_MouseEnter(Point p, dword keyflags) { C::MouseEnter(p, keyflags); }
31 
MouseLeave()32 	virtual void MouseLeave() { if(override f = this->get_override("mouseleave")) f(); C::MouseLeave(); }
default_MouseLeave()33 	void default_MouseLeave() { C::MouseLeave(); }
34 
35 	//own
RefreshPush()36 	virtual void RefreshPush() { if(override f = this->get_override("refreshpush")) f(); C::RefreshPush(); }
default_RefreshPush()37 	void default_RefreshPush() { C::RefreshPush(); }
38 
RefreshFocus()39 	virtual void RefreshFocus() { if(override f = this->get_override("refreshfocus")) f(); C::RefreshFocus(); }
default_RefreshFocus()40 	void default_RefreshFocus() { C::RefreshFocus(); }
41 
PerformAction()42 	virtual void PerformAction() { if(override f = this->get_override("performaction")) f(); C::PerformAction(); }
default_PerformAction()43 	void default_PerformAction() { C::PerformAction(); }
44 };
45 
OptionBlackEdge(Option & o,bool b)46 void OptionBlackEdge(Option& o, bool b) { o.BlackEdge(b); }
OptionSwitchImage(Option & o,bool b)47 void OptionSwitchImage(Option& o, bool b) { o.SwitchImage(b); }
OptionThreeState(Option & o,bool b)48 void OptionThreeState(Option& o, bool b) { o.ThreeState(b); }
OptionShowLabel(Option & o,bool b)49 void OptionShowLabel(Option& o, bool b) { o.ShowLabel(b); }
OptionNotNull(Option & o,bool b)50 void OptionNotNull(Option& o, bool b) { o.NotNull(b); }
OptionSet(Option & o,int b)51 void OptionSet(Option& o, int b) { o.Set(b); }
52 
export_Option()53 void export_Option()
54 {
55 ONCELOCK
56 {
57 	class_<Option, bases<Pusher>, boost::noncopyable>("Option", "Upp Option")
58 		.def("getminsize", &Option::GetMinSize, &OptionWrap::default_GetMinSize)
59 		.def("setdata", &Option::SetData, &OptionWrap::default_SetData)
60 		.def("getdata", &Option::GetData, &OptionWrap::default_GetData)
61 		.def("mouseenter", &Option::MouseEnter, &OptionWrap::default_MouseEnter)
62 		.def("mouseleave", &Option::MouseLeave, &OptionWrap::default_MouseLeave)
63 
64 		.def("refreshpush", (void (Option::*)())&OptionExpose::RefreshPush, &OptionWrap::default_RefreshPush)
65 		.def("refreshfocus", (void (Option::*)())&OptionExpose::RefreshFocus, &OptionWrap::default_RefreshFocus)
66 		.def("performaction", (void (Option::*)())&OptionExpose::PerformAction, &OptionWrap::default_PerformAction)
67 
68 		.add_property("blackedge", &Option::IsBlackEdge, &OptionBlackEdge)
69 		.add_property("switchimage", &Option::IsSwitchImage, &OptionSwitchImage)
70 		.add_property("threestate", &Option::IsThreeState, &OptionThreeState)
71 		.add_property("showlabel", &Option::IsShowLabel, &OptionShowLabel)
72 		.add_property("notnull", &Option::IsNotNull, &OptionNotNull)
73 
74 		.add_property("data", &Option::Get, &OptionSet)
75 	;
76 }
77 }
78 
79 END_UPP_NAMESPACE
80