I've added the %operator tag to the bindings, just for wxPoint for
now. Since lua has only a limited subset of operators (no +=, ++, etc)
I've just made them into functions, which even if we wanted to
override the lua operators in the metatable we'd still use the
functions.

They take the same semantics as C++ class operator functions, just
prepend %operator to it.

    operators["="]  = "op_assign"
    operators["=="] = "op_eq"
    operators["!="] = "op_ne"
    operators["<"]  = "op_lt"
    operators[">"]  = "op_gt"
    operators["<="] = "op_le"
    operators[">="] = "op_ge"

    operators["|"]  = "op_or"
    operators["&"]  = "op_and"
    operators["||"] = "op_lor"
    operators["&&"] = "op_land"
    operators["!"]  = "op_not"

    operators["++"] = "op_inc"
    operators["--"] = "op_dec"

    operators["+"]  = "op_add"
    operators["-"]  = "op_sub"
    operators["*"]  = "op_mul"
    operators["/"]  = "op_div"

    operators["+="] = "op_add_eq"
    operators["-="] = "op_sub_eq"
    operators["*="] = "op_mul_eq"
    operators["/="] = "op_div_sub"
    operators["%="] = "op_mod_sub"
    operators["&="] = "op_and_eq"
    operators["|="] = "op_or_eq"
    operators["^="] = "op_xor_eq"

For example:

a = wx.wxPoint(1,2)
b = wx.wxPoint(1,2)
print(a:op_eq(b))
b = wx.wxPoint(1,3)
print(a:op_eq(b))
c = wx.wxSize(3,3)
d = b:op_add_eq(c)
print(d:GetX(), d:GetY())

true
false
4, 6

Regards,
    John Labenski


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid0944&bid$1720&dat1642
_______________________________________________
Wxlua-users mailing list
Wxlua-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wxlua-users

Reply via email to