#include #include #ifdef HAVE_CONFIG_H # include #endif #include "ns_colourable.eo.hh" #include "ns_colourablesquare.eo.hh" #include "ns_colourable.eo.impl.hh" #include "ns_colourablesquare.eo.impl.hh" #include using namespace efl; struct ColourableCircle : efl::eo::inherit { ColourableCircle(int rgb) : inherit_base(::ns::Colourable::rgb_24bits_constructor(rgb)) {} int colour_get() { int rgb = 0; rgb = ::ns_colourable_colour_get(eo_super(_eo_ptr(), _eo_class())); std::cout << "ColourableCircle::colour_get(" << this << ") ==> " << std::hex << rgb << std::endl; return rgb; } }; /* struct ColourableFoo : efl::eo::inherit { ColourableFoo(int size, int rgb) : inherit_base(efl::eo::args<::colourable>(size) , efl::eo::args<::colourablesquare>(rgb)) {} };*/ struct ColourableBar : efl::eo::inherit { ColourableBar() : inherit_base(::ns::Colourable::rgb_24bits_constructor(0)) {} int colour_get() { int rgb = 0; rgb = ::ns_colourable_colour_get(eo_super(_eo_ptr(), _eo_class())); std::cout << "ColourableBar::colour_get(" << this << ") ==> " << std::hex << rgb << std::endl; return rgb; } }; int main() { efl::eo::eo_init init; eina_log_domain_level_set("colourable", EINA_LOG_LEVEL_DBG); ColourableCircle obj1(0x0); obj1.composite_colour_set(0xc0, 0xff, 0xee); ColourableCircle obj2(0xc0ffee); int r, g, b; obj2.composite_colour_get(&r, &g, &b); ColourableBar obj3; obj3.composite_colour_get(&r, &g, &b); assert(r == 0xc0); assert(g == 0xff); assert(b == 0xee); assert(obj1.colour_get() == obj2.colour_get()); return 0; }