swig/Examples/test-suite/director_enum.i
William S Fulton ea2a3a3925 const enum SWIGTYPE & typemap tests
more enum tests


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6781 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-11-28 19:13:27 +00:00

74 lines
1.5 KiB
OpenEdge ABL

%module(directors="1") director_enum
%warnfilter(801) EnumDirector::hi; /* Ruby, wrong constant name */
%warnfilter(801) EnumDirector::hello; /* Ruby, wrong constant name */
%warnfilter(801) EnumDirector::yo; /* Ruby, wrong constant name */
%warnfilter(801) EnumDirector::awright; /* Ruby, wrong constant name */
%feature("director") Foo;
%rename(Hallo) EnumDirector::Hello;
%inline %{
namespace EnumDirector {
struct A;
enum Hello {
hi, hello, yo, awright = 10
};
class Foo {
public:
virtual ~Foo() {}
virtual Hello say_hi(Hello h){ return h;}
virtual Hello say_hello(Hello){ return hello;}
virtual Hello say_hi(A *a){ return hi;}
virtual const Hello & say_hi_ref(const Hello & h){ printf("Foo:say_hi_ref %d\n", h); return h;}
Hello ping(Hello h){ return say_hi(h);}
const Hello & ping_ref(const Hello &h){ printf("Foo::ping_ref %d\n", h); return say_hi_ref(h);}
};
}
%}
%feature("director");
%inline %{
namespace EnumDirector {
enum FType{ SA = -1, NA=0, EA=1};
struct A{
A(const double a, const double b, const FType c)
{}
virtual ~A() {}
virtual int f(int i=0) {return i;}
};
struct B : public A{
B(const double a, const double b, const FType c)
: A(a, b, c)
{}
};
}
%}
%inline %{
namespace EnumDirector {
struct A2{
A2(const FType c = NA) {}
virtual ~A2() {}
virtual int f(int i=0) {return i;}
};
struct B2 : public A2{
B2(const FType c) : A2(c) {}
};
}
%}