wxruby3 1.4.2 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/wx/core/evthandler.rb +8 -0
- data/lib/wx/doc/evthandler.rb +0 -23
- data/lib/wx/version.rb +1 -1
- data/rakelib/lib/config/macosx.rb +31 -4
- data/rakelib/lib/config/pkgman/linux.rb +9 -1
- data/rakelib/lib/core/package.rb +68 -49
- data/rakelib/lib/director/events.rb +5 -3
- data/rakelib/lib/director/grid_ctrl.rb +24 -0
- data/rakelib/lib/director/html_printout.rb +2 -0
- data/rakelib/lib/director/print_data.rb +7 -0
- data/rakelib/lib/director/printer.rb +2 -0
- data/rakelib/lib/director/richtext_printing.rb +2 -0
- data/rakelib/lib/director/splitter_window.rb +17 -0
- data/rakelib/lib/director/textctrl.rb +21 -4
- data/rakelib/lib/specs/interfaces.rb +8 -0
- data/rakelib/lib/typemap/print_page_range.rb +97 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba2a7c48f9f24e515c6891a059c0b1801f91bd11fe0dcc4d2d82c76fb810da0b
|
4
|
+
data.tar.gz: 9bb9ada532a116f6826dc394a0f418f278115c65b7c80702f15c80274bc44628
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed03bde1136e78acd711d2b1ffc696306840ca3f5032d8cd90b64f4eba005772c8de0a475035c0441537302f33a28b981f391f992715ef72207ed451b3e4bf74
|
7
|
+
data.tar.gz: a4e78a5adafd2cc15e05b113a2146de556bf86312d3cc2f7709b13103ecc7248c150127ff710547e63deb8055e4cf220df7ec963265a3e5b07582bbf6b5802be
|
data/lib/wx/core/evthandler.rb
CHANGED
@@ -298,6 +298,14 @@ module Wx
|
|
298
298
|
evt_mousewheel(*args, &block)
|
299
299
|
end
|
300
300
|
|
301
|
+
# Convenience evt_handler to listen to all joystick events.
|
302
|
+
def evt_joystick_events(*args, &block)
|
303
|
+
evt_joy_button_down(*args, &block)
|
304
|
+
evt_joy_button_up(*args, &block)
|
305
|
+
evt_joy_move(*args, &block)
|
306
|
+
evt_joy_zmove(*args, &block)
|
307
|
+
end
|
308
|
+
|
301
309
|
# Convenience evt handler to listen to all scrollwin events.
|
302
310
|
def evt_scrollwin(meth = nil, &block)
|
303
311
|
evt_scrollwin_top(meth, &block)
|
data/lib/wx/doc/evthandler.rb
CHANGED
@@ -99,29 +99,6 @@ module Wx
|
|
99
99
|
# @yieldparam [Wx::CommandEvent] event event to handle
|
100
100
|
def evt_command_range(id1, id2, evt_id, meth = nil, &block) end
|
101
101
|
|
102
|
-
# Convenience evt_handler to listen to all mouse events.
|
103
|
-
# @yieldparam [Wx::MouseEvent] event event to handle
|
104
|
-
def evt_mouse_events(*args, &block) end
|
105
|
-
|
106
|
-
# Convenience evt handler to listen to all scrollwin events
|
107
|
-
# (from Wx::ScrolledWindow).
|
108
|
-
# @param [String,Symbol,Method,Proc] meth (name of) method or event handling proc
|
109
|
-
# @yieldparam [Wx::ScrollWinEvent] event event to handle
|
110
|
-
def evt_scrollwin(meth = nil, &block) end
|
111
|
-
|
112
|
-
# Convenience evt handler to listen to all scroll events
|
113
|
-
# (from Wx::Slider and Wx::ScrollBar).
|
114
|
-
# @param [String,Symbol,Method,Proc] meth (name of) method or event handling proc
|
115
|
-
# @yieldparam [Wx::ScrollWinEvent] event event to handle
|
116
|
-
def evt_scroll(meth = nil, &block) end
|
117
|
-
|
118
|
-
# Convenience evt handler to listen to all scroll events
|
119
|
-
# (from Wx::Slider and Wx::ScrollBar) with an id.
|
120
|
-
# @param [Integer] id window identifier
|
121
|
-
# @param [String,Symbol,Method,Proc] meth (name of) method or event handling proc
|
122
|
-
# @yieldparam [Wx::ScrollWinEvent] event event to handle
|
123
|
-
def evt_scroll_command(id, meth = nil, &block) end
|
124
|
-
|
125
102
|
# Processes Wx::WindowDestroyEvent events.
|
126
103
|
# In wxRuby Wx::Event#skipped will be forced to true after the provided
|
127
104
|
# handler has finished to make sure the event is propagated as it is
|
data/lib/wx/version.rb
CHANGED
@@ -158,10 +158,37 @@ module WXRuby3
|
|
158
158
|
private
|
159
159
|
|
160
160
|
def wx_configure
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
161
|
+
wxw_ver = nil
|
162
|
+
if WXRuby3.config.sysinfo.os.release >= '15'
|
163
|
+
# try to detect wxWidgets version
|
164
|
+
verfile = File.join(ext_path, 'wxWidgets', 'include', 'wx', 'version.h')
|
165
|
+
if File.exist?(verfile)
|
166
|
+
v_major = v_minor = v_release = nil
|
167
|
+
File.foreach(verfile) do |line|
|
168
|
+
case line
|
169
|
+
when /\#define\s+wxMAJOR_VERSION\s+(\d+)/
|
170
|
+
v_major = $1.to_i
|
171
|
+
when /\#define\s+wxMINOR_VERSION\s+(\d+)/
|
172
|
+
v_minor = $1.to_i
|
173
|
+
when /\#define\s+wxRELEASE_NUMBER\s+(\d+)/
|
174
|
+
v_release = $1.to_i
|
175
|
+
end
|
176
|
+
end
|
177
|
+
wxw_ver = "#{v_major}.#{v_minor}.#{v_release}"
|
178
|
+
end
|
179
|
+
end
|
180
|
+
if WXRuby3.config.sysinfo.os.release >= '15' && (wxw_ver.nil? || wxw_ver <= '3.2.6')
|
181
|
+
# circumvent compilation problems on MacOS 15 or higher with older wxWidgets releases
|
182
|
+
bash("./configure " +
|
183
|
+
"--disable-optimise --disable-sys-libs --without-liblzma --without-regex " +
|
184
|
+
"--prefix=`pwd`/install --disable-tests --without-subdirs --disable-debug_info " +
|
185
|
+
"CFLAGS=\"-Wno-unused-but-set-variable\"")
|
186
|
+
else
|
187
|
+
bash("./configure --with-macosx-version-min=#{WXRuby3.config.sysinfo.os.release}.0 " +
|
188
|
+
"--disable-optimise --disable-sys-libs --without-liblzma --without-regex " +
|
189
|
+
"--prefix=`pwd`/install --disable-tests --without-subdirs --disable-debug_info " +
|
190
|
+
"CFLAGS=\"-Wno-unused-but-set-variable\"")
|
191
|
+
end
|
165
192
|
end
|
166
193
|
|
167
194
|
def wx_make
|
@@ -30,6 +30,13 @@ module WXRuby3
|
|
30
30
|
self
|
31
31
|
end
|
32
32
|
|
33
|
+
def alias(distro, release, alias_distro, alias_release)
|
34
|
+
if @dependencies.has_key?(distro) && @dependencies[distro].has_key?(release)
|
35
|
+
@dependencies[alias_distro][alias_release] = @dependencies[distro][release]
|
36
|
+
end
|
37
|
+
self
|
38
|
+
end
|
39
|
+
|
33
40
|
def get(distro, release: nil)
|
34
41
|
@dependencies[distro][release]
|
35
42
|
end
|
@@ -37,7 +44,8 @@ module WXRuby3
|
|
37
44
|
|
38
45
|
PLATFORM_DEPS = {
|
39
46
|
debian: PlatformDependencies.new(%w[libgtk-3-dev libwebkit2gtk-4.0-dev libgspell-1-dev libunwind-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libcurl4-openssl-dev libsecret-1-dev libnotify-dev])
|
40
|
-
.add('ubuntu', %w[libgtk-3-dev libwebkit2gtk-4.1-dev libgspell-1-dev libunwind-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libcurl4-openssl-dev libsecret-1-dev libnotify-dev], release: '24.04')
|
47
|
+
.add('ubuntu', %w[libgtk-3-dev libwebkit2gtk-4.1-dev libgspell-1-dev libunwind-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libcurl4-openssl-dev libsecret-1-dev libnotify-dev], release: '24.04')
|
48
|
+
.alias('ubuntu', '24.04', 'linuxmint', '22'),
|
41
49
|
rhel: PlatformDependencies.new(%w[expat-devel findutils gspell-devel gstreamer1-plugins-base-devel gtk3-devel libcurl-devel libjpeg-devel libnotify-devel libpng-devel libSM-devel libsecret-devel libtiff-devel SDL-devel webkit2gtk4.1-devel zlib-devel]),
|
42
50
|
suse: PlatformDependencies.new(%w[gtk3-devel webkit2gtk3-devel gspell-devel gstreamer-devel gstreamer-plugins-base-devel libcurl-devel libsecret-devel libnotify-devel libSDL-devel zlib-devel libjpeg-devel libpng-devel]),
|
43
51
|
arch: PlatformDependencies.new(%w[pkg-config gtk3 webkit2gtk gspell libunwind gstreamer curl libsecret libnotify libpng12])
|
data/rakelib/lib/core/package.rb
CHANGED
@@ -526,28 +526,6 @@ module WXRuby3
|
|
526
526
|
end
|
527
527
|
end
|
528
528
|
|
529
|
-
def generate_event_types(fout, item, evts_handled)
|
530
|
-
fout.puts " # from #{item.name}"
|
531
|
-
item.event_types.each do |evt_hnd, evt_type, evt_arity, evt_klass, _|
|
532
|
-
evh_name = evt_hnd.downcase
|
533
|
-
unless evts_handled.include?(evh_name)
|
534
|
-
evt_klass ||= if item.event
|
535
|
-
item.name
|
536
|
-
else
|
537
|
-
raise "Don't know Event class for #{evh_name} event type (from #{item.name})"
|
538
|
-
end
|
539
|
-
fout.puts ' '+<<~__HEREDOC.split("\n").join("\n ")
|
540
|
-
self.register_event_type EventType[
|
541
|
-
'#{evh_name}', #{evt_arity},
|
542
|
-
#{fullname}::#{evt_type},
|
543
|
-
#{fullname}::#{evt_klass.sub(/\Awx/i, '')}
|
544
|
-
] if #{fullname}.const_defined?(:#{evt_type})
|
545
|
-
__HEREDOC
|
546
|
-
evts_handled << evh_name
|
547
|
-
end
|
548
|
-
end
|
549
|
-
end
|
550
|
-
|
551
529
|
class << self
|
552
530
|
# need to share these over all packages since events may be defined in multiple
|
553
531
|
def generated_events
|
@@ -561,6 +539,46 @@ module WXRuby3
|
|
561
539
|
end
|
562
540
|
@event_list_packages
|
563
541
|
end
|
542
|
+
|
543
|
+
# some event handler (catch-all) macros need custom coding so we need to skip
|
544
|
+
# them when generating
|
545
|
+
def ignored_event_handlers
|
546
|
+
@ignored_event_handlers ||= Set.new
|
547
|
+
end
|
548
|
+
|
549
|
+
def full_docs?
|
550
|
+
if @full_docs.nil?
|
551
|
+
@full_docs = !!ENV['WXRUBY_FULLDOCS']
|
552
|
+
end
|
553
|
+
@full_docs
|
554
|
+
end
|
555
|
+
end
|
556
|
+
|
557
|
+
def generate_event_types(fout, item, evts_handled)
|
558
|
+
fout.puts " # from #{item.name}"
|
559
|
+
item.event_types.each do |evt_hnd, evt_type, evt_arity, evt_klass, _|
|
560
|
+
unless Package.ignored_event_handlers.include?(evt_hnd)
|
561
|
+
evh_name = evt_hnd.downcase
|
562
|
+
unless evts_handled.include?(evh_name)
|
563
|
+
evt_klass ||= item.name if item.event
|
564
|
+
# skip if we do not have an actually existing event class
|
565
|
+
if (item.event && item.name == evt_klass) ||
|
566
|
+
(evt_klass && included_directors.any? { |dir| dir.defmod.find_item(evt_klass) })
|
567
|
+
|
568
|
+
evt_klass ||= item.name
|
569
|
+
fout.puts ' '+<<~__HEREDOC.split("\n").join("\n ")
|
570
|
+
self.register_event_type EventType[
|
571
|
+
'#{evh_name}', #{evt_arity},
|
572
|
+
#{fullname}::#{evt_type},
|
573
|
+
#{fullname}::#{evt_klass.sub(/\Awx/i, '')}
|
574
|
+
]
|
575
|
+
__HEREDOC
|
576
|
+
evts_handled << evh_name
|
577
|
+
|
578
|
+
end
|
579
|
+
end
|
580
|
+
end
|
581
|
+
end
|
564
582
|
end
|
565
583
|
|
566
584
|
def generate_event_list
|
@@ -635,31 +653,36 @@ module WXRuby3
|
|
635
653
|
item.event_types.each do |evt_hnd, evt_type, evt_arity, evt_klass, evt_nodoc|
|
636
654
|
evh_name = evt_hnd.downcase
|
637
655
|
unless evts_handled.include?(evh_name)
|
638
|
-
evt_klass ||= item.name
|
639
|
-
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
656
|
+
evt_klass ||= item.name if item.event
|
657
|
+
# skip if we do not have an actually existing event class (for this platform)
|
658
|
+
if Package.full_docs? || (item.event && item.name == evt_klass) ||
|
659
|
+
(evt_klass && included_directors.any? { |dir| dir.defmod.find_item(evt_klass) })
|
660
|
+
|
661
|
+
evh_args, evh_docstr = evt_nodoc ? nil : find_event_doc(evh_name)
|
662
|
+
fdoc.doc.puts evh_docstr if evh_docstr
|
663
|
+
fdoc.doc.puts "Processes a {#{fullname}::#{evt_type}} event." unless /Process.*\s(event|command)/ =~ evh_docstr
|
664
|
+
case evt_arity
|
665
|
+
when 0
|
666
|
+
evh_args = 'meth = nil, &block' unless evh_args
|
667
|
+
when 1
|
668
|
+
evh_args = 'id, meth = nil, &block' unless evh_args
|
669
|
+
argnms = evh_args.split(',')
|
670
|
+
fdoc.doc.puts "@param [Integer,Wx::Enum,Wx::Window,Wx::MenuItem,Wx::ToolBarTool,Wx::Timer] #{argnms.shift.strip} window/control id"
|
671
|
+
when 2
|
672
|
+
evh_args = 'first_id, last_id, meth = nil, &block' unless evh_args
|
673
|
+
argnms = evh_args.split(',')
|
674
|
+
fdoc.doc.puts "@param [Integer,Wx::Enum,Wx::Window,Wx::MenuItem,Wx::ToolBarTool,Wx::Timer] #{argnms.shift.strip} first window/control id of range"
|
675
|
+
fdoc.doc.puts "@param [Integer,Wx::Enum,Wx::Window,Wx::MenuItem,Wx::ToolBarTool,Wx::Timer] #{argnms.shift.strip} last window/control id of range"
|
676
|
+
end
|
677
|
+
fdoc.doc.puts "@param [String,Symbol,Method,Proc] meth (name of) method or handler proc"
|
678
|
+
#fdoc.doc.puts "@param [Proc] block handler block"
|
679
|
+
fdoc.doc.puts "@yieldparam [#{fullname}::#{evt_klass.sub(/\Awx/i, '')}] event the event to handle"
|
658
680
|
|
659
|
-
|
660
|
-
|
681
|
+
fdoc.puts "def #{evh_name}(#{evh_args}) end"
|
682
|
+
fdoc.puts
|
661
683
|
|
662
|
-
|
684
|
+
evts_handled << evh_name
|
685
|
+
end
|
663
686
|
end
|
664
687
|
end
|
665
688
|
end
|
@@ -788,10 +811,6 @@ module WXRuby3
|
|
788
811
|
end
|
789
812
|
private :generate_core_doc
|
790
813
|
|
791
|
-
def self.full_docs?
|
792
|
-
!!ENV['WXRUBY_FULLDOCS']
|
793
|
-
end
|
794
|
-
|
795
814
|
def generate_docs
|
796
815
|
# make sure all modules have been extracted from xml
|
797
816
|
included_directors.each {|dir| dir.extract_interface(false, gendoc: true) }
|
@@ -23,10 +23,12 @@ module WXRuby3
|
|
23
23
|
wxSizeEvent wxMoveEvent wxPaintEvent wxEraseEvent wxFocusEvent wxActivateEvent
|
24
24
|
wxInitDialogEvent wxMenuEvent wxCloseEvent wxShowEvent wxIconizeEvent wxMaximizeEvent
|
25
25
|
wxFullScreenEvent wxJoystickEvent wxDropFilesEvent wxUpdateUIEvent wxSysColourChangedEvent
|
26
|
-
|
27
|
-
|
28
|
-
wxWindowDestroyEvent wxHelpEvent wxClipboardTextEvent wxContextMenuEvent wxChildFocusEvent
|
26
|
+
wxDPIChangedEvent wxPaletteChangedEvent wxQueryNewPaletteEvent wxNavigationKeyEvent
|
27
|
+
wxWindowCreateEvent wxWindowDestroyEvent wxHelpEvent wxClipboardTextEvent wxContextMenuEvent wxChildFocusEvent
|
29
28
|
])
|
29
|
+
if Config.instance.features_set?('WXMSW')
|
30
|
+
spec.items.concat %w[wxMouseCaptureChangedEvent wxMouseCaptureLostEvent wxDisplayChangedEvent]
|
31
|
+
end
|
30
32
|
spec.fold_bases('wxMouseEvent' => %w[wxMouseState wxKeyboardState], 'wxKeyEvent' => 'wxKeyboardState')
|
31
33
|
spec.ignore 'wxShowEvent::GetShow', 'wxIconizeEvent::Iconized'
|
32
34
|
spec.ignore 'wxKeyEvent::GetPosition(wxCoord *,wxCoord *) const'
|
@@ -554,9 +554,33 @@ module WXRuby3
|
|
554
554
|
'%constant char* wxGRID_VALUE_DATE = "date";',
|
555
555
|
'%constant char* wxGRID_VALUE_TEXT = "string";',
|
556
556
|
'%constant char* wxGRID_VALUE_LONG = "long";'
|
557
|
+
# fix naming mismatch with #evt_grid_cmd_col_size
|
558
|
+
spec.add_swig_code '%constant int EVT_GRID_CMD_COL_SIZE = wxEVT_GRID_COL_SIZE;',
|
559
|
+
'%constant int EVT_GRID_CMD_ROW_SIZE = wxEVT_GRID_ROW_SIZE;',
|
560
|
+
'%constant int EVT_GRID_CMD_EDITOR_CREATED = wxEVT_GRID_EDITOR_CREATED;',
|
561
|
+
'%constant int EVT_GRID_CMD_RANGE_SELECTING = wxEVT_GRID_RANGE_SELECTING;',
|
562
|
+
'%constant int EVT_GRID_CMD_RANGE_SELECTED = wxEVT_GRID_RANGE_SELECTED;'
|
563
|
+
end
|
564
|
+
|
565
|
+
def doc_generator
|
566
|
+
GridCtrlDocGenerator.new(self)
|
557
567
|
end
|
558
568
|
end # class GridCtrl
|
559
569
|
|
560
570
|
end # class Director
|
561
571
|
|
572
|
+
class GridCtrlDocGenerator < DocGenerator
|
573
|
+
|
574
|
+
protected def gen_constants_doc(fdoc)
|
575
|
+
super
|
576
|
+
xref_table = package.all_modules.reduce(DocGenerator.constants_db) { |db, mod| db[mod] }
|
577
|
+
gen_constant_doc(fdoc, 'EVT_GRID_CMD_COL_SIZE', xref_table['EVT_GRID_COL_SIZE'], 'wxRuby specific alias for Wx::EVT_GRID_COL_SIZE')
|
578
|
+
gen_constant_doc(fdoc, 'EVT_GRID_CMD_ROW_SIZE', xref_table['EVT_GRID_ROW_SIZE'], 'wxRuby specific alias for Wx::EVT_GRID_ROW_SIZE')
|
579
|
+
gen_constant_doc(fdoc, 'EVT_GRID_CMD_EDITOR_CREATED', xref_table['EVT_GRID_EDITOR_CREATED'], 'wxRuby specific alias for Wx::EVT_GRID_EDITOR_CREATED')
|
580
|
+
gen_constant_doc(fdoc, 'EVT_GRID_CMD_RANGE_SELECTING', xref_table['EVT_GRID_RANGE_SELECTING'], 'wxRuby specific alias for Wx::wxEVT_GRID_RANGE_SELECTING')
|
581
|
+
gen_constant_doc(fdoc, 'EVT_GRID_CMD_RANGE_SELECTED', xref_table['EVT_GRID_RANGE_SELECTED'], 'wxRuby specific alias for Wx::wxEVT_GRID_RANGE_SELECTED')
|
582
|
+
end
|
583
|
+
|
584
|
+
end
|
585
|
+
|
562
586
|
end # module WXRuby3
|
@@ -12,6 +12,8 @@ module WXRuby3
|
|
12
12
|
|
13
13
|
class PrintData < Director
|
14
14
|
|
15
|
+
include Typemap::PrintPageRange
|
16
|
+
|
15
17
|
def setup
|
16
18
|
super
|
17
19
|
spec.gc_as_untracked
|
@@ -21,6 +23,11 @@ module WXRuby3
|
|
21
23
|
# only keep the const version
|
22
24
|
spec.ignore 'wxPageSetupDialogData::GetPrintData'
|
23
25
|
spec.regard 'wxPageSetupDialogData::GetPrintData() const'
|
26
|
+
if Config.instance.wx_version >= '3.3.0'
|
27
|
+
# new since 3.3.0
|
28
|
+
spec.items << 'wxPrintPageRange'
|
29
|
+
spec.regard 'wxPrintPageRange::fromPage', 'wxPrintPageRange::toPage' # include public attributes
|
30
|
+
end
|
24
31
|
# for GetPrintData methods
|
25
32
|
spec.map 'wxPrintData&' => 'Wx::PrintData' do
|
26
33
|
map_out code: '$result = SWIG_NewPointerObj(SWIG_as_voidptr(new wxPrintData(*$1)), SWIGTYPE_p_wxPrintData, SWIG_POINTER_OWN);'
|
@@ -20,9 +20,26 @@ module WXRuby3
|
|
20
20
|
# is missing from the XML docs
|
21
21
|
spec.extend_interface('wxSplitterWindow', 'virtual void OnInternalIdle()')
|
22
22
|
super
|
23
|
+
# fix naming mismatch with #evt_splitter_dclick
|
24
|
+
spec.add_swig_code '%constant int EVT_SPLITTER_DCLICK = wxEVT_SPLITTER_DOUBLECLICKED;'
|
23
25
|
end
|
26
|
+
|
27
|
+
def doc_generator
|
28
|
+
SplitterWindowDocGenerator.new(self)
|
29
|
+
end
|
30
|
+
|
24
31
|
end # class SplitterWindow
|
25
32
|
|
26
33
|
end # class Director
|
27
34
|
|
35
|
+
class SplitterWindowDocGenerator < DocGenerator
|
36
|
+
|
37
|
+
protected def gen_constants_doc(fdoc)
|
38
|
+
super
|
39
|
+
xref_table = package.all_modules.reduce(DocGenerator.constants_db) { |db, mod| db[mod] }
|
40
|
+
gen_constant_doc(fdoc, 'EVT_SPLITTER_DCLICK', xref_table['EVT_SPLITTER_DOUBLECLICKED'], 'wxRuby specific alias for Wx::EVT_SPLITTER_DOUBLECLICKED')
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
28
45
|
end # module WXRuby3
|
@@ -24,11 +24,28 @@ module WXRuby3
|
|
24
24
|
spec.ignore 'wxTextCtrl::GTKGetTextBuffer',
|
25
25
|
'wxTextCtrl::GTKGetEditable'
|
26
26
|
end
|
27
|
-
if Config.instance.wx_version >= '3.3.0'
|
27
|
+
if Config.instance.wx_version >= '3.3.0'
|
28
28
|
spec.items << 'wxTextSearch' << 'wxTextSearchResult'
|
29
|
-
spec.regard '
|
30
|
-
|
31
|
-
|
29
|
+
spec.regard 'wxTextSearch::m_searchValue',
|
30
|
+
'wxTextSearch::m_startingPosition',
|
31
|
+
'wxTextSearch::m_matchCase',
|
32
|
+
'wxTextSearch::m_wholeWord',
|
33
|
+
'wxTextSearch::m_direction',
|
34
|
+
'wxTextSearchResult::m_start',
|
35
|
+
'wxTextSearchResult::m_end'
|
36
|
+
spec.make_readonly 'wxTextSearch::m_searchValue',
|
37
|
+
'wxTextSearch::m_startingPosition',
|
38
|
+
'wxTextSearch::m_matchCase',
|
39
|
+
'wxTextSearch::m_wholeWord',
|
40
|
+
'wxTextSearch::m_direction',
|
41
|
+
'wxTextSearchResult::m_start',
|
42
|
+
'wxTextSearchResult::m_end'
|
43
|
+
spec.rename_for_ruby 'get_search_value' => 'wxTextSearch::m_searchValue',
|
44
|
+
'get_starting_position' => 'wxTextSearch::m_startingPosition',
|
45
|
+
'match_case?' => 'wxTextSearch::m_matchCase',
|
46
|
+
'whole_word?' => 'wxTextSearch::m_wholeWord',
|
47
|
+
'get_direction' => 'wxTextSearch::m_direction',
|
48
|
+
'start' => 'wxTextSearchResult::m_start',
|
32
49
|
'end' => 'wxTextSearchResult::m_end'
|
33
50
|
end
|
34
51
|
if Config.instance.wx_port == :wxqt
|
@@ -8,6 +8,14 @@
|
|
8
8
|
|
9
9
|
module WXRuby3
|
10
10
|
|
11
|
+
Director::Package.ignored_event_handlers.merge(%w[
|
12
|
+
EVT_SCROLL
|
13
|
+
EVT_COMMAND_SCROLL
|
14
|
+
EVT_SCROLLWIN
|
15
|
+
EVT_MOUSE_EVENTS
|
16
|
+
EVT_JOYSTICK_EVENTS
|
17
|
+
])
|
18
|
+
|
11
19
|
Director.Package('Wx') { |pkg|
|
12
20
|
Director.Spec(pkg, 'wxDefs')
|
13
21
|
Director.Spec(pkg, 'wxFunctions')
|
@@ -0,0 +1,97 @@
|
|
1
|
+
# Copyright (c) 2023 M.J.N. Corino, The Netherlands
|
2
|
+
#
|
3
|
+
# This software is released under the MIT license.
|
4
|
+
|
5
|
+
###
|
6
|
+
# wxRuby3 PrintPageRange array typemap definition
|
7
|
+
###
|
8
|
+
|
9
|
+
require_relative '../core/mapping'
|
10
|
+
|
11
|
+
module WXRuby3
|
12
|
+
|
13
|
+
module Typemap
|
14
|
+
|
15
|
+
# Typemaps for converting returned PGCell references to
|
16
|
+
# either the correct wxRuby class
|
17
|
+
module PrintPageRange
|
18
|
+
|
19
|
+
include Typemap::Module
|
20
|
+
|
21
|
+
define do
|
22
|
+
|
23
|
+
if Config.instance.wx_version >= '3.3.0'
|
24
|
+
map 'const std::vector<wxPrintPageRange> &' => 'Array<Wx::PRT::PrintPageRange>' do
|
25
|
+
map_out code: <<~__CODE
|
26
|
+
$result = rb_ary_new();
|
27
|
+
for (const wxPrintPageRange& range : *$1)
|
28
|
+
{
|
29
|
+
VALUE r_range = SWIG_NewPointerObj(new wxPrintPageRange(range), SWIGTYPE_p_wxPrintPageRange, SWIG_POINTER_OWN);
|
30
|
+
rb_ary_push($result, r_range);
|
31
|
+
}
|
32
|
+
__CODE
|
33
|
+
map_in temp: 'std::vector<wxPrintPageRange> tmp', code: <<~__CODE
|
34
|
+
if (TYPE($input) == T_ARRAY)
|
35
|
+
{
|
36
|
+
$1 = &tmp;
|
37
|
+
for (int i = 0; i < RARRAY_LEN($input); i++)
|
38
|
+
{
|
39
|
+
void *ptr;
|
40
|
+
VALUE r_range = rb_ary_entry($input, i);
|
41
|
+
int res = SWIG_ConvertPtr(r_range, &ptr, SWIGTYPE_p_wxPrintPageRange, 0);
|
42
|
+
if (!SWIG_IsOK(res) || !ptr) {
|
43
|
+
rb_raise(rb_eTypeError, "Expected Array of Wx::PRT::PrintPageRange for 1");
|
44
|
+
}
|
45
|
+
wxPrintPageRange *range = reinterpret_cast< wxPrintPageRange * >(ptr);
|
46
|
+
$1->push_back(*range);
|
47
|
+
}
|
48
|
+
}
|
49
|
+
else {
|
50
|
+
rb_raise(rb_eArgError, "Expected Array of Wx::PRT::PrintPageRange for 1");
|
51
|
+
}
|
52
|
+
__CODE
|
53
|
+
end
|
54
|
+
|
55
|
+
map 'std::vector<wxPrintPageRange> &' => 'Array<Wx::PRT::PrintPageRange>' do
|
56
|
+
|
57
|
+
map_in temp: 'std::vector<wxPrintPageRange> tmp_vector', code: '$1 = &tmp_vector;'
|
58
|
+
|
59
|
+
map_argout code: <<~__CODE
|
60
|
+
for (const wxPrintPageRange& range : *$1)
|
61
|
+
{
|
62
|
+
VALUE r_range = SWIG_NewPointerObj(new wxPrintPageRange(range), SWIGTYPE_p_wxPrintPageRange, SWIG_POINTER_OWN);
|
63
|
+
rb_ary_push($input, r_range);
|
64
|
+
}
|
65
|
+
__CODE
|
66
|
+
|
67
|
+
map_directorin code: '$input = rb_ary_new();'
|
68
|
+
|
69
|
+
map_directorargout code: <<~__CODE
|
70
|
+
for (int i = 0; i < RARRAY_LEN($result); i++)
|
71
|
+
{
|
72
|
+
void *ptr;
|
73
|
+
VALUE r_range = rb_ary_entry($result, i);
|
74
|
+
int res = SWIG_ConvertPtr(r_range, &ptr, SWIGTYPE_p_wxPrintPageRange, 0);
|
75
|
+
if (!SWIG_IsOK(res) || !ptr) {
|
76
|
+
Swig::DirectorTypeMismatchException::raise(swig_get_self(), "$symname", rb_eTypeError,
|
77
|
+
"expected Array of Wx::PRT::PrintPageRange in argument 1");
|
78
|
+
}
|
79
|
+
wxPrintPageRange *range = reinterpret_cast< wxPrintPageRange * >(ptr);
|
80
|
+
$1.push_back(*range);
|
81
|
+
}
|
82
|
+
__CODE
|
83
|
+
|
84
|
+
end
|
85
|
+
end
|
86
|
+
# Doc only mapping def
|
87
|
+
map 'std::vector<wxPrintPageRange> &' => 'Array<Wx::PRT::PrintPageRange>', swig: false do
|
88
|
+
map_in
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wxruby3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Corino
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date:
|
10
|
+
date: 2025-01-30 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: nokogiri
|
@@ -820,6 +820,7 @@ files:
|
|
820
820
|
- rakelib/lib/typemap/pgprop_arg.rb
|
821
821
|
- rakelib/lib/typemap/pgproperty.rb
|
822
822
|
- rakelib/lib/typemap/points_list.rb
|
823
|
+
- rakelib/lib/typemap/print_page_range.rb
|
823
824
|
- rakelib/lib/typemap/richtext.rb
|
824
825
|
- rakelib/lib/typemap/tree_itemid.rb
|
825
826
|
- rakelib/lib/util/string.rb
|