/trunk/Examples/test-suite/extend_typedef_class.i

# · Swig · 81 lines · 61 code · 20 blank · 0 comment · 0 complexity · 4371679d60c160e1cd02215ac9dfdcf6 MD5 · raw file

  1. %module extend_typedef_class
  2. // classes in global namespace
  3. %inline %{
  4. typedef struct tagAClass {
  5. int membervar;
  6. } AClass;
  7. struct BClass {
  8. int membervar;
  9. };
  10. typedef struct tagCClass {
  11. int membervar;
  12. } CClass;
  13. // Unnamed struct
  14. typedef struct {
  15. int membervar;
  16. } DClass;
  17. %}
  18. %extend tagAClass {
  19. int getvar() { return $self->membervar; }
  20. }
  21. %extend BClass {
  22. int getvar() { return $self->membervar; }
  23. }
  24. %extend CClass {
  25. int getvar() { return $self->membervar; }
  26. }
  27. %extend DClass {
  28. int getvar() { return $self->membervar; }
  29. }
  30. // classes in a namespace
  31. %inline %{
  32. namespace Space {
  33. typedef struct tagAStruct {
  34. int membervar;
  35. } AStruct;
  36. struct BStruct {
  37. int membervar;
  38. };
  39. typedef struct tagCStruct {
  40. int membervar;
  41. } CStruct;
  42. // Unnamed struct
  43. typedef struct {
  44. int membervar;
  45. } DStruct;
  46. }
  47. %}
  48. namespace Space {
  49. %extend tagAStruct {
  50. int getvar() { return $self->membervar; }
  51. }
  52. %extend BStruct {
  53. int getvar() { return $self->membervar; }
  54. }
  55. %extend CStruct {
  56. int getvar() { return $self->membervar; }
  57. }
  58. %extend DStruct {
  59. int getvar() { return $self->membervar; }
  60. }
  61. }