r2dsvg 0.4.0 → 0.4.1
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
- checksums.yaml.gz.sig +0 -0
- data/lib/r2dsvg.rb +86 -20
- data.tar.gz.sig +0 -0
- metadata +1 -1
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2b561aa931c1a66e2884576dea1525f9f3c77cb07b5757fb11081b8f807aaf91
|
4
|
+
data.tar.gz: 45a8bd9cca6d36ffb694c8c1337849ebfe4819fb0f06493799131a171a168a95
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a117efd8624e7b97c7b35dc84fa10f4ed683841c86377c13c81c7c41fb8bc262d47ec178445333f173e6dade0a6d54ddbd7eb83f3743bc9129536166df76f5f2
|
7
|
+
data.tar.gz: cdb7a48f18fe178376f3b4331a969e1793d62863bc15bd6c1ce7cd47e9bba31fde0dfee99eec927284859066f88cb9aa69661e3c102a549ea242723a6a711a42
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/r2dsvg.rb
CHANGED
@@ -34,6 +34,20 @@ module SvgleX
|
|
34
34
|
|
35
35
|
end
|
36
36
|
|
37
|
+
refine Svgle::Text do
|
38
|
+
|
39
|
+
def text=(raw_s)
|
40
|
+
|
41
|
+
oldval = @child_elements.first
|
42
|
+
|
43
|
+
r = super(raw_s)
|
44
|
+
self.obj.text = raw_s if oldval != raw_s
|
45
|
+
|
46
|
+
return r
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
37
51
|
end
|
38
52
|
|
39
53
|
class R2dSvg
|
@@ -346,6 +360,7 @@ class R2dSvg
|
|
346
360
|
color: style[:color],
|
347
361
|
z: style[:"z-index"].to_i
|
348
362
|
)
|
363
|
+
puts 'e: ' + e.inspect
|
349
364
|
e.obj = obj
|
350
365
|
@window.add obj
|
351
366
|
|
@@ -401,11 +416,11 @@ class R2dSvg
|
|
401
416
|
|
402
417
|
def draw(a)
|
403
418
|
|
404
|
-
threads = []
|
419
|
+
#threads = []
|
405
420
|
|
406
421
|
a.each do |rawx|
|
407
422
|
|
408
|
-
threads << Thread.new do
|
423
|
+
#threads << Thread.new do
|
409
424
|
x, *remaining = rawx
|
410
425
|
|
411
426
|
if x.is_a? Symbol then
|
@@ -417,11 +432,11 @@ class R2dSvg
|
|
417
432
|
else
|
418
433
|
method(x).call(remaining.take 2)
|
419
434
|
end
|
420
|
-
end
|
435
|
+
#end
|
421
436
|
|
422
437
|
end
|
423
438
|
|
424
|
-
threads.join
|
439
|
+
#threads.join
|
425
440
|
|
426
441
|
end
|
427
442
|
|
@@ -434,35 +449,62 @@ class R2dSvg
|
|
434
449
|
@debug = debug
|
435
450
|
|
436
451
|
@window = window = Window.new
|
452
|
+
@loaded = false
|
437
453
|
|
438
|
-
|
454
|
+
read(s, title)
|
439
455
|
|
440
456
|
drb = OneDrb::Server.new host: '127.0.0.1', port: '57844', obj: self
|
441
457
|
Thread.new { drb.start }
|
442
458
|
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
459
|
+
if @loaded then
|
460
|
+
|
461
|
+
window.on(:mouse_move) do |event|
|
462
|
+
mouse :mousemove, event
|
463
|
+
mouse :mouseenter, event
|
464
|
+
end
|
449
465
|
|
450
|
-
|
466
|
+
window.on(:mouse_down) do |event|
|
467
|
+
|
468
|
+
if event.button == :left then
|
469
|
+
|
470
|
+
# click and mousedown do the same thing
|
471
|
+
mouse :click, event
|
472
|
+
mouse :mousedown, event
|
473
|
+
end
|
451
474
|
|
452
|
-
|
453
|
-
|
454
|
-
|
475
|
+
end
|
476
|
+
|
477
|
+
window.on :key_down do |event|
|
478
|
+
# A key was pressed
|
479
|
+
keyboard :keydown, event
|
455
480
|
end
|
456
481
|
|
457
|
-
end
|
458
|
-
|
482
|
+
end
|
483
|
+
=begin
|
484
|
+
window.on :key_held do |event|
|
485
|
+
# A key is being held down
|
486
|
+
puts event.key
|
487
|
+
keyboard :onkeyheld, event
|
488
|
+
end
|
489
|
+
|
490
|
+
window.on :key_up do |event|
|
491
|
+
# A key was released
|
492
|
+
puts event.key
|
493
|
+
keyboard :onkeyup, event
|
494
|
+
end
|
495
|
+
=end
|
459
496
|
window.show
|
460
497
|
|
461
498
|
|
462
499
|
end
|
463
500
|
|
501
|
+
def clear()
|
502
|
+
@window.clear
|
503
|
+
end
|
504
|
+
|
464
505
|
def read(s, title=@title)
|
465
|
-
|
506
|
+
@loaded = false
|
507
|
+
@window.clear
|
466
508
|
svg, _ = RXFHelper.read(s)
|
467
509
|
doc = Svgle.new(svg, callback: self, debug: @debug)
|
468
510
|
instructions = Render.new(doc, debug: @debug).to_a
|
@@ -478,14 +520,38 @@ class R2dSvg
|
|
478
520
|
doc.root.xpath('//script').each {|x| eval x.text.unescape }
|
479
521
|
drawing.render instructions
|
480
522
|
end
|
481
|
-
|
482
|
-
|
523
|
+
|
524
|
+
@loaded = true
|
525
|
+
@doc = doc
|
483
526
|
|
484
527
|
end
|
485
528
|
|
486
529
|
|
487
530
|
private
|
488
531
|
|
532
|
+
def keyboard(action, event)
|
533
|
+
|
534
|
+
doc = @doc
|
535
|
+
|
536
|
+
@doc.root.xpath("//*[@on#{action}]").each do |x|
|
537
|
+
|
538
|
+
if block_given? then
|
539
|
+
valid = yield(x)
|
540
|
+
statement = x.method(('on' + action.to_s).to_sym).call()
|
541
|
+
puts 'statement: ' + statement.inspect if @debug
|
542
|
+
eval statement if valid
|
543
|
+
else
|
544
|
+
statement = x.method(('on' + action.to_s).to_sym).call()
|
545
|
+
puts 'statement: ' + statement.inspect if @debug
|
546
|
+
eval statement
|
547
|
+
end
|
548
|
+
|
549
|
+
end
|
550
|
+
|
551
|
+
@doc.event[action].each {|name| method(name).call event.key }
|
552
|
+
|
553
|
+
end
|
554
|
+
|
489
555
|
def mouse(action, event)
|
490
556
|
|
491
557
|
doc = @doc
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
metadata.gz.sig
CHANGED
Binary file
|