| %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; |
| } |
| |
| |
| |