mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-07-11 22:03:01 -06:00
bazaar: BoostPyTest: some fixes in Ctrls, can now be instantiated and added in environment, Callback works (still alpha), sandbox grows
git-svn-id: svn://ultimatepp.org/upp/trunk@3414 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
3a53de0b62
commit
73c42516fd
9 changed files with 90 additions and 31 deletions
|
|
@ -43,6 +43,8 @@ BoostPyTest::BoostPyTest()
|
|||
object upp_module = import("upp");
|
||||
main_namespace["upp"] = upp_module;
|
||||
|
||||
scope(upp_module).attr("app") = ptr((TopWindow*)this);
|
||||
|
||||
sl.SetData(50);
|
||||
scope(upp_module).attr("sl") = ptr(&sl);
|
||||
|
||||
|
|
@ -60,7 +62,7 @@ BoostPyTest::BoostPyTest()
|
|||
|
||||
"p = hello.World()\n"
|
||||
"p.set('Some Greet Text')\n"
|
||||
"print p.greet()\n"
|
||||
"print p.get()\n"
|
||||
|
||||
"upp.sl.data = 75\n"
|
||||
"print upp.sl.data\n"
|
||||
|
|
@ -74,15 +76,20 @@ BoostPyTest::BoostPyTest()
|
|||
|
||||
"c = upp.Color(123,124,125)\n"
|
||||
"print c\n"
|
||||
//"upp.vc.data = c\n"
|
||||
|
||||
"pp = p\n"
|
||||
"p.set('Hi')\n"
|
||||
"print p\n"
|
||||
"print pp\n"
|
||||
|
||||
//"upp.vc.data = c\n"
|
||||
|
||||
"import time\n"
|
||||
"upp.pr.reset()\n"
|
||||
"upp.pr.create()\n"
|
||||
"upp.pr.canceled()\n"
|
||||
"i = 0\n"
|
||||
"while i < 10:\n"
|
||||
"while i < 3:\n"
|
||||
" print i\n"
|
||||
" upp.pr.text = str(i)\n"
|
||||
" i = i+1\n"
|
||||
|
|
@ -96,6 +103,12 @@ BoostPyTest::BoostPyTest()
|
|||
" print 'MyCallback, would could work with p.greet or lambda: as well'\n"
|
||||
"upp.sl.whenaction = ff\n"
|
||||
|
||||
"sl2 = upp.SliderCtrl()\n"
|
||||
"sl2.rightpos(0,200)\n"
|
||||
"sl2.bottompos(0,40)\n"
|
||||
"sl2.whenaction = ff\n"
|
||||
"sl2.data = 12\n"
|
||||
"upp.app.add(sl2)\n"
|
||||
;
|
||||
con.cmd.SetData(sc);
|
||||
|
||||
|
|
|
|||
|
|
@ -9,11 +9,20 @@ void export_world()
|
|||
{
|
||||
ONCELOCK
|
||||
{
|
||||
class_<World>("World", "A simple world")
|
||||
.def("__str__", &World::greet) //somehow works only for print not for general return as string echo
|
||||
class_<World, boost::noncopyable>("World", "A simple world")
|
||||
//.def(init<const World&>())
|
||||
.def("__str__", &World::get) //somehow works only for print not for general return as string echo
|
||||
.def("greet", &World::greet)
|
||||
.def("get", &World::get)
|
||||
.def("set", &World::set)
|
||||
;
|
||||
|
||||
class_<Universe, bases<World>, boost::noncopyable >("Universe", "A simple Universe")
|
||||
//.def(init<const World&>())
|
||||
.def("__str__", &Universe::getg) //somehow works only for print not for general return as string echo
|
||||
.def("getg", &Universe::getg)
|
||||
.def("setg", &Universe::setg)
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,8 +6,32 @@
|
|||
struct World
|
||||
{
|
||||
void set(std::string msg) { this->msg = msg; }
|
||||
std::string greet() const { return msg; }
|
||||
std::string get() const { return msg; }
|
||||
std::string msg;
|
||||
|
||||
void greet()
|
||||
{
|
||||
PySys_WriteStdout("%.100s", msg.data());
|
||||
}
|
||||
|
||||
World() {}
|
||||
protected:
|
||||
World(const World& w) {
|
||||
msg = w.msg;
|
||||
}
|
||||
};
|
||||
|
||||
struct Universe : public World
|
||||
{
|
||||
double g;
|
||||
void setg(double _g) { g = _g; }
|
||||
double getg() const { return g; }
|
||||
|
||||
Universe() { g = 9.81; }
|
||||
|
||||
#if 0
|
||||
Universe(const Universe& u) : World(u), g(u.g) {}
|
||||
#endif
|
||||
};
|
||||
|
||||
NAMESPACE_UPP
|
||||
|
|
|
|||
|
|
@ -11,12 +11,10 @@ struct CallbackActionPy : public CallbackAction {
|
|||
|
||||
bool CallbackIsValid(const Callback& c) { return c; }
|
||||
|
||||
#if 0
|
||||
struct Callback_to_python //FIXME translation of Callback internals to python
|
||||
{
|
||||
static PyObject* convert(const Callback& s) { return incref(object(s.Begin()).ptr()); }
|
||||
static PyObject* convert(const Callback& s) { return incref(object(s).ptr()); }
|
||||
};
|
||||
#endif
|
||||
|
||||
struct Callback_from_python
|
||||
{
|
||||
|
|
@ -30,6 +28,7 @@ struct Callback_from_python
|
|||
if(po == Py_None) return po;
|
||||
if(PyFunction_Check(po)) return po;
|
||||
if(PyCallable_Check(po) && PyMethod_Self(po)) return po;
|
||||
if(extract<Callback&>(po).check()) return po;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -51,6 +50,14 @@ struct Callback_from_python
|
|||
{
|
||||
new(d) Callback(new CallbackActionPy(po));
|
||||
}
|
||||
#if 1 //actually isnt used anywhere so far
|
||||
else
|
||||
if(extract<Callback&>(po).check())
|
||||
{
|
||||
Callback& c = extract<Callback&>(po);
|
||||
new(d) Callback(c);
|
||||
}
|
||||
#endif
|
||||
else
|
||||
{
|
||||
throw_error_already_set(); //FIXME dont know type, which to throw?
|
||||
|
|
@ -64,10 +71,11 @@ void export_Callback()
|
|||
{
|
||||
ONCELOCK
|
||||
{
|
||||
//to_python_converter<String, String_to_python_str>();
|
||||
//to_python_converter<Callback, Callback_to_python>();
|
||||
Callback_from_python();
|
||||
|
||||
class_<Callback>("Point", "Upp Callback")
|
||||
class_<Callback>("Callback", "Upp Callback")
|
||||
.def(init<const Callback&>())
|
||||
.def("clear", &Callback::Clear)
|
||||
.def("valid", &CallbackIsValid)
|
||||
.def("__call__", &Callback::Execute)
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ ONCELOCK
|
|||
{
|
||||
export_Core();
|
||||
export_LogPos();
|
||||
class_<Ctrl, boost::noncopyable>("Ctrl", "Upp Ctrl", no_init)
|
||||
class_<Ctrl, boost::noncopyable>("Ctrl", "Upp Ctrl")
|
||||
|
||||
.def("posleft", &Ctrl::PosLeft)
|
||||
.staticmethod("posleft")
|
||||
|
|
@ -163,6 +163,11 @@ ONCELOCK
|
|||
.add_property("transparent", &Ctrl::IsTransparent, &CtrlTransparent)
|
||||
.add_property("tip", &Ctrl::GetTip, &CtrlSetTip)
|
||||
|
||||
.def("add", &Ctrl::Add)
|
||||
.def("addchild", (void (Ctrl::*)(Ctrl*))&Ctrl::AddChild)
|
||||
.def("addchildafter", (void (Ctrl::*)(Ctrl*, Ctrl*))&Ctrl::AddChild)
|
||||
.def("addchildbefore", &Ctrl::AddChildBefore)
|
||||
|
||||
.def("__str__", &CtrlToString)
|
||||
;
|
||||
|
||||
|
|
@ -215,7 +220,7 @@ ONCELOCK
|
|||
.value("idexit", _IDEXIT)
|
||||
;
|
||||
|
||||
class_<TopWindow, bases<Ctrl>, TopWindow, boost::noncopyable>("TopWindow", "Upp TopWindow", no_init)
|
||||
class_<TopWindow, bases<Ctrl>, boost::noncopyable>("TopWindow", "Upp TopWindow", no_init)
|
||||
.def("backup", &TopWindow::Backup)
|
||||
.def("restore", &TopWindow::Restore)
|
||||
.def("break", &TopWindow::Break)
|
||||
|
|
|
|||
|
|
@ -7,37 +7,37 @@ void export_EditCtrl()
|
|||
{
|
||||
ONCELOCK
|
||||
{
|
||||
class_<EditField, bases<Ctrl>, EditField, boost::noncopyable>("EditField", "Upp EditField", no_init)
|
||||
class_<EditField, bases<Ctrl>, boost::noncopyable>("EditField", "Upp EditField")
|
||||
;
|
||||
|
||||
class_<EditString, bases<EditField>, EditString, boost::noncopyable>("EditString", "Upp EditString", no_init)
|
||||
class_<EditString, bases<EditField>, boost::noncopyable>("EditString", "Upp EditString")
|
||||
;
|
||||
class_<EditInt, bases<EditField>, EditInt, boost::noncopyable>("EditInt", "Upp EditInt", no_init)
|
||||
class_<EditInt, bases<EditField>, boost::noncopyable>("EditInt", "Upp EditInt")
|
||||
;
|
||||
class_<EditInt64, bases<EditField>, EditInt64, boost::noncopyable>("EditInt64", "Upp EditInt64", no_init)
|
||||
class_<EditInt64, bases<EditField>, boost::noncopyable>("EditInt64", "Upp EditInt64")
|
||||
;
|
||||
class_<EditDouble, bases<EditField>, EditDouble, boost::noncopyable>("EditDouble", "Upp EditDouble", no_init)
|
||||
class_<EditDouble, bases<EditField>, boost::noncopyable>("EditDouble", "Upp EditDouble")
|
||||
;
|
||||
class_<EditStringNotNull, bases<EditString>, EditStringNotNull, boost::noncopyable>("EditStringNotNull", "Upp EditStringNotNull", no_init)
|
||||
class_<EditStringNotNull, bases<EditString>, boost::noncopyable>("EditStringNotNull", "Upp EditStringNotNull")
|
||||
;
|
||||
class_<EditIntNotNull, bases<EditInt>, EditIntNotNull, boost::noncopyable>("EditIntNotNull", "Upp EditIntNotNull", no_init)
|
||||
class_<EditIntNotNull, bases<EditInt>, boost::noncopyable>("EditIntNotNull", "Upp EditIntNotNull")
|
||||
;
|
||||
class_<EditInt64NotNull, bases<EditInt64>, EditInt64NotNull, boost::noncopyable>("EditInt64NotNull", "Upp EditInt64NotNull", no_init)
|
||||
class_<EditInt64NotNull, bases<EditInt64>, boost::noncopyable>("EditInt64NotNull", "Upp EditInt64NotNull")
|
||||
;
|
||||
class_<EditDoubleNotNull, bases<EditDouble>, EditDoubleNotNull, boost::noncopyable>("EditDoubleNotNull", "Upp EditDoubleNotNull", no_init)
|
||||
class_<EditDoubleNotNull, bases<EditDouble>, boost::noncopyable>("EditDoubleNotNull", "Upp EditDoubleNotNull")
|
||||
;
|
||||
|
||||
class_<EditIntSpin, bases<EditInt>, EditIntSpin, boost::noncopyable>("EditIntSpin", "Upp EditIntSpin", no_init)
|
||||
class_<EditIntSpin, bases<EditInt>, boost::noncopyable>("EditIntSpin", "Upp EditIntSpin")
|
||||
;
|
||||
class_<EditInt64Spin, bases<EditInt64>, EditInt64Spin, boost::noncopyable>("EditInt64Spin", "Upp EditInt64Spin", no_init)
|
||||
class_<EditInt64Spin, bases<EditInt64>, boost::noncopyable>("EditInt64Spin", "Upp EditInt64Spin")
|
||||
;
|
||||
class_<EditDoubleSpin, bases<EditDouble>, EditDoubleSpin, boost::noncopyable>("EditDoubleSpin", "Upp EditDoubleSpin", no_init)
|
||||
class_<EditDoubleSpin, bases<EditDouble>, boost::noncopyable>("EditDoubleSpin", "Upp EditDoubleSpin")
|
||||
;
|
||||
class_<EditIntNotNullSpin, bases<EditIntSpin>, EditIntNotNullSpin, boost::noncopyable>("EditIntNotNullSpin", "Upp EditIntNotNullSpin", no_init)
|
||||
class_<EditIntNotNullSpin, bases<EditIntSpin>, boost::noncopyable>("EditIntNotNullSpin", "Upp EditIntNotNullSpin")
|
||||
;
|
||||
class_<EditInt64NotNullSpin, bases<EditInt64Spin>, EditInt64NotNullSpin, boost::noncopyable>("EditInt64NotNullSpin", "Upp EditInt64NotNullSpin", no_init)
|
||||
class_<EditInt64NotNullSpin, bases<EditInt64Spin>, boost::noncopyable>("EditInt64NotNullSpin", "Upp EditInt64NotNullSpin")
|
||||
;
|
||||
class_<EditDoubleNotNullSpin, bases<EditDoubleSpin>, EditDoubleNotNullSpin, boost::noncopyable>("EditDoubleNotNullSpin", "Upp EditDoubleNotNullSpin", no_init)
|
||||
class_<EditDoubleNotNullSpin, bases<EditDoubleSpin>, boost::noncopyable>("EditDoubleNotNullSpin", "Upp EditDoubleNotNullSpin")
|
||||
;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ void export_Progress()
|
|||
{
|
||||
ONCELOCK
|
||||
{
|
||||
class_<Progress, bases<TopWindow>, Progress, boost::noncopyable>("Progress", "Upp Progress", no_init)
|
||||
class_<Progress, bases<TopWindow>, boost::noncopyable>("Progress", "Upp Progress")
|
||||
.add_property("pos", &Progress::GetPos, &Progress::SetPos)
|
||||
.add_property("total", &Progress::GetTotal, &Progress::SetTotal)
|
||||
.add_property("text", &Progress::GetText, (void (Progress::*)(const String&))&Progress::SetText)
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ void export_SliderCtrl()
|
|||
{
|
||||
ONCELOCK
|
||||
{
|
||||
class_<SliderCtrl, bases<Ctrl>, SliderCtrl, boost::noncopyable>("SliderCtrl", "Upp SliderCtrl", no_init)
|
||||
class_<SliderCtrl, bases<Ctrl>, boost::noncopyable>("SliderCtrl", "Upp SliderCtrl")
|
||||
.def("inc", &SliderCtrl::Inc)
|
||||
.def("dec", &SliderCtrl::Dec)
|
||||
.def("step", &SliderCtrl::GetStep)
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ void export_ValueCtrl()
|
|||
{
|
||||
ONCELOCK
|
||||
{
|
||||
class_<ValueCtrl, bases<Ctrl>, ValueCtrl, boost::noncopyable>("ValueCtrl", "Upp ValueCtrl", no_init)
|
||||
class_<ValueCtrl, bases<Ctrl>, boost::noncopyable>("ValueCtrl", "Upp ValueCtrl")
|
||||
;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue