wxruby3 0.9.0 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/ext/wxruby3/include/wxruby-runtime.h +3 -0
  3. data/ext/wxruby3/swig/common.i +22 -0
  4. data/ext/wxruby3/swig/custom/director.swg +296 -0
  5. data/ext/wxruby3/swig/custom/rubyapi.swg +19 -0
  6. data/ext/wxruby3/swig/custom/rubyerrors.swg +45 -0
  7. data/ext/wxruby3/swig/custom/rubyhead.swg +192 -0
  8. data/ext/wxruby3/swig/custom/rubyrun.swg +187 -0
  9. data/ext/wxruby3/swig/custom/swigrun.swg +363 -0
  10. data/ext/wxruby3/swig/custom/typemaps/swigtypemaps.swg +173 -0
  11. data/ext/wxruby3/swig/wx.i +50 -30
  12. data/lib/wx/core/const.rb +83 -0
  13. data/lib/wx/doc/const.rb +66 -66
  14. data/lib/wx/doc/event.rb +0 -6
  15. data/lib/wx/doc/functions.rb +9 -9
  16. data/lib/wx/doc/window.rb +5 -0
  17. data/lib/wx/keyword_defs.rb +43 -6
  18. data/lib/wx/version.rb +1 -1
  19. data/rakelib/lib/config/macosx.rb +1 -1
  20. data/rakelib/lib/core/include/funcall.inc +33 -14
  21. data/rakelib/lib/core/include/swigdirector.inc +384 -0
  22. data/rakelib/lib/core/include/swigrubyerrors.inc +161 -0
  23. data/{ext/wxruby3/swig/custom/swig4/rubyrun.swg → rakelib/lib/core/include/swigrubyrun.inc} +245 -120
  24. data/rakelib/lib/core/include/swigrun.inc +700 -0
  25. data/rakelib/lib/core/package.rb +5 -2
  26. data/rakelib/lib/core/parameter.rb +3 -0
  27. data/rakelib/lib/director/accelerator.rb +1 -1
  28. data/rakelib/lib/director/animation.rb +1 -1
  29. data/rakelib/lib/director/animation_ctrl.rb +20 -0
  30. data/rakelib/lib/director/app.rb +23 -5
  31. data/rakelib/lib/director/art_provider.rb +1 -1
  32. data/rakelib/lib/director/data_object_simple_base.rb +1 -2
  33. data/rakelib/lib/director/dialog.rb +5 -0
  34. data/rakelib/lib/director/dialup_event.rb +44 -0
  35. data/rakelib/lib/director/dialup_manager.rb +45 -0
  36. data/rakelib/lib/director/event.rb +20 -2
  37. data/rakelib/lib/director/file_ctrl.rb +35 -0
  38. data/rakelib/lib/director/file_ctrl_event.rb +26 -0
  39. data/rakelib/lib/director/gdicommon.rb +19 -1
  40. data/rakelib/lib/director/grid_cell_editor.rb +6 -6
  41. data/rakelib/lib/director/help_controller.rb +1 -1
  42. data/rakelib/lib/director/pgarray_editor_dialog.rb +0 -6
  43. data/rakelib/lib/director/pgeditor.rb +2 -2
  44. data/rakelib/lib/director/pgproperties.rb +2 -2
  45. data/rakelib/lib/director/richtext_buffer.rb +1 -1
  46. data/rakelib/lib/director/richtext_ctrl.rb +1 -1
  47. data/rakelib/lib/director/sash_event.rb +42 -0
  48. data/rakelib/lib/director/sizer.rb +64 -1
  49. data/rakelib/lib/director/sizer_item.rb +22 -0
  50. data/rakelib/lib/director/task_bar_icon.rb +1 -1
  51. data/rakelib/lib/director/tree_ctrl.rb +19 -44
  52. data/rakelib/lib/generate/doc/animation_ctrl.yaml +15 -0
  53. data/rakelib/lib/generate/doc/events.yaml +10 -4
  54. data/rakelib/lib/generate/doc/static_box.yaml +8 -0
  55. data/rakelib/lib/generate/doc/xml_resource.yaml +3 -0
  56. data/rakelib/lib/generate/doc.rb +14 -3
  57. data/rakelib/lib/generate/interface.rb +4 -3
  58. data/rakelib/lib/specs/interfaces.rb +5 -1
  59. data/rakelib/lib/swig_runner.rb +4 -50
  60. data/rakelib/lib/typemap/common.rb +24 -9
  61. data/rakelib/lib/typemap/data_format.rb +1 -1
  62. data/rakelib/lib/typemap/data_object_data.rb +2 -2
  63. data/rakelib/lib/typemap/pgprop_arg.rb +7 -2
  64. data/rakelib/lib/typemap/points_list.rb +5 -7
  65. data/rakelib/lib/util/string.rb +10 -8
  66. data/samples/text/richtext.rb +0 -30
  67. data/tests/test_app_exit_exception.rb +36 -0
  68. data/tests/test_app_init_exception.rb +20 -0
  69. data/tests/test_book_controls.rb +29 -0
  70. data/tests/test_exceptions.rb +41 -0
  71. data/tests/test_sizer.rb +43 -0
  72. data/tests/test_std_controls.rb +36 -0
  73. metadata +25 -4
  74. data/ext/wxruby3/swig/custom/swig3/rubyrun.swg +0 -456
@@ -1,58 +1,134 @@
1
- /* -----------------------------------------------------------------------------
2
- * rubyrun.swg
3
- *
4
- * This file contains the runtime support for Ruby modules
5
- * and includes code for managing global variables and pointer
6
- * type checking.
7
- * ----------------------------------------------------------------------------- */
8
-
9
- /* For backward compatibility only */
10
- #define SWIG_POINTER_EXCEPTION 0
11
-
12
- /* for raw pointers */
13
- #define SWIG_ConvertPtr(obj, pptr, type, flags) SWIG_Ruby_ConvertPtrAndOwn(obj, pptr, type, flags, 0)
14
- #define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own) SWIG_Ruby_ConvertPtrAndOwn(obj, pptr, type, flags, own)
15
- #define SWIG_NewPointerObj(ptr, type, flags) SWIG_Ruby_NewPointerObj(ptr, type, flags)
16
- #define SWIG_AcquirePtr(ptr, own) SWIG_Ruby_AcquirePtr(ptr, own)
17
- #define swig_owntype swig_ruby_owntype
18
-
19
- /* for raw packed data */
20
- #define SWIG_ConvertPacked(obj, ptr, sz, ty) SWIG_Ruby_ConvertPacked(obj, ptr, sz, ty, flags)
21
- #define SWIG_NewPackedObj(ptr, sz, type) SWIG_Ruby_NewPackedObj(ptr, sz, type)
1
+ // Copyright (c) 2023 M.J.N. Corino, The Netherlands
2
+ //
3
+ // This software is released under the MIT license.
22
4
 
23
- /* for class or struct pointers */
24
- #define SWIG_ConvertInstance(obj, pptr, type, flags) SWIG_ConvertPtr(obj, pptr, type, flags)
25
- #define SWIG_NewInstanceObj(ptr, type, flags) SWIG_NewPointerObj(ptr, type, flags)
5
+ // SWIG Ruby runtime
26
6
 
27
- /* for C or C++ function pointers */
28
- #define SWIG_ConvertFunctionPtr(obj, pptr, type) SWIG_ConvertPtr(obj, pptr, type, 0)
29
- #define SWIG_NewFunctionPtrObj(ptr, type) SWIG_NewPointerObj(ptr, type, 0)
7
+ /* From rubytracking.swg */
30
8
 
31
- /* for C++ member pointers, ie, member methods */
32
- #define SWIG_ConvertMember(obj, ptr, sz, ty) SWIG_Ruby_ConvertPacked(obj, ptr, sz, ty)
33
- #define SWIG_NewMemberObj(ptr, sz, type) SWIG_Ruby_NewPackedObj(ptr, sz, type)
34
-
35
-
36
- /* Runtime API */
9
+ #ifdef __cplusplus
10
+ extern "C" {
11
+ #endif
12
+ // Shared custom swig tracking functions
13
+ WXRB_EXPORT_FLAG void wxRuby_AddTracking(void* ptr, VALUE object);
14
+ WXRB_EXPORT_FLAG VALUE wxRuby_FindTracking(void* ptr);
15
+ WXRB_EXPORT_FLAG void wxRuby_RemoveTracking(void* ptr);
16
+ WXRB_EXPORT_FLAG void wxRuby_IterateTracking( void(*meth)(void* ptr, VALUE obj) );
17
+ /* Setup a Ruby hash table to store Trackings - mostly done in wx.i */
18
+ SWIGRUNTIMEINLINE void SWIG_RubyInitializeTrackings(void)
19
+ {
20
+ // no-op
21
+ }
22
+ /* Add a Tracking from a C/C++ struct to a Ruby object */
23
+ SWIGRUNTIMEINLINE void SWIG_RubyAddTracking(void* ptr, VALUE object)
24
+ {
25
+ wxRuby_AddTracking(ptr, object);
26
+ }
27
+ /* Get the Ruby object that owns the specified C/C++ struct */
28
+ SWIGRUNTIMEINLINE VALUE SWIG_RubyInstanceFor(void* ptr)
29
+ {
30
+ return wxRuby_FindTracking(ptr);
31
+ }
32
+ /* Remove a Tracking from a C/C++ struct to a Ruby object. It
33
+ is very important to remove objects once they are destroyed
34
+ since the same memory address may be reused later to create
35
+ a new object. */
36
+ SWIGRUNTIMEINLINE void SWIG_RubyRemoveTracking(void* ptr)
37
+ {
38
+ wxRuby_RemoveTracking(ptr);
39
+ }
40
+ /* This is a helper method that unlinks a Ruby object from its
41
+ underlying C++ object. This is needed if the lifetime of the
42
+ Ruby object is longer than the C++ object */
43
+ SWIGRUNTIMEINLINE void SWIG_RubyUnlinkObjects(void* ptr)
44
+ {
45
+ VALUE object = SWIG_RubyInstanceFor(ptr);
46
+ if (object != Qnil)
47
+ {
48
+ DATA_PTR(object) = 0;
49
+ }
50
+ }
51
+ #ifdef __cplusplus
52
+ }
53
+ #endif
37
54
 
38
- #define SWIG_GetModule(clientdata) SWIG_Ruby_GetModule(clientdata)
39
- #define SWIG_SetModule(clientdata, pointer) SWIG_Ruby_SetModule(pointer)
55
+ /* From rubyapi.swg */
40
56
 
57
+ #ifdef __cplusplus
58
+ extern "C" {
59
+ #endif
41
60
 
42
- /* Error manipulation */
61
+ WXRB_EXPORT_FLAG VALUE
62
+ SWIG_Ruby_AppendOutput(VALUE target, VALUE o)
63
+ {
64
+ if (NIL_P(target))
65
+ {
66
+ target = o;
67
+ }
68
+ else
69
+ {
70
+ if (TYPE(target) != T_ARRAY)
71
+ {
72
+ VALUE o2 = target;
73
+ target = rb_ary_new();
74
+ rb_ary_push(target, o2);
75
+ }
76
+ rb_ary_push(target, o);
77
+ }
78
+ return target;
79
+ }
43
80
 
44
- #define SWIG_ErrorType(code) SWIG_Ruby_ErrorType(code)
45
- #define SWIG_Error(code, msg) rb_raise(SWIG_Ruby_ErrorType(code), "%s", msg)
46
- #define SWIG_fail goto fail
81
+ #ifdef __cplusplus
82
+ }
83
+ #endif
47
84
 
85
+ /*
86
+ * The following macros are used for providing the correct type of a
87
+ * function pointer to the Ruby C API.
88
+ *
89
+ * Starting with Ruby 2.7 these macros act transparently due to Ruby's moving
90
+ * moving away from ANYARGS and instead employing strict function signatures.
91
+ *
92
+ * Note: In case of C (not C++) the macros are transparent even before
93
+ * Ruby 2.7 due to the fact that the Ruby C API used function declarators
94
+ * with empty parentheses, which allows for an unspecified number of
95
+ * arguments.
96
+ *
97
+ * PROTECTFUNC(f) is used for the function pointer argument of the Ruby
98
+ * C API function rb_protect().
99
+ *
100
+ * VALUEFUNC(f) is used for the function pointer argument(s) of Ruby C API
101
+ * functions like rb_define_method() and rb_define_singleton_method().
102
+ *
103
+ * VOIDFUNC(f) is used to typecast a C function that implements either
104
+ * the "mark" or "free" stuff for a Ruby Data object, so that it can be
105
+ * passed as an argument to Ruby C API functions like Data_Wrap_Struct()
106
+ * and Data_Make_Struct().
107
+ *
108
+ * SWIG_RUBY_VOID_ANYARGS_FUNC(f) is used for the function pointer
109
+ * argument(s) of Ruby C API functions like rb_define_virtual_variable().
110
+ *
111
+ * SWIG_RUBY_INT_ANYARGS_FUNC(f) is used for the function pointer
112
+ * argument(s) of Ruby C API functions like st_foreach().
113
+ */
114
+ #if defined(__cplusplus) && RUBY_API_VERSION_CODE < 20700
115
+ # define PROTECTFUNC(f) ((VALUE (*)(VALUE)) f)
116
+ # define VALUEFUNC(f) ((VALUE (*)(ANYARGS)) f)
117
+ # define VOIDFUNC(f) ((RUBY_DATA_FUNC) f)
118
+ # define SWIG_RUBY_VOID_ANYARGS_FUNC(f) ((void (*)(ANYARGS))(f))
119
+ # define SWIG_RUBY_INT_ANYARGS_FUNC(f) ((int (*)(ANYARGS))(f))
120
+ #else
121
+ # define PROTECTFUNC(f) (f)
122
+ # define VALUEFUNC(f) (f)
123
+ # define VOIDFUNC(f) (f)
124
+ # define SWIG_RUBY_VOID_ANYARGS_FUNC(f) (f)
125
+ # define SWIG_RUBY_INT_ANYARGS_FUNC(f) (f)
126
+ #endif
48
127
 
49
- /* Ruby-specific SWIG API */
128
+ #define SWIG_MangleStr(value) SWIG_Ruby_MangleStr(value)
129
+ #define SWIG_CheckConvert(value, ty) SWIG_Ruby_CheckConvert(value, ty)
50
130
 
51
- #define SWIG_InitRuntime() SWIG_Ruby_InitRuntime()
52
- #define SWIG_define_class(ty) SWIG_Ruby_define_class(ty)
53
- #define SWIG_NewClassInstance(value, ty) SWIG_Ruby_NewClassInstance(value, ty)
54
- #define SWIG_MangleStr(value) SWIG_Ruby_MangleStr(value)
55
- #define SWIG_CheckConvert(value, ty) SWIG_Ruby_CheckConvert(value, ty)
131
+ static VALUE _mSWIG = Qnil;
56
132
 
57
133
  #include "assert.h"
58
134
 
@@ -64,7 +140,8 @@
64
140
  extern "C" {
65
141
  #endif
66
142
 
67
- typedef struct {
143
+ typedef struct WXRB_EXPORT_FLAG swig_class
144
+ {
68
145
  VALUE klass;
69
146
  VALUE mImpl;
70
147
  void (*mark)(void *);
@@ -72,7 +149,6 @@ typedef struct {
72
149
  int trackObjects;
73
150
  } swig_class;
74
151
 
75
-
76
152
  /* Global pointer used to keep some internal SWIG stuff */
77
153
  static VALUE _cSWIG_Pointer = Qnil;
78
154
  static VALUE swig_runtime_data_type_pointer = Qnil;
@@ -83,9 +159,9 @@ static ID swig_call_id = 0;
83
159
 
84
160
  /*
85
161
  If your swig extension is to be run within an embedded ruby and has
86
- director callbacks, you should set -DRUBY_EMBEDDED during compilation.
87
- This will reset ruby's stack frame on each entry point from the main
88
- program the first time a virtual director function is invoked (in a
162
+ director callbacks, you should set -DRUBY_EMBEDDED during compilation.
163
+ This will reset ruby's stack frame on each entry point from the main
164
+ program the first time a virtual director function is invoked (in a
89
165
  non-recursive way).
90
166
  If this is not done, you run the risk of Ruby trashing the stack.
91
167
  */
@@ -111,36 +187,43 @@ static ID swig_call_id = 0;
111
187
  #endif /* RUBY_EMBEDDED */
112
188
 
113
189
 
114
- SWIGRUNTIME VALUE
115
- getExceptionClass(void) {
190
+ SWIGRUNTIME VALUE
191
+ getExceptionClass(void)
192
+ {
116
193
  static int init = 0;
117
194
  static VALUE rubyExceptionClass ;
118
- if (!init) {
195
+ if (!init)
196
+ {
119
197
  init = 1;
120
198
  rubyExceptionClass = rb_const_get(_mSWIG, rb_intern("Exception"));
121
199
  }
122
200
  return rubyExceptionClass;
123
- }
201
+ }
124
202
 
125
203
  /* This code checks to see if the Ruby object being raised as part
126
204
  of an exception inherits from the Ruby class Exception. If so,
127
205
  the object is simply returned. If not, then a new Ruby exception
128
206
  object is created and that will be returned to Ruby.*/
129
- SWIGRUNTIME VALUE
130
- SWIG_Ruby_ExceptionType(swig_type_info *desc, VALUE obj) {
207
+ WXRB_EXPORT_FLAG VALUE
208
+ SWIG_Ruby_ExceptionType(swig_type_info *desc, VALUE obj)
209
+ {
131
210
  VALUE exceptionClass = getExceptionClass();
132
- if (rb_obj_is_kind_of(obj, exceptionClass)) {
211
+ if (rb_obj_is_kind_of(obj, exceptionClass))
212
+ {
133
213
  return obj;
134
- } else {
214
+ }
215
+ else
216
+ {
135
217
  return rb_exc_new3(rb_eRuntimeError, rb_obj_as_string(obj));
136
218
  }
137
219
  }
138
220
 
139
221
  /* Initialize Ruby runtime support */
140
- SWIGRUNTIME void
222
+ WXRB_EXPORT_FLAG void
141
223
  SWIG_Ruby_InitRuntime(void)
142
224
  {
143
- if (_mSWIG == Qnil) {
225
+ if (_mSWIG == Qnil)
226
+ {
144
227
  _mSWIG = rb_define_module("SWIG");
145
228
  swig_call_id = rb_intern("call");
146
229
  swig_arity_id = rb_intern("arity");
@@ -148,12 +231,13 @@ SWIG_Ruby_InitRuntime(void)
148
231
  }
149
232
 
150
233
  /* Define Ruby class for C type */
151
- SWIGRUNTIME void
234
+ WXRB_EXPORT_FLAG void
152
235
  SWIG_Ruby_define_class(swig_type_info *type)
153
236
  {
154
237
  char *klass_name = (char *) malloc(4 + strlen(type->name) + 1);
155
238
  sprintf(klass_name, "TYPE%s", type->name);
156
- if (NIL_P(_cSWIG_Pointer)) {
239
+ if (NIL_P(_cSWIG_Pointer))
240
+ {
157
241
  _cSWIG_Pointer = rb_define_class_under(_mSWIG, "Pointer", rb_cObject);
158
242
  rb_undef_method(CLASS_OF(_cSWIG_Pointer), "new");
159
243
  }
@@ -162,10 +246,10 @@ SWIG_Ruby_define_class(swig_type_info *type)
162
246
  }
163
247
 
164
248
  /* Create a new pointer object */
165
- SWIGRUNTIME VALUE
249
+ WXRB_EXPORT_FLAG VALUE
166
250
  SWIG_Ruby_NewPointerObj(void *ptr, swig_type_info *type, int flags)
167
251
  {
168
- int own = flags & SWIG_POINTER_OWN;
252
+ int own = flags & SWIG_POINTER_OWN;
169
253
  int track;
170
254
  char *klass_name;
171
255
  swig_class *sklass;
@@ -176,38 +260,47 @@ SWIG_Ruby_NewPointerObj(void *ptr, swig_type_info *type, int flags)
176
260
  return Qnil;
177
261
 
178
262
  assert(type);
179
- if (type->clientdata) {
263
+ if (type->clientdata)
264
+ {
180
265
  sklass = (swig_class *) type->clientdata;
181
-
266
+
182
267
  /* Are we tracking this class and have we already returned this Ruby object? */
183
268
  track = sklass->trackObjects;
184
- if (track) {
269
+ if (track)
270
+ {
185
271
  obj = SWIG_RubyInstanceFor(ptr);
186
272
 
187
273
  /* Check the object's type and make sure it has the correct type.
188
- It might not in cases where methods do things like
274
+ It might not in cases where methods do things like
189
275
  downcast methods. */
190
- if (obj != Qnil) {
276
+ if (obj != Qnil)
277
+ {
278
+ // wxRuby : Note that we also track non-SWIG types so the return
279
+ // value might be nil
191
280
  VALUE value = rb_iv_get(obj, "@__swigtype__");
192
- const char* type_name = RSTRING_PTR(value);
193
-
194
- if (strcmp(type->name, type_name) == 0) {
281
+
282
+ // wxRuby : allow returning tracked objects of derived classes
283
+ if (!NIL_P(value) && rb_obj_is_kind_of(obj, sklass->klass))
284
+ {
195
285
  return obj;
196
286
  }
197
287
  }
198
288
  }
199
289
 
200
290
  /* Create a new Ruby object */
201
- obj = Data_Wrap_Struct(sklass->klass, VOIDFUNC(sklass->mark),
202
- ( own ? VOIDFUNC(sklass->destroy) :
291
+ obj = Data_Wrap_Struct(sklass->klass, VOIDFUNC(sklass->mark),
292
+ ( own ? VOIDFUNC(sklass->destroy) :
203
293
  (track ? VOIDFUNC(SWIG_RubyRemoveTracking) : 0 )
204
294
  ), ptr);
205
295
 
206
296
  /* If tracking is on for this class then track this object. */
207
- if (track) {
297
+ if (track)
298
+ {
208
299
  SWIG_RubyAddTracking(ptr, obj);
209
300
  }
210
- } else {
301
+ }
302
+ else
303
+ {
211
304
  klass_name = (char *) malloc(4 + strlen(type->name) + 1);
212
305
  sprintf(klass_name, "TYPE%s", type->name);
213
306
  klass = rb_const_get(_mSWIG, rb_intern(klass_name));
@@ -220,7 +313,7 @@ SWIG_Ruby_NewPointerObj(void *ptr, swig_type_info *type, int flags)
220
313
  }
221
314
 
222
315
  /* Create a new class instance (always owned) */
223
- SWIGRUNTIME VALUE
316
+ WXRB_EXPORT_FLAG VALUE
224
317
  SWIG_Ruby_NewClassInstance(VALUE klass, swig_type_info *type)
225
318
  {
226
319
  VALUE obj;
@@ -231,7 +324,7 @@ SWIG_Ruby_NewClassInstance(VALUE klass, swig_type_info *type)
231
324
  }
232
325
 
233
326
  /* Get type mangle from class name */
234
- SWIGRUNTIMEINLINE char *
327
+ WXRB_EXPORT_FLAG char *
235
328
  SWIG_Ruby_MangleStr(VALUE obj)
236
329
  {
237
330
  VALUE stype = rb_iv_get(obj, "@__swigtype__");
@@ -241,15 +334,18 @@ SWIG_Ruby_MangleStr(VALUE obj)
241
334
  }
242
335
 
243
336
  /* Acquire a pointer value */
244
- typedef struct {
337
+ typedef struct WXRB_EXPORT_FLAG swig_ruby_owntype
338
+ {
245
339
  void (*datafree)(void *);
246
340
  int own;
247
341
  } swig_ruby_owntype;
248
342
 
249
- SWIGRUNTIME swig_ruby_owntype
250
- SWIG_Ruby_AcquirePtr(VALUE obj, swig_ruby_owntype own) {
343
+ WXRB_EXPORT_FLAG swig_ruby_owntype
344
+ SWIG_Ruby_AcquirePtr(VALUE obj, swig_ruby_owntype own)
345
+ {
251
346
  swig_ruby_owntype oldown = {0, 0};
252
- if (TYPE(obj) == T_DATA && !RTYPEDDATA_P(obj)) {
347
+ if (TYPE(obj) == T_DATA && !RTYPEDDATA_P(obj))
348
+ {
253
349
  oldown.datafree = RDATA(obj)->dfree;
254
350
  RDATA(obj)->dfree = own.datafree;
255
351
  }
@@ -257,7 +353,7 @@ SWIG_Ruby_AcquirePtr(VALUE obj, swig_ruby_owntype own) {
257
353
  }
258
354
 
259
355
  /* Convert a pointer value */
260
- SWIGRUNTIME int
356
+ WXRB_EXPORT_FLAG int
261
357
  SWIG_Ruby_ConvertPtrAndOwn(VALUE obj, void **ptr, swig_type_info *ty, int flags, swig_ruby_owntype *own)
262
358
  {
263
359
  char *c;
@@ -265,71 +361,94 @@ SWIG_Ruby_ConvertPtrAndOwn(VALUE obj, void **ptr, swig_type_info *ty, int flags,
265
361
  void *vptr = 0;
266
362
 
267
363
  /* Grab the pointer */
268
- if (NIL_P(obj)) {
364
+ if (NIL_P(obj))
365
+ {
269
366
  if (ptr)
270
367
  *ptr = 0;
271
368
  return (flags & SWIG_POINTER_NO_NULL) ? SWIG_NullReferenceError : SWIG_OK;
272
- } else {
273
- if (TYPE(obj) != T_DATA || (TYPE(obj) == T_DATA && RTYPEDDATA_P(obj))) {
369
+ }
370
+ else
371
+ {
372
+ if (TYPE(obj) != T_DATA || (TYPE(obj) == T_DATA && RTYPEDDATA_P(obj)))
373
+ {
274
374
  return SWIG_ERROR;
275
375
  }
276
376
  Data_Get_Struct(obj, void, vptr);
277
377
  }
278
-
279
- if (own) {
378
+
379
+ if (own)
380
+ {
280
381
  own->datafree = RDATA(obj)->dfree;
281
382
  own->own = 0;
282
383
  }
283
384
 
284
385
  /* Check to see if the input object is giving up ownership
285
386
  of the underlying C struct or C++ object. If so then we
286
- need to reset the destructor since the Ruby object no
287
- longer owns the underlying C++ object.*/
288
- if (flags & SWIG_POINTER_DISOWN) {
387
+ need to reset the destructor since the Ruby object no
388
+ longer owns the underlying C++ object.*/
389
+ if (flags & SWIG_POINTER_DISOWN)
390
+ {
289
391
  /* Is tracking on for this class? */
290
392
  int track = 0;
291
- if (ty && ty->clientdata) {
393
+ if (ty && ty->clientdata)
394
+ {
292
395
  swig_class *sklass = (swig_class *) ty->clientdata;
293
396
  track = sklass->trackObjects;
294
397
  }
295
398
 
296
- if (track) {
399
+ if (track)
400
+ {
297
401
  /* We are tracking objects for this class. Thus we change the destructor
298
402
  * to SWIG_RubyRemoveTracking. This allows us to
299
403
  * remove the mapping from the C++ to Ruby object
300
404
  * when the Ruby object is garbage collected. If we don't
301
- * do this, then it is possible we will return a reference
405
+ * do this, then it is possible we will return a reference
302
406
  * to a Ruby object that no longer exists thereby crashing Ruby. */
303
407
  RDATA(obj)->dfree = SWIG_RubyRemoveTracking;
304
- } else {
408
+ }
409
+ else
410
+ {
305
411
  RDATA(obj)->dfree = 0;
306
412
  }
307
413
  }
308
414
 
309
415
  /* Do type-checking if type info was provided */
310
- if (ty) {
311
- if (ty->clientdata) {
312
- if (rb_obj_is_kind_of(obj, ((swig_class *) (ty->clientdata))->klass)) {
313
- if (vptr == 0) {
416
+ if (ty)
417
+ {
418
+ if (ty->clientdata)
419
+ {
420
+ if (rb_obj_is_kind_of(obj, ((swig_class *) (ty->clientdata))->klass))
421
+ {
422
+ if (vptr == 0)
423
+ {
314
424
  /* The object has already been deleted */
315
425
  return SWIG_ObjectPreviouslyDeletedError;
316
426
  }
317
427
  }
318
428
  }
319
- if ((c = SWIG_MangleStr(obj)) == NULL) {
429
+ if ((c = SWIG_MangleStr(obj)) == NULL)
430
+ {
320
431
  return SWIG_ERROR;
321
432
  }
322
433
  tc = SWIG_TypeCheck(c, ty);
323
- if (!tc) {
434
+ if (!tc)
435
+ {
324
436
  return SWIG_ERROR;
325
- } else {
326
- if (ptr) {
327
- if (tc->type == ty) {
437
+ }
438
+ else
439
+ {
440
+ if (ptr)
441
+ {
442
+ if (tc->type == ty)
443
+ {
328
444
  *ptr = vptr;
329
- } else {
445
+ }
446
+ else
447
+ {
330
448
  int newmemory = 0;
331
449
  *ptr = SWIG_TypeCast(tc, vptr, &newmemory);
332
- if (newmemory == SWIG_CAST_NEW_MEMORY) {
450
+ if (newmemory == SWIG_CAST_NEW_MEMORY)
451
+ {
333
452
  assert(own); /* badly formed typemap which will lead to a memory leak - it must set and use own to delete *ptr */
334
453
  if (own)
335
454
  own->own = own->own | SWIG_CAST_NEW_MEMORY;
@@ -337,16 +456,18 @@ SWIG_Ruby_ConvertPtrAndOwn(VALUE obj, void **ptr, swig_type_info *ty, int flags,
337
456
  }
338
457
  }
339
458
  }
340
- } else {
459
+ }
460
+ else
461
+ {
341
462
  if (ptr)
342
463
  *ptr = vptr;
343
464
  }
344
-
465
+
345
466
  return SWIG_OK;
346
467
  }
347
468
 
348
469
  /* Check convert */
349
- SWIGRUNTIMEINLINE int
470
+ WXRB_EXPORT_FLAG int
350
471
  SWIG_Ruby_CheckConvert(VALUE obj, swig_type_info *ty)
351
472
  {
352
473
  char *c = SWIG_MangleStr(obj);
@@ -354,8 +475,9 @@ SWIG_Ruby_CheckConvert(VALUE obj, swig_type_info *ty)
354
475
  return SWIG_TypeCheck(c,ty) != 0;
355
476
  }
356
477
 
357
- SWIGRUNTIME VALUE
358
- SWIG_Ruby_NewPackedObj(void *ptr, int sz, swig_type_info *type) {
478
+ WXRB_EXPORT_FLAG VALUE
479
+ SWIG_Ruby_NewPackedObj(void *ptr, int sz, swig_type_info *type)
480
+ {
359
481
  char result[1024];
360
482
  char *r = result;
361
483
  if ((2*sz + 1 + strlen(type->name)) > 1000) return 0;
@@ -366,8 +488,9 @@ SWIG_Ruby_NewPackedObj(void *ptr, int sz, swig_type_info *type) {
366
488
  }
367
489
 
368
490
  /* Convert a packed pointer value */
369
- SWIGRUNTIME int
370
- SWIG_Ruby_ConvertPacked(VALUE obj, void *ptr, int sz, swig_type_info *ty) {
491
+ WXRB_EXPORT_FLAG int
492
+ SWIG_Ruby_ConvertPacked(VALUE obj, void *ptr, int sz, swig_type_info *ty)
493
+ {
371
494
  swig_cast_info *tc;
372
495
  const char *c;
373
496
 
@@ -377,7 +500,8 @@ SWIG_Ruby_ConvertPacked(VALUE obj, void *ptr, int sz, swig_type_info *ty) {
377
500
  if (*c != '_') goto type_error;
378
501
  c++;
379
502
  c = SWIG_UnpackData(c, ptr, sz);
380
- if (ty) {
503
+ if (ty)
504
+ {
381
505
  tc = SWIG_TypeCheck(c, ty);
382
506
  if (!tc) goto type_error;
383
507
  }
@@ -387,7 +511,7 @@ SWIG_Ruby_ConvertPacked(VALUE obj, void *ptr, int sz, swig_type_info *ty) {
387
511
  return SWIG_ERROR;
388
512
  }
389
513
 
390
- SWIGRUNTIME swig_module_info *
514
+ WXRB_EXPORT_FLAG swig_module_info *
391
515
  SWIG_Ruby_GetModule(void *SWIGUNUSEDPARM(clientdata))
392
516
  {
393
517
  VALUE pointer;
@@ -396,10 +520,11 @@ SWIG_Ruby_GetModule(void *SWIGUNUSEDPARM(clientdata))
396
520
 
397
521
  /* temporarily disable warnings, since the pointer check causes warnings with 'ruby -w' */
398
522
  rb_gv_set("VERBOSE", Qfalse);
399
-
523
+
400
524
  /* first check if pointer already created */
401
525
  pointer = rb_gv_get("$swig_runtime_data_type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME);
402
- if (pointer != Qnil) {
526
+ if (pointer != Qnil)
527
+ {
403
528
  Data_Get_Struct(pointer, swig_module_info, ret);
404
529
  }
405
530
 
@@ -408,7 +533,7 @@ SWIG_Ruby_GetModule(void *SWIGUNUSEDPARM(clientdata))
408
533
  return ret;
409
534
  }
410
535
 
411
- SWIGRUNTIME void
536
+ WXRB_EXPORT_FLAG void
412
537
  SWIG_Ruby_SetModule(swig_module_info *pointer)
413
538
  {
414
539
  /* register a new class */
@@ -426,7 +551,7 @@ SWIG_Ruby_SetModule(swig_module_info *pointer)
426
551
  $result = SWIG_Ruby_isCallable( $input );
427
552
  }
428
553
  */
429
- SWIGINTERN
554
+ WXRB_EXPORT_FLAG
430
555
  int SWIG_Ruby_isCallable( VALUE proc )
431
556
  {
432
557
  if ( rb_respond_to( proc, swig_call_id ) )
@@ -439,7 +564,7 @@ int SWIG_Ruby_isCallable( VALUE proc )
439
564
  Valid arities will be that equal to minimal or those < 0
440
565
  which indicate a variable number of parameters at the end.
441
566
  */
442
- SWIGINTERN
567
+ WXRB_EXPORT_FLAG
443
568
  int SWIG_Ruby_arity( VALUE proc, int minimal )
444
569
  {
445
570
  if ( rb_respond_to( proc, swig_arity_id ) )