rwx 0.0.1.dev → 0.0.1.1.dev

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -51,14 +51,16 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
51
51
  set_hash_option(hash,"style",style);
52
52
  selset = set_hash_option(hash,"selection",selection);
53
53
  }
54
- _self->Create(
55
- unwrap<wxWindow*>(parent),id,label,
56
- wxDefaultPosition,wxDefaultSize,
57
- choices,0,style
58
- );
59
- if(selset && check_index(selection,_self->GetCount()))
60
- _self->SetSelection(selection);
61
54
 
55
+ if(nil_check(parent)) {
56
+ _self->Create(
57
+ unwrap<wxWindow*>(parent),id,label,
58
+ wxDefaultPosition,wxDefaultSize,
59
+ choices,0,style
60
+ );
61
+ if(selset && check_index(selection,_self->GetCount()))
62
+ _self->SetSelection(selection);
63
+ }
62
64
  }
63
65
  rb_call_super(argc,argv);
64
66
  return self;
@@ -355,16 +357,17 @@ DLL_LOCAL void Init_WXRadioBox(VALUE rb_mWX)
355
357
  rb_cWXWindow = rb_define_class_under(rb_mWX,"Window",rb_cObject);
356
358
 
357
359
  rb_cWXControl = rb_define_class_under(rb_mWX,"Control",rb_cWXWindow);
358
-
359
- rb_define_attr(rb_cWXRadioBox,"selection",1,1);
360
- rb_define_attr(rb_cWXRadioBox,"string_selection",1,1);
361
-
362
360
  #endif
363
361
  #if wxUSE_RADIOBOX
364
362
  using namespace RubyWX::RadioBox;
365
363
  rb_cWXRadioBox = rb_define_class_under(rb_mWX,"RadioBox",rb_cWXControl);
366
364
  rb_define_alloc_func(rb_cWXRadioBox,_alloc);
367
365
 
366
+ #if 0
367
+ rb_define_attr(rb_cWXRadioBox,"selection",1,1);
368
+ rb_define_attr(rb_cWXRadioBox,"string_selection",1,1);
369
+ #endif
370
+
368
371
  rb_define_method(rb_cWXRadioBox,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
369
372
 
370
373
  rb_define_method(rb_cWXRadioBox,"each_item",RUBY_METHOD_FUNC(_each),0);
@@ -56,7 +56,11 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
56
56
  set_hash_flag_option(hash,"group",wxRB_GROUP,style);
57
57
  }
58
58
 
59
- _self->Create(unwrap<wxWindow*>(parent),id,label,wxDefaultPosition,wxDefaultSize,style);
59
+ if(nil_check(parent)) {
60
+ _self->Create(unwrap<wxWindow*>(parent),id,label,
61
+ wxDefaultPosition,wxDefaultSize,style
62
+ );
63
+ }
60
64
 
61
65
  }
62
66
 
@@ -85,8 +89,6 @@ DLL_LOCAL void Init_WXRadioButton(VALUE rb_mWX)
85
89
  rb_cWXWindow = rb_define_class_under(rb_mWX,"Window",rb_cObject);
86
90
 
87
91
  rb_cWXControl = rb_define_class_under(rb_mWX,"Control",rb_cWXWindow);
88
-
89
- rb_define_attr(rb_cWXRadioButton,"value",1,1);
90
92
  #endif
91
93
 
92
94
  #if wxUSE_RADIOBTN
@@ -94,6 +96,10 @@ DLL_LOCAL void Init_WXRadioButton(VALUE rb_mWX)
94
96
  rb_cWXRadioButton = rb_define_class_under(rb_mWX,"RadioButton",rb_cWXControl);
95
97
  rb_define_alloc_func(rb_cWXRadioButton,_alloc);
96
98
 
99
+ #if 0
100
+ rb_define_attr(rb_cWXRadioButton,"value",1,1);
101
+ #endif
102
+
97
103
  rb_define_method(rb_cWXRadioButton,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
98
104
 
99
105
  rb_define_attr_method(rb_cWXRadioButton,"value",_getValue,_setValue);
@@ -54,7 +54,11 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
54
54
  set_hash_option(hash,"style",style);
55
55
  }
56
56
 
57
- _self->Create(unwrap<wxWindow*>(parent),id,wxDefaultPosition,wxDefaultSize,order,items,style);
57
+ if(nil_check(parent)) {
58
+ _self->Create(unwrap<wxWindow*>(parent),id,
59
+ wxDefaultPosition,wxDefaultSize,order,items,style
60
+ );
61
+ }
58
62
 
59
63
  }
60
64
  rb_call_super(argc,argv);
@@ -56,8 +56,11 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
56
56
  order.resize(items.size());
57
57
  set_hash_option(hash,"style",style);
58
58
  }
59
-
60
- _self->Create(unwrap<wxWindow*>(parent),id,wxDefaultPosition,wxDefaultSize,order,items,style);
59
+ if(nil_check(parent)) {
60
+ _self->Create(unwrap<wxWindow*>(parent),id,
61
+ wxDefaultPosition,wxDefaultSize,order,items,style
62
+ );
63
+ }
61
64
 
62
65
  }
63
66
  rb_call_super(argc,argv);
@@ -221,7 +221,14 @@ DLL_LOCAL void Init_WXRect(VALUE rb_mWX)
221
221
 
222
222
  #if 0
223
223
  rb_mWX = rb_define_module("WX");
224
+ #endif
225
+
226
+ using namespace RubyWX::Rect;
227
+ rb_cWXRect = rb_define_class_under(rb_mWX,"Rect",rb_cObject);
224
228
 
229
+ rb_define_alloc_func(rb_cWXRect,_alloc);
230
+
231
+ #if 0
225
232
  rb_define_attr(rb_cWXRect,"x",1,1);
226
233
  rb_define_attr(rb_cWXRect,"y",1,1);
227
234
  rb_define_attr(rb_cWXRect,"width",1,1);
@@ -239,14 +246,8 @@ DLL_LOCAL void Init_WXRect(VALUE rb_mWX)
239
246
  rb_define_attr(rb_cWXRect,"top_right",1,1);
240
247
  rb_define_attr(rb_cWXRect,"bottom_left",1,1);
241
248
  rb_define_attr(rb_cWXRect,"bottom_right",1,1);
242
-
243
249
  #endif
244
250
 
245
- using namespace RubyWX::Rect;
246
- rb_cWXRect = rb_define_class_under(rb_mWX,"Rect",rb_cObject);
247
-
248
- rb_define_alloc_func(rb_cWXRect,_alloc);
249
-
250
251
  rb_define_method(rb_cWXRect,"initialize",RUBY_METHOD_FUNC(_initialize),4);
251
252
  rb_define_private_method(rb_cWXRect,"initialize_copy",RUBY_METHOD_FUNC(_initialize_copy),1);
252
253
 
@@ -272,7 +273,7 @@ DLL_LOCAL void Init_WXRect(VALUE rb_mWX)
272
273
  rb_define_method(rb_cWXRect,"inspect",RUBY_METHOD_FUNC(_inspect),0);
273
274
 
274
275
  rb_define_method(rb_cWXRect,"marshal_dump",RUBY_METHOD_FUNC(_marshal_dump),0);
275
- rb_define_method(rb_cWXRect,"marshal_load",RUBY_METHOD_FUNC(_marshal_load),1);
276
+ rb_define_method(rb_cWXRect,"marshal_load",RUBY_METHOD_FUNC(_marshal_load),-2);
276
277
 
277
278
  registerType<wxRect>(rb_cWXRect, true);
278
279
  }
@@ -101,7 +101,11 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
101
101
  set_style_flags(hash,style);
102
102
  }
103
103
 
104
- _self->Create(unwrap<wxWindow*>(parent),id,value,wxDefaultPosition,wxDefaultSize,style);
104
+ if(nil_check(parent)) {
105
+ _self->Create(unwrap<wxWindow*>(parent),id,value,
106
+ wxDefaultPosition,wxDefaultSize,style
107
+ );
108
+ }
105
109
  }
106
110
 
107
111
  rb_call_super(argc,argv);
@@ -396,7 +400,14 @@ DLL_LOCAL void Init_WXRichTextCtrl(VALUE rb_mWX)
396
400
 
397
401
  rb_mWXTextArea = rb_define_module_under(rb_mWX,"TextArea");
398
402
  rb_mWXTextEntry = rb_define_module_under(rb_mWX,"TextEntry");
403
+ #endif
404
+
405
+ #if wxUSE_RICHTEXT
406
+ using namespace RubyWX::RichTextCtrl;
407
+ rb_cWXRichTextCtrl = rb_define_class_under(rb_mWX,"RichTextCtrl",rb_cWXControl);
408
+ rb_define_alloc_func(rb_cWXRichTextCtrl,_alloc);
399
409
 
410
+ #if 0
400
411
  rb_define_attr(rb_cWXRichTextCtrl,"value",1,1);
401
412
  rb_define_attr(rb_cWXRichTextCtrl,"filename",1,1);
402
413
  rb_define_attr(rb_cWXRichTextCtrl,"text_cursor",1,1);
@@ -407,11 +418,6 @@ DLL_LOCAL void Init_WXRichTextCtrl(VALUE rb_mWX)
407
418
  rb_define_attr(rb_cWXRichTextCtrl,"style_sheet",1,1);
408
419
  #endif
409
420
 
410
- #if wxUSE_RICHTEXT
411
- using namespace RubyWX::RichTextCtrl;
412
- rb_cWXRichTextCtrl = rb_define_class_under(rb_mWX,"RichTextCtrl",rb_cWXControl);
413
- rb_define_alloc_func(rb_cWXRichTextCtrl,_alloc);
414
-
415
421
  rb_include_module(rb_cWXRichTextCtrl,rb_mWXTextArea);
416
422
  rb_include_module(rb_cWXRichTextCtrl,rb_mWXTextEntry);
417
423
 
@@ -60,6 +60,11 @@ DLL_LOCAL VALUE _initialize_copy(VALUE self, VALUE other)
60
60
 
61
61
  DLL_LOCAL void Init_WXRichTextStyle(VALUE rb_mWX)
62
62
  {
63
+ #if wxUSE_RICHTEXT
64
+ using namespace RubyWX::RichTextStyle;
65
+ rb_cWXRichTextStyle = rb_define_class_under(rb_mWX,"RichTextStyle",rb_cObject);
66
+ rb_undef_alloc_func(rb_cWXRichTextStyle);
67
+
63
68
  #if 0
64
69
  rb_define_attr(rb_cWXRichTextStyle,"name",1,1);
65
70
  rb_define_attr(rb_cWXRichTextStyle,"description",1,1);
@@ -67,11 +72,6 @@ DLL_LOCAL void Init_WXRichTextStyle(VALUE rb_mWX)
67
72
  rb_define_attr(rb_cWXRichTextStyle,"style",1,1);
68
73
  #endif
69
74
 
70
- #if wxUSE_RICHTEXT
71
- using namespace RubyWX::RichTextStyle;
72
- rb_cWXRichTextStyle = rb_define_class_under(rb_mWX,"RichTextStyle",rb_cObject);
73
- rb_undef_alloc_func(rb_cWXRichTextStyle);
74
-
75
75
  rb_define_private_method(rb_cWXRichTextStyle,"initialize_copy",RUBY_METHOD_FUNC(_initialize_copy),1);
76
76
 
77
77
  rb_define_attr_method(rb_cWXRichTextStyle,"name",_getName,_setName);
@@ -435,11 +435,6 @@ DLL_LOCAL void Init_WXRichTextStyleSheet(VALUE rb_mWX)
435
435
  {
436
436
  #if 0
437
437
  rb_mWX = rb_define_module("WX");
438
-
439
- rb_define_attr(rb_cWXRichTextStyleSheet,"name",1,1);
440
- rb_define_attr(rb_cWXRichTextStyleSheet,"description",1,1);
441
- rb_define_attr(rb_cWXRichTextStyleSheet,"next_sheet",1,1);
442
- rb_define_attr(rb_cWXRichTextStyleSheet,"previous_sheet",1,1);
443
438
  #endif
444
439
 
445
440
  #if wxUSE_RICHTEXT
@@ -447,6 +442,13 @@ DLL_LOCAL void Init_WXRichTextStyleSheet(VALUE rb_mWX)
447
442
  rb_cWXRichTextStyleSheet = rb_define_class_under(rb_mWX,"RichTextStyleSheet",rb_cObject);
448
443
  rb_define_alloc_func(rb_cWXRichTextStyleSheet,_alloc);
449
444
 
445
+ #if 0
446
+ rb_define_attr(rb_cWXRichTextStyleSheet,"name",1,1);
447
+ rb_define_attr(rb_cWXRichTextStyleSheet,"description",1,1);
448
+ rb_define_attr(rb_cWXRichTextStyleSheet,"next_sheet",1,1);
449
+ rb_define_attr(rb_cWXRichTextStyleSheet,"previous_sheet",1,1);
450
+ #endif
451
+
450
452
  rb_define_private_method(rb_cWXRichTextStyleSheet,"initialize_copy",RUBY_METHOD_FUNC(_initialize_copy),1);
451
453
 
452
454
  rb_define_attr_method(rb_cWXRichTextStyleSheet,"name",_getName,_setName);
@@ -128,7 +128,9 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
128
128
  set_hash_option(hash,"id",id,unwrapID);
129
129
  }
130
130
 
131
- _self->Create(unwrap<wxWindow*>(parent),id);
131
+ if(nil_check(parent)) {
132
+ _self->Create(unwrap<wxWindow*>(parent),id);
133
+ }
132
134
 
133
135
  }
134
136
 
@@ -309,11 +311,13 @@ DLL_LOCAL void Init_WXSTC(VALUE rb_mWX)
309
311
  ->add(wxSTC_LEX_ECL,"ecl")
310
312
  ->add(wxSTC_LEX_OSCRIPT,"oscript")
311
313
  ->add(wxSTC_LEX_VISUALPROLOG,"visual_prolog")
314
+ #if HAVE_CONST_WXSTC_LEX_DMAP
312
315
  ->add(wxSTC_LEX_LITERATEHASKELL,"lite_rate_haskell")
313
316
  ->add(wxSTC_LEX_STTXT,"sttxt")
314
317
  ->add(wxSTC_LEX_KVIRC,"kvirc")
315
318
  ->add(wxSTC_LEX_RUST,"rust")
316
319
  ->add(wxSTC_LEX_DMAP,"dmap")
320
+ #endif
317
321
  ->allow_array = false;
318
322
 
319
323
  registerEnum("WX::STC::WrapIndent","WX::STC::WrapIndent",wxSTC_WRAPINDENT_FIXED)
@@ -72,10 +72,11 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
72
72
  TextCtrl::set_style_flags(hash,style);
73
73
  }
74
74
 
75
- _self->Create(unwrap<wxWindow*>(parent),id,value,
76
- wxDefaultPosition,wxDefaultSize,style
77
- );
78
-
75
+ if(nil_check(parent)) {
76
+ _self->Create(unwrap<wxWindow*>(parent),id,value,
77
+ wxDefaultPosition,wxDefaultSize,style
78
+ );
79
+ }
79
80
  }
80
81
 
81
82
  rb_call_super(argc,argv);
@@ -147,20 +148,21 @@ DLL_LOCAL void Init_WXSearchCtrl(VALUE rb_mWX)
147
148
 
148
149
  rb_mWXTextArea = rb_define_module_under(rb_mWX,"TextArea");
149
150
  rb_mWXTextEntry = rb_define_module_under(rb_mWX,"TextEntry");
151
+ #endif
152
+
153
+ #if wxUSE_SEARCHCTRL
154
+ using namespace RubyWX::SearchCtrl;
155
+ rb_cWXSearchCtrl = rb_define_class_under(rb_mWX,"SearchCtrl",rb_cWXControl);
156
+ rb_define_alloc_func(rb_cWXSearchCtrl,_alloc);
150
157
 
158
+ #if 0
151
159
  rb_define_attr(rb_cWXSearchCtrl,"value",1,1);
152
160
  rb_define_attr(rb_cWXSearchCtrl,"menu",1,1);
153
161
 
154
162
  rb_define_attr(rb_cWXSearchCtrl,"search_button_visible",1,1);
155
163
  rb_define_attr(rb_cWXSearchCtrl,"cancel_button_visible",1,1);
156
-
157
164
  #endif
158
165
 
159
- #if wxUSE_SEARCHCTRL
160
- using namespace RubyWX::SearchCtrl;
161
- rb_cWXSearchCtrl = rb_define_class_under(rb_mWX,"SearchCtrl",rb_cWXControl);
162
- rb_define_alloc_func(rb_cWXSearchCtrl,_alloc);
163
-
164
166
  rb_define_method(rb_cWXSearchCtrl,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
165
167
 
166
168
  rb_include_module(rb_cWXSearchCtrl,rb_mWXTextArea);
@@ -45,7 +45,11 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
45
45
  set_hash_option(hash,"style",style);
46
46
  }
47
47
 
48
- _self->Create(unwrap<wxWindow*>(parent),id,wxDefaultPosition,wxDefaultSize,style);
48
+ if(nil_check(parent)) {
49
+ _self->Create(unwrap<wxWindow*>(parent),id,
50
+ wxDefaultPosition,wxDefaultSize,style
51
+ );
52
+ }
49
53
 
50
54
  }
51
55
 
@@ -122,8 +122,6 @@ DLL_LOCAL void Init_WXSingleChoiceDialog(VALUE rb_mWX)
122
122
  {
123
123
  #if 0
124
124
  rb_cWXAnyChoiceDialog = rb_define_class_under(rb_mWX,"AnyChoiceDialog",rb_cWXDialog);
125
-
126
- rb_define_attr(rb_cWXSingleChoiceDialog,"selection",1,1);
127
125
  #endif
128
126
 
129
127
  #if wxUSE_CHOICEDLG
@@ -131,6 +129,10 @@ DLL_LOCAL void Init_WXSingleChoiceDialog(VALUE rb_mWX)
131
129
  rb_cWXSingleChoiceDialog = rb_define_class_under(rb_mWX,"SingleChoiceDialog",rb_cWXAnyChoiceDialog);
132
130
  rb_define_alloc_func(rb_cWXSingleChoiceDialog,_alloc);
133
131
 
132
+ #if 0
133
+ rb_define_attr(rb_cWXSingleChoiceDialog,"selection",1,1);
134
+ #endif
135
+
134
136
  rb_define_method(rb_cWXSingleChoiceDialog,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
135
137
 
136
138
  rb_define_attr_method(rb_cWXSingleChoiceDialog,"selection",_getSelection,_setSelection);
@@ -71,8 +71,8 @@ bool check_negative_size(const int &width, const int &height)
71
71
  if(height <= 0 && width <= 0)
72
72
  {
73
73
  rb_raise(rb_eArgError,
74
- "%s(%d, %d) does have invalid size.",
75
- rb_class2name(rb_cWXSize),
74
+ "%"PRIsVALUE"(%d, %d) does have invalid size.",
75
+ rb_cWXSize,
76
76
  width, height
77
77
  );
78
78
  return false;
@@ -179,15 +179,16 @@ DLL_LOCAL VALUE _marshal_load(VALUE self, VALUE data)
179
179
  DLL_LOCAL void Init_WXSize(VALUE rb_mWX)
180
180
  {
181
181
 
182
+ using namespace RubyWX::Size;
183
+ rb_cWXSize = rb_define_class_under(rb_mWX,"Size",rb_cObject);
184
+
185
+ rb_define_alloc_func(rb_cWXSize,_alloc);
186
+
182
187
  #if 0
183
188
  rb_define_attr(rb_cWXSize,"width",1,1);
184
189
  rb_define_attr(rb_cWXSize,"height",1,1);
185
190
  #endif
186
191
 
187
- using namespace RubyWX::Size;
188
- rb_cWXSize = rb_define_class_under(rb_mWX,"Size",rb_cObject);
189
-
190
- rb_define_alloc_func(rb_cWXSize,_alloc);
191
192
  rb_define_method(rb_cWXSize,"initialize",RUBY_METHOD_FUNC(_initialize),2);
192
193
  rb_define_private_method(rb_cWXSize,"initialize_copy",RUBY_METHOD_FUNC(_initialize_copy),1);
193
194
 
@@ -197,7 +198,7 @@ DLL_LOCAL void Init_WXSize(VALUE rb_mWX)
197
198
  rb_define_method(rb_cWXSize,"inspect",RUBY_METHOD_FUNC(_inspect),0);
198
199
 
199
200
  rb_define_method(rb_cWXSize,"marshal_dump",RUBY_METHOD_FUNC(_marshal_dump),0);
200
- rb_define_method(rb_cWXSize,"marshal_load",RUBY_METHOD_FUNC(_marshal_load),1);
201
+ rb_define_method(rb_cWXSize,"marshal_load",RUBY_METHOD_FUNC(_marshal_load),-2);
201
202
 
202
203
  registerType<wxSize>(rb_cWXSize, true);
203
204
 
@@ -76,8 +76,11 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
76
76
  set_hash_flag_option(hash,"value_label",wxSL_VALUE_LABEL,style);
77
77
 
78
78
  }
79
-
80
- _self->Create(unwrap<wxWindow*>(parent),id,value,min,max,wxDefaultPosition,wxDefaultSize,style);
79
+ if(nil_check(parent)) {
80
+ _self->Create(unwrap<wxWindow*>(parent),id,value,min,max,
81
+ wxDefaultPosition,wxDefaultSize,style
82
+ );
83
+ }
81
84
  }
82
85
 
83
86
  if(rb_obj_is_kind_of(hash,rb_cHash))
@@ -160,7 +163,14 @@ DLL_LOCAL void Init_WXSlider(VALUE rb_mWX)
160
163
  rb_cWXWindow = rb_define_class_under(rb_mWX,"Window",rb_cObject);
161
164
 
162
165
  rb_cWXControl = rb_define_class_under(rb_mWX,"Control",rb_cWXWindow);
166
+ #endif
167
+
168
+ #if wxUSE_SLIDER
169
+ using namespace RubyWX::Slider;
170
+ rb_cWXSlider = rb_define_class_under(rb_mWX,"Slider",rb_cWXControl);
171
+ rb_define_alloc_func(rb_cWXSlider,_alloc);
163
172
 
173
+ #if 0
164
174
  rb_define_attr(rb_cWXSlider,"value",1,1);
165
175
  rb_define_attr(rb_cWXSlider,"min",1,1);
166
176
  rb_define_attr(rb_cWXSlider,"max",1,1);
@@ -170,11 +180,6 @@ DLL_LOCAL void Init_WXSlider(VALUE rb_mWX)
170
180
  rb_define_attr(rb_cWXSlider,"thumb_length",1,1);
171
181
  #endif
172
182
 
173
- #if wxUSE_SLIDER
174
- using namespace RubyWX::Slider;
175
- rb_cWXSlider = rb_define_class_under(rb_mWX,"Slider",rb_cWXControl);
176
- rb_define_alloc_func(rb_cWXSlider,_alloc);
177
-
178
183
  rb_define_method(rb_cWXSlider,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
179
184
 
180
185
  rb_define_attr_method(rb_cWXSlider,"value",_getValue,_setValue);
@@ -59,7 +59,11 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
59
59
  set_hash_flag_option(hash,"vertical",wxSP_VERTICAL,style);
60
60
  }
61
61
 
62
- _self->Create(unwrap<wxWindow*>(parent),id,wxDefaultPosition,wxDefaultSize,style);
62
+ if(nil_check(parent)) {
63
+ _self->Create(unwrap<wxWindow*>(parent),id,
64
+ wxDefaultPosition,wxDefaultSize,style
65
+ );
66
+ }
63
67
  }
64
68
 
65
69
  rb_call_super(argc,argv);
@@ -119,7 +123,16 @@ DLL_LOCAL void Init_WXSpinButton(VALUE rb_mWX)
119
123
  rb_cWXWindow = rb_define_class_under(rb_mWX,"Window",rb_cObject);
120
124
 
121
125
  rb_cWXControl = rb_define_class_under(rb_mWX,"Control",rb_cWXWindow);
126
+ #endif
127
+
128
+ #if wxUSE_SPINBTN
129
+ using namespace RubyWX::SpinButton;
130
+ rb_cWXSpinButton = rb_define_class_under(rb_mWX,"SpinButton",rb_cWXControl);
131
+ rb_define_alloc_func(rb_cWXSpinButton,_alloc);
122
132
 
133
+ rb_cWXSpinEvent = rb_define_class_under(rb_cWXEvent,"Spin",rb_cWXNotifyEvent);
134
+
135
+ #if 0
123
136
  rb_define_attr(rb_cWXSpinButton,"value",1,1);
124
137
  rb_define_attr(rb_cWXSpinButton,"min",1,1);
125
138
  rb_define_attr(rb_cWXSpinButton,"max",1,1);
@@ -127,11 +140,6 @@ DLL_LOCAL void Init_WXSpinButton(VALUE rb_mWX)
127
140
  rb_define_attr(rb_cWXSpinEvent,"value",1,1);
128
141
  #endif
129
142
 
130
- #if wxUSE_SPINBTN
131
- using namespace RubyWX::SpinButton;
132
- rb_cWXSpinButton = rb_define_class_under(rb_mWX,"SpinButton",rb_cWXControl);
133
- rb_define_alloc_func(rb_cWXSpinButton,_alloc);
134
-
135
143
  rb_define_method(rb_cWXSpinButton,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
136
144
 
137
145
  rb_define_attr_method(rb_cWXSpinButton,"value",_getValue,_setValue);
@@ -141,8 +149,6 @@ DLL_LOCAL void Init_WXSpinButton(VALUE rb_mWX)
141
149
  rb_define_method(rb_cWXSpinButton,"vertical?",RUBY_METHOD_FUNC(_IsVertical),0);
142
150
  rb_define_const(rb_cWXSpinButton,"VERTICAL",INT2NUM(wxSP_VERTICAL));
143
151
 
144
- rb_cWXSpinEvent = rb_define_class_under(rb_cWXEvent,"Spin",rb_cWXNotifyEvent);
145
-
146
152
  rb_define_attr_method(rb_cWXSpinEvent,"value",Event::_getValue,Event::_setValue);
147
153
 
148
154
  registerEventType("spin", wxEVT_SPIN,rb_cWXSpinEvent);
@@ -153,6 +159,3 @@ DLL_LOCAL void Init_WXSpinButton(VALUE rb_mWX)
153
159
  #endif
154
160
 
155
161
  }
156
-
157
-
158
-