sensible-cinema 0.26.1 → 0.26.2
Sign up to get free protection for your applications and to get access to all the features.
- data/TODO +5 -8
- data/VERSION +1 -1
- data/change_log_with_feature_list.txt +4 -0
- data/lib/gui/sensible-cinema-base.rb +3 -5
- data/spec/notes +62 -7
- metadata +2 -6
- data/lib/mouse.rb +0 -148
- data/lib/mouse_draw.rb +0 -43
- data/spec/mouse.spec.rb +0 -65
- data/spec/swing_helpers.spec.rb +0 -44
data/TODO
CHANGED
@@ -24,19 +24,16 @@
|
|
24
24
|
|
25
25
|
== high prio like blocking bugs ==
|
26
26
|
|
27
|
-
== under next release specific items: ==
|
28
|
-
test out DVD upscale
|
29
|
-
no super scale res?
|
30
|
-
|
31
27
|
== next things I was working on ==
|
32
|
-
a srt that works with my DVD...does it match netflix instant jonah?
|
33
28
|
unit tests work
|
34
|
-
|
35
|
-
screen recording
|
29
|
+
screen recording sintel
|
36
30
|
more netflix instant timing
|
37
|
-
bluray jonah
|
31
|
+
bluray jonah total time vs. other
|
38
32
|
|
39
33
|
== yes do ordered for release ==
|
34
|
+
test out DVD upscale
|
35
|
+
no super scale res?
|
36
|
+
|
40
37
|
add srt instructions to docu, release
|
41
38
|
fake "tenseness" metric
|
42
39
|
netflix instant descriptor for OS X/work at all
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.26.
|
1
|
+
0.26.2
|
@@ -427,7 +427,6 @@ module SensibleSwing
|
|
427
427
|
def require_blocking_license_accept_dialog program, license_name, license_url_should_also_be_embedded_by_you_in_message,
|
428
428
|
title = 'Confirm Acceptance of License Agreement', message = nil
|
429
429
|
puts 'Please confirm license agreement in open window.'
|
430
|
-
# cancel button stays the same...
|
431
430
|
|
432
431
|
message ||= "Sensible Cinema requires a separately installed program (#{program}), not yet installed.
|
433
432
|
You can install this program manually to the vendor/cache subdirectory, or Sensible Cinema can download it for you.
|
@@ -438,12 +437,11 @@ module SensibleSwing
|
|
438
437
|
You agree that you are responsible for the download and use of this program, within sensible cinema or otherwise."
|
439
438
|
answer = JOptionPane.show_select_buttons_prompt message, :yes => 'Accept', :no => "View #{license_name}"
|
440
439
|
assert_confirmed_dialog answer, license_url_should_also_be_embedded_by_you_in_message
|
441
|
-
p 'confirmation of sensible cinema related license
|
442
|
-
throw unless
|
443
|
-
|
440
|
+
p 'confirmation of sensible cinema related license noted of: ' + license_name # LODO require all licenses together :P
|
441
|
+
throw unless answer == :yes
|
444
442
|
end
|
445
443
|
|
446
|
-
def assert_confirmed_dialog
|
444
|
+
def assert_confirmed_dialog returned, license_url_should_also_be_embedded_by_you_in_message
|
447
445
|
# :yes, :no, :cancel
|
448
446
|
# 1 is view button was clicked
|
449
447
|
# 0 is accept
|
data/spec/notes
CHANGED
@@ -1,5 +1,39 @@
|
|
1
1
|
up next:
|
2
2
|
|
3
|
+
curious george 2 http://movies.netflix.com/WiPlayer?trkid=805148&movieid=70130481 37:35 has an accomplish oh my g
|
4
|
+
|
5
|
+
== netflix upscale notes ==
|
6
|
+
|
7
|
+
:width=>657 for "HD" that said it was playing in HD, eh? ... hmm...
|
8
|
+
|
9
|
+
hulu has "up to 480p" as options...hmm...
|
10
|
+
360p speedracer displays as {:start_x=>535, :start_y=>328, :width=>542, :height=>410}
|
11
|
+
480p speedracer displays as {:start_x=>524, :start_y=>331, :width=>550, :height=>408} (same)
|
12
|
+
and always the same size minimzed eh...
|
13
|
+
|
14
|
+
netflix instant
|
15
|
+
default minimum size is {:start_x=>38, :start_y=>109, :width=>649, :height=>372}
|
16
|
+
Jonah is in hd
|
17
|
+
http://blog.netflix.com/2011/03/netflix-lowers-data-usage-by-23-for.html 1080p possible, typically it's 720p apparently [?]
|
18
|
+
720p:
|
19
|
+
2200 kbps/192 kbps
|
20
|
+
while "buffering hd" it looks a bit jagged...hmm...
|
21
|
+
if you drag, it loses and discards all buffering. yipes.
|
22
|
+
"DIS" allowing HD at first looks junky, then looks really good LOL
|
23
|
+
HD looks basically perfect, though maybe some sharpening or what not could help still...
|
24
|
+
the lines look awesome to good (this is "apparently probably" 1080p
|
25
|
+
non HD, with their upconversion
|
26
|
+
lines look pretty good, maybe a teeny touchup
|
27
|
+
coloring maybe a bit weak
|
28
|
+
maybe barely non sharp lines
|
29
|
+
no artifacts that I can tell
|
30
|
+
might not need hqdn3d?
|
31
|
+
unless they have/use their own...
|
32
|
+
|
33
|
+
TODO CGI netflix instant 1080p
|
34
|
+
compare HD and non...
|
35
|
+
|
36
|
+
|
3
37
|
== netflix instant vs srt ==
|
4
38
|
|
5
39
|
00:02:34,427 --> 00:02:36,361
|
@@ -1535,23 +1569,40 @@ hulu
|
|
1535
1569
|
15: wash your hands [before] you eat
|
1536
1570
|
30: a man that .. can count on to deliver his message yes [well]
|
1537
1571
|
45: just before the big grin from duck
|
1572
|
+
sum: 1:22:51 1:22:52 in thing, seems to get that far... hmm...
|
1573
|
+
|
1538
1574
|
|
1539
1575
|
youtube jonah: appears lower quality?
|
1540
1576
|
15: wash your hands before you [eat]
|
1541
1577
|
30: yes well [you] and ...
|
1542
1578
|
45: big smile, turns [to his right]
|
1543
|
-
|
1544
|
-
|
1545
|
-
|
1546
|
-
|
1547
|
-
|
1579
|
+
sum: (says 1:22:59 for pay version [?]) says 1:22:54 in index, and on vid, felt really like 1:22:52 or so
|
1580
|
+
|
1581
|
+
|
1582
|
+
powerdvd 8 (DVD):
|
1583
|
+
15:
|
1584
|
+
wash your hands before you [eat]
|
1585
|
+
wash your hands [before] you eat
|
1586
|
+
wash your [hands] before you eat LOL
|
1587
|
+
30:
|
1588
|
+
can count on to deliver his messages yes [] well
|
1589
|
+
yes well ... you and [] ... are like peas in a pod
|
1590
|
+
45:
|
1591
|
+
big smile [] he turns to his right
|
1592
|
+
turns [to his right]
|
1593
|
+
[] turns to his right
|
1548
1594
|
|
1549
1595
|
wmp windows 7: [wmp feels slightly unstable timing-wise]
|
1550
1596
|
15: before [] you eat --- before [you] eat
|
1551
1597
|
30: yes []well --- yes well[]
|
1552
1598
|
45: turns [to his right] --- turns to his right[]
|
1553
1599
|
|
1554
|
-
|
1600
|
+
blu-ray powerdvd:
|
1601
|
+
30: deep in my family [] my uncle * 2
|
1602
|
+
45: blue light shines down 44:58 or 59
|
1603
|
+
duck 44:47 look left about 44:48
|
1604
|
+
1:22:45 sum, seems to have the same closing credits et al...
|
1605
|
+
totally uses 100% cpu
|
1555
1606
|
|
1556
1607
|
netflix instant jonah
|
1557
1608
|
|
@@ -1569,7 +1620,7 @@ netflix instant jonah
|
|
1569
1620
|
[fr]om the Lord.
|
1570
1621
|
me[ss]age from the Lord [HD]
|
1571
1622
|
|
1572
|
-
conclusion: browser doesn't matter, at
|
1623
|
+
conclusion: browser doesn't matter, (at least for HD stream at work)
|
1573
1624
|
|
1574
1625
|
30: like two humps on a camel, you always sway the same way, humor runs in my family, my uncle was a [big] star
|
1575
1626
|
IE at work: humor runs very deep in my family[] my uncle was, my uncle was[] a big star, my [uncle] was a big star
|
@@ -1579,7 +1630,11 @@ netflix instant jonah
|
|
1579
1630
|
chrome: 1.5 seconds as blue light fades in
|
1580
1631
|
it's like 10 seconds in...
|
1581
1632
|
same with mac
|
1633
|
+
47 duck
|
1582
1634
|
conclusion: netflix doesn't care about mac versus pc timing-wise
|
1635
|
+
59 blu ray how apropo
|
1636
|
+
|
1637
|
+
conclusion (based on this compared with the blu-ray): netflix instant seems to match pretty close, within 1s to the blu-ray
|
1583
1638
|
|
1584
1639
|
conclusion: netflix varies pretty widely from instance to instance of playing back (same computer, same movie, same browser).
|
1585
1640
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: sensible-cinema
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.26.
|
5
|
+
version: 0.26.2
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Roger Pack
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-09-
|
13
|
+
date: 2011-09-08 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: os
|
@@ -266,8 +266,6 @@ files:
|
|
266
266
|
- lib/keyboard_input.rb
|
267
267
|
- lib/media_info_parser.rb
|
268
268
|
- lib/mencoder_wrapper.rb
|
269
|
-
- lib/mouse.rb
|
270
|
-
- lib/mouse_draw.rb
|
271
269
|
- lib/mouse_forever.rb
|
272
270
|
- lib/mplayer_edl.rb
|
273
271
|
- lib/muter.rb
|
@@ -298,7 +296,6 @@ files:
|
|
298
296
|
- spec/keyboard_input.spec.rb
|
299
297
|
- spec/media_info_parser.spec.rb
|
300
298
|
- spec/mencoder_wrapper.spec.rb
|
301
|
-
- spec/mouse.spec.rb
|
302
299
|
- spec/mplayer_edl.spec.rb
|
303
300
|
- spec/muter.spec.rb
|
304
301
|
- spec/notes
|
@@ -307,7 +304,6 @@ files:
|
|
307
304
|
- spec/screen_tracker.spec.rb
|
308
305
|
- spec/sensible_cinema_gui.spec.rb
|
309
306
|
- spec/subtitle_profanity_finder.spec.rb
|
310
|
-
- spec/swing_helpers.spec.rb
|
311
307
|
- spec/test_yaml.yml
|
312
308
|
- spec/tsmuxer.output
|
313
309
|
- spec/vlc_programmer.spec.rb
|
data/lib/mouse.rb
DELETED
@@ -1,148 +0,0 @@
|
|
1
|
-
=begin
|
2
|
-
Copyright 2010, Roger Pack
|
3
|
-
This file is part of Sensible Cinema.
|
4
|
-
|
5
|
-
Sensible Cinema is free software: you can redistribute it and/or modify
|
6
|
-
it under the terms of the GNU General Public License as published by
|
7
|
-
the Free Software Foundation, either version 3 of the License, or
|
8
|
-
(at your option) any later version.
|
9
|
-
|
10
|
-
Sensible Cinema is distributed in the hope that it will be useful,
|
11
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
-
GNU General Public License for more details.
|
14
|
-
|
15
|
-
You should have received a copy of the GNU General Public License
|
16
|
-
along with Sensible Cinema. If not, see <http://www.gnu.org/licenses/>.
|
17
|
-
=end
|
18
|
-
require 'rubygems'
|
19
|
-
require 'ffi'
|
20
|
-
require 'java'
|
21
|
-
|
22
|
-
module Mouse
|
23
|
-
extend FFI::Library
|
24
|
-
MouseInfo = java.awt.MouseInfo
|
25
|
-
|
26
|
-
ffi_lib 'user32'
|
27
|
-
ffi_convention :stdcall
|
28
|
-
|
29
|
-
MOUSEEVENTF_MOVE = 1
|
30
|
-
INPUT_MOUSE = 0
|
31
|
-
MOUSEEVENTF_ABSOLUTE = 0x8000
|
32
|
-
MOUSEEVENTF_LEFTDOWN = 0x0002
|
33
|
-
MOUSEEVENTF_LEFTUP = 0x0004
|
34
|
-
|
35
|
-
|
36
|
-
class MouseInput < FFI::Struct
|
37
|
-
layout :dx, :long,
|
38
|
-
:dy, :long,
|
39
|
-
:mouse_data, :ulong,
|
40
|
-
:flags, :ulong,
|
41
|
-
:time, :ulong,
|
42
|
-
:extra, :ulong
|
43
|
-
end
|
44
|
-
|
45
|
-
class InputEvent < FFI::Union
|
46
|
-
layout :mi, MouseInput
|
47
|
-
end
|
48
|
-
|
49
|
-
class Input < FFI::Struct
|
50
|
-
layout :type, :ulong,
|
51
|
-
:evt, InputEvent
|
52
|
-
end
|
53
|
-
|
54
|
-
# UINT SendInput(UINT nInputs, LPINPUT pInputs, int cbSize);
|
55
|
-
attach_function :SendInput, [ :uint, :pointer, :int ], :uint
|
56
|
-
|
57
|
-
# poller...
|
58
|
-
attach_function :GetAsyncKeyState, [:int], :uint
|
59
|
-
|
60
|
-
class << self
|
61
|
-
|
62
|
-
def jitter_forever_in_own_thread
|
63
|
-
|
64
|
-
old_x, old_y = get_mouse_location
|
65
|
-
Thread.new {
|
66
|
-
loop {
|
67
|
-
move_y = 8 # just enough for VLC when full screened...
|
68
|
-
cur_x, cur_y = get_mouse_location
|
69
|
-
if(cur_x == old_x && cur_y == old_y)
|
70
|
-
@total_movements += 1
|
71
|
-
# blit it up
|
72
|
-
move_mouse_relative(0, move_y)
|
73
|
-
move_mouse_relative(0, move_y * -1)
|
74
|
-
# let it move it back
|
75
|
-
sleep 0.05
|
76
|
-
old_x, old_y = get_mouse_location
|
77
|
-
sleep 0.75
|
78
|
-
else
|
79
|
-
# user has been moving the mouse around, so we don't need to, to not annoy them
|
80
|
-
old_x, old_y = get_mouse_location
|
81
|
-
sleep 3
|
82
|
-
end
|
83
|
-
}
|
84
|
-
}
|
85
|
-
|
86
|
-
end
|
87
|
-
|
88
|
-
def move_mouse_relative dx, dy
|
89
|
-
myinput = Mouse::Input.new
|
90
|
-
myinput[:type] = Mouse::INPUT_MOUSE
|
91
|
-
in_evt = myinput[:evt][:mi]
|
92
|
-
in_evt[:mouse_data] = 0 # null it out
|
93
|
-
in_evt[:flags] = Mouse::MOUSEEVENTF_MOVE
|
94
|
-
in_evt[:time] = 0
|
95
|
-
in_evt[:extra] = 0
|
96
|
-
in_evt[:dx] = dx
|
97
|
-
in_evt[:dy] = dy
|
98
|
-
SendInput(1, myinput, Mouse::Input.size)
|
99
|
-
end
|
100
|
-
|
101
|
-
def single_click_left_mouse_button
|
102
|
-
left_mouse_down!
|
103
|
-
left_mouse_up!
|
104
|
-
p "CLICKED LEFT MOUSE BUTTON"
|
105
|
-
end
|
106
|
-
|
107
|
-
def left_mouse_down!
|
108
|
-
send_left_mouse_button MOUSEEVENTF_LEFTDOWN
|
109
|
-
end
|
110
|
-
|
111
|
-
def left_mouse_up!
|
112
|
-
send_left_mouse_button MOUSEEVENTF_LEFTUP
|
113
|
-
end
|
114
|
-
|
115
|
-
VK_LBUTTON = 0x01 # mouse left button for GetAsyncKeyState (seeing if mouse down currently or not)
|
116
|
-
|
117
|
-
def left_mouse_button_state
|
118
|
-
GetAsyncKeyState(VK_LBUTTON) # ignore a first response, which also tells us if it has changed at all since last call
|
119
|
-
if GetAsyncKeyState(VK_LBUTTON) == 0 # zero means up
|
120
|
-
:up
|
121
|
-
else
|
122
|
-
:down
|
123
|
-
end
|
124
|
-
end
|
125
|
-
|
126
|
-
# [x, y]
|
127
|
-
def get_mouse_location
|
128
|
-
loc = MouseInfo.getPointerInfo.getLocation
|
129
|
-
[loc.x, loc.y]
|
130
|
-
end
|
131
|
-
|
132
|
-
attr_accessor :total_movements
|
133
|
-
|
134
|
-
private
|
135
|
-
|
136
|
-
def send_left_mouse_button action_type
|
137
|
-
myinput = Mouse::Input.new
|
138
|
-
myinput[:type] = Mouse::INPUT_MOUSE
|
139
|
-
in_evt = myinput[:evt][:mi]
|
140
|
-
in_evt[:flags] = action_type
|
141
|
-
SendInput(1, myinput, Mouse::Input.size)
|
142
|
-
end
|
143
|
-
|
144
|
-
|
145
|
-
end
|
146
|
-
|
147
|
-
end
|
148
|
-
Mouse.total_movements=0 # ruby is a bit freaky with these...
|
data/lib/mouse_draw.rb
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
require 'mouse'
|
2
|
-
|
3
|
-
|
4
|
-
class MouseDraw
|
5
|
-
|
6
|
-
def self.go
|
7
|
-
|
8
|
-
require 'java'
|
9
|
-
|
10
|
-
java_import 'javax.swing.JFrame'
|
11
|
-
java_import 'javax.swing.JButton'
|
12
|
-
java_import 'com.sun.awt.AWTUtilities'
|
13
|
-
|
14
|
-
f = JFrame.new
|
15
|
-
f.add JButton.new('capture window')
|
16
|
-
f.set_size(200,200)
|
17
|
-
|
18
|
-
AWTUtilities.set_window_opacity(f, 0.5)
|
19
|
-
|
20
|
-
# wait till mouse goes down...
|
21
|
-
while(Mouse.left_mouse_button_state == :up)
|
22
|
-
sleep 0.05
|
23
|
-
print 'waiting'
|
24
|
-
end
|
25
|
-
f.undecorated = true
|
26
|
-
f.default_close_operation = JFrame::EXIT_ON_CLOSE
|
27
|
-
f.always_on_top = true
|
28
|
-
f.visible = true
|
29
|
-
f.set_location(Mouse.get_mouse_location)
|
30
|
-
while(Mouse.left_mouse_button_state == :down)
|
31
|
-
# set_size
|
32
|
-
p 'waiting for end'
|
33
|
-
p Mouse.get_mouse_location
|
34
|
-
end
|
35
|
-
f.dispose
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
|
40
|
-
|
41
|
-
if $0 == __FILE__
|
42
|
-
MouseDraw.go
|
43
|
-
end
|
data/spec/mouse.spec.rb
DELETED
@@ -1,65 +0,0 @@
|
|
1
|
-
=begin
|
2
|
-
Copyright 2010, Roger Pack
|
3
|
-
This file is part of Sensible Cinema.
|
4
|
-
|
5
|
-
Sensible Cinema is free software: you can redistribute it and/or modify
|
6
|
-
it under the terms of the GNU General Public License as published by
|
7
|
-
the Free Software Foundation, either version 3 of the License, or
|
8
|
-
(at your option) any later version.
|
9
|
-
|
10
|
-
Sensible Cinema is distributed in the hope that it will be useful,
|
11
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
-
GNU General Public License for more details.
|
14
|
-
|
15
|
-
You should have received a copy of the GNU General Public License
|
16
|
-
along with Sensible Cinema. If not, see <http://www.gnu.org/licenses/>.
|
17
|
-
=end
|
18
|
-
require File.expand_path(File.dirname(__FILE__) + '/common')
|
19
|
-
require_relative '../lib/mouse'
|
20
|
-
|
21
|
-
p 'dont move the mouse!'
|
22
|
-
|
23
|
-
describe Mouse do
|
24
|
-
|
25
|
-
it "should move it a couple times" do
|
26
|
-
old = Mouse.total_movements
|
27
|
-
begin
|
28
|
-
Timeout::timeout(2) {
|
29
|
-
Mouse::jitter_forever_in_own_thread.join
|
30
|
-
}
|
31
|
-
rescue Timeout::Error
|
32
|
-
end
|
33
|
-
Mouse.total_movements.should be > old
|
34
|
-
end
|
35
|
-
|
36
|
-
it "should not move it if the user does" do
|
37
|
-
old = Mouse.total_movements
|
38
|
-
begin
|
39
|
-
Timeout::timeout(2) {
|
40
|
-
Mouse::jitter_forever_in_own_thread
|
41
|
-
x = 1
|
42
|
-
loop {java.awt.Robot.new.mouse_move(500 + (x+=1),500); sleep 0.1; }
|
43
|
-
}
|
44
|
-
rescue Timeout::Error
|
45
|
-
end
|
46
|
-
Mouse.total_movements.should == old + 1
|
47
|
-
end
|
48
|
-
|
49
|
-
it "should be able to left mouse click" do
|
50
|
-
Mouse.left_mouse_button_state.should be :up
|
51
|
-
Mouse.left_mouse_down!
|
52
|
-
Mouse.left_mouse_button_state.should be :down
|
53
|
-
Mouse.left_mouse_up!
|
54
|
-
Mouse.left_mouse_button_state.should be :up
|
55
|
-
end
|
56
|
-
|
57
|
-
it "should be able to click" do
|
58
|
-
Mouse.left_mouse_button_state.should be :up
|
59
|
-
Mouse.single_click_left_mouse_button
|
60
|
-
Mouse.left_mouse_up!
|
61
|
-
Mouse.left_mouse_up!
|
62
|
-
Mouse.left_mouse_button_state.should be :up
|
63
|
-
end
|
64
|
-
|
65
|
-
end
|
data/spec/swing_helpers.spec.rb
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
=begin
|
2
|
-
Copyright 2010, Roger Pack
|
3
|
-
This file is part of Sensible Cinema.
|
4
|
-
|
5
|
-
Sensible Cinema is free software: you can redistribute it and/or modify
|
6
|
-
it under the terms of the GNU General Public License as published by
|
7
|
-
the Free Software Foundation, either version 3 of the License, or
|
8
|
-
(at your option) any later version.
|
9
|
-
|
10
|
-
Sensible Cinema is distributed in the hope that it will be useful,
|
11
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
-
GNU General Public License for more details.
|
14
|
-
|
15
|
-
You should have received a copy of the GNU General Public License
|
16
|
-
along with Sensible Cinema. If not, see <http://www.gnu.org/licenses/>.
|
17
|
-
=end
|
18
|
-
require File.expand_path(File.dirname(__FILE__) + '/common')
|
19
|
-
require 'os'
|
20
|
-
require_relative '../lib/swing_helpers'
|
21
|
-
module SensibleSwing
|
22
|
-
describe SensibleSwing do
|
23
|
-
|
24
|
-
it "should close its modeless dialog" do
|
25
|
-
|
26
|
-
dialog = NonBlockingDialog.new("Is this modeless?")
|
27
|
-
dialog = NonBlockingDialog.new("Is this modeless?\nSecond lineLL")
|
28
|
-
dialog = NonBlockingDialog.new("Is this modeless?\nSecond lineLL\nThird line too!")
|
29
|
-
dialog = NonBlockingDialog.new("Can this take very long lines of input, like super long?")
|
30
|
-
#dialog.dispose # should get here :P
|
31
|
-
# let user close it :P
|
32
|
-
end
|
33
|
-
|
34
|
-
it "should be able to convert filenames well" do
|
35
|
-
if OS.windows?
|
36
|
-
"a/b/c".to_filename.should == "a\\b\\c"
|
37
|
-
else
|
38
|
-
"a/b/c".to_filename.should == "a/b/c"
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|
43
|
-
end
|
44
|
-
puts 'close the windows...'
|