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
@@ -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
-