%module extend_variable // Tests %extend for variables %inline %{ class ExtendMe { double var; public: ExtendMe() : var(0.0) {} bool get(double &d) { d = var; return true; } bool set(const double &d) { var = d; return true; } }; %} %extend ExtendMe { double ExtendVar; }; %{ // If possible, all language modules should use this naming format for consistency void ExtendMe_ExtendVar_set(ExtendMe *thisptr, double value) { thisptr->set(value); } double ExtendMe_ExtendVar_get(ExtendMe *thisptr) { double value = 0; thisptr->get(value); return value; } %} %{ class Foo { }; %} #if SWIGJAVA %javaconst(1) AllBarOne; #elif SWIGCSHARP %csconst(1) AllBarOne; #endif class Foo { public: %extend { static const int Bar = 42; static const int AllBarOne = 4422; static const int StaticConstInt; static int StaticInt; } }; %{ int globalVariable = 1111; void Foo_StaticInt_set(int value) { globalVariable = value; } int Foo_StaticInt_get() { return globalVariable; } int Foo_StaticConstInt_get() { static int var = 2222; return var; } %} %inline { namespace ns1 { struct Bar { } ; } } %{ int ns1_Bar_x_get(ns1::Bar *self) { return 1; } void ns1_Bar_x_set(ns1::Bar *self, int x) { } %} %extend ns1::Bar { int x; }