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
@@ -0,0 +1,22 @@
1
+ /*
2
+ * wxOwnerDrawnComboBox.hpp
3
+ *
4
+ * Created on: 14.10.2014
5
+ * Author: hanmac
6
+ */
7
+
8
+ #ifndef WXOWNERDRAWNCOMBOBOX_HPP_
9
+ #define WXOWNERDRAWNCOMBOBOX_HPP_
10
+
11
+ #include "main.hpp"
12
+
13
+ extern VALUE rb_cWXOwnerDrawnComboBox;
14
+
15
+ void Init_WXOwnerDrawnComboBox(VALUE rb_mWX);
16
+
17
+ #if wxUSE_ODCOMBOBOX
18
+ #include <wx/odcombo.h>
19
+ #endif
20
+
21
+
22
+ #endif /* WXOWNERDRAWNCOMBOBOX_HPP_ */
@@ -204,7 +204,7 @@ DLL_LOCAL void Init_WXPalette(VALUE rb_mWX)
204
204
  rb_define_method(rb_cWXPalette,"each",RUBY_METHOD_FUNC(_each),0);
205
205
 
206
206
  rb_define_method(rb_cWXPalette,"marshal_dump",RUBY_METHOD_FUNC(_marshal_dump),0);
207
- rb_define_method(rb_cWXPalette,"marshal_load",RUBY_METHOD_FUNC(_marshal_load),1);
207
+ rb_define_method(rb_cWXPalette,"marshal_load",RUBY_METHOD_FUNC(_marshal_load),-2);
208
208
 
209
209
  registerInfo<wxPalette>(rb_cWXPalette);
210
210
  #endif
@@ -43,9 +43,10 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
43
43
  set_hash_option(hash,"style",style);
44
44
  }
45
45
 
46
- _self->Create(unwrap<wxWindow*>(parent),id,
47
- wxDefaultPosition,wxDefaultSize,style
48
- );
46
+ if(nil_check(parent))
47
+ _self->Create(unwrap<wxWindow*>(parent),id,
48
+ wxDefaultPosition,wxDefaultSize,style
49
+ );
49
50
 
50
51
  }
51
52
  rb_call_super(argc,argv);
@@ -73,7 +73,7 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
73
73
  _self->Create(unwrap<wxWindow*>(parent),
74
74
  message,caption,value,style | wxTE_PASSWORD);
75
75
  #endif
76
-
76
+
77
77
  }
78
78
  rb_call_super(argc,argv);
79
79
 
@@ -8,6 +8,7 @@
8
8
  #include "wxPen.hpp"
9
9
  #include "wxColor.hpp"
10
10
  #include "wxBitmap.hpp"
11
+ #include "wxApp.hpp"
11
12
 
12
13
  #define _self unwrap<wxPen*>(self)
13
14
 
@@ -43,14 +44,18 @@ wxPen* unwrap< wxPen* >(const VALUE &vbitmap)
43
44
  template <>
44
45
  wxPen unwrap< wxPen >(const VALUE &vbitmap)
45
46
  {
46
- return NIL_P(vbitmap) ? wxNullPen : *unwrap<wxPen*>(vbitmap);
47
+ if(NIL_P(vbitmap))
48
+ return wxNullPen;
49
+ if(is_wrapable<wxColor>(vbitmap))
50
+ return wxPen(unwrap<wxColor>(vbitmap));
51
+ return *unwrap< wxPen* >(vbitmap);
47
52
  }
48
53
 
49
54
 
50
55
  namespace RubyWX {
51
56
  namespace Pen {
52
57
  DLL_LOCAL VALUE _alloc(VALUE self) {
53
- return wrap(new wxPen(*wxBLACK));
58
+ return wrapTypedPtr(new wxPen, self);
54
59
  }
55
60
 
56
61
  macro_attr(Width,int)
@@ -61,6 +66,11 @@ macro_attr(Stipple,wxBitmap)
61
66
 
62
67
  void define_const()
63
68
  {
69
+ #if 0
70
+ rb_mWX = rb_define_module("WX");
71
+ rb_cWXPen = rb_define_class_under(rb_mWX,"Pen",rb_cObject);
72
+ #endif
73
+
64
74
  if(rb_const_defined(rb_cWXPen,rb_intern("BLACK")))
65
75
  return;
66
76
 
@@ -144,6 +154,22 @@ DLL_LOCAL VALUE _marshal_load(VALUE self, VALUE data)
144
154
  return Qnil;
145
155
  }
146
156
 
157
+
158
+ struct equal_obj {
159
+ wxPen* self;
160
+ VALUE other;
161
+ };
162
+
163
+ VALUE _equal_block(equal_obj *obj)
164
+ {
165
+ return wrap(*obj->self == unwrap<wxPen>(obj->other));
166
+ }
167
+
168
+ VALUE _equal_rescue(VALUE val)
169
+ {
170
+ return Qfalse;
171
+ }
172
+
147
173
  /*
148
174
  * call-seq:
149
175
  * == pen -> bool
@@ -154,15 +180,24 @@ DLL_LOCAL VALUE _marshal_load(VALUE self, VALUE data)
154
180
  */
155
181
  DLL_LOCAL VALUE _equal(VALUE self, VALUE other)
156
182
  {
157
- return wrap((*_self) == unwrap<wxPen>(other));
158
- }
183
+ equal_obj obj;
184
+ obj.self = _self;
185
+ obj.other = other;
159
186
 
187
+ return rb_rescue(
188
+ RUBY_METHOD_FUNC(_equal_block),(VALUE)&obj,
189
+ RUBY_METHOD_FUNC(_equal_rescue),Qnil
190
+ );
191
+ }
160
192
 
161
193
  DLL_LOCAL VALUE _class_get(int argc,VALUE *argv,VALUE self)
162
194
  {
163
195
 
164
196
  VALUE color,width,style;
165
197
  rb_scan_args(argc, argv, "21",&color,&width,&style);
198
+
199
+ app_protected();
200
+
166
201
  //TODO add refcounting
167
202
  wxPen *pen = wxThePenList->FindOrCreatePen(
168
203
  unwrap<wxColor>(color),
@@ -179,7 +214,7 @@ DLL_LOCAL VALUE _class_get(int argc,VALUE *argv,VALUE self)
179
214
  return it->second;
180
215
  } else {
181
216
  //wrap wxPen pointer to ruby object
182
- VALUE result = wrap(pen);
217
+ VALUE result = wrapTypedPtr(pen,self);
183
218
 
184
219
  //PenList objects should not be changed
185
220
  rb_obj_freeze(result);
@@ -254,6 +289,14 @@ DLL_LOCAL VALUE _class_get(int argc,VALUE *argv,VALUE self)
254
289
 
255
290
  DLL_LOCAL void Init_WXPen(VALUE rb_mWX)
256
291
  {
292
+ #if 0
293
+ rb_mWX = rb_define_module("WX");
294
+ #endif
295
+
296
+ using namespace RubyWX::Pen;
297
+ rb_cWXPen = rb_define_class_under(rb_mWX,"Pen",rb_cObject);
298
+ rb_define_alloc_func(rb_cWXPen,_alloc);
299
+
257
300
  #if 0
258
301
  rb_define_attr(rb_cWXPen,"width",1,1);
259
302
  rb_define_attr(rb_cWXPen,"color",1,1);
@@ -275,10 +318,6 @@ DLL_LOCAL void Init_WXPen(VALUE rb_mWX)
275
318
  rb_define_const(rb_cWXPen,"WHITE",wrap(wxWHITE_PEN));
276
319
  #endif
277
320
 
278
- using namespace RubyWX::Pen;
279
- rb_cWXPen = rb_define_class_under(rb_mWX,"Pen",rb_cObject);
280
- rb_define_alloc_func(rb_cWXPen,_alloc);
281
-
282
321
  rb_define_method(rb_cWXPen,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
283
322
  rb_define_private_method(rb_cWXPen,"initialize_copy",RUBY_METHOD_FUNC(_initialize_copy),1);
284
323
 
@@ -289,7 +328,7 @@ DLL_LOCAL void Init_WXPen(VALUE rb_mWX)
289
328
  rb_define_attr_method(rb_cWXPen,"stipple",_getStipple,_setStipple);
290
329
 
291
330
  rb_define_method(rb_cWXPen,"marshal_dump",RUBY_METHOD_FUNC(_marshal_dump),0);
292
- rb_define_method(rb_cWXPen,"marshal_load",RUBY_METHOD_FUNC(_marshal_load),1);
331
+ rb_define_method(rb_cWXPen,"marshal_load",RUBY_METHOD_FUNC(_marshal_load),-2);
293
332
 
294
333
  rb_define_method(rb_cWXPen,"==",RUBY_METHOD_FUNC(_equal),1);
295
334
 
@@ -193,16 +193,16 @@ DLL_LOCAL VALUE _marshal_load(VALUE self, VALUE data)
193
193
  DLL_LOCAL void Init_WXPoint(VALUE rb_mWX)
194
194
  {
195
195
 
196
- #if 0
197
- rb_define_attr(rb_cwxPoint,"x",1,1);
198
- rb_define_attr(rb_cwxPoint,"y",1,1);
199
- #endif
200
-
201
196
  using namespace RubyWX::Point;
202
197
  rb_cwxPoint = rb_define_class_under(rb_mWX,"Point",rb_cObject);
203
198
 
204
199
  rb_define_alloc_func(rb_cwxPoint,_alloc);
205
200
 
201
+ #if 0
202
+ rb_define_attr(rb_cwxPoint,"x",1,1);
203
+ rb_define_attr(rb_cwxPoint,"y",1,1);
204
+ #endif
205
+
206
206
  rb_define_method(rb_cwxPoint,"initialize",RUBY_METHOD_FUNC(_initialize),2);
207
207
  rb_define_private_method(rb_cwxPoint,"initialize_copy",RUBY_METHOD_FUNC(_initialize_copy),1);
208
208
 
@@ -212,7 +212,7 @@ DLL_LOCAL void Init_WXPoint(VALUE rb_mWX)
212
212
  rb_define_method(rb_cwxPoint,"inspect",RUBY_METHOD_FUNC(_inspect),0);
213
213
 
214
214
  rb_define_method(rb_cwxPoint,"marshal_dump",RUBY_METHOD_FUNC(_marshal_dump),0);
215
- rb_define_method(rb_cwxPoint,"marshal_load",RUBY_METHOD_FUNC(_marshal_load),1);
215
+ rb_define_method(rb_cwxPoint,"marshal_load",RUBY_METHOD_FUNC(_marshal_load),-2);
216
216
 
217
217
  registerType<wxRealPoint>(rb_cwxPoint, true);
218
218
 
@@ -15,6 +15,10 @@ VALUE rb_cWXPreferences;
15
15
 
16
16
  #include <wx/preferences.h>
17
17
 
18
+ #ifdef wxHAS_PREF_EDITOR_ICONS
19
+ #include "wxBitmap.hpp"
20
+ #endif
21
+
18
22
  template <>
19
23
  VALUE wrap< wxPreferencesEditor >(wxPreferencesEditor *point )
20
24
  {
@@ -43,7 +47,6 @@ public:
43
47
 
44
48
  return unwrap<wxWindow*>(result);
45
49
  }
46
-
47
50
  private:
48
51
  VALUE mblock;
49
52
  VALUE mklass;
@@ -52,8 +55,12 @@ private:
52
55
  class RubyPreferencesPage : public RubyPreferencesPageInterface,public wxPreferencesPage
53
56
  {
54
57
  public:
55
- RubyPreferencesPage(VALUE block,VALUE klass,const wxString &title) :
56
- RubyPreferencesPageInterface(block,klass),wxPreferencesPage(),mtitle(title) {}
58
+ RubyPreferencesPage(VALUE block,VALUE klass,const wxString &title, VALUE bitmap) :
59
+ RubyPreferencesPageInterface(block,klass),wxPreferencesPage(),mtitle(title)
60
+ #ifdef wxHAS_PREF_EDITOR_ICONS
61
+ ,mBitmap(unwrap<wxBitmap>(bitmap))
62
+ #endif
63
+ {}
57
64
 
58
65
  //using RubyPreferencesPageInterface::CreateWindow;
59
66
  wxWindow *CreateWindow(wxWindow *parent)
@@ -61,9 +68,17 @@ public:
61
68
  return RubyPreferencesPageInterface::CreateWindow(parent);
62
69
  }
63
70
 
71
+ #ifdef wxHAS_PREF_EDITOR_ICONS
72
+ virtual wxBitmap GetLargeIcon() const { return mBitmap; };
73
+ #endif
74
+
64
75
  wxString GetName() const {return mtitle;}
65
76
  private:
66
77
  wxString mtitle;
78
+
79
+ #ifdef wxHAS_PREF_EDITOR_ICONS
80
+ wxBitmap mBitmap;
81
+ #endif
67
82
  };
68
83
 
69
84
 
@@ -85,8 +100,8 @@ namespace Preferences {
85
100
 
86
101
  DLL_LOCAL VALUE _add_page(int argc,VALUE *argv,VALUE self)
87
102
  {
88
- VALUE kind, klass,block;
89
- rb_scan_args(argc, argv, "20&",&kind,&klass,&block);
103
+ VALUE kind, klass, block, bitmap;
104
+ rb_scan_args(argc, argv, "21&",&kind,&klass,&bitmap,&block);
90
105
  wxPreferencesPage *page = NULL;
91
106
  //VALUE block = rb_block_proc();
92
107
  if(SYMBOL_P(kind))
@@ -99,7 +114,7 @@ DLL_LOCAL VALUE _add_page(int argc,VALUE *argv,VALUE self)
99
114
  page = new RubyStockPreferencesPage(block,klass,wxkind);
100
115
  }else
101
116
  {
102
- page = new RubyPreferencesPage(block,klass,unwrap<wxString>(kind));
117
+ page = new RubyPreferencesPage(block,klass,unwrap<wxString>(kind), bitmap);
103
118
  }
104
119
 
105
120
  _self->AddPage(page);
@@ -603,8 +603,12 @@ VALUE find_prop_class(VALUE self,VALUE name)
603
603
  */
604
604
  DLL_LOCAL void Init_WXProperty(VALUE rb_mWX)
605
605
  {
606
- #if 0
606
+ #if wxUSE_PROPGRID
607
+ using namespace RubyWX::Property;
608
+ rb_cWXProperty = rb_define_class_under(rb_mWX,"Property",rb_cObject);
609
+ rb_define_alloc_func(rb_cWXProperty,_alloc);
607
610
 
611
+ #if 0
608
612
  rb_define_attr(rb_cWXProperty,"name",1,1);
609
613
  rb_define_attr(rb_cWXProperty,"label",1,1);
610
614
  rb_define_attr(rb_cWXProperty,"help_string",1,1);
@@ -625,14 +629,8 @@ DLL_LOCAL void Init_WXProperty(VALUE rb_mWX)
625
629
 
626
630
  rb_define_attr(rb_cWXProperty,"depth",1,0);
627
631
  rb_define_attr(rb_cWXProperty,"grid",1,0);
628
-
629
632
  #endif
630
633
 
631
- #if wxUSE_PROPGRID
632
- using namespace RubyWX::Property;
633
- rb_cWXProperty = rb_define_class_under(rb_mWX,"Property",rb_cObject);
634
- rb_define_alloc_func(rb_cWXProperty,_alloc);
635
-
636
634
  //TODO check if its possible to add this methods
637
635
  rb_undef_method(rb_cWXProperty,"initialize_copy");
638
636
  rb_undef_method(rb_cWXProperty,"_load");
@@ -69,6 +69,11 @@ DLL_LOCAL VALUE _inspect(VALUE self)
69
69
  DLL_LOCAL void Init_WXPropertyCell(VALUE rb_mWX)
70
70
  {
71
71
  #if wxUSE_PROPGRID
72
+
73
+ using namespace RubyWX::PropertyCell;
74
+ rb_cWXPropertyCell = rb_define_class_under(rb_mWX,"PropertyCell",rb_cObject);
75
+ rb_undef_alloc_func(rb_cWXPropertyCell);
76
+
72
77
  #if 0
73
78
  rb_define_attr(rb_cWXPropertyCell,"text",1,1);
74
79
  rb_define_attr(rb_cWXPropertyCell,"font",1,1);
@@ -77,10 +82,6 @@ DLL_LOCAL void Init_WXPropertyCell(VALUE rb_mWX)
77
82
  rb_define_attr(rb_cWXPropertyCell,"bg_col",1,1);
78
83
  #endif
79
84
 
80
- using namespace RubyWX::PropertyCell;
81
- rb_cWXPropertyCell = rb_define_class_under(rb_mWX,"PropertyCell",rb_cObject);
82
- rb_undef_alloc_func(rb_cWXPropertyCell);
83
-
84
85
  rb_undef_method(rb_cWXPropertyCell,"_load");
85
86
  rb_undef_method(rb_cWXPropertyCell,"_dump");
86
87
 
@@ -81,9 +81,12 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
81
81
  set_hash_option(hash,"id",id,unwrapID);
82
82
  set_hash_option(hash,"style",style);
83
83
  }
84
-
85
- _self->Create(unwrap<wxWindow*>(parent),id,wxDefaultPosition,wxDefaultSize,style);
86
84
 
85
+ if(nil_check(parent))
86
+ _self->Create(unwrap<wxWindow*>(parent),id,
87
+ wxDefaultPosition,wxDefaultSize,style
88
+ );
89
+
87
90
  }
88
91
 
89
92
  rb_call_super(argc,argv);
@@ -112,25 +115,6 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
112
115
  }
113
116
  #endif
114
117
 
115
-
116
- /* Document-method: root
117
- * call-seq:
118
- * root -> WX::Property
119
- *
120
- * returns the root property of this WX::PropertyGrid
121
- * ===Return value
122
- * WX::Property
123
- */
124
-
125
- /* Document-method: status_bar
126
- * call-seq:
127
- * status_bar -> WX::StatusBar
128
- *
129
- * returns the status bar of this WX::PropertyGrid when available.
130
- * ===Return value
131
- * WX::StatusBar
132
- */
133
-
134
118
  /* Document-method: caption_font
135
119
  * call-seq:
136
120
  * caption_font -> WX::Font
@@ -140,6 +124,14 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
140
124
  * WX::Font
141
125
  */
142
126
 
127
+
128
+ /* Document-attr: root
129
+ * the root property of this WX::PropertyGrid. WX::Property
130
+ */
131
+ /* Document-attr: status_bar
132
+ * the status bar of this WX::PropertyGrid when available. WX::StatusBar
133
+ */
134
+
143
135
  /* Document-attr: caption_background_color
144
136
  * the caption background color of the PropertyGrid. WX::Color
145
137
  */
@@ -182,6 +174,16 @@ DLL_LOCAL void Init_WXPropertyGrid(VALUE rb_mWX)
182
174
 
183
175
  rb_mWXPropertyGridInterface = rb_define_module_under(rb_mWX,"PropertyGridInterface");
184
176
 
177
+ #endif
178
+ #if wxUSE_PROPGRID
179
+ using namespace RubyWX::PropertyGrid;
180
+ rb_cWXPropertyGrid = rb_define_class_under(rb_mWX,"PropertyGrid",rb_cWXControl);
181
+ rb_define_alloc_func(rb_cWXPropertyGrid,_alloc);
182
+
183
+ #if 0
184
+ rb_define_attr(rb_cWXPropertyGrid,"root",1,0);
185
+ rb_define_attr(rb_cWXPropertyGrid,"status_bar",1,0);
186
+
185
187
  rb_define_attr(rb_cWXPropertyGrid,"caption_background_color",1,1);
186
188
  rb_define_attr(rb_cWXPropertyGrid,"selection_background_color",1,1);
187
189
 
@@ -195,19 +197,16 @@ DLL_LOCAL void Init_WXPropertyGrid(VALUE rb_mWX)
195
197
  rb_define_attr(rb_cWXPropertyGrid,"margin_color",1,1);
196
198
 
197
199
  #endif
198
- #if wxUSE_PROPGRID
199
- using namespace RubyWX::PropertyGrid;
200
- rb_cWXPropertyGrid = rb_define_class_under(rb_mWX,"PropertyGrid",rb_cWXControl);
201
- rb_define_alloc_func(rb_cWXPropertyGrid,_alloc);
202
200
 
203
201
  rb_include_module(rb_cWXPropertyGrid,rb_mWXPropertyGridInterface);
204
202
 
205
203
  rb_define_method(rb_cWXPropertyGrid,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
206
204
 
207
- rb_define_method(rb_cWXPropertyGrid,"root",RUBY_METHOD_FUNC(_GetRoot),0);
205
+ rb_define_attr_method(rb_cWXPropertyGrid,"root",_GetRoot,0);
208
206
 
209
207
  #if wxUSE_STATUSBAR
210
- rb_define_method(rb_cWXPropertyGrid,"status_bar",RUBY_METHOD_FUNC(_GetStatusBar),0);
208
+ rb_define_attr_method(rb_cWXPropertyGrid,"status_bar",_GetStatusBar,0);
209
+
211
210
  #endif
212
211
 
213
212
  rb_define_method(rb_cWXPropertyGrid,"caption_font",RUBY_METHOD_FUNC(_GetCaptionFont),0);
@@ -59,7 +59,10 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
59
59
 
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
+ );
63
66
 
64
67
  }
65
68
 
@@ -234,14 +237,19 @@ DLL_LOCAL void Init_WXPropertyGridManager(VALUE rb_mWX)
234
237
  rb_cWXPropertyGridManager = rb_define_class_under(rb_mWX,"PropertyGridManager",rb_cWXPanel);
235
238
  rb_define_alloc_func(rb_cWXPropertyGridManager,_alloc);
236
239
 
240
+ #if 0
241
+ rb_define_attr(rb_cWXPropertyGridManager,"tool_bar",1,0);
242
+ rb_define_attr(rb_cWXPropertyGridManager,"grid",1,0);
243
+ rb_define_attr(rb_cWXPropertyGridManager,"current_page",1,0);
244
+ #endif
245
+
237
246
  rb_include_module(rb_cWXPropertyGridManager,rb_mWXPropertyGridInterface);
238
247
 
239
248
  rb_define_method(rb_cWXPropertyGridManager,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
240
249
 
241
- rb_define_method(rb_cWXPropertyGridManager,"tool_bar",RUBY_METHOD_FUNC(_GetToolBar),0);
242
- rb_define_method(rb_cWXPropertyGridManager,"grid",RUBY_METHOD_FUNC(_GetGrid),0);
243
-
244
- rb_define_method(rb_cWXPropertyGridManager,"current_page",RUBY_METHOD_FUNC(_GetCurrentPage),0);
250
+ rb_define_attr_method(rb_cWXPropertyGridManager,"tool_bar",_GetToolBar,0);
251
+ rb_define_attr_method(rb_cWXPropertyGridManager,"grid",_GetGrid,0);
252
+ rb_define_attr_method(rb_cWXPropertyGridManager,"current_page",_GetCurrentPage,0);
245
253
 
246
254
  rb_define_method(rb_cWXPropertyGridManager,"add_page",RUBY_METHOD_FUNC(_add_page),-1);
247
255
  rb_define_method(rb_cWXPropertyGridManager,"insert_page",RUBY_METHOD_FUNC(_insert_page),-1);