fxruby 1.6.40-x64-mingw32 → 1.6.41-x64-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -2
- data/History.md +1315 -23
- data/README.rdoc +1 -1
- data/Rakefile +90 -68
- data/appveyor.yml +3 -1
- data/examples/inputs.rb +9 -4
- data/examples/pig.rb +2 -2
- data/examples/unicode.rb +6 -27
- data/ext/fox16_c/FXRbApp.cpp +0 -14
- data/ext/fox16_c/FXRuby.cpp +21 -31
- data/ext/fox16_c/extconf.rb +44 -25
- data/ext/fox16_c/impl.cpp +1 -1
- data/ext/fox16_c/include/FXRbCommon.h +0 -2
- data/ext/fox16_c/include/FXRbText.h +82 -2
- data/ext/fox16_c/include/FXRbTextVirtuals.h +22 -0
- data/ext/fox16_c/include/FXRuby.h +20 -2
- data/ext/fox16_c/include/gvl_wrappers.h +29 -11
- data/ext/fox16_c/make_impl.rb +1 -1
- data/fxruby.gemspec +1 -1
- data/lib/fox16/input.rb +9 -7
- data/lib/fox16/version.rb +1 -1
- data/rdoc-sources/FXGLVisual.rb +1 -1
- data/rdoc-sources/FXIconList.rb +2 -0
- data/rdoc-sources/FXList.rb +2 -0
- data/rdoc-sources/FXListBox.rb +1 -1
- data/rdoc-sources/FXText.rb +4 -2
- data/swig-interfaces/FXText.i +10 -8
- data/swig-interfaces/macros.i +9 -0
- data/test/TC_FXText.rb +19 -0
- data/test/TC_FXVec4f.rb +26 -12
- metadata +6 -6
data/lib/fox16/version.rb
CHANGED
data/rdoc-sources/FXGLVisual.rb
CHANGED
@@ -83,7 +83,7 @@ module Fox
|
|
83
83
|
|
84
84
|
# Test if OpenGL is possible.
|
85
85
|
#
|
86
|
-
# Same as {FXGLVisual.supported
|
86
|
+
# Same as {FXGLVisual.supported}, but returns the first element (true/false) only.
|
87
87
|
#
|
88
88
|
def FXGLVisual.supported?(app); end
|
89
89
|
|
data/rdoc-sources/FXIconList.rb
CHANGED
@@ -267,6 +267,8 @@ module Fox
|
|
267
267
|
# after the item is appended.
|
268
268
|
def appendItem(text, bigIcon=nil, miniIcon=nil, data=nil, notify=false); end
|
269
269
|
|
270
|
+
alias << appendItem
|
271
|
+
|
270
272
|
# Prepend a new (possibly subclassed) _item_ to the beginning of the list.
|
271
273
|
# If _notify_ is +true+, a +SEL_INSERTED+ message is sent to the list's message target
|
272
274
|
# after the item is prepended.
|
data/rdoc-sources/FXList.rb
CHANGED
@@ -217,6 +217,8 @@ module Fox
|
|
217
217
|
# Returns the integer index of the newly appended item.
|
218
218
|
def appendItem(text, icon=nil, data=nil, notify=false) ; end
|
219
219
|
|
220
|
+
alias << appendItem
|
221
|
+
|
220
222
|
# Prepend a (possibly subclassed) _item_ to the list, e.g.
|
221
223
|
#
|
222
224
|
# list.prependItem(FXListItem.new("clyde"))
|
data/rdoc-sources/FXListBox.rb
CHANGED
data/rdoc-sources/FXText.rb
CHANGED
@@ -436,8 +436,8 @@ module Fox
|
|
436
436
|
#
|
437
437
|
# Search for _string_ in text buffer, and return the extent of
|
438
438
|
# the string as a two-element array of arrays.
|
439
|
-
# The first array contains the beginning index (or indices)
|
440
|
-
# and the second array contains the ending index (or indices).
|
439
|
+
# The first array contains the beginning index (or indices if +SEARCH_REGEX+)
|
440
|
+
# and the second array contains the ending index (or indices if +SEARCH_REGEX+) of the first match.
|
441
441
|
# The search starts from the given
|
442
442
|
# _start_ position, scans forward (+SEARCH_FORWARD+) or backward
|
443
443
|
# (+SEARCH_BACKWARD+), and wraps around if +SEARCH_WRAP+ has been
|
@@ -445,6 +445,8 @@ module Fox
|
|
445
445
|
# case insensitive search (+SEARCH_IGNORECASE+), or regular expression
|
446
446
|
# search (+SEARCH_REGEX+).
|
447
447
|
#
|
448
|
+
# For regular expression searches, the found regex match begin and end is returned at index 0 and captures are returned as entries starting at index 1 in both beginning and ending arrays.
|
449
|
+
#
|
448
450
|
def findText(string, start=0, flags=SEARCH_FORWARD|SEARCH_WRAP|SEARCH_EXACT); end
|
449
451
|
|
450
452
|
# Return +true+ if position _pos_ is selected
|
data/swig-interfaces/FXText.i
CHANGED
@@ -519,6 +519,8 @@ public:
|
|
519
519
|
|
520
520
|
%extend {
|
521
521
|
/**
|
522
|
+
* TODO: Change API to return [beg, end] instead of [[beg], [end]] for non regex.
|
523
|
+
*
|
522
524
|
* Search for string in text buffer, returning the extent of
|
523
525
|
* the string in beg and end. The search starts from the given
|
524
526
|
* starting position, scans forward (SEARCH_FORWARD) or backward
|
@@ -536,23 +538,23 @@ public:
|
|
536
538
|
FXint* beg;
|
537
539
|
FXint* end;
|
538
540
|
VALUE ary=Qnil;
|
539
|
-
|
541
|
+
FXint ngroups = flags&SEARCH_REGEX ? string.contains('(')+1 : 1; // FIXME: is this right?
|
540
542
|
if(!FXMALLOC(&beg,FXint,ngroups)){
|
541
543
|
return Qnil;
|
542
|
-
|
544
|
+
}
|
543
545
|
if(!FXMALLOC(&end,FXint,ngroups)){
|
544
546
|
FXFREE(&beg);
|
545
|
-
|
546
|
-
|
547
|
+
return Qnil;
|
548
|
+
}
|
547
549
|
if(self->findText(string,beg,end,start,flags,ngroups)){
|
548
550
|
ary=rb_ary_new();
|
549
|
-
|
550
|
-
|
551
|
-
|
551
|
+
rb_ary_push(ary,FXRbMakeArray(beg,ngroups));
|
552
|
+
rb_ary_push(ary,FXRbMakeArray(end,ngroups));
|
553
|
+
}
|
552
554
|
FXFREE(&beg);
|
553
555
|
FXFREE(&end);
|
554
556
|
return ary;
|
555
|
-
|
557
|
+
}
|
556
558
|
}
|
557
559
|
|
558
560
|
/// Return TRUE if position pos is selected
|
data/swig-interfaces/macros.i
CHANGED
@@ -1165,6 +1165,15 @@
|
|
1165
1165
|
|
1166
1166
|
%define DECLARE_FXTEXT_VIRTUALS(klass)
|
1167
1167
|
%extend klass {
|
1168
|
+
virtual void eraseCursorOverhang();
|
1169
|
+
virtual void drawCursor(FXuint state);
|
1170
|
+
virtual FXuint style(FXint row,FXint beg,FXint end,FXint pos);
|
1171
|
+
virtual void drawBufferText(FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h,FXint pos,FXint n,FXuint style);
|
1172
|
+
virtual void fillBufferRect(FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h,FXuint style);
|
1173
|
+
virtual void drawTextRow(FXDCWindow& dc,FXint line,FXint left,FXint right);
|
1174
|
+
virtual void drawContents(FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h);
|
1175
|
+
virtual void drawNumbers(FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h);
|
1176
|
+
|
1168
1177
|
virtual void setCursorPos(FXint pos,FXbool notify=FALSE);
|
1169
1178
|
virtual FXbool extendSelection(FXint pos,FXTextSelectionMode mode=SELECT_CHARS,FXbool notify=FALSE);
|
1170
1179
|
virtual FXbool killSelection(FXbool notify=FALSE);
|
data/test/TC_FXText.rb
CHANGED
@@ -87,6 +87,13 @@ public
|
|
87
87
|
assert_equal([10], endIndex)
|
88
88
|
end
|
89
89
|
|
90
|
+
def test_find_text_with_startpos_wrap_nocase
|
91
|
+
@text.text = "I came, i saw, I conquered"
|
92
|
+
startIndex, endIndex = @text.findText("i ", 16, SEARCH_FORWARD|SEARCH_IGNORECASE|SEARCH_WRAP)
|
93
|
+
assert_equal([0], startIndex)
|
94
|
+
assert_equal([2], endIndex)
|
95
|
+
end
|
96
|
+
|
90
97
|
def test_find_text_with_groups
|
91
98
|
@text.text = "I came, I saw, I conquered"
|
92
99
|
startIndex, endIndex = @text.findText("I ([a-z]+)(, )?", 0, SEARCH_REGEX)
|
@@ -94,6 +101,18 @@ public
|
|
94
101
|
assert_equal([8, 6, 8], endIndex)
|
95
102
|
end
|
96
103
|
|
104
|
+
def test_find_text_with_loop
|
105
|
+
@text.text = "() ()()"
|
106
|
+
e = Enumerator.new do |y|
|
107
|
+
pos = 0
|
108
|
+
while a=@text.findText("()", pos, SEARCH_FORWARD|SEARCH_EXACT)
|
109
|
+
y << a
|
110
|
+
pos = a[1][0]
|
111
|
+
end
|
112
|
+
end
|
113
|
+
assert_equal [[[0], [2]], [[4], [6]], [[6], [8]]], e.to_a
|
114
|
+
end
|
115
|
+
|
97
116
|
if ''.respond_to?(:encoding)
|
98
117
|
def test_encoding
|
99
118
|
@text.text = "世界線航跡蔵"
|
data/test/TC_FXVec4f.rb
CHANGED
@@ -5,6 +5,20 @@ require 'fox16'
|
|
5
5
|
class TC_FXVec4f < Test::Unit::TestCase
|
6
6
|
include Fox
|
7
7
|
|
8
|
+
def assert_in_delta(v1, v2, delta)
|
9
|
+
case v1
|
10
|
+
when FXVec3f
|
11
|
+
3.times do |i|
|
12
|
+
super(v1[i], v2[i], delta)
|
13
|
+
end
|
14
|
+
when FXVec4f
|
15
|
+
4.times do |i|
|
16
|
+
super(v1[i], v2[i], delta)
|
17
|
+
end
|
18
|
+
else
|
19
|
+
super(v1, v2, delta)
|
20
|
+
end
|
21
|
+
end
|
8
22
|
|
9
23
|
def test_new
|
10
24
|
FXVec4f.new
|
@@ -65,37 +79,37 @@ class TC_FXVec4f < Test::Unit::TestCase
|
|
65
79
|
def test_neg
|
66
80
|
vec = FXVec4f.new(1.0, 2.0, 3.0, 4.0)
|
67
81
|
vec = -vec
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
82
|
+
assert_in_delta(vec[0], -1.0, 0.001)
|
83
|
+
assert_in_delta(vec[1], -2.0, 0.001)
|
84
|
+
assert_in_delta(vec[2], -3.0, 0.001)
|
85
|
+
assert_in_delta(vec[3], -4.0, 0.001)
|
72
86
|
end
|
73
87
|
|
74
88
|
def test_add
|
75
89
|
v1 = FXVec4f.new(1.0, 2.0, 3.0, 4.0)
|
76
90
|
v2 = FXVec4f.new(2.0, 4.0, 6.0, 8.0)
|
77
91
|
v3 = FXVec4f.new(3.0, 6.0, 9.0, 12.0)
|
78
|
-
|
92
|
+
assert_in_delta(v3, v1 + v2, 0.001)
|
79
93
|
end
|
80
94
|
|
81
95
|
def test_sub
|
82
96
|
v1 = FXVec4f.new(3.0, 6.0, 9.0, 12.0)
|
83
97
|
v2 = FXVec4f.new(2.0, 4.0, 6.0, 8.0)
|
84
98
|
v3 = FXVec4f.new(1.0, 2.0, 3.0, 4.0)
|
85
|
-
|
99
|
+
assert_in_delta(v3, v1 - v2, 0.001)
|
86
100
|
end
|
87
101
|
|
88
102
|
def test_mul
|
89
103
|
v1 = FXVec4f.new(3.0, 6.0, 9.0, 12.0)
|
90
104
|
v2 = FXVec4f.new(6.0, 12.0, 18.0, 24.0)
|
91
|
-
|
105
|
+
assert_in_delta(v2, v1 * 2, 0.001)
|
92
106
|
end
|
93
107
|
|
94
108
|
def test_mul2 # same as dot product
|
95
109
|
v1 = FXVec4f.new(3.0, 6.0, 9.0, 12.0)
|
96
110
|
v2 = FXVec4f.new(2.0, 4.0, 6.0, 8.0)
|
97
|
-
|
98
|
-
|
111
|
+
assert_in_delta(180.0, v1*v2, 0.001)
|
112
|
+
assert_in_delta(180.0, v2*v1, 0.001)
|
99
113
|
end
|
100
114
|
|
101
115
|
def test_div
|
@@ -110,8 +124,8 @@ class TC_FXVec4f < Test::Unit::TestCase
|
|
110
124
|
def test_dot
|
111
125
|
v1 = FXVec4f.new(3.0, 6.0, 9.0, 12.0)
|
112
126
|
v2 = FXVec4f.new(2.0, 4.0, 6.0, 8.0)
|
113
|
-
|
114
|
-
|
127
|
+
assert_in_delta(180.0, v1.dot(v2), 0.001)
|
128
|
+
assert_in_delta(180.0, v2.dot(v1), 0.001)
|
115
129
|
end
|
116
130
|
|
117
131
|
def test_length
|
@@ -121,7 +135,7 @@ class TC_FXVec4f < Test::Unit::TestCase
|
|
121
135
|
|
122
136
|
def test_normalize
|
123
137
|
vec = FXVec4f.new(1.0, 1.0, 1.0, 1.0)
|
124
|
-
|
138
|
+
assert_in_delta(FXVec4f.new(0.5, 0.5, 0.5, 0.5), vec.normalize, 0.001)
|
125
139
|
end
|
126
140
|
|
127
141
|
def test_lo
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fxruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.41
|
5
5
|
platform: x64-mingw32
|
6
6
|
authors:
|
7
7
|
- Lyle Johnson
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2020-01-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: mini_portile2
|
@@ -431,6 +431,7 @@ files:
|
|
431
431
|
- lib/2.4/fox16_c.so
|
432
432
|
- lib/2.5/fox16_c.so
|
433
433
|
- lib/2.6/fox16_c.so
|
434
|
+
- lib/2.7/fox16_c.so
|
434
435
|
- lib/fox16.rb
|
435
436
|
- lib/fox16/accel_table.rb
|
436
437
|
- lib/fox16/aliases.rb
|
@@ -991,7 +992,7 @@ files:
|
|
991
992
|
- test/stress2.rb
|
992
993
|
- test/stress3.rb
|
993
994
|
- test/testcase.rb
|
994
|
-
homepage:
|
995
|
+
homepage: https://github.com/larskanis/fxruby
|
995
996
|
licenses:
|
996
997
|
- LGPL-2.1
|
997
998
|
metadata: {}
|
@@ -1006,15 +1007,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1006
1007
|
version: '2.2'
|
1007
1008
|
- - "<"
|
1008
1009
|
- !ruby/object:Gem::Version
|
1009
|
-
version: 2.
|
1010
|
+
version: 2.8.dev
|
1010
1011
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1011
1012
|
requirements:
|
1012
1013
|
- - ">="
|
1013
1014
|
- !ruby/object:Gem::Version
|
1014
1015
|
version: '0'
|
1015
1016
|
requirements: []
|
1016
|
-
|
1017
|
-
rubygems_version: 2.7.8
|
1017
|
+
rubygems_version: 3.1.2
|
1018
1018
|
signing_key:
|
1019
1019
|
specification_version: 4
|
1020
1020
|
summary: FXRuby is the Ruby binding to the FOX GUI toolkit.
|