swig/Examples/test-suite/extend_variable.i
Marcelo Matus baec2c1c62 add namespace case
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7808 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-11-05 12:36:38 +00:00

78 lines
935 B
OpenEdge ABL

%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
{
};
%}
class Foo {
public:
%extend {
static const int Bar = 42;
}
};
%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;
}