rbcurse 0.1.3 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +126 -0
- data/Manifest.txt +53 -20
- data/README.markdown +423 -0
- data/Rakefile +3 -1
- data/examples/keytest.rb +177 -0
- data/examples/mpad2.rb +156 -0
- data/examples/newtesttabp.rb +121 -0
- data/examples/rfe.rb +48 -10
- data/examples/rfe_renderer.rb +4 -4
- data/examples/rvimsplit.rb +376 -0
- data/examples/sqlc.rb +97 -106
- data/examples/sqlm.rb +446 -0
- data/examples/test1.rb +4 -4
- data/examples/test2.rb +12 -12
- data/examples/testchars.rb +140 -0
- data/examples/testkeypress.rb +9 -4
- data/examples/testmulticomp.rb +72 -0
- data/examples/testscroller.rb +136 -0
- data/examples/testscrolllb.rb +86 -0
- data/examples/testscrollp.rb +87 -0
- data/examples/testscrollta.rb +80 -0
- data/examples/testscrolltable.rb +166 -0
- data/examples/testsplit.rb +87 -0
- data/examples/testsplit2.rb +123 -0
- data/examples/testsplit3.rb +215 -0
- data/examples/testsplit3_1.rb +244 -0
- data/examples/testsplit3a.rb +215 -0
- data/examples/testsplit3b.rb +237 -0
- data/examples/testsplitta.rb +148 -0
- data/examples/testsplittv.rb +142 -0
- data/examples/testsplittvv.rb +144 -0
- data/examples/testtable.rb +1 -1
- data/examples/testtabp.rb +3 -2
- data/examples/testtestw.rb +69 -0
- data/examples/testtodo.rb +5 -3
- data/examples/testtpane.rb +203 -0
- data/examples/testtpane2.rb +145 -0
- data/examples/testtpanetable.rb +199 -0
- data/examples/viewtodo.rb +5 -3
- data/lib/rbcurse.rb +1 -1
- data/lib/rbcurse/celleditor.rb +2 -2
- data/lib/rbcurse/colormap.rb +5 -5
- data/lib/rbcurse/defaultlistselectionmodel.rb +3 -3
- data/lib/rbcurse/io.rb +663 -0
- data/lib/rbcurse/listeditable.rb +306 -0
- data/lib/rbcurse/listkeys.rb +15 -15
- data/lib/rbcurse/listscrollable.rb +168 -27
- data/lib/rbcurse/mapper.rb +35 -13
- data/lib/rbcurse/rchangeevent.rb +28 -0
- data/lib/rbcurse/rform.rb +845 -0
- data/lib/rbcurse/rlistbox.rb +144 -34
- data/lib/rbcurse/rmessagebox.rb +10 -5
- data/lib/rbcurse/rmulticontainer.rb +325 -0
- data/lib/rbcurse/rmultitextview.rb +306 -0
- data/lib/rbcurse/rscrollform.rb +369 -0
- data/lib/rbcurse/rscrollpane.rb +511 -0
- data/lib/rbcurse/rsplitpane.rb +820 -0
- data/lib/rbcurse/rtabbedpane.rb +737 -109
- data/lib/rbcurse/rtabbedwindow.rb +326 -0
- data/lib/rbcurse/rtable.rb +220 -64
- data/lib/rbcurse/rtextarea.rb +340 -181
- data/lib/rbcurse/rtextview.rb +237 -101
- data/lib/rbcurse/rviewport.rb +203 -0
- data/lib/rbcurse/rwidget.rb +919 -95
- data/lib/rbcurse/scrollable.rb +7 -7
- data/lib/rbcurse/selectable.rb +4 -4
- data/lib/rbcurse/table/tablecellrenderer.rb +3 -0
- data/lib/rbcurse/undomanager.rb +181 -0
- data/lib/rbcurse/vieditable.rb +100 -0
- data/lib/ver/window.rb +471 -21
- metadata +66 -22
- data/README.txt +0 -312
- data/examples/testd.db +0 -0
- data/examples/todocsv.csv +0 -28
@@ -0,0 +1,148 @@
|
|
1
|
+
#$LOAD_PATH << "/Users/rahul/work/projects/rbcurse/"
|
2
|
+
##*******************************************************#
|
3
|
+
# testsplittv.rb #
|
4
|
+
# written by Rahul Kumar #
|
5
|
+
# January 06, 2010 #
|
6
|
+
# #
|
7
|
+
# test textview inside scrollpane #
|
8
|
+
# #
|
9
|
+
# Released under ruby license. See #
|
10
|
+
# http://www.ruby-lang.org/en/LICENSE.txt #
|
11
|
+
# Copyright 2010, Rahul Kumar #
|
12
|
+
#*******************************************************#
|
13
|
+
require 'rubygems'
|
14
|
+
require 'ncurses'
|
15
|
+
require 'logger'
|
16
|
+
require 'rbcurse'
|
17
|
+
require 'rbcurse/rsplitpane'
|
18
|
+
require 'rbcurse/rtextarea'
|
19
|
+
require 'rbcurse/rmultitextview'
|
20
|
+
require 'rbcurse/undomanager'
|
21
|
+
|
22
|
+
## This sample creates a single scrollpane,
|
23
|
+
##+ and embeds a textarea inside it
|
24
|
+
##+ and allows you to change orientation
|
25
|
+
##+ and move divider around using - + and =.
|
26
|
+
#
|
27
|
+
if $0 == __FILE__
|
28
|
+
include RubyCurses
|
29
|
+
include RubyCurses::Utils
|
30
|
+
|
31
|
+
begin
|
32
|
+
# Initialize curses
|
33
|
+
VER::start_ncurses # this is initializing colors via ColorMap.setup
|
34
|
+
$log = Logger.new("v#{$0}.log")
|
35
|
+
$log.level = Logger::DEBUG
|
36
|
+
|
37
|
+
@window = VER::Window.root_window
|
38
|
+
|
39
|
+
catch(:close) do
|
40
|
+
colors = Ncurses.COLORS
|
41
|
+
@form = Form.new @window
|
42
|
+
$log.debug " FORM #{@form} "
|
43
|
+
r = 1; c = 7; ht = 20; w = 50
|
44
|
+
#r = 1; c = 3; ht = 24; w = 70
|
45
|
+
# filler just to see that we are covering correct space and not wasting lines or cols
|
46
|
+
# filler = "*" * 88
|
47
|
+
# (ht+2).times(){|i| @form.window.printstring(i,r, filler, $datacolor) }
|
48
|
+
|
49
|
+
|
50
|
+
@help = "F1 to quit. M- M+ M= v h C-n C-p M-w (alt-w) : #{$0} . Check #{$0}.log too"
|
51
|
+
RubyCurses::Label.new @form, {'text' => @help, "row" => ht+r, "col" => 2, "color" => "yellow"}
|
52
|
+
|
53
|
+
splitp = SplitPane.new @form do
|
54
|
+
name "mypane"
|
55
|
+
row r
|
56
|
+
col c
|
57
|
+
width w
|
58
|
+
height ht
|
59
|
+
#focusable false
|
60
|
+
#orientation :VERTICAL_SPLIT
|
61
|
+
end
|
62
|
+
|
63
|
+
## typically height should be ht or at least more than ht/2, but i've kept it at
|
64
|
+
## ht/2-1 to see the footer, and because it was crashing with this.
|
65
|
+
t1 = TextArea.new do
|
66
|
+
name "myView"
|
67
|
+
#row 0
|
68
|
+
#col 0
|
69
|
+
width w-2
|
70
|
+
height (ht/2)-1
|
71
|
+
title "README.md"
|
72
|
+
title_attrib 'bold'
|
73
|
+
print_footer true
|
74
|
+
footer_attrib 'bold'
|
75
|
+
end
|
76
|
+
|
77
|
+
t2 = TextArea.new do
|
78
|
+
name "myView2"
|
79
|
+
#row 0
|
80
|
+
#col 0
|
81
|
+
width w-2
|
82
|
+
height ht/2
|
83
|
+
#height (ht/2)-1
|
84
|
+
title "NOTES"
|
85
|
+
title_attrib 'bold'
|
86
|
+
print_footer true
|
87
|
+
footer_attrib 'bold'
|
88
|
+
end
|
89
|
+
|
90
|
+
splitp.first_component(t1)
|
91
|
+
splitp.second_component(t2)
|
92
|
+
t1.preferred_width w-4 #/2 ## should pertain more to horizontal orientation
|
93
|
+
t1.preferred_height (ht/2)-1 ## this messes things up when we change orientation
|
94
|
+
#t1.set_resize_weight 0.50
|
95
|
+
t2.min_width 15
|
96
|
+
t2.min_height 5
|
97
|
+
t1.min_width 12
|
98
|
+
t1.min_height 5
|
99
|
+
ret = splitp.reset_to_preferred_sizes
|
100
|
+
## if an error is returned you should check what's wrong since you
|
101
|
+
## could still get a blank screen, if your comps area is smaller than
|
102
|
+
## pane, or other conditions. the log will point out various possible errors.
|
103
|
+
splitp.set_resize_weight(0.50) if ret == :ERROR
|
104
|
+
File.open("../README.markdown","r") do |file|
|
105
|
+
while (line = file.gets)
|
106
|
+
t1 << line.chomp
|
107
|
+
end
|
108
|
+
end
|
109
|
+
File.open("../NOTES","r") do |file|
|
110
|
+
while (line = file.gets)
|
111
|
+
t2 << line.chomp
|
112
|
+
end
|
113
|
+
end
|
114
|
+
undom = SimpleUndo.new t1
|
115
|
+
undo2 = SimpleUndo.new t2
|
116
|
+
|
117
|
+
@form.repaint
|
118
|
+
@window.wrefresh
|
119
|
+
Ncurses::Panel.update_panels
|
120
|
+
while((ch = @window.getchar()) != KEY_F1 )
|
121
|
+
#str = keycode_tos ch
|
122
|
+
case ch
|
123
|
+
when ?\M-v.getbyte(0)
|
124
|
+
splitp.orientation(:VERTICAL_SPLIT)
|
125
|
+
splitp.set_resize_weight(0.50)
|
126
|
+
when ?\M-h.getbyte(0)
|
127
|
+
splitp.orientation(:HORIZONTAL_SPLIT)
|
128
|
+
splitp.set_resize_weight(0.50)
|
129
|
+
end
|
130
|
+
#splitp.get_buffer().wclear
|
131
|
+
#splitp << "#{ch} got (#{str})"
|
132
|
+
#splitp.repaint
|
133
|
+
#splitp.buffer_to_screen
|
134
|
+
@form.repaint
|
135
|
+
@form.handle_key(ch)
|
136
|
+
@window.wrefresh
|
137
|
+
end
|
138
|
+
end
|
139
|
+
rescue => ex
|
140
|
+
ensure
|
141
|
+
@window.destroy if !@window.nil?
|
142
|
+
VER::stop_ncurses
|
143
|
+
p ex if ex
|
144
|
+
p(ex.backtrace.join("\n")) if ex
|
145
|
+
$log.debug( ex) if ex
|
146
|
+
$log.debug(ex.backtrace.join("\n")) if ex
|
147
|
+
end
|
148
|
+
end
|
@@ -0,0 +1,142 @@
|
|
1
|
+
#$LOAD_PATH << "/Users/rahul/work/projects/rbcurse/"
|
2
|
+
##*******************************************************#
|
3
|
+
# testsplittv.rb #
|
4
|
+
# written by Rahul Kumar #
|
5
|
+
# January 06, 2010 #
|
6
|
+
# #
|
7
|
+
# test textview inside scrollpane #
|
8
|
+
# #
|
9
|
+
# Released under ruby license. See #
|
10
|
+
# http://www.ruby-lang.org/en/LICENSE.txt #
|
11
|
+
# Copyright 2010, Rahul Kumar #
|
12
|
+
#*******************************************************#
|
13
|
+
require 'rubygems'
|
14
|
+
require 'ncurses'
|
15
|
+
require 'logger'
|
16
|
+
require 'rbcurse'
|
17
|
+
require 'rbcurse/rsplitpane'
|
18
|
+
require 'rbcurse/rtextview'
|
19
|
+
|
20
|
+
## This sample creates a single scrollpane,
|
21
|
+
##+ and embeds a textarea inside it
|
22
|
+
##+ and allows you to change orientation
|
23
|
+
##+ and move divider around using - + and =.
|
24
|
+
#
|
25
|
+
if $0 == __FILE__
|
26
|
+
include RubyCurses
|
27
|
+
include RubyCurses::Utils
|
28
|
+
|
29
|
+
begin
|
30
|
+
# Initialize curses
|
31
|
+
VER::start_ncurses # this is initializing colors via ColorMap.setup
|
32
|
+
$log = Logger.new("v#{$0}.log")
|
33
|
+
$log.level = Logger::DEBUG
|
34
|
+
|
35
|
+
@window = VER::Window.root_window
|
36
|
+
|
37
|
+
catch(:close) do
|
38
|
+
colors = Ncurses.COLORS
|
39
|
+
@form = Form.new @window
|
40
|
+
$log.debug " FORM #{@form} "
|
41
|
+
r = 1; c = 3; ht = 24; w = 70
|
42
|
+
# filler just to see that we are covering correct space and not wasting lines or cols
|
43
|
+
# filler = "*" * 88
|
44
|
+
# (ht+2).times(){|i| @form.window.printstring(i,r, filler, $datacolor) }
|
45
|
+
|
46
|
+
|
47
|
+
@help = "F1 to quit. - + = v h C-n C-p M-w (alt-w) : #{$0} . Check #{$0}.log too"
|
48
|
+
RubyCurses::Label.new @form, {'text' => @help, "row" => ht+r, "col" => 2, "color" => "yellow"}
|
49
|
+
|
50
|
+
splitp = SplitPane.new @form do
|
51
|
+
name "mypane"
|
52
|
+
row r
|
53
|
+
col c
|
54
|
+
width w
|
55
|
+
height ht
|
56
|
+
#focusable false
|
57
|
+
#orientation :VERTICAL_SPLIT
|
58
|
+
end
|
59
|
+
t1 = TextView.new nil do
|
60
|
+
name "myView"
|
61
|
+
#row 0
|
62
|
+
#col 0
|
63
|
+
width w-2
|
64
|
+
height (ht/2)-1
|
65
|
+
title "README.md"
|
66
|
+
title_attrib 'bold'
|
67
|
+
print_footer true
|
68
|
+
footer_attrib 'bold'
|
69
|
+
end
|
70
|
+
content = File.open("../README.markdown","r").readlines
|
71
|
+
t1.set_content content #, :WRAP_WORD
|
72
|
+
|
73
|
+
# to see lower border i need to set height to ht/2 -2 in both cases, but that
|
74
|
+
# crashes ruby when i reduce height by 1.
|
75
|
+
t2 = TextView.new nil do
|
76
|
+
name "myView2"
|
77
|
+
#row 0
|
78
|
+
#col 0
|
79
|
+
width w-2
|
80
|
+
#height ht
|
81
|
+
height (ht/2)-1
|
82
|
+
title "NOTES"
|
83
|
+
title_attrib 'bold'
|
84
|
+
print_footer true
|
85
|
+
footer_attrib 'bold'
|
86
|
+
end
|
87
|
+
content = File.open("../NOTES","r").readlines
|
88
|
+
t2.set_content content #, :WRAP_WORD
|
89
|
+
|
90
|
+
splitp.first_component(t1)
|
91
|
+
splitp.second_component(t2)
|
92
|
+
t1.preferred_width w-4 #/2 ## should pertain more to horizontal orientation
|
93
|
+
t1.preferred_height (ht/2)-1 ## this messes things up when we change orientation
|
94
|
+
#t1.set_resize_weight 0.50
|
95
|
+
t2.min_width 15
|
96
|
+
t2.min_height 5
|
97
|
+
t1.min_width 12
|
98
|
+
t1.min_height 8
|
99
|
+
ret = splitp.reset_to_preferred_sizes
|
100
|
+
## if an error is returned you should check what's wrong since you
|
101
|
+
## could still get a blank screen, if your comps area is smaller than
|
102
|
+
## pane, or other conditions. the log will point out various possible errors.
|
103
|
+
splitp.set_resize_weight(0.50) if ret == :ERROR
|
104
|
+
|
105
|
+
@form.repaint
|
106
|
+
@window.wrefresh
|
107
|
+
Ncurses::Panel.update_panels
|
108
|
+
while((ch = @window.getchar()) != KEY_F1 )
|
109
|
+
str = keycode_tos ch
|
110
|
+
case ch
|
111
|
+
when ?v.getbyte(0)
|
112
|
+
splitp.orientation(:VERTICAL_SPLIT)
|
113
|
+
splitp.set_resize_weight(0.50)
|
114
|
+
when ?h.getbyte(0)
|
115
|
+
splitp.orientation(:HORIZONTAL_SPLIT)
|
116
|
+
splitp.set_resize_weight(0.50)
|
117
|
+
when ?-.getbyte(0)
|
118
|
+
splitp.set_divider_location(splitp.divider_location-1)
|
119
|
+
when ?+.getbyte(0)
|
120
|
+
splitp.set_divider_location(splitp.divider_location+1)
|
121
|
+
when ?=.getbyte(0)
|
122
|
+
splitp.set_resize_weight(0.50)
|
123
|
+
end
|
124
|
+
#splitp.get_buffer().wclear
|
125
|
+
#splitp << "#{ch} got (#{str})"
|
126
|
+
#splitp.repaint
|
127
|
+
#splitp.buffer_to_screen
|
128
|
+
@form.repaint
|
129
|
+
@form.handle_key(ch)
|
130
|
+
@window.wrefresh
|
131
|
+
end
|
132
|
+
end
|
133
|
+
rescue => ex
|
134
|
+
ensure
|
135
|
+
@window.destroy if !@window.nil?
|
136
|
+
VER::stop_ncurses
|
137
|
+
p ex if ex
|
138
|
+
p(ex.backtrace.join("\n")) if ex
|
139
|
+
$log.debug( ex) if ex
|
140
|
+
$log.debug(ex.backtrace.join("\n")) if ex
|
141
|
+
end
|
142
|
+
end
|
@@ -0,0 +1,144 @@
|
|
1
|
+
#$LOAD_PATH << "/Users/rahul/work/projects/rbcurse/"
|
2
|
+
#*******************************************************#
|
3
|
+
# testsplittv.rb #
|
4
|
+
# written by Rahul Kumar #
|
5
|
+
# January 06, 2010 #
|
6
|
+
# #
|
7
|
+
# test textview inside splitpane #
|
8
|
+
# Startup is vertical split #
|
9
|
+
# #
|
10
|
+
# Released under ruby license. See #
|
11
|
+
# http://www.ruby-lang.org/en/LICENSE.txt #
|
12
|
+
# Copyright 2010, Rahul Kumar #
|
13
|
+
#*******************************************************#
|
14
|
+
require 'rubygems'
|
15
|
+
require 'ncurses'
|
16
|
+
require 'logger'
|
17
|
+
require 'rbcurse'
|
18
|
+
require 'rbcurse/rsplitpane'
|
19
|
+
require 'rbcurse/rtextview'
|
20
|
+
|
21
|
+
## This sample creates a single scrollpane,
|
22
|
+
##+ and embeds a textarea inside it
|
23
|
+
##+ and allows you to change orientation
|
24
|
+
##+ and move divider around using - + and =.
|
25
|
+
#
|
26
|
+
if $0 == __FILE__
|
27
|
+
include RubyCurses
|
28
|
+
include RubyCurses::Utils
|
29
|
+
|
30
|
+
begin
|
31
|
+
# Initialize curses
|
32
|
+
VER::start_ncurses # this is initializing colors via ColorMap.setup
|
33
|
+
$log = Logger.new("v#{$0}.log")
|
34
|
+
$log.level = Logger::DEBUG
|
35
|
+
|
36
|
+
@window = VER::Window.root_window
|
37
|
+
|
38
|
+
catch(:close) do
|
39
|
+
colors = Ncurses.COLORS
|
40
|
+
@form = Form.new @window
|
41
|
+
r = 1; c = 3; ht = 24; w = 70
|
42
|
+
# filler just to see that we are covering correct space and not wasting lines or cols
|
43
|
+
# filler = "*" * 88
|
44
|
+
# (ht+2).times(){|i| @form.window.printstring(i,r, filler, $datacolor) }
|
45
|
+
|
46
|
+
|
47
|
+
@help = "q to quit. - + = v h C-n C-p M-w (alt-w) : #{$0} . Check #{$0}.log too"
|
48
|
+
RubyCurses::Label.new @form, {'text' => @help, "row" => ht+r, "col" => 2, "color" => "yellow"}
|
49
|
+
|
50
|
+
splitp = SplitPane.new @form do
|
51
|
+
name "mypane"
|
52
|
+
row r
|
53
|
+
col c
|
54
|
+
width w
|
55
|
+
height ht
|
56
|
+
#focusable false
|
57
|
+
orientation :VERTICAL_SPLIT
|
58
|
+
end
|
59
|
+
t1 = TextView.new nil do
|
60
|
+
name "myView"
|
61
|
+
#row 0
|
62
|
+
#col 0
|
63
|
+
#width w-2
|
64
|
+
height ht
|
65
|
+
#height (ht/2)-1
|
66
|
+
width w/2-1
|
67
|
+
title "README.md"
|
68
|
+
title_attrib 'bold'
|
69
|
+
print_footer true
|
70
|
+
footer_attrib 'bold'
|
71
|
+
end
|
72
|
+
content = File.open("../README.markdown","r").readlines
|
73
|
+
t1.set_content content #, :WRAP_WORD
|
74
|
+
|
75
|
+
# to see lower border i need to set height to ht/2 -2 in both cases, but that
|
76
|
+
# crashes ruby when i reduce height by 1.
|
77
|
+
t2 = TextView.new nil do
|
78
|
+
name "myView2"
|
79
|
+
#row 0
|
80
|
+
#col 0
|
81
|
+
width w/2-1
|
82
|
+
height ht
|
83
|
+
#height (ht/2)-1
|
84
|
+
title "NOTES"
|
85
|
+
title_attrib 'bold'
|
86
|
+
print_footer true
|
87
|
+
footer_attrib 'bold'
|
88
|
+
end
|
89
|
+
content = File.open("../NOTES","r").readlines
|
90
|
+
t2.set_content content #, :WRAP_WORD
|
91
|
+
|
92
|
+
splitp.first_component(t1)
|
93
|
+
splitp.second_component(t2)
|
94
|
+
t1.preferred_width w/2 #/2 ## should pertain more to horizontal orientation
|
95
|
+
#t1.preferred_height (ht/2)-1 ## this messes things up when we change orientation
|
96
|
+
t1.preferred_height ht ## this messes things up when we change orientation
|
97
|
+
#t1.set_resize_weight 0.50
|
98
|
+
t2.min_width 15
|
99
|
+
t2.min_height 5
|
100
|
+
t1.min_width 12
|
101
|
+
t1.min_height 8
|
102
|
+
ret = splitp.reset_to_preferred_sizes
|
103
|
+
splitp.set_resize_weight(0.50) if ret == :ERROR
|
104
|
+
|
105
|
+
@form.repaint
|
106
|
+
@window.wrefresh
|
107
|
+
Ncurses::Panel.update_panels
|
108
|
+
while((ch = @window.getchar()) != ?q.getbyte(0) )
|
109
|
+
str = keycode_tos ch
|
110
|
+
case ch
|
111
|
+
when ?v.getbyte(0)
|
112
|
+
splitp.orientation(:VERTICAL_SPLIT)
|
113
|
+
splitp.set_resize_weight(0.50)
|
114
|
+
when ?h.getbyte(0)
|
115
|
+
splitp.orientation(:HORIZONTAL_SPLIT)
|
116
|
+
splitp.set_resize_weight(0.50)
|
117
|
+
when ?-.getbyte(0)
|
118
|
+
ret = splitp.set_divider_location(splitp.divider_location-1)
|
119
|
+
next if ret == :ERROR
|
120
|
+
when ?+.getbyte(0)
|
121
|
+
ret = splitp.set_divider_location(splitp.divider_location+1)
|
122
|
+
next if ret == :ERROR
|
123
|
+
when ?=.getbyte(0)
|
124
|
+
splitp.set_resize_weight(0.50)
|
125
|
+
end
|
126
|
+
#splitp.get_buffer().wclear
|
127
|
+
#splitp << "#{ch} got (#{str})"
|
128
|
+
#splitp.repaint
|
129
|
+
#splitp.buffer_to_screen
|
130
|
+
@form.repaint
|
131
|
+
@form.handle_key(ch)
|
132
|
+
@window.wrefresh
|
133
|
+
end
|
134
|
+
end
|
135
|
+
rescue => ex
|
136
|
+
ensure
|
137
|
+
@window.destroy if !@window.nil?
|
138
|
+
VER::stop_ncurses
|
139
|
+
p ex if ex
|
140
|
+
p(ex.backtrace.join("\n")) if ex
|
141
|
+
$log.debug( ex) if ex
|
142
|
+
$log.debug(ex.backtrace.join("\n")) if ex
|
143
|
+
end
|
144
|
+
end
|
data/examples/testtable.rb
CHANGED
@@ -231,7 +231,7 @@ if $0 == __FILE__
|
|
231
231
|
@form.repaint
|
232
232
|
@window.wrefresh
|
233
233
|
Ncurses::Panel.update_panels
|
234
|
-
while((ch = @window.getchar()) != ?\C-q )
|
234
|
+
while((ch = @window.getchar()) != ?\C-q.getbyte(0) )
|
235
235
|
colcount = tcm.column_count-1
|
236
236
|
s = keycode_tos ch
|
237
237
|
keylabel.text = "Pressed #{ch} , #{s}"
|
data/examples/testtabp.rb
CHANGED
@@ -5,7 +5,8 @@ require 'rubygems'
|
|
5
5
|
require 'ncurses'
|
6
6
|
require 'logger'
|
7
7
|
require 'rbcurse'
|
8
|
-
require 'rbcurse/rtabbedpane'
|
8
|
+
#require 'rbcurse/rtabbedpane'
|
9
|
+
require 'rbcurse/rtabbedwindow'
|
9
10
|
|
10
11
|
class TestTabbedPane
|
11
12
|
def initialize
|
@@ -15,7 +16,7 @@ class TestTabbedPane
|
|
15
16
|
def run
|
16
17
|
$config_hash ||= Variable.new Hash.new
|
17
18
|
#configvar.update_command(){ |v| $config_hash[v.source()] = v.value }
|
18
|
-
@tp = RubyCurses::
|
19
|
+
@tp = RubyCurses::TabbedWindow.new nil do
|
19
20
|
height 12
|
20
21
|
width 50
|
21
22
|
row 5
|