rwx 0.0.1.dev → 0.0.1.1.dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/.rspec +2 -0
  4. data/Rakefile +8 -0
  5. data/VERSION +1 -1
  6. data/ext/extconf.rb +5 -1
  7. data/ext/main.cpp +3 -3
  8. data/ext/main.hpp +34 -1
  9. data/ext/rwx.cpp +17 -0
  10. data/ext/wxAnyButton.cpp +7 -6
  11. data/ext/wxApp.cpp +1 -1
  12. data/ext/wxApp.hpp +1 -1
  13. data/ext/wxAuiBook.cpp +5 -1
  14. data/ext/wxAuiPane.cpp +7 -6
  15. data/ext/wxBitmap.cpp +42 -6
  16. data/ext/wxBitmapButton.cpp +3 -2
  17. data/ext/wxBitmapComboBox.cpp +25 -11
  18. data/ext/wxBitmapToggleButton.cpp +4 -2
  19. data/ext/wxBookCtrl.cpp +13 -13
  20. data/ext/wxBrush.cpp +69 -12
  21. data/ext/wxBrush.hpp +6 -0
  22. data/ext/wxButton.cpp +3 -2
  23. data/ext/wxCalendarCtrl.cpp +7 -6
  24. data/ext/wxCalendarCtrlBase.cpp +4 -2
  25. data/ext/wxCalendarCtrlGeneric.cpp +10 -9
  26. data/ext/wxCheckBox.cpp +10 -5
  27. data/ext/wxCheckListBox.cpp +10 -9
  28. data/ext/wxChoice.cpp +10 -9
  29. data/ext/wxChoiceBook.cpp +5 -1
  30. data/ext/wxCollapsiblePane.cpp +8 -5
  31. data/ext/wxColor.cpp +69 -25
  32. data/ext/wxColor.hpp +3 -0
  33. data/ext/wxColorPicker.cpp +11 -5
  34. data/ext/wxColorPickerWidget.cpp +10 -8
  35. data/ext/wxComboBox.cpp +3 -3
  36. data/ext/wxComboCtrl.cpp +220 -0
  37. data/ext/wxComboCtrl.hpp +22 -0
  38. data/ext/wxControl.cpp +2 -2
  39. data/ext/wxDC.cpp +5 -4
  40. data/ext/wxDatePicker.cpp +10 -7
  41. data/ext/wxDirCtrl.cpp +161 -0
  42. data/ext/wxDirCtrl.hpp +21 -0
  43. data/ext/wxDirPicker.cpp +5 -5
  44. data/ext/wxDirPickerWidget.cpp +10 -8
  45. data/ext/wxFileCtrl.cpp +5 -2
  46. data/ext/wxFileCtrlBase.cpp +31 -7
  47. data/ext/wxFileCtrlGeneric.cpp +5 -2
  48. data/ext/wxFileDialog.cpp +20 -25
  49. data/ext/wxFileDirPicker.cpp +6 -6
  50. data/ext/wxFilePicker.cpp +6 -6
  51. data/ext/wxFilePickerWidget.cpp +10 -9
  52. data/ext/wxFont.cpp +6 -5
  53. data/ext/wxFontDialog.cpp +11 -22
  54. data/ext/wxFontPicker.cpp +17 -5
  55. data/ext/wxFontPickerWidget.cpp +10 -9
  56. data/ext/wxFrame.cpp +6 -4
  57. data/ext/wxGauge.cpp +9 -5
  58. data/ext/wxGrid.cpp +7 -5
  59. data/ext/wxGridCellAttr.cpp +6 -6
  60. data/ext/wxHyperLink.cpp +12 -11
  61. data/ext/wxImage.cpp +15 -10
  62. data/ext/wxInfoBar.cpp +2 -1
  63. data/ext/wxInfoBarGeneric.cpp +2 -1
  64. data/ext/wxItemContainer.cpp +5 -0
  65. data/ext/wxListBook.cpp +5 -2
  66. data/ext/wxListBox.cpp +10 -8
  67. data/ext/wxMenu.cpp +5 -4
  68. data/ext/wxMenuItem.cpp +9 -7
  69. data/ext/wxMultiChoiceDialog.cpp +5 -3
  70. data/ext/wxNoteBook.cpp +4 -2
  71. data/ext/wxOwnerDrawnComboBox.cpp +223 -0
  72. data/ext/wxOwnerDrawnComboBox.hpp +22 -0
  73. data/ext/wxPalette.cpp +1 -1
  74. data/ext/wxPanel.cpp +4 -3
  75. data/ext/wxPasswordEntryDialog.cpp +1 -1
  76. data/ext/wxPen.cpp +49 -10
  77. data/ext/wxPoint.cpp +6 -6
  78. data/ext/wxPreferences.cpp +21 -6
  79. data/ext/wxProperty.cpp +5 -7
  80. data/ext/wxPropertyCell.cpp +5 -4
  81. data/ext/wxPropertyGrid.cpp +26 -27
  82. data/ext/wxPropertyGridManager.cpp +13 -5
  83. data/ext/wxRadioBox.cpp +14 -11
  84. data/ext/wxRadioButton.cpp +9 -3
  85. data/ext/wxRearrangeCtrl.cpp +5 -1
  86. data/ext/wxRearrangeList.cpp +5 -2
  87. data/ext/wxRect.cpp +8 -7
  88. data/ext/wxRichTextCtrl.cpp +12 -6
  89. data/ext/wxRichTextStyle.cpp +5 -5
  90. data/ext/wxRichTextStyleSheet.cpp +7 -5
  91. data/ext/wxSTC.cpp +5 -1
  92. data/ext/wxSearchCtrl.cpp +12 -10
  93. data/ext/wxSimpleBook.cpp +5 -1
  94. data/ext/wxSingleChoiceDialog.cpp +4 -2
  95. data/ext/wxSize.cpp +8 -7
  96. data/ext/wxSlider.cpp +12 -7
  97. data/ext/wxSpinButton.cpp +14 -11
  98. data/ext/wxSpinButton.hpp +1 -1
  99. data/ext/wxSpinCtrl.cpp +18 -11
  100. data/ext/wxSpinCtrlDouble.cpp +161 -0
  101. data/ext/wxSpinCtrlDouble.hpp +21 -0
  102. data/ext/wxStaticBitmap.cpp +3 -1
  103. data/ext/wxStaticBitmapBase.cpp +4 -2
  104. data/ext/wxStaticBitmapGeneric.cpp +3 -1
  105. data/ext/wxStaticBox.cpp +7 -6
  106. data/ext/wxStaticLine.cpp +5 -1
  107. data/ext/wxStaticText.cpp +5 -1
  108. data/ext/wxStatusBar.cpp +12 -10
  109. data/ext/wxTaskBar.cpp +6 -4
  110. data/ext/wxTextCtrl.cpp +9 -3
  111. data/ext/wxTextEntry.cpp +8 -3
  112. data/ext/wxTimePicker.cpp +11 -8
  113. data/ext/wxTimer.cpp +4 -2
  114. data/ext/wxToggleButton.cpp +3 -1
  115. data/ext/wxToolBar.cpp +5 -1
  116. data/ext/wxToolBarTool.cpp +9 -8
  117. data/ext/wxToolBook.cpp +5 -2
  118. data/ext/wxTreeBook.cpp +5 -1
  119. data/ext/wxTreeCtrl.cpp +8 -7
  120. data/ext/wxWindow.cpp +3 -1
  121. data/ext/wxWizard.cpp +10 -10
  122. data/ext/wxWizardPage.cpp +11 -9
  123. data/rwx.gemspec +4 -2
  124. data/samples/controls/controls.rb +0 -5
  125. data/samples/dialog/dialog_sample.rb +0 -3
  126. data/spec/color_spec.rb +55 -0
  127. data/spec/spec_helper.rb +12 -0
  128. metadata +28 -3
@@ -46,9 +46,11 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
46
46
  temp = rb_hash_aref(hash,ID2SYM(rb_intern("bitmap")));
47
47
  bitmap = wrapBitmap(temp,id,WRAP_BITMAP_ID,wxART_BUTTON);
48
48
  }
49
-
50
- _self->Create(unwrap<wxWindow*>(parent),id,bitmap);
51
49
 
50
+ if(nil_check(parent)) {
51
+ _self->Create(unwrap<wxWindow*>(parent),id,bitmap);
52
+ }
53
+
52
54
  }
53
55
 
54
56
  rb_call_super(argc,argv);
@@ -195,7 +195,7 @@ DLL_LOCAL VALUE _get_page_image(VALUE self,VALUE idx)
195
195
  #if wxUSE_AUI
196
196
  //TODO should be fixed in wx
197
197
  if(rb_obj_is_kind_of(self,rb_cWXAuiNotebook))
198
- rb_raise(rb_eArgError,"get_page_image is not supported for %s",rb_class2name(rb_cWXAuiNotebook));
198
+ rb_raise(rb_eArgError,"get_page_image is not supported for %"PRIsVALUE,rb_cWXAuiNotebook);
199
199
  #endif
200
200
  int cidx(NUM2INT(idx));
201
201
  if(check_index(cidx,_self->GetPageCount()))
@@ -560,18 +560,9 @@ DLL_LOCAL void Init_WXBookCtrl(VALUE rb_mWX)
560
560
  rb_cWXWindow = rb_define_class_under(rb_mWX,"Window",rb_cObject);
561
561
  rb_cWXControl = rb_define_class_under(rb_mWX,"Control",rb_cWXWindow);
562
562
 
563
- rb_define_attr(rb_cWXBookCtrlBase,"selection",1,1);
564
- rb_define_attr(rb_cWXBookCtrlBase,"image_list",1,1);
565
- rb_define_attr(rb_cWXBookCtrlBase,"intenal_border",1,1);
566
- rb_define_attr(rb_cWXBookCtrlBase,"control_margin",1,1);
567
-
568
- rb_define_attr(rb_cWXBookCtrlEvent,"selection",1,1);
569
- rb_define_attr(rb_cWXBookCtrlEvent,"old_selection",1,1);
570
-
571
563
  rb_cWXEvent = rb_define_class_under(rb_mWX,"Event",rb_cObject);
572
564
  rb_cWXCommandEvent = rb_define_class_under(rb_cWXEvent,"Command",rb_cWXEvent);
573
565
  rb_cWXNotifyEvent = rb_define_class_under(rb_cWXEvent,"Notify",rb_cWXCommandEvent);
574
-
575
566
  #endif
576
567
 
577
568
  #if wxUSE_BOOKCTRL
@@ -579,6 +570,18 @@ DLL_LOCAL void Init_WXBookCtrl(VALUE rb_mWX)
579
570
  rb_cWXBookCtrlBase = rb_define_class_under(rb_mWX,"BookCtrl",rb_cWXControl);
580
571
  rb_undef_alloc_func(rb_cWXBookCtrlBase);
581
572
 
573
+ rb_cWXBookCtrlEvent = rb_define_class_under(rb_cWXEvent,"BookCtrl",rb_cWXNotifyEvent);
574
+
575
+ #if 0
576
+ rb_define_attr(rb_cWXBookCtrlBase,"selection",1,1);
577
+ rb_define_attr(rb_cWXBookCtrlBase,"image_list",1,1);
578
+ rb_define_attr(rb_cWXBookCtrlBase,"intenal_border",1,1);
579
+ rb_define_attr(rb_cWXBookCtrlBase,"control_margin",1,1);
580
+
581
+ rb_define_attr(rb_cWXBookCtrlEvent,"selection",1,1);
582
+ rb_define_attr(rb_cWXBookCtrlEvent,"old_selection",1,1);
583
+ #endif
584
+
582
585
  rb_define_method(rb_cWXBookCtrlBase,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
583
586
 
584
587
  rb_define_attr_method(rb_cWXBookCtrlBase,"selection",_getSelection,_setSelection);
@@ -617,9 +620,6 @@ DLL_LOCAL void Init_WXBookCtrl(VALUE rb_mWX)
617
620
  rb_define_const(rb_cWXBookCtrlBase,"LEFT",INT2NUM(wxBK_LEFT));
618
621
  rb_define_const(rb_cWXBookCtrlBase,"RIGHT",INT2NUM(wxBK_RIGHT));
619
622
 
620
-
621
- rb_cWXBookCtrlEvent = rb_define_class_under(rb_cWXEvent,"BookCtrl",rb_cWXNotifyEvent);
622
-
623
623
  rb_define_attr_method(rb_cWXBookCtrlEvent,"selection",Event::_getSelection,Event::_setSelection);
624
624
  rb_define_attr_method(rb_cWXBookCtrlEvent,"old_selection",Event::_getOldSelection,Event::_setOldSelection);
625
625
 
@@ -8,6 +8,7 @@
8
8
  #include "wxBrush.hpp"
9
9
  #include "wxColor.hpp"
10
10
  #include "wxBitmap.hpp"
11
+ #include "wxApp.hpp"
11
12
 
12
13
  #define _self unwrap<wxBrush*>(self)
13
14
 
@@ -16,16 +17,40 @@ VALUE rb_cWXBrush;
16
17
  typedef std::map<wxBrush*,VALUE> brushlisttype;
17
18
  brushlisttype brushlistholder;
18
19
 
20
+
21
+ template <>
22
+ VALUE wrap< wxBrush >(wxBrush *bitmap )
23
+ {
24
+ if(!bitmap || !bitmap->IsOk())
25
+ return Qnil;
26
+ return wrapTypedPtr(bitmap,rb_cWXBrush);
27
+ }
28
+
29
+ template <>
30
+ VALUE wrap< wxBrush >(const wxBrush &bitmap )
31
+ {
32
+ if(bitmap.IsOk())
33
+ return wrapTypedPtr(const_cast<wxBrush*>(&bitmap),rb_cWXBrush);
34
+ return Qnil;
35
+ }
36
+
19
37
  template <>
20
38
  wxBrush unwrap< wxBrush >(const VALUE &vbrush)
21
39
  {
22
- return NIL_P(vbrush) ? wxNullBrush : *unwrap< wxBrush* >(vbrush);
40
+ if(NIL_P(vbrush))
41
+ return wxNullBrush;
42
+ if(is_wrapable<wxColor>(vbrush))
43
+ return wxBrush(unwrap<wxColor>(vbrush));
44
+ if(rb_obj_is_kind_of(vbrush,rb_cWXBrush))
45
+ return *unwrap< wxBrush* >(vbrush);
46
+ else
47
+ return wxBrush(unwrap<wxBitmap>(vbrush));
23
48
  }
24
49
 
25
50
  namespace RubyWX {
26
51
  namespace Brush {
27
52
  DLL_LOCAL VALUE _alloc(VALUE self) {
28
- return wrap(new wxBrush(*wxBLACK));
53
+ return wrapTypedPtr(new wxBrush,self);
29
54
  }
30
55
 
31
56
  macro_attr(Colour,wxColour)
@@ -37,6 +62,11 @@ singlereturn(IsHatch)
37
62
 
38
63
  void define_const()
39
64
  {
65
+ #if 0
66
+ rb_mWX = rb_define_module("WX");
67
+ rb_cWXBrush = rb_define_class_under(rb_mWX,"Brush",rb_cObject);
68
+ #endif
69
+
40
70
  if(rb_const_defined(rb_cWXBrush,rb_intern("BLACK")))
41
71
  return;
42
72
 
@@ -115,6 +145,21 @@ DLL_LOCAL VALUE _marshal_load(VALUE self, VALUE data)
115
145
  }
116
146
 
117
147
 
148
+ struct equal_obj {
149
+ wxBrush* self;
150
+ VALUE other;
151
+ };
152
+
153
+ VALUE _equal_block(equal_obj *obj)
154
+ {
155
+ return wrap(*obj->self == unwrap<wxBrush>(obj->other));
156
+ }
157
+
158
+ VALUE _equal_rescue(VALUE val)
159
+ {
160
+ return Qfalse;
161
+ }
162
+
118
163
  /*
119
164
  * call-seq:
120
165
  * == brush -> bool
@@ -125,15 +170,24 @@ DLL_LOCAL VALUE _marshal_load(VALUE self, VALUE data)
125
170
  */
126
171
  DLL_LOCAL VALUE _equal(VALUE self, VALUE other)
127
172
  {
128
- return wrap((*_self) == unwrap<wxBrush>(other));
129
- }
173
+ equal_obj obj;
174
+ obj.self = _self;
175
+ obj.other = other;
130
176
 
177
+ return rb_rescue(
178
+ RUBY_METHOD_FUNC(_equal_block),(VALUE)&obj,
179
+ RUBY_METHOD_FUNC(_equal_rescue),Qnil
180
+ );
181
+ }
131
182
 
132
183
  DLL_LOCAL VALUE _class_get(int argc,VALUE *argv,VALUE self)
133
184
  {
134
185
 
135
186
  VALUE color,style;
136
187
  rb_scan_args(argc, argv, "11",&color,&style);
188
+
189
+ app_protected();
190
+
137
191
  //TODO add refcounting
138
192
  wxBrush *brush = wxTheBrushList->FindOrCreateBrush(
139
193
  unwrap<wxColor>(color),
@@ -149,7 +203,7 @@ DLL_LOCAL VALUE _class_get(int argc,VALUE *argv,VALUE self)
149
203
  return it->second;
150
204
  } else {
151
205
  //wrap wxBrush pointer to ruby object
152
- VALUE result = wrap(brush);
206
+ VALUE result = wrapTypedPtr(brush, self);
153
207
 
154
208
  //BrushList objects should not be changed
155
209
  rb_obj_freeze(result);
@@ -218,12 +272,18 @@ DLL_LOCAL VALUE _class_get(int argc,VALUE *argv,VALUE self)
218
272
  DLL_LOCAL void Init_WXBrush(VALUE rb_mWX)
219
273
  {
220
274
  #if 0
275
+ rb_mWX = rb_define_module("WX");
276
+ #endif
221
277
 
278
+ using namespace RubyWX::Brush;
279
+ rb_cWXBrush = rb_define_class_under(rb_mWX,"Brush",rb_cObject);
280
+ rb_define_alloc_func(rb_cWXBrush,_alloc);
281
+
282
+ #if 0
222
283
  rb_define_attr(rb_cWXBrush,"color",1,1);
223
284
  rb_define_attr(rb_cWXBrush,"style",1,1);
224
285
  rb_define_attr(rb_cWXBrush,"stipple",1,1);
225
286
 
226
- //need to
227
287
  rb_define_const(rb_cWXBrush,"BLACK",wrap(wxBLACK_BRUSH));
228
288
  rb_define_const(rb_cWXBrush,"BLUE",wrap(wxBLUE_BRUSH));
229
289
  rb_define_const(rb_cWXBrush,"CYAN",wrap(wxCYAN_BRUSH));
@@ -237,10 +297,6 @@ DLL_LOCAL void Init_WXBrush(VALUE rb_mWX)
237
297
  rb_define_const(rb_cWXBrush,"WHITE",wrap(wxWHITE_BRUSH));
238
298
  #endif
239
299
 
240
- using namespace RubyWX::Brush;
241
- rb_cWXBrush = rb_define_class_under(rb_mWX,"Brush",rb_cObject);
242
- rb_define_alloc_func(rb_cWXBrush,_alloc);
243
-
244
300
  rb_define_method(rb_cWXBrush,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
245
301
  rb_define_private_method(rb_cWXBrush,"initialize_copy",RUBY_METHOD_FUNC(_initialize_copy),1);
246
302
 
@@ -251,7 +307,7 @@ DLL_LOCAL void Init_WXBrush(VALUE rb_mWX)
251
307
  rb_define_method(rb_cWXBrush,"hatch?",RUBY_METHOD_FUNC(_IsHatch),0);
252
308
 
253
309
  rb_define_method(rb_cWXBrush,"marshal_dump",RUBY_METHOD_FUNC(_marshal_dump),0);
254
- rb_define_method(rb_cWXBrush,"marshal_load",RUBY_METHOD_FUNC(_marshal_load),1);
310
+ rb_define_method(rb_cWXBrush,"marshal_load",RUBY_METHOD_FUNC(_marshal_load),-2);
255
311
 
256
312
  rb_define_method(rb_cWXBrush,"==",RUBY_METHOD_FUNC(_equal),1);
257
313
 
@@ -272,7 +328,8 @@ DLL_LOCAL void Init_WXBrush(VALUE rb_mWX)
272
328
  ->add(wxBRUSHSTYLE_FDIAGONAL_HATCH,"fdiagonal_hatch")
273
329
  ->add(wxBRUSHSTYLE_CROSS_HATCH,"cross_hatch")
274
330
  ->add(wxBRUSHSTYLE_HORIZONTAL_HATCH,"horizontal_hatch")
275
- ->add(wxBRUSHSTYLE_VERTICAL_HATCH,"vertical_hatch");
331
+ ->add(wxBRUSHSTYLE_VERTICAL_HATCH,"vertical_hatch")
332
+ ->allow_array = false;
276
333
 
277
334
  }
278
335
 
@@ -14,6 +14,12 @@
14
14
  extern VALUE rb_cWXBrush;
15
15
  void Init_WXBrush(VALUE rb_mWX);
16
16
 
17
+ template <>
18
+ VALUE wrap< wxBrush >(wxBrush *bitmap );
19
+
20
+ template <>
21
+ VALUE wrap< wxBrush >(const wxBrush &bitmap );
22
+
17
23
  template <>
18
24
  wxBrush unwrap< wxBrush >(const VALUE &vbrush);
19
25
 
@@ -42,9 +42,10 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
42
42
  set_hash_option(hash,"id",id,unwrapID);
43
43
  set_hash_option(hash,"label",label);
44
44
  }
45
-
46
- _self->Create(unwrap<wxWindow*>(parent),id,label);
47
45
 
46
+ if(nil_check(parent)) {
47
+ _self->Create(unwrap<wxWindow*>(parent),id,label);
48
+ }
48
49
  }
49
50
 
50
51
  rb_call_super(argc,argv);
@@ -46,12 +46,13 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
46
46
  set_hash_option(hash,"style",style);
47
47
  }
48
48
 
49
- _self->Create(
50
- unwrap<wxWindow*>(parent),id,date,
51
- wxDefaultPosition,wxDefaultSize,
52
- style
53
- );
54
-
49
+ if(nil_check(parent)) {
50
+ _self->Create(
51
+ unwrap<wxWindow*>(parent),id,date,
52
+ wxDefaultPosition,wxDefaultSize,
53
+ style
54
+ );
55
+ }
55
56
  }
56
57
 
57
58
  rb_call_super(argc,argv);
@@ -38,8 +38,6 @@ DLL_LOCAL void Init_WXCalendarCtrlBase(VALUE rb_mWX)
38
38
  rb_cWXWindow = rb_define_class_under(rb_mWX,"Window",rb_cObject);
39
39
 
40
40
  rb_cWXControl = rb_define_class_under(rb_mWX,"Control",rb_cWXWindow);
41
-
42
- rb_define_attr(rb_cWXCalendarCtrlBase,"date",1,1);
43
41
  #endif
44
42
 
45
43
  #if wxUSE_CALENDARCTRL
@@ -47,6 +45,10 @@ DLL_LOCAL void Init_WXCalendarCtrlBase(VALUE rb_mWX)
47
45
  rb_cWXCalendarCtrlBase = rb_define_class_under(rb_mWX,"CalendarCtrlBase",rb_cWXControl);
48
46
  rb_undef_alloc_func(rb_cWXCalendarCtrlBase);
49
47
 
48
+ #if 0
49
+ rb_define_attr(rb_cWXCalendarCtrlBase,"date",1,1);
50
+ #endif
51
+
50
52
  rb_define_attr_method(rb_cWXCalendarCtrlBase,"date",_getDate,_setDate);
51
53
 
52
54
  registerType<wxCalendarCtrlBase>(rb_cWXCalendarCtrlBase);
@@ -47,12 +47,13 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
47
47
  set_hash_option(hash,"style",style);
48
48
  }
49
49
 
50
- _self->Create(
51
- unwrap<wxWindow*>(parent),id,date,
52
- wxDefaultPosition,wxDefaultSize,
53
- style
54
- );
55
-
50
+ if(nil_check(parent)) {
51
+ _self->Create(
52
+ unwrap<wxWindow*>(parent),id,date,
53
+ wxDefaultPosition,wxDefaultSize,
54
+ style
55
+ );
56
+ }
56
57
  }
57
58
 
58
59
  rb_call_super(argc,argv);
@@ -82,7 +83,9 @@ DLL_LOCAL void Init_WXCalendarCtrlGeneric(VALUE rb_mWX)
82
83
  rb_cWXCalendarCtrlBase = rb_define_class_under(rb_mWX,"CalendarCtrlBase",rb_cWXControl);
83
84
  #endif
84
85
  #if wxUSE_CALENDARCTRL
85
- #ifdef wxHAS_NATIVE_CALENDARCTRL
86
+ #ifndef wxHAS_NATIVE_CALENDARCTRL
87
+ rb_define_const(rb_mWX,"CalendarCtrlGeneric",rb_cWXCalendarCtrl);
88
+ #else
86
89
  using namespace RubyWX::GenericCalendarCtrl;
87
90
  rb_cWXCalendarCtrlGeneric = rb_define_class_under(rb_mWX,"CalendarCtrlGeneric",rb_cWXCalendarCtrlBase);
88
91
  rb_define_alloc_func(rb_cWXCalendarCtrlGeneric,_alloc);
@@ -90,8 +93,6 @@ DLL_LOCAL void Init_WXCalendarCtrlGeneric(VALUE rb_mWX)
90
93
  rb_define_method(rb_cWXCalendarCtrlGeneric,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
91
94
 
92
95
  registerInfo<wxGenericCalendarCtrl>(rb_cWXCalendarCtrlGeneric);
93
- #else
94
- rb_define_const(rb_mWX,"CalendarCtrlGeneric",rb_cWXCalendarCtrl);
95
96
  #endif
96
97
  #endif
97
98
 
@@ -65,8 +65,11 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
65
65
  }
66
66
 
67
67
  }
68
-
69
- _self->Create(unwrap<wxWindow*>(parent),id,label,wxDefaultPosition,wxDefaultSize,style);
68
+ if(nil_check(parent)) {
69
+ _self->Create(unwrap<wxWindow*>(parent),id,label,
70
+ wxDefaultPosition,wxDefaultSize,style
71
+ );
72
+ }
70
73
  }
71
74
 
72
75
  rb_call_super(argc,argv);
@@ -122,9 +125,6 @@ DLL_LOCAL void Init_WXCheckBox(VALUE rb_mWX)
122
125
  rb_cWXWindow = rb_define_class_under(rb_mWX,"Window",rb_cObject);
123
126
 
124
127
  rb_cWXControl = rb_define_class_under(rb_mWX,"Control",rb_cWXWindow);
125
-
126
- rb_define_attr(rb_cWXCheckBox,"value",1,1);
127
- rb_define_attr(rb_cWXCheckBox,"third_state",1,1);
128
128
  #endif
129
129
 
130
130
  #if wxUSE_CHECKBOX
@@ -132,6 +132,11 @@ DLL_LOCAL void Init_WXCheckBox(VALUE rb_mWX)
132
132
  rb_cWXCheckBox = rb_define_class_under(rb_mWX,"CheckBox",rb_cWXControl);
133
133
  rb_define_alloc_func(rb_cWXCheckBox,_alloc);
134
134
 
135
+ #if 0
136
+ rb_define_attr(rb_cWXCheckBox,"value",1,1);
137
+ rb_define_attr(rb_cWXCheckBox,"third_state",1,1);
138
+ #endif
139
+
135
140
  rb_define_method(rb_cWXCheckBox,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
136
141
 
137
142
  rb_define_attr_method(rb_cWXCheckBox,"value",_getValue,_setValue);
@@ -49,15 +49,16 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
49
49
 
50
50
  ListBox::set_style_flags(hash,style);
51
51
  }
52
- _self->Create(
53
- unwrap<wxWindow*>(parent),id,
54
- wxDefaultPosition,wxDefaultSize,
55
- choices,style
56
- );
57
-
58
- if(selflag && check_index(selection,_self->GetCount()))
59
- _self->SetSelection(selection);
60
-
52
+ if(nil_check(parent)) {
53
+ _self->Create(
54
+ unwrap<wxWindow*>(parent),id,
55
+ wxDefaultPosition,wxDefaultSize,
56
+ choices,style
57
+ );
58
+
59
+ if(selflag && check_index(selection,_self->GetCount()))
60
+ _self->SetSelection(selection);
61
+ }
61
62
  }
62
63
  rb_call_super(argc,argv);
63
64
  return self;
@@ -65,15 +65,16 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
65
65
  set_style_flags(hash,style);
66
66
  }
67
67
 
68
- _self->Create(
69
- unwrap<wxWindow*>(parent),id,
70
- wxDefaultPosition,wxDefaultSize,
71
- choices,style
72
- );
73
-
74
- if(selflag && check_index(selection,_self->GetCount()))
75
- _self->SetSelection(selection);
76
-
68
+ if(nil_check(parent)) {
69
+ _self->Create(
70
+ unwrap<wxWindow*>(parent),id,
71
+ wxDefaultPosition,wxDefaultSize,
72
+ choices,style
73
+ );
74
+
75
+ if(selflag && check_index(selection,_self->GetCount()))
76
+ _self->SetSelection(selection);
77
+ }
77
78
  }
78
79
 
79
80
  rb_call_super(argc,argv);
@@ -47,7 +47,11 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
47
47
  set_hash_option(hash,"style",style);
48
48
  }
49
49
 
50
- _self->Create(unwrap<wxWindow*>(parent),id,wxDefaultPosition,wxDefaultSize,style);
50
+ if(nil_check(parent)) {
51
+ _self->Create(unwrap<wxWindow*>(parent),id,
52
+ wxDefaultPosition,wxDefaultSize,style
53
+ );
54
+ }
51
55
 
52
56
  }
53
57
 
@@ -78,14 +78,19 @@ DLL_LOCAL void Init_WXCollapsiblePane(VALUE rb_mWX)
78
78
  rb_mWX = rb_define_module("WX");
79
79
  rb_cWXWindow = rb_define_class_under(rb_mWX,"Window",rb_cObject);
80
80
  rb_cWXControl = rb_define_class_under(rb_mWX,"Control",rb_cWXWindow);
81
-
82
- rb_define_attr(rb_cWXCollapsiblePane,"collapsed",1,1);
83
- rb_define_attr(rb_cWXCollapsiblePaneEvent,"collapsed",1,1);
81
+ rb_cWXEvent = rb_define_class_under(rb_mWX,"Event",rb_cObject);
84
82
  #endif
83
+
85
84
  #if wxUSE_COLLPANE
86
85
  using namespace RubyWX::CollapsiblePane;
87
86
  rb_cWXCollapsiblePane = rb_define_class_under(rb_mWX,"CollapsiblePane",rb_cWXControl);
88
87
  rb_define_alloc_func(rb_cWXCollapsiblePane,_alloc);
88
+ rb_cWXCollapsiblePaneEvent = rb_define_class_under(rb_cWXEvent,"CollapsiblePane",rb_cWXCommandEvent);
89
+
90
+ #if 0
91
+ rb_define_attr(rb_cWXCollapsiblePane,"collapsed",1,1);
92
+ rb_define_attr(rb_cWXCollapsiblePaneEvent,"collapsed",1,1);
93
+ #endif
89
94
 
90
95
  rb_define_method(rb_cWXCollapsiblePane,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
91
96
 
@@ -93,8 +98,6 @@ DLL_LOCAL void Init_WXCollapsiblePane(VALUE rb_mWX)
93
98
 
94
99
  rb_define_method(rb_cWXCollapsiblePane,"pane",RUBY_METHOD_FUNC(_GetPane),0);
95
100
 
96
- rb_cWXCollapsiblePaneEvent = rb_define_class_under(rb_cWXEvent,"CollapsiblePane",rb_cWXCommandEvent);
97
-
98
101
  rb_define_attr_method(rb_cWXCollapsiblePaneEvent,"collapsed",Event::_getCollapsed,Event::_setCollapsed);
99
102
 
100
103