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
+ * wxComboCtrl.hpp
3
+ *
4
+ * Created on: 14.10.2014
5
+ * Author: hanmac
6
+ */
7
+
8
+ #ifndef WXCOMBOCTRL_HPP_
9
+ #define WXCOMBOCTRL_HPP_
10
+
11
+ #include "main.hpp"
12
+
13
+ extern VALUE rb_cWXComboCtrl;
14
+
15
+ void Init_WXComboCtrl(VALUE rb_mWX);
16
+
17
+ #if wxUSE_COMBOCTRL
18
+ #include <wx/combo.h>
19
+ #endif
20
+
21
+
22
+ #endif /* WXCOMBOCTRL_HPP_ */
@@ -43,8 +43,8 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
43
43
  {
44
44
  set_hash_option(hash,"id",id,unwrapID);
45
45
  }
46
-
47
- _self->Create(unwrap<wxWindow*>(parent),id);
46
+ if(nil_check(parent))
47
+ _self->Create(unwrap<wxWindow*>(parent),id);
48
48
  }
49
49
  rb_call_super(argc,argv);
50
50
 
@@ -199,6 +199,11 @@ DLL_LOCAL VALUE _DrawLines(int argc,VALUE *argv,VALUE self)
199
199
 
200
200
  DLL_LOCAL void Init_WXDC(VALUE rb_mWX)
201
201
  {
202
+
203
+ using namespace RubyWX::DC;
204
+ rb_cWXDC = rb_define_class_under(rb_mWX,"DC",rb_cObject);
205
+ rb_undef_alloc_func(rb_cWXDC);
206
+
202
207
  #if 0
203
208
  rb_define_attr(rb_cWXDC,"font",1,1);
204
209
  rb_define_attr(rb_cWXDC,"pen",1,1);
@@ -213,10 +218,6 @@ DLL_LOCAL void Init_WXDC(VALUE rb_mWX)
213
218
  rb_define_attr(rb_cWXDC,"logical_scale",1,1);
214
219
  #endif
215
220
 
216
- using namespace RubyWX::DC;
217
- rb_cWXDC = rb_define_class_under(rb_mWX,"DC",rb_cObject);
218
- rb_undef_alloc_func(rb_cWXDC);
219
-
220
221
  rb_undef_method(rb_cWXDC,"initialize_copy");
221
222
  rb_undef_method(rb_cWXDC,"_load");
222
223
  rb_undef_method(rb_cWXDC,"_dump");
@@ -46,12 +46,12 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
46
46
  set_hash_option(hash,"date",date);
47
47
  set_hash_option(hash,"style",style);
48
48
  }
49
-
50
- _self->Create(
51
- unwrap<wxWindow*>(parent),id,date,
52
- wxDefaultPosition,wxDefaultSize,
53
- style
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
 
@@ -83,7 +83,6 @@ DLL_LOCAL void Init_WXDatePicker(VALUE rb_mWX)
83
83
  rb_cWXWindow = rb_define_class_under(rb_mWX,"Window",rb_cObject);
84
84
 
85
85
  rb_cWXControl = rb_define_class_under(rb_mWX,"Control",rb_cWXWindow);
86
- rb_define_attr(rb_cWXDatePicker,"value",1,1);
87
86
  #endif
88
87
 
89
88
  #if wxUSE_DATEPICKCTRL
@@ -91,6 +90,10 @@ DLL_LOCAL void Init_WXDatePicker(VALUE rb_mWX)
91
90
  rb_cWXDatePicker = rb_define_class_under(rb_mWX,"DatePicker",rb_cWXControl);
92
91
  rb_define_alloc_func(rb_cWXDatePicker,_alloc);
93
92
 
93
+ #if 0
94
+ rb_define_attr(rb_cWXDatePicker,"value",1,1);
95
+ #endif
96
+
94
97
  rb_define_method(rb_cWXDatePicker,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
95
98
 
96
99
  rb_define_attr_method(rb_cWXDatePicker,"value",_getValue,_setValue);
@@ -0,0 +1,161 @@
1
+ /*
2
+ * wxDirCtrl.cpp
3
+ *
4
+ * Created on: 29.09.2014
5
+ * Author: hanmac
6
+ */
7
+
8
+ #include "wxDirCtrl.hpp"
9
+ #include "wxFileCtrlBase.hpp"
10
+
11
+ VALUE rb_cWXDirCtrl;
12
+
13
+ #if wxUSE_DIRDLG
14
+
15
+ #if !defined(HAVE_WXDIRCTRL)
16
+ #define wxDirCtrl wxGenericDirCtrl
17
+ #endif
18
+
19
+ #define _self unwrap<wxDirCtrl*>(self)
20
+
21
+ namespace RubyWX {
22
+ namespace DirCtrl {
23
+
24
+ APP_PROTECT(wxDirCtrl)
25
+
26
+ macro_attr_with_func(Filter,wrap,unwrapWildCard)
27
+
28
+ macro_attr(Path,wxString)
29
+
30
+ singlereturn(GetFilterIndex)
31
+ singlereturn_array(GetFilePaths,wxArrayString)
32
+
33
+ /*
34
+ * call-seq:
35
+ * DirCtrl.new(parent, name, [options])
36
+ * DirCtrl.new(parent, [options])
37
+ *
38
+ * creates a new DirCtrl widget.
39
+ * ===Arguments
40
+ * * parent of this window or nil
41
+ * * name is a String describing a resource in a loaded xrc
42
+ *
43
+ * *options: Hash with possible options to set:
44
+ * * default_directory String default directory
45
+ *
46
+ */
47
+ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
48
+ {
49
+ VALUE parent,name,hash;
50
+ rb_scan_args(argc, argv, "11:",&parent,&name,&hash);
51
+
52
+ if(!_created && !rb_obj_is_kind_of(name,rb_cString))
53
+ {
54
+ wxWindowID id(wxID_ANY);
55
+ #ifdef HAVE_CONST_WXDIRCTRL_DEFAULT_STYLE
56
+ int style(wxDIRCTRL_DEFAULT_STYLE);
57
+ #else
58
+ int style(wxDIRCTRL_3D_INTERNAL);
59
+ #endif
60
+ wxString defaultDirectory(wxDirDialogDefaultFolderStr);
61
+
62
+ if(rb_obj_is_kind_of(hash,rb_cHash))
63
+ {
64
+ set_hash_option(hash,"id",id,unwrapID);
65
+ set_hash_option(hash,"style",style);
66
+
67
+ set_hash_option(hash,"default_directory",defaultDirectory);
68
+
69
+ set_hash_flag_option(hash, "dir_only", wxDIRCTRL_DIR_ONLY, style);
70
+ set_hash_flag_option(hash, "select_first", wxDIRCTRL_SELECT_FIRST, style);
71
+ set_hash_flag_option(hash, "show_filters", wxDIRCTRL_SHOW_FILTERS, style);
72
+ set_hash_flag_option(hash, "internal_3d", wxDIRCTRL_3D_INTERNAL, style);
73
+ set_hash_flag_option(hash, "edit_labels", wxDIRCTRL_EDIT_LABELS, style);
74
+ set_hash_flag_option(hash, "multiple", wxDIRCTRL_MULTIPLE, style);
75
+
76
+ }
77
+
78
+ if(nil_check(parent)) {
79
+ _self->Create(unwrap<wxWindow*>(parent),id,
80
+ defaultDirectory,
81
+ wxDefaultPosition,
82
+ wxDefaultSize,style
83
+ );
84
+ }
85
+
86
+ }
87
+
88
+ rb_call_super(argc,argv);
89
+ return self;
90
+ }
91
+
92
+
93
+
94
+ VALUE _setFilterIndex(VALUE self,VALUE other)
95
+ {
96
+ rb_check_frozen(self);
97
+ int filter(NUM2INT(other));
98
+
99
+ if(check_filter_index(filter,_self->GetFilter()))
100
+ _self->SetFilterIndex(filter);
101
+
102
+ return other;
103
+ }
104
+
105
+
106
+ }
107
+ }
108
+ #endif
109
+
110
+ /* Document-attr: filter
111
+ * the filter of the DirCtrl. String, raise an ArgumentError if filter has wrong format
112
+ */
113
+ /* Document-attr: filter_index
114
+ * the filter_index of the DirCtrl.
115
+ * Can't be higher than filters in filter. Integer
116
+ */
117
+ /* Document-attr: path
118
+ * the path of the DirCtrl. String
119
+ */
120
+ /* Document-attr: file_paths
121
+ * the file paths of the DirCtrl. Array<String>
122
+ */
123
+
124
+ DLL_LOCAL void Init_WXDirCtrl(VALUE rb_mWX)
125
+ {
126
+ #if 0
127
+ rb_mWX = rb_define_module("WX");
128
+ rb_cWXWindow = rb_define_class_under(rb_mWX,"Window",rb_cObject);
129
+
130
+ rb_cWXControl = rb_define_class_under(rb_mWX,"Control",rb_cWXWindow);
131
+ #endif
132
+
133
+ #if wxUSE_DIRDLG
134
+ using namespace RubyWX::DirCtrl;
135
+ rb_cWXDirCtrl = rb_define_class_under(rb_mWX,"DirCtrl",rb_cWXControl);
136
+ rb_define_alloc_func(rb_cWXDirCtrl,_alloc);
137
+
138
+ #if 0
139
+ rb_define_attr(rb_cWXDirCtrl,"filter",1,1);
140
+ rb_define_attr(rb_cWXDirCtrl,"path",1,1);
141
+ rb_define_attr(rb_cWXDirCtrl,"filter_index",1,1);
142
+
143
+ rb_define_attr(rb_cWXDirCtrl,"file_paths",1,0);
144
+ #endif
145
+
146
+ rb_define_method(rb_cWXDirCtrl,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
147
+
148
+ rb_define_attr_method(rb_cWXDirCtrl,"filter",_getFilter,_setFilter);
149
+ rb_define_attr_method(rb_cWXDirCtrl,"path",_getPath,_setPath);
150
+ rb_define_attr_method(rb_cWXDirCtrl,"filter_index",_GetFilterIndex,_setFilterIndex);
151
+
152
+ rb_define_attr_method(rb_cWXDirCtrl,"file_paths",_GetFilePaths,NULL);
153
+
154
+ registerInfo<wxFileCtrl>(rb_cWXDirCtrl);
155
+ #endif
156
+
157
+ }
158
+
159
+
160
+
161
+
@@ -0,0 +1,21 @@
1
+ /*
2
+ * wxDirCtrl.hpp
3
+ *
4
+ * Created on: 29.09.2014
5
+ * Author: hanmac
6
+ */
7
+
8
+ #ifndef WXDIRCTRL_HPP_
9
+ #define WXDIRCTRL_HPP_
10
+
11
+ #include "wxControl.hpp"
12
+
13
+ extern VALUE rb_cWXDirCtrl;
14
+
15
+ void Init_WXDirCtrl(VALUE rb_mWX);
16
+
17
+ #if wxUSE_DIRDLG
18
+ #include <wx/dirctrl.h>
19
+ #endif
20
+
21
+ #endif /* WXDIRCTRL_HPP_ */
@@ -71,11 +71,11 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
71
71
  }
72
72
 
73
73
  FileDirPicker::check_style_flags(style);
74
-
75
- _self->Create(
76
- unwrap<wxWindow*>(parent),id,path,
77
- message,wxDefaultPosition,wxDefaultSize,style
78
- );
74
+ if(nil_check(parent))
75
+ _self->Create(
76
+ unwrap<wxWindow*>(parent),id,path,
77
+ message,wxDefaultPosition,wxDefaultSize,style
78
+ );
79
79
 
80
80
  }
81
81
  rb_call_super(argc,argv);
@@ -63,11 +63,12 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
63
63
 
64
64
  FileDirPicker::check_style_flags(style);
65
65
 
66
- _self->Create(
67
- unwrap<wxWindow*>(parent),id,label,path,
68
- message,wildCard,
69
- wxDefaultPosition,wxDefaultSize,style
70
- );
66
+ if(nil_check(parent))
67
+ _self->Create(
68
+ unwrap<wxWindow*>(parent),id,label,path,
69
+ message,wildCard,
70
+ wxDefaultPosition,wxDefaultSize,style
71
+ );
71
72
 
72
73
  }
73
74
 
@@ -104,9 +105,6 @@ DLL_LOCAL void Init_WXDirPickerWidget(VALUE rb_mWX)
104
105
  rb_cWXAnyButton = rb_define_class_under(rb_mWX,"AnyButton",rb_cWXControl);
105
106
 
106
107
  rb_cWXButton = rb_define_class_under(rb_mWX,"Button",rb_cWXAnyButton);
107
-
108
- rb_define_attr(rb_cWXDirPickerWidget,"path",1,1);
109
-
110
108
  #endif
111
109
 
112
110
  #if wxUSE_DIRPICKERCTRL
@@ -114,6 +112,10 @@ DLL_LOCAL void Init_WXDirPickerWidget(VALUE rb_mWX)
114
112
  rb_cWXDirPickerWidget = rb_define_class_under(rb_mWX,"DirPickerWidget",rb_cWXButton);
115
113
  rb_define_alloc_func(rb_cWXDirPickerWidget,_alloc);
116
114
 
115
+ #if 0
116
+ rb_define_attr(rb_cWXDirPickerWidget,"path",1,1);
117
+ #endif
118
+
117
119
  rb_define_method(rb_cWXDirPickerWidget,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
118
120
 
119
121
  rb_define_attr_method(rb_cWXDirPickerWidget,"path",_getPath,_setPath);
@@ -59,8 +59,11 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
59
59
  FileCtrlBase::set_style_flags(hash,style);
60
60
 
61
61
  }
62
-
63
- _self->Create(unwrap<wxWindow*>(parent),id,defaultDirectory,defaultFilename,defaultWildCard,style);
62
+ if(nil_check(parent))
63
+ _self->Create(unwrap<wxWindow*>(parent),id,
64
+ defaultDirectory,defaultFilename,
65
+ defaultWildCard,style
66
+ );
64
67
 
65
68
  }
66
69
 
@@ -45,6 +45,9 @@ macro_attr(Directory,wxString)
45
45
  macro_attr(Filename,wxString)
46
46
  macro_attr(Path,wxString)
47
47
 
48
+ singlereturn_array(GetPaths,wxArrayString)
49
+ singlereturn_array(GetFilenames,wxArrayString)
50
+
48
51
  singlereturn(GetFilterIndex)
49
52
 
50
53
 
@@ -139,6 +142,15 @@ singlereturn(GetFile)
139
142
  /* Document-attr: filename
140
143
  * the filename of the FileCtrl. String
141
144
  */
145
+ /* Document-attr: path
146
+ * the path of the FileCtrl. String
147
+ */
148
+ /* Document-attr: filenames
149
+ * the filenames of the FileCtrl. Array<String>
150
+ */
151
+ /* Document-attr: paths
152
+ * the paths of the FileCtrl. Array<String>
153
+ */
142
154
 
143
155
  /* Document-const: OPEN
144
156
  * creates control in "open" mode
@@ -166,12 +178,27 @@ DLL_LOCAL void Init_WXFileCtrlBase(VALUE rb_mWX)
166
178
 
167
179
  rb_cWXEvent = rb_define_class_under(rb_mWX,"Event",rb_cObject);
168
180
  rb_cWXCommandEvent = rb_define_class_under(rb_cWXEvent,"Command",rb_cWXEvent);
181
+ #endif
182
+
183
+
184
+ #if wxUSE_FILECTRL
185
+ using namespace RubyWX::FileCtrlBase;
186
+ rb_cWXFileCtrlBase = rb_define_class_under(rb_mWX,"FileCtrlBase",rb_cWXControl);
187
+ rb_undef_alloc_func(rb_cWXFileCtrlBase);
188
+
189
+ rb_cWXFileCtrlEvent = rb_define_class_under(rb_cWXEvent,"FileCtrl",rb_cWXCommandEvent);
169
190
 
191
+ #if 0
170
192
  rb_define_attr(rb_cWXFileCtrlBase,"wildcard",1,1);
171
193
  rb_define_attr(rb_cWXFileCtrlBase,"directory",1,1);
172
194
  rb_define_attr(rb_cWXFileCtrlBase,"filename",1,1);
195
+ rb_define_attr(rb_cWXFileCtrlBase,"path",1,1);
173
196
  rb_define_attr(rb_cWXFileCtrlBase,"filter_index",1,1);
174
197
 
198
+ rb_define_attr(rb_cWXFileCtrlBase,"filenames",1,0);
199
+ rb_define_attr(rb_cWXFileCtrlBase,"paths",1,0);
200
+
201
+
175
202
  rb_define_attr(rb_cWXFileCtrlEvent,"directory",1,1);
176
203
  rb_define_attr(rb_cWXFileCtrlEvent,"filter_index",1,1);
177
204
 
@@ -179,18 +206,17 @@ DLL_LOCAL void Init_WXFileCtrlBase(VALUE rb_mWX)
179
206
 
180
207
  #endif
181
208
 
182
- #if wxUSE_FILECTRL
183
- using namespace RubyWX::FileCtrlBase;
184
- rb_cWXFileCtrlBase = rb_define_class_under(rb_mWX,"FileCtrlBase",rb_cWXControl);
185
- rb_undef_alloc_func(rb_cWXFileCtrlBase);
186
-
187
209
  rb_define_method(rb_cWXFileCtrlBase,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
188
210
 
189
211
  rb_define_attr_method(rb_cWXFileCtrlBase,"wildcard",_getWildcard,_setWildcard);
190
212
  rb_define_attr_method(rb_cWXFileCtrlBase,"directory",_getDirectory,_setDirectory);
191
213
  rb_define_attr_method(rb_cWXFileCtrlBase,"filename",_getFilename,_setFilename);
214
+ rb_define_attr_method(rb_cWXFileCtrlBase,"path",_getPath,_setPath);
192
215
  rb_define_attr_method(rb_cWXFileCtrlBase,"filter_index",_GetFilterIndex,_setFilterIndex);
193
216
 
217
+ rb_define_attr_method(rb_cWXFileCtrlBase,"filenames",_GetFilenames,NULL);
218
+ rb_define_attr_method(rb_cWXFileCtrlBase,"paths",_GetPaths,NULL);
219
+
194
220
  rb_define_const(rb_cWXFileCtrlBase,"OPEN",INT2NUM(wxFC_OPEN));
195
221
  rb_define_const(rb_cWXFileCtrlBase,"SAVE",INT2NUM(wxFC_SAVE));
196
222
  rb_define_const(rb_cWXFileCtrlBase,"MULTIPLE",INT2NUM(wxFC_MULTIPLE));
@@ -198,8 +224,6 @@ DLL_LOCAL void Init_WXFileCtrlBase(VALUE rb_mWX)
198
224
 
199
225
  rb_define_const(rb_cWXFileCtrlBase,"DEFAULT_STYLE",INT2NUM(wxFC_DEFAULT_STYLE));
200
226
 
201
-
202
- rb_cWXFileCtrlEvent = rb_define_class_under(rb_cWXEvent,"FileCtrl",rb_cWXCommandEvent);
203
227
  registerEventType("filectrl_selectionchanged",wxEVT_FILECTRL_SELECTIONCHANGED,rb_cWXFileCtrlEvent);
204
228
  registerEventType("filectrl_fileactivated",wxEVT_FILECTRL_FILEACTIVATED,rb_cWXFileCtrlEvent);
205
229
  registerEventType("filectrl_folderchanged",wxEVT_FILECTRL_FOLDERCHANGED,rb_cWXFileCtrlEvent);
@@ -62,8 +62,11 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
62
62
  FileCtrlBase::set_style_flags(hash,style);
63
63
 
64
64
  }
65
-
66
- _self->Create(unwrap<wxWindow*>(parent),id,defaultDirectory,defaultFilename,defaultWildCard,style);
65
+ if(nil_check(parent))
66
+ _self->Create(unwrap<wxWindow*>(parent), id,
67
+ defaultDirectory, defaultFilename,
68
+ defaultWildCard, style
69
+ );
67
70
 
68
71
  }
69
72