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.
- checksums.yaml +4 -4
- data/.gitignore +3 -0
- data/.rspec +2 -0
- data/Rakefile +8 -0
- data/VERSION +1 -1
- data/ext/extconf.rb +5 -1
- data/ext/main.cpp +3 -3
- data/ext/main.hpp +34 -1
- data/ext/rwx.cpp +17 -0
- data/ext/wxAnyButton.cpp +7 -6
- data/ext/wxApp.cpp +1 -1
- data/ext/wxApp.hpp +1 -1
- data/ext/wxAuiBook.cpp +5 -1
- data/ext/wxAuiPane.cpp +7 -6
- data/ext/wxBitmap.cpp +42 -6
- data/ext/wxBitmapButton.cpp +3 -2
- data/ext/wxBitmapComboBox.cpp +25 -11
- data/ext/wxBitmapToggleButton.cpp +4 -2
- data/ext/wxBookCtrl.cpp +13 -13
- data/ext/wxBrush.cpp +69 -12
- data/ext/wxBrush.hpp +6 -0
- data/ext/wxButton.cpp +3 -2
- data/ext/wxCalendarCtrl.cpp +7 -6
- data/ext/wxCalendarCtrlBase.cpp +4 -2
- data/ext/wxCalendarCtrlGeneric.cpp +10 -9
- data/ext/wxCheckBox.cpp +10 -5
- data/ext/wxCheckListBox.cpp +10 -9
- data/ext/wxChoice.cpp +10 -9
- data/ext/wxChoiceBook.cpp +5 -1
- data/ext/wxCollapsiblePane.cpp +8 -5
- data/ext/wxColor.cpp +69 -25
- data/ext/wxColor.hpp +3 -0
- data/ext/wxColorPicker.cpp +11 -5
- data/ext/wxColorPickerWidget.cpp +10 -8
- data/ext/wxComboBox.cpp +3 -3
- data/ext/wxComboCtrl.cpp +220 -0
- data/ext/wxComboCtrl.hpp +22 -0
- data/ext/wxControl.cpp +2 -2
- data/ext/wxDC.cpp +5 -4
- data/ext/wxDatePicker.cpp +10 -7
- data/ext/wxDirCtrl.cpp +161 -0
- data/ext/wxDirCtrl.hpp +21 -0
- data/ext/wxDirPicker.cpp +5 -5
- data/ext/wxDirPickerWidget.cpp +10 -8
- data/ext/wxFileCtrl.cpp +5 -2
- data/ext/wxFileCtrlBase.cpp +31 -7
- data/ext/wxFileCtrlGeneric.cpp +5 -2
- data/ext/wxFileDialog.cpp +20 -25
- data/ext/wxFileDirPicker.cpp +6 -6
- data/ext/wxFilePicker.cpp +6 -6
- data/ext/wxFilePickerWidget.cpp +10 -9
- data/ext/wxFont.cpp +6 -5
- data/ext/wxFontDialog.cpp +11 -22
- data/ext/wxFontPicker.cpp +17 -5
- data/ext/wxFontPickerWidget.cpp +10 -9
- data/ext/wxFrame.cpp +6 -4
- data/ext/wxGauge.cpp +9 -5
- data/ext/wxGrid.cpp +7 -5
- data/ext/wxGridCellAttr.cpp +6 -6
- data/ext/wxHyperLink.cpp +12 -11
- data/ext/wxImage.cpp +15 -10
- data/ext/wxInfoBar.cpp +2 -1
- data/ext/wxInfoBarGeneric.cpp +2 -1
- data/ext/wxItemContainer.cpp +5 -0
- data/ext/wxListBook.cpp +5 -2
- data/ext/wxListBox.cpp +10 -8
- data/ext/wxMenu.cpp +5 -4
- data/ext/wxMenuItem.cpp +9 -7
- data/ext/wxMultiChoiceDialog.cpp +5 -3
- data/ext/wxNoteBook.cpp +4 -2
- data/ext/wxOwnerDrawnComboBox.cpp +223 -0
- data/ext/wxOwnerDrawnComboBox.hpp +22 -0
- data/ext/wxPalette.cpp +1 -1
- data/ext/wxPanel.cpp +4 -3
- data/ext/wxPasswordEntryDialog.cpp +1 -1
- data/ext/wxPen.cpp +49 -10
- data/ext/wxPoint.cpp +6 -6
- data/ext/wxPreferences.cpp +21 -6
- data/ext/wxProperty.cpp +5 -7
- data/ext/wxPropertyCell.cpp +5 -4
- data/ext/wxPropertyGrid.cpp +26 -27
- data/ext/wxPropertyGridManager.cpp +13 -5
- data/ext/wxRadioBox.cpp +14 -11
- data/ext/wxRadioButton.cpp +9 -3
- data/ext/wxRearrangeCtrl.cpp +5 -1
- data/ext/wxRearrangeList.cpp +5 -2
- data/ext/wxRect.cpp +8 -7
- data/ext/wxRichTextCtrl.cpp +12 -6
- data/ext/wxRichTextStyle.cpp +5 -5
- data/ext/wxRichTextStyleSheet.cpp +7 -5
- data/ext/wxSTC.cpp +5 -1
- data/ext/wxSearchCtrl.cpp +12 -10
- data/ext/wxSimpleBook.cpp +5 -1
- data/ext/wxSingleChoiceDialog.cpp +4 -2
- data/ext/wxSize.cpp +8 -7
- data/ext/wxSlider.cpp +12 -7
- data/ext/wxSpinButton.cpp +14 -11
- data/ext/wxSpinButton.hpp +1 -1
- data/ext/wxSpinCtrl.cpp +18 -11
- data/ext/wxSpinCtrlDouble.cpp +161 -0
- data/ext/wxSpinCtrlDouble.hpp +21 -0
- data/ext/wxStaticBitmap.cpp +3 -1
- data/ext/wxStaticBitmapBase.cpp +4 -2
- data/ext/wxStaticBitmapGeneric.cpp +3 -1
- data/ext/wxStaticBox.cpp +7 -6
- data/ext/wxStaticLine.cpp +5 -1
- data/ext/wxStaticText.cpp +5 -1
- data/ext/wxStatusBar.cpp +12 -10
- data/ext/wxTaskBar.cpp +6 -4
- data/ext/wxTextCtrl.cpp +9 -3
- data/ext/wxTextEntry.cpp +8 -3
- data/ext/wxTimePicker.cpp +11 -8
- data/ext/wxTimer.cpp +4 -2
- data/ext/wxToggleButton.cpp +3 -1
- data/ext/wxToolBar.cpp +5 -1
- data/ext/wxToolBarTool.cpp +9 -8
- data/ext/wxToolBook.cpp +5 -2
- data/ext/wxTreeBook.cpp +5 -1
- data/ext/wxTreeCtrl.cpp +8 -7
- data/ext/wxWindow.cpp +3 -1
- data/ext/wxWizard.cpp +10 -10
- data/ext/wxWizardPage.cpp +11 -9
- data/rwx.gemspec +4 -2
- data/samples/controls/controls.rb +0 -5
- data/samples/dialog/dialog_sample.rb +0 -3
- data/spec/color_spec.rb +55 -0
- data/spec/spec_helper.rb +12 -0
- metadata +28 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62bb4050b38b7f1e7b288cedacfddd13ee25c63e
|
4
|
+
data.tar.gz: eb494f8e224d34094cd6667e993f2d86736cb011
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c67e8df721c80d812e545a0d7639c3677d6279c2bc2a20ba06fe016419e0a97ce9418da845f890ed2eb7c74f9d4ac2b123c623449f9a5be4042f14a48678607c
|
7
|
+
data.tar.gz: d779255587399de39fc5d014d07f19e932b4d4a528af0e1acc1451722e1b3298a4a9e207179e0540c785eacfa2c3bc7f7c528437585d57cbec66e2b68ee97f1d
|
data/.gitignore
CHANGED
data/.rspec
ADDED
data/Rakefile
CHANGED
@@ -7,6 +7,11 @@ require "rake/testtask"
|
|
7
7
|
require "rubygems/package_task"
|
8
8
|
require "rdoc/task"
|
9
9
|
|
10
|
+
begin
|
11
|
+
require "rspec/core/rake_task"
|
12
|
+
rescue LoadError
|
13
|
+
end
|
14
|
+
|
10
15
|
begin
|
11
16
|
require 'rake/extensiontask'
|
12
17
|
rescue LoadError
|
@@ -56,6 +61,9 @@ Rake::TestTask.new do |t|
|
|
56
61
|
t.verbose = true
|
57
62
|
end
|
58
63
|
|
64
|
+
RSpec::Core::RakeTask.new if Object.const_defined?(:RSpec)
|
65
|
+
|
66
|
+
|
59
67
|
RDoc::Task.new do |rdoc|
|
60
68
|
rdoc.title = "rwx RDocs"
|
61
69
|
rdoc.main = "README.rdoc"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.1-dev
|
1
|
+
0.0.1.1-dev
|
data/ext/extconf.rb
CHANGED
@@ -88,10 +88,14 @@ if(wx_config = find_executable('wx-config'))
|
|
88
88
|
have_member_func("wxFontPickerCtrl","GetSelectedColour","wx/fontpicker.h")
|
89
89
|
have_member_func("wxInfoBar","GetButtonCount","wx/infobar.h")
|
90
90
|
|
91
|
+
have_member_func("wxOwnerDrawnComboBox","IsListEmpty","wx/odcombo.h")
|
92
|
+
|
91
93
|
#check for enum flags
|
92
94
|
have_const("wxFD_NO_FOLLOW","wx/filedlg.h")
|
93
95
|
have_const("wxDIRCTRL_DEFAULT_STYLE",["wx/wx.h", "wx/dirctrl.h"])
|
94
|
-
|
96
|
+
have_func("wxDirCtrl()",["wx/wx.h", "wx/dirctrl.h"])
|
97
|
+
have_const("wxSTC_LEX_DMAP",["wx/wx.h", "wx/stc/stc.h"])
|
98
|
+
|
95
99
|
}
|
96
100
|
else
|
97
101
|
abort("wx-config executable not found!")
|
data/ext/main.cpp
CHANGED
@@ -113,12 +113,12 @@ rb_data_type_t* unwrapDataType(const VALUE& klass)
|
|
113
113
|
}
|
114
114
|
|
115
115
|
|
116
|
-
VALUE wrapTypedPtr(void *arg,VALUE klass)
|
116
|
+
VALUE wrapTypedPtr(void *arg,VALUE klass, bool allowNull)
|
117
117
|
{
|
118
|
-
if(arg){
|
118
|
+
if(arg || allowNull){
|
119
119
|
rb_data_type_t* datatype = unwrapDataType(klass);
|
120
120
|
if(!datatype)
|
121
|
-
rb_fatal("%
|
121
|
+
rb_fatal("%"PRIsVALUE" unknown datatype", klass);
|
122
122
|
|
123
123
|
return TypedData_Wrap_Struct(klass, datatype, arg);
|
124
124
|
}
|
data/ext/main.hpp
CHANGED
@@ -94,7 +94,7 @@ extern VALUE global_holder;
|
|
94
94
|
void rwx_refobject(VALUE object);
|
95
95
|
bool rwx_unrefobject(VALUE object);
|
96
96
|
|
97
|
-
VALUE wrapTypedPtr(void *arg,VALUE klass);
|
97
|
+
VALUE wrapTypedPtr(void *arg,VALUE klass, bool allowNull = false);
|
98
98
|
VALUE wrapTypedPtr(wxObject *object,VALUE klass);
|
99
99
|
VALUE wrapTypedPtr(wxEvtHandler *handler,VALUE klass);
|
100
100
|
|
@@ -377,6 +377,30 @@ DLL_LOCAL bool set_hash_option(VALUE hash,const char* name,T& val,T func(const V
|
|
377
377
|
|
378
378
|
}
|
379
379
|
|
380
|
+
template <typename C, typename T>
|
381
|
+
DLL_LOCAL bool set_hash_option(VALUE hash,const char* name,void (C::*set)(const T&), C& obj,T func(const VALUE&) = unwrap<T> )
|
382
|
+
{
|
383
|
+
T val;
|
384
|
+
bool result = set_hash_option(hash,name,val,func);
|
385
|
+
if(result) {
|
386
|
+
(obj.*set)(val);
|
387
|
+
}
|
388
|
+
return result;
|
389
|
+
|
390
|
+
}
|
391
|
+
template <typename C, typename T>
|
392
|
+
DLL_LOCAL bool set_hash_option(VALUE hash,const char* name,void (C::*set)(T), C& obj,T func(const VALUE&) = unwrap<T> )
|
393
|
+
{
|
394
|
+
T val;
|
395
|
+
bool result = set_hash_option(hash,name,val,func);
|
396
|
+
if(result) {
|
397
|
+
(obj.*set)(val);
|
398
|
+
}
|
399
|
+
return result;
|
400
|
+
|
401
|
+
}
|
402
|
+
|
403
|
+
|
380
404
|
DLL_LOCAL bool set_hash_flag_option(VALUE hash,const char* name,const int& flag,int& val);
|
381
405
|
|
382
406
|
#define macro_attr(attr,type) macro_attr_func(attr,Get##attr(),Set##attr,wrap,unwrap<type>,true)
|
@@ -438,6 +462,15 @@ DLL_LOCAL VALUE _##func(VALUE self)\
|
|
438
462
|
return wrap(_self->func());\
|
439
463
|
}
|
440
464
|
|
465
|
+
#define singlereturn_array(func,T) \
|
466
|
+
DLL_LOCAL VALUE _##func(VALUE self)\
|
467
|
+
{\
|
468
|
+
T ary;\
|
469
|
+
_self->func(ary);\
|
470
|
+
return wrap(ary);\
|
471
|
+
}
|
472
|
+
|
473
|
+
|
441
474
|
#define singlereturn_frozen(func) \
|
442
475
|
DLL_LOCAL VALUE _##func(VALUE self)\
|
443
476
|
{\
|
data/ext/rwx.cpp
CHANGED
@@ -112,12 +112,15 @@
|
|
112
112
|
|
113
113
|
#include "wxChoice.hpp"
|
114
114
|
#include "wxComboBox.hpp"
|
115
|
+
#include "wxComboCtrl.hpp"
|
116
|
+
#include "wxOwnerDrawnComboBox.hpp"
|
115
117
|
#include "wxBitmapComboBox.hpp"
|
116
118
|
|
117
119
|
#include "wxSlider.hpp"
|
118
120
|
|
119
121
|
#include "wxSpinButton.hpp"
|
120
122
|
#include "wxSpinCtrl.hpp"
|
123
|
+
#include "wxSpinCtrlDouble.hpp"
|
121
124
|
|
122
125
|
#include "wxTextArea.hpp"
|
123
126
|
#include "wxTextEntry.hpp"
|
@@ -146,6 +149,7 @@
|
|
146
149
|
#include "wxFileCtrlBase.hpp"
|
147
150
|
#include "wxFileCtrl.hpp"
|
148
151
|
#include "wxFileCtrlGeneric.hpp"
|
152
|
+
#include "wxDirCtrl.hpp"
|
149
153
|
|
150
154
|
#include "wxCalendarCtrlBase.hpp"
|
151
155
|
#include "wxCalendarCtrl.hpp"
|
@@ -207,6 +211,8 @@
|
|
207
211
|
|
208
212
|
#include "wxPreferences.hpp"
|
209
213
|
|
214
|
+
#include <wx/apptrait.h>
|
215
|
+
|
210
216
|
VALUE rb_mWX;
|
211
217
|
|
212
218
|
void rb_define_attr_method(VALUE klass,std::string name,VALUE(get)(VALUE),VALUE(set)(VALUE,VALUE))
|
@@ -314,6 +320,7 @@ extern "C" void Init_rwx()
|
|
314
320
|
Init_WXFileCtrlBase(rb_mWX);
|
315
321
|
Init_WXFileCtrl(rb_mWX);
|
316
322
|
Init_WXFileCtrlGeneric(rb_mWX);
|
323
|
+
Init_WXDirCtrl(rb_mWX);
|
317
324
|
|
318
325
|
Init_WXCalendarCtrlBase(rb_mWX);
|
319
326
|
Init_WXCalendarCtrl(rb_mWX);
|
@@ -338,6 +345,7 @@ extern "C" void Init_rwx()
|
|
338
345
|
Init_WXSlider(rb_mWX);
|
339
346
|
Init_WXSpinButton(rb_mWX);
|
340
347
|
Init_WXSpinCtrl(rb_mWX);
|
348
|
+
Init_WXSpinCtrlDouble(rb_mWX);
|
341
349
|
|
342
350
|
Init_WXHyperLink(rb_mWX);
|
343
351
|
|
@@ -379,6 +387,8 @@ extern "C" void Init_rwx()
|
|
379
387
|
|
380
388
|
Init_WXChoice(rb_mWX);
|
381
389
|
Init_WXComboBox(rb_mWX);
|
390
|
+
Init_WXComboCtrl(rb_mWX);
|
391
|
+
Init_WXOwnerDrawnComboBox(rb_mWX);
|
382
392
|
Init_WXBitmapComboBox(rb_mWX);
|
383
393
|
|
384
394
|
Init_WXTreeCtrl(rb_mWX);
|
@@ -469,4 +479,11 @@ extern "C" void Init_rwx()
|
|
469
479
|
->add(wxICON_ASTERISK,"asterisk")
|
470
480
|
->allow_array = false;
|
471
481
|
|
482
|
+
/*
|
483
|
+
int min,max;
|
484
|
+
wxString port(wxPlatformInfo::GetPortIdName(wxGUIAppTraits().GetToolkitVersion(&min,&max), false));
|
485
|
+
|
486
|
+
rb_warn("%s %d.%d", port.c_str().AsChar(), min, max);
|
487
|
+
//*/
|
488
|
+
|
472
489
|
}
|
data/ext/wxAnyButton.cpp
CHANGED
@@ -108,7 +108,14 @@ DLL_LOCAL void Init_WXAnyButton(VALUE rb_mWX)
|
|
108
108
|
rb_mWX = rb_define_module("WX");
|
109
109
|
rb_cWXWindow = rb_define_class_under(rb_mWX,"Window",rb_cObject);
|
110
110
|
rb_cWXControl = rb_define_class_under(rb_mWX,"Control",rb_cWXWindow);
|
111
|
+
#endif
|
111
112
|
|
113
|
+
#ifdef wxHAS_ANY_BUTTON
|
114
|
+
using namespace RubyWX::AnyButton;
|
115
|
+
rb_cWXAnyButton = rb_define_class_under(rb_mWX,"AnyButton",rb_cWXControl);
|
116
|
+
rb_undef_alloc_func(rb_cWXAnyButton);
|
117
|
+
|
118
|
+
#if 0
|
112
119
|
rb_define_attr(rb_cWXAnyButton,"bitmap_label",1,1);
|
113
120
|
rb_define_attr(rb_cWXAnyButton,"bitmap_pressed",1,1);
|
114
121
|
rb_define_attr(rb_cWXAnyButton,"bitmap_disabled",1,1);
|
@@ -116,14 +123,8 @@ DLL_LOCAL void Init_WXAnyButton(VALUE rb_mWX)
|
|
116
123
|
rb_define_attr(rb_cWXAnyButton,"bitmap_focus",1,1);
|
117
124
|
rb_define_attr(rb_cWXAnyButton,"bitmap_selected",1,1);
|
118
125
|
rb_define_attr(rb_cWXAnyButton,"bitmap_hover",1,1);
|
119
|
-
|
120
126
|
#endif
|
121
127
|
|
122
|
-
#ifdef wxHAS_ANY_BUTTON
|
123
|
-
using namespace RubyWX::AnyButton;
|
124
|
-
rb_cWXAnyButton = rb_define_class_under(rb_mWX,"AnyButton",rb_cWXControl);
|
125
|
-
rb_undef_alloc_func(rb_cWXAnyButton);
|
126
|
-
|
127
128
|
rb_define_method(rb_cWXAnyButton,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
|
128
129
|
|
129
130
|
rb_define_attr_method(rb_cWXAnyButton,"bitmap_label",_getBitmapLabel,_setBitmapLabel);
|
data/ext/wxApp.cpp
CHANGED
data/ext/wxApp.hpp
CHANGED
data/ext/wxAuiBook.cpp
CHANGED
@@ -59,7 +59,11 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
|
|
59
59
|
|
60
60
|
}
|
61
61
|
|
62
|
-
|
62
|
+
if(nil_check(parent)) {
|
63
|
+
_self->Create(unwrap<wxWindow*>(parent),id,
|
64
|
+
wxDefaultPosition,wxDefaultSize,style
|
65
|
+
);
|
66
|
+
}
|
63
67
|
|
64
68
|
}
|
65
69
|
|
data/ext/wxAuiPane.cpp
CHANGED
@@ -241,6 +241,13 @@ DLL_LOCAL VALUE _setMaximized(VALUE self, VALUE val)
|
|
241
241
|
|
242
242
|
DLL_LOCAL void Init_WXAuiPane(VALUE rb_mWX)
|
243
243
|
{
|
244
|
+
|
245
|
+
#if wxUSE_AUI
|
246
|
+
using namespace RubyWX::AuiPane;
|
247
|
+
rb_cWXAuiPane = rb_define_class_under(rb_mWX,"AuiPane",rb_cObject);
|
248
|
+
rb_define_alloc_func(rb_cWXAuiPane,_alloc);
|
249
|
+
//rb_define_method(rb_cWXAuiManager,"[]=",RUBY_METHOD_FUNC(_set),2);
|
250
|
+
|
244
251
|
#if 0
|
245
252
|
rb_define_attr(rb_cWXAuiPane,"caption",1,1);
|
246
253
|
rb_define_attr(rb_cWXAuiPane,"name",1,1);
|
@@ -282,12 +289,6 @@ DLL_LOCAL void Init_WXAuiPane(VALUE rb_mWX)
|
|
282
289
|
|
283
290
|
#endif
|
284
291
|
|
285
|
-
#if wxUSE_AUI
|
286
|
-
using namespace RubyWX::AuiPane;
|
287
|
-
rb_cWXAuiPane = rb_define_class_under(rb_mWX,"AuiPane",rb_cObject);
|
288
|
-
rb_define_alloc_func(rb_cWXAuiPane,_alloc);
|
289
|
-
//rb_define_method(rb_cWXAuiManager,"[]=",RUBY_METHOD_FUNC(_set),2);
|
290
|
-
|
291
292
|
rb_define_attr_method(rb_cWXAuiPane,"caption",_get_caption,_set_caption);
|
292
293
|
rb_define_attr_method(rb_cWXAuiPane,"name",_get_name,_set_name);
|
293
294
|
rb_define_attr_method(rb_cWXAuiPane,"icon",_get_icon,_set_icon);
|
data/ext/wxBitmap.cpp
CHANGED
@@ -5,8 +5,9 @@
|
|
5
5
|
* Author: hanmac
|
6
6
|
*/
|
7
7
|
|
8
|
-
|
8
|
+
#include "wxApp.hpp"
|
9
9
|
#include "wxBitmap.hpp"
|
10
|
+
#include "wxColor.hpp"
|
10
11
|
#include "wxPalette.hpp"
|
11
12
|
#include "wxDC.hpp"
|
12
13
|
#include <map>
|
@@ -14,7 +15,7 @@
|
|
14
15
|
|
15
16
|
#define _self unwrap<wxBitmap*>(self)
|
16
17
|
|
17
|
-
VALUE rb_cWXBitmap;
|
18
|
+
VALUE rb_cWXBitmap, rb_cWXMask;
|
18
19
|
|
19
20
|
typedef std::map<wxWindowID,wxArtID> WindowArt;
|
20
21
|
WindowArt windowArtHolder;
|
@@ -136,24 +137,42 @@ macro_attr(Height,int)
|
|
136
137
|
macro_attr(Width,int)
|
137
138
|
macro_attr(Depth,int)
|
138
139
|
|
139
|
-
|
140
|
+
singlereturn(GetMask)
|
141
|
+
|
140
142
|
#if wxUSE_PALETTE
|
141
143
|
macro_attr(Palette,wxPalette)
|
142
144
|
#endif
|
143
145
|
|
146
|
+
DLL_LOCAL VALUE _setMask(VALUE self, VALUE val) {
|
147
|
+
if(rb_obj_is_kind_of(val, rb_cWXMask))
|
148
|
+
_self->SetMask(unwrap<wxMask*>(val));
|
149
|
+
else if(is_wrapable<wxColor>(val))
|
150
|
+
_self->SetMask(new wxMask(*_self, unwrap<wxColor>(val)));
|
151
|
+
#if wxUSE_PALETTE
|
152
|
+
else if(FIXNUM_P(val))
|
153
|
+
_self->SetMask(new wxMask(*_self, NUM2INT(val)));
|
154
|
+
#endif
|
155
|
+
else
|
156
|
+
_self->SetMask(new wxMask(unwrap<wxBitmap>(val)));
|
157
|
+
return val;
|
158
|
+
}
|
159
|
+
|
144
160
|
DLL_LOCAL VALUE _alloc(VALUE self) {
|
145
|
-
return
|
161
|
+
return wrapTypedPtr(new wxBitmap, self);
|
146
162
|
}
|
147
163
|
|
148
164
|
DLL_LOCAL VALUE _draw(VALUE self)
|
149
165
|
{
|
166
|
+
app_protected();
|
167
|
+
rb_check_frozen(self);
|
168
|
+
|
150
169
|
wxDC *dc;
|
151
170
|
wxMemoryDC *mdc = new wxMemoryDC;
|
152
171
|
mdc->SelectObject(*_self);
|
153
172
|
#if wxUSE_GRAPHICS_CONTEXT
|
154
173
|
dc = new wxGCDC(*mdc);
|
155
174
|
#else
|
156
|
-
dc =
|
175
|
+
dc = mdc;
|
157
176
|
#endif
|
158
177
|
rb_yield(wrap(dc));
|
159
178
|
mdc->SelectObject(wxNullBitmap);
|
@@ -284,11 +303,17 @@ DLL_LOCAL void Init_WXBitmap(VALUE rb_mWX)
|
|
284
303
|
rb_define_method(rb_cWXBitmap,"initialize",RUBY_METHOD_FUNC(_initialize),-1);
|
285
304
|
rb_define_private_method(rb_cWXBitmap,"initialize_copy",RUBY_METHOD_FUNC(_initialize_copy),1);
|
286
305
|
|
306
|
+
rb_define_attr_method(rb_cWXBitmap,"height",_getHeight,_setHeight);
|
307
|
+
rb_define_attr_method(rb_cWXBitmap,"width",_getWidth,_setWidth);
|
308
|
+
rb_define_attr_method(rb_cWXBitmap,"depth",_getDepth,_setDepth);
|
309
|
+
|
310
|
+
rb_define_attr_method(rb_cWXBitmap,"mask",_GetMask,_setMask);
|
311
|
+
|
287
312
|
#if wxUSE_IMAGE
|
288
313
|
rb_define_method(rb_cWXBitmap,"to_image",RUBY_METHOD_FUNC(_to_image),0);
|
289
314
|
|
290
315
|
rb_define_method(rb_cWXBitmap,"marshal_dump",RUBY_METHOD_FUNC(_marshal_dump),0);
|
291
|
-
rb_define_method(rb_cWXBitmap,"marshal_load",RUBY_METHOD_FUNC(_marshal_load)
|
316
|
+
rb_define_method(rb_cWXBitmap,"marshal_load",RUBY_METHOD_FUNC(_marshal_load),-2);
|
292
317
|
#else
|
293
318
|
rb_undef_method(rb_cWXBitmap,"_load");
|
294
319
|
rb_undef_method(rb_cWXBitmap,"_dump");
|
@@ -298,10 +323,21 @@ DLL_LOCAL void Init_WXBitmap(VALUE rb_mWX)
|
|
298
323
|
rb_define_attr_method(rb_cWXBitmap,"palette",_getPalette,_setPalette);
|
299
324
|
#endif
|
300
325
|
|
326
|
+
rb_define_method(rb_cWXBitmap,"draw",RUBY_METHOD_FUNC(_draw),0);
|
327
|
+
|
301
328
|
rb_define_method(rb_cWXBitmap,"to_bitmap",RUBY_METHOD_FUNC(_to_bitmap),0);
|
302
329
|
|
303
330
|
rb_define_method(rb_cWXBitmap,"save_file",RUBY_METHOD_FUNC(_save_file),-1);
|
304
331
|
|
332
|
+
registerInfo<wxBitmap>(rb_cWXBitmap);
|
333
|
+
|
334
|
+
rb_cWXMask = rb_define_class_under(rb_mWX,"Mask",rb_cObject);
|
335
|
+
rb_undef_alloc_func(rb_cWXMask);
|
336
|
+
rb_undef_method(rb_cWXMask,"initialize_copy");
|
337
|
+
rb_undef_method(rb_cWXMask,"_load");
|
338
|
+
rb_undef_method(rb_cWXMask,"_dump");
|
339
|
+
|
340
|
+
registerInfo<wxMask>(rb_cWXMask);
|
305
341
|
|
306
342
|
registerArtID("folder",wxART_FOLDER);
|
307
343
|
|
data/ext/wxBitmapButton.cpp
CHANGED
@@ -45,8 +45,9 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
|
|
45
45
|
bitmap = wrapBitmap(temp,id,WRAP_BITMAP_ID,wxART_BUTTON);
|
46
46
|
}
|
47
47
|
|
48
|
-
|
49
|
-
|
48
|
+
if(nil_check(parent)) {
|
49
|
+
_self->Create(unwrap<wxWindow*>(parent),id,bitmap);
|
50
|
+
}
|
50
51
|
}
|
51
52
|
|
52
53
|
rb_call_super(argc,argv);
|
data/ext/wxBitmapComboBox.cpp
CHANGED
@@ -28,8 +28,19 @@ singlefunc(Clear)
|
|
28
28
|
singlefunc(Popup)
|
29
29
|
singlefunc(Dismiss)
|
30
30
|
|
31
|
+
#if defined(wxBITMAPCOMBOBOX_OWNERDRAWN_BASED) && !defined(HAVE_WXOWNERDRAWNCOMBOBOX_ISLISTEMPTY)
|
32
|
+
DLL_LOCAL VALUE _IsListEmpty(VALUE self)
|
33
|
+
{
|
34
|
+
return wrap(dynamic_cast<wxItemContainer*>(_self)->IsEmpty());
|
35
|
+
}
|
36
|
+
DLL_LOCAL VALUE _IsTextEmpty(VALUE self)
|
37
|
+
{
|
38
|
+
return wrap(dynamic_cast<wxTextEntry*>(_self)->IsEmpty());
|
39
|
+
}
|
40
|
+
#else
|
31
41
|
singlereturn(IsListEmpty)
|
32
42
|
singlereturn(IsTextEmpty)
|
43
|
+
#endif
|
33
44
|
|
34
45
|
/*
|
35
46
|
* call-seq:
|
@@ -70,15 +81,17 @@ DLL_LOCAL VALUE _initialize(int argc,VALUE *argv,VALUE self)
|
|
70
81
|
Choice::set_style_flags(hash,style);
|
71
82
|
TextCtrl::set_style_flags(hash,style);
|
72
83
|
}
|
73
|
-
_self->Create(
|
74
|
-
unwrap<wxWindow*>(parent),id,value,
|
75
|
-
wxDefaultPosition,wxDefaultSize,
|
76
|
-
choices,style
|
77
|
-
);
|
78
84
|
|
79
|
-
if(
|
80
|
-
_self->
|
81
|
-
|
85
|
+
if(nil_check(parent)) {
|
86
|
+
_self->Create(
|
87
|
+
unwrap<wxWindow*>(parent),id,value,
|
88
|
+
wxDefaultPosition,wxDefaultSize,
|
89
|
+
choices,style
|
90
|
+
);
|
91
|
+
|
92
|
+
if(selflag && check_index(selection,_self->GetCount()))
|
93
|
+
_self->SetSelection(selection);
|
94
|
+
}
|
82
95
|
}
|
83
96
|
|
84
97
|
rb_call_super(argc,argv);
|
@@ -252,14 +265,15 @@ DLL_LOCAL void Init_WXBitmapComboBox(VALUE rb_mWX)
|
|
252
265
|
rb_define_method(rb_cWXBitmapComboBox,"popup",RUBY_METHOD_FUNC(_Popup),0);
|
253
266
|
rb_define_method(rb_cWXBitmapComboBox,"dismiss",RUBY_METHOD_FUNC(_Dismiss),0);
|
254
267
|
|
268
|
+
|
269
|
+
rb_include_module(rb_cWXBitmapComboBox,rb_mWXItemContainer);
|
270
|
+
rb_include_module(rb_cWXBitmapComboBox,rb_mWXTextEntry);
|
271
|
+
|
255
272
|
rb_undef_method(rb_cWXBitmapComboBox,"empty?");
|
256
273
|
|
257
274
|
rb_define_method(rb_cWXBitmapComboBox,"list_empty?",RUBY_METHOD_FUNC(_IsListEmpty),0);
|
258
275
|
rb_define_method(rb_cWXBitmapComboBox,"text_empty?",RUBY_METHOD_FUNC(_IsTextEmpty),0);
|
259
276
|
|
260
|
-
rb_include_module(rb_cWXBitmapComboBox,rb_mWXItemContainer);
|
261
|
-
rb_include_module(rb_cWXBitmapComboBox,rb_mWXTextEntry);
|
262
|
-
|
263
277
|
rb_define_method(rb_cWXBitmapComboBox,"get_item_bitmap",RUBY_METHOD_FUNC(_getItemBitmap),1);
|
264
278
|
rb_define_method(rb_cWXBitmapComboBox,"set_item_bitmap",RUBY_METHOD_FUNC(_setItemBitmap),2);
|
265
279
|
rb_define_method(rb_cWXBitmapComboBox,"each_item_bitmap",RUBY_METHOD_FUNC(_each_bitmap),0);
|