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.
- 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);
|