canis 0.0.8 → 0.0.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +0 -9
- data/CHANGES +3 -0
- data/README.md +5 -3
- data/examples/alpmenu.rb +9 -5
- data/examples/app.sample +2 -2
- data/examples/appemail.rb +15 -15
- data/examples/atree.rb +7 -7
- data/examples/bline.rb +19 -19
- data/examples/common/devel.rb +3 -3
- data/examples/dbdemo.rb +53 -49
- data/examples/dirtree.rb +22 -19
- data/examples/newtabbedwindow.rb +5 -5
- data/examples/newtesttabp.rb +3 -3
- data/examples/tabular.rb +11 -11
- data/examples/tasks.rb +25 -25
- data/examples/term2.rb +8 -8
- data/examples/testbuttons.rb +24 -24
- data/examples/testcombo.rb +5 -5
- data/examples/testdb.rb +6 -6
- data/examples/testfields.rb +16 -16
- data/examples/testflowlayout.rb +3 -3
- data/examples/testkeypress.rb +5 -5
- data/examples/testlistbox.rb +18 -18
- data/examples/testlistbox1.rb +17 -17
- data/examples/testmessagebox.rb +5 -5
- data/examples/testprogress.rb +6 -6
- data/examples/testree.rb +3 -3
- data/examples/testsplitlayout.rb +4 -4
- data/examples/testsplitlayout1.rb +4 -4
- data/examples/teststacklayout.rb +4 -4
- data/examples/testwsshortcuts.rb +1 -1
- data/examples/testwsshortcuts2.rb +4 -4
- data/lib/canis/core/include/colorparser.rb +4 -4
- data/lib/canis/core/include/io.rb +3 -3
- data/lib/canis/core/include/layouts/abstractlayout.rb +3 -3
- data/lib/canis/core/include/layouts/flowlayout.rb +2 -2
- data/lib/canis/core/include/layouts/stacklayout.rb +3 -3
- data/lib/canis/core/system/colormap.rb +3 -3
- data/lib/canis/core/system/window.rb +7 -4
- data/lib/canis/core/util/extras/padreader.rb +2 -2
- data/lib/canis/core/util/rcommandwindow.rb +8 -4
- data/lib/canis/core/util/rdialogs.rb +1 -1
- data/lib/canis/core/util/widgetshortcuts.rb +9 -2
- data/lib/canis/core/widgets/applicationheader.rb +6 -2
- data/lib/canis/core/widgets/divider.rb +6 -2
- data/lib/canis/core/widgets/rmenu.rb +8 -4
- data/lib/canis/core/widgets/rmessagebox.rb +2 -2
- data/lib/canis/core/widgets/rwidget.rb +15 -15
- data/lib/canis/core/widgets/scrollbar.rb +5 -2
- data/lib/canis/core/widgets/table.rb +2 -2
- data/lib/canis/core/widgets/textpad.rb +8 -8
- data/lib/canis/core/widgets/tree.rb +57 -39
- data/lib/canis/core/widgets/tree/treecellrenderer.rb +3 -3
- data/lib/canis/version.rb +1 -1
- metadata +12 -13
- data/lib/canis/core/include/.DS_Store +0 -0
data/examples/testlistbox1.rb
CHANGED
@@ -2,7 +2,7 @@ require 'canis/core/util/app'
|
|
2
2
|
require 'canis/core/include/appmethods'
|
3
3
|
require 'canis/core/widgets/listbox'
|
4
4
|
require 'canis/core/util/promptmenu'
|
5
|
-
|
5
|
+
require_relative './common/devel.rb'
|
6
6
|
|
7
7
|
def my_help_text
|
8
8
|
<<-eos
|
@@ -11,17 +11,17 @@ require './common/devel.rb'
|
|
11
11
|
**Basic Usage**
|
12
12
|
|
13
13
|
This simple example shows 2 lists inside a "flow". Each takes 50 percent
|
14
|
-
of the screen's width.
|
14
|
+
of the screen's width.
|
15
15
|
|
16
16
|
If you have brew installed, you can refresh the list to show actual
|
17
17
|
brew packages on your system, using ':r'. Then you can view info, edit,
|
18
18
|
or see the man page for that program.
|
19
19
|
|
20
20
|
In the second list, you can refresh the list with your gems using ":r".
|
21
|
-
Place cursor on any gem, and execute any of the ":" commands to see the
|
21
|
+
Place cursor on any gem, and execute any of the ":" commands to see the
|
22
22
|
output. "edit" shells out to your EDITOR.
|
23
23
|
|
24
|
-
You can try multiple selection using <v> and <V> for range
|
24
|
+
You can try multiple selection using <v> and <V> for range
|
25
25
|
select. Check the general help screen for more [[list]] commands. The selections
|
26
26
|
are not mapped to any command.
|
27
27
|
|
@@ -34,7 +34,7 @@ require './common/devel.rb'
|
|
34
34
|
|
35
35
|
|
36
36
|
# just a simple test to ensure that rbasiclistbox is running inside a container.
|
37
|
-
App.new do
|
37
|
+
App.new do
|
38
38
|
devel_bindings
|
39
39
|
def disp_menu
|
40
40
|
# ideally this shuld get action_manager and add_action so these are added to widgets actions
|
@@ -101,12 +101,12 @@ App.new do
|
|
101
101
|
res = %x[ gem which #{name} ].split("\n")
|
102
102
|
res = res[0]
|
103
103
|
if File.exists? res
|
104
|
-
|
104
|
+
require_relative './common/file.rb'
|
105
105
|
file_edit res
|
106
106
|
end
|
107
107
|
end
|
108
108
|
#
|
109
|
-
# general purpose command to catch miscellaneous actions that can be
|
109
|
+
# general purpose command to catch miscellaneous actions that can be
|
110
110
|
# executed in the same way. Or even take complex command lines
|
111
111
|
# such as what vim has.
|
112
112
|
def execute_this *cmd
|
@@ -143,7 +143,7 @@ App.new do
|
|
143
143
|
colors = Ncurses.COLORS
|
144
144
|
back = :blue
|
145
145
|
back = 234 if colors >= 256
|
146
|
-
header = app_header "canis #{Canis::VERSION}", :text_center => "Basic List Demo", :text_right =>"New Improved!", :color => :white, :bgcolor => back #, :attr => :bold
|
146
|
+
header = app_header "canis #{Canis::VERSION}", :text_center => "Basic List Demo", :text_right =>"New Improved!", :color => :white, :bgcolor => back #, :attr => :bold
|
147
147
|
message "Press F10 to escape from here"
|
148
148
|
#install_help_text my_help_text
|
149
149
|
@form.help_manager.help_text = my_help_text
|
@@ -163,14 +163,14 @@ App.new do
|
|
163
163
|
|
164
164
|
# testing triple bindings, along with a fall-back with only two bindings.
|
165
165
|
@form.bind_key([?\\, ?\\, ?h]){ ht = @form.current_widget.help_text || "No help for this widget"; alert ht }
|
166
|
-
@form.bind_key([?\\, ?\\, ?H]){ ht = @form.current_widget.help_text || "No help for this widget";
|
166
|
+
@form.bind_key([?\\, ?\\, ?H]){ ht = @form.current_widget.help_text || "No help for this widget";
|
167
167
|
str = get_string("Enter help text:", :default => ht);
|
168
168
|
@form.current_widget.help_text = str
|
169
169
|
}
|
170
170
|
@form.bind_key([?\\, ?\\]){ alert "Enter h for seeing helptext on this widget, H for setting it"; }
|
171
171
|
|
172
|
-
alist = File.open("data/brew.txt",'r').readlines
|
173
|
-
list2 = File.open("data/gemlist.txt",'r').readlines
|
172
|
+
alist = File.open(File.expand_path("../data/brew.txt", __FILE__),'r').readlines
|
173
|
+
list2 = File.open(File.expand_path("../data/gemlist.txt", __FILE__),'r').readlines
|
174
174
|
lb = nil
|
175
175
|
|
176
176
|
flow :margin_top => 1, :height => FFI::NCurses.LINES-2 do
|
@@ -178,22 +178,22 @@ App.new do
|
|
178
178
|
:left_margin => 0, :width_pc => 50, :name => 'lb1', :selection_mode => :single
|
179
179
|
lb.show_selector = false
|
180
180
|
lb.help_text = "Brew packages on your system. Use vim keys to navigate, or : to run a command"
|
181
|
-
|
181
|
+
|
182
182
|
lb2 = listbox :list => list2, :justify => :left, :title => "[ gems ]", :suppress_borders => false,
|
183
183
|
:left_margin => 0, :width_pc => 50, :name => 'lb2'
|
184
184
|
end
|
185
|
-
|
186
|
-
|
185
|
+
|
186
|
+
|
187
187
|
label({:text => "F1 Help, F10 Quit. : for menu. Press F4 and F5 to test popup, v to select", :row => Ncurses.LINES-1, :col => 0, :name => 'lab'})
|
188
188
|
|
189
189
|
@form.bind(:RESIZE) { resize() }
|
190
|
-
@form.bind_key(FFI::NCurses::KEY_F4, "Popup") { row = lb.visual_index+lb.row; col=lb.col+lb.current_value.length+1;
|
191
|
-
|
190
|
+
@form.bind_key(FFI::NCurses::KEY_F4, "Popup") { row = lb.visual_index+lb.row; col=lb.col+lb.current_value.length+1;
|
191
|
+
|
192
192
|
row = [row, FFI::NCurses.LINES - 8].min
|
193
193
|
ret = popuplist(%w[ chopin berlioz strauss tchaiko matz beethoven], :row => row, :col => col, :title => "Names", :bgcolor => :blue, :color => :white) ; alert "got #{ret} "}
|
194
194
|
|
195
195
|
@form.bind_key(FFI::NCurses::KEY_F5, "Popup") { list = %x[ls].split("\n");ret = popuplist(list, :title => "Files"); alert "Got #{ret} #{list[ret]} " }
|
196
196
|
|
197
|
-
@form.bind_key(?:, "Menu") { disp_menu;
|
197
|
+
@form.bind_key(?:, "Menu") { disp_menu;
|
198
198
|
}
|
199
199
|
end # app
|
data/examples/testmessagebox.rb
CHANGED
@@ -28,7 +28,7 @@ if $0 == __FILE__
|
|
28
28
|
when 1
|
29
29
|
require 'canis/core/widgets/listbox'
|
30
30
|
nn = "mylist"
|
31
|
-
l = Listbox.new nil, :row => 2, :col => 5, :list => %w[john tim lee wong kepler edward why chad andy],
|
31
|
+
l = Listbox.new nil, :row => 2, :col => 5, :list => %w[john tim lee wong kepler edward why chad andy],
|
32
32
|
:selection_mode => :multiple, :height => 10, :width => 20 , :selected_color => :green, :selected_bgcolor => :white, :selected_indices => [2,6], :name => nn
|
33
33
|
#default_values %w[ lee why ]
|
34
34
|
|
@@ -85,7 +85,7 @@ if $0 == __FILE__
|
|
85
85
|
button_type :ok
|
86
86
|
end
|
87
87
|
field = mb.widget("user")
|
88
|
-
field.bind(:ENTER) do |f|
|
88
|
+
field.bind(:ENTER) do |f|
|
89
89
|
listconfig = {:bgcolor => :blue, :color => :white,
|
90
90
|
:relative_to => field, :col => field.col + 6, :width => field.width}
|
91
91
|
users= %w[john tim lee wong kepler edward _why chad andy]
|
@@ -107,7 +107,7 @@ if $0 == __FILE__
|
|
107
107
|
#listb.bind(:ENTER_ROW) { field.text listb.selected_item }
|
108
108
|
# if you find that cursor goes into listbox while typing, then
|
109
109
|
# i've put set_form_row in listbox list_data_changed
|
110
|
-
field.bind(:CHANGE) do |f|
|
110
|
+
field.bind(:CHANGE) do |f|
|
111
111
|
flist = Dir.glob("*"+f.getvalue+"*")
|
112
112
|
#l.insert( 0, *flist) if flist
|
113
113
|
listb.list flist
|
@@ -129,8 +129,8 @@ if $0 == __FILE__
|
|
129
129
|
mb.run
|
130
130
|
$log.debug "MBOX :1selected #{listb}"
|
131
131
|
$log.debug "MBOX :selected #{listb.selected_value}"
|
132
|
-
end
|
133
|
-
|
132
|
+
end
|
133
|
+
|
134
134
|
end
|
135
135
|
rescue => ex
|
136
136
|
ensure
|
data/examples/testprogress.rb
CHANGED
@@ -20,7 +20,7 @@ if $0 == __FILE__
|
|
20
20
|
# Initialize curses
|
21
21
|
Canis::start_ncurses # this is initializing colors via ColorMap.setup
|
22
22
|
path = File.join(ENV["LOGDIR"] || "./" ,"canis14.log")
|
23
|
-
file = File.open(path, File::WRONLY|File::TRUNC|File::CREAT)
|
23
|
+
file = File.open(path, File::WRONLY|File::TRUNC|File::CREAT)
|
24
24
|
$log = Logger.new(path)
|
25
25
|
$log.level = Logger::DEBUG
|
26
26
|
|
@@ -34,16 +34,16 @@ if $0 == __FILE__
|
|
34
34
|
Label.new @form, {:text => "Old style and modern style progress bars", :row => 12, :col => 10}
|
35
35
|
r = 14; fc = 12;
|
36
36
|
|
37
|
-
pbar1 = Progress.new @form, {:width => 20, :row => r, :col => fc,
|
37
|
+
pbar1 = Progress.new @form, {:width => 20, :row => r, :col => fc,
|
38
38
|
:name => "pbar1", :style => :old}
|
39
39
|
#:bgcolor => :white, :color => 'red', :name => "pbar1", :style => :old}
|
40
|
-
pbar = Progress.new @form, {:width => 20, :row => r+2, :col => fc,
|
40
|
+
pbar = Progress.new @form, {:width => 20, :row => r+2, :col => fc,
|
41
41
|
:bgcolor => :white, :color => :red, :name => "pbar"}
|
42
|
-
|
42
|
+
|
43
43
|
pbar.visible false
|
44
44
|
pb = @form.by_name["pbar"]
|
45
45
|
pb.visible true
|
46
|
-
len = 1
|
46
|
+
len = 1
|
47
47
|
ct = (100) * 1.00
|
48
48
|
pb.fraction(len/ct)
|
49
49
|
pbar1.fraction(len/ct)
|
@@ -61,7 +61,7 @@ if $0 == __FILE__
|
|
61
61
|
# this is so there's no wait for a key, i want demo to proceed without key press, but
|
62
62
|
# respond if there is one
|
63
63
|
Ncurses::nodelay(@window.get_window, bf = true)
|
64
|
-
|
64
|
+
|
65
65
|
# sleep seconds between refresh of progress
|
66
66
|
slp = 0.1
|
67
67
|
##while((ch = @window.getchar()) != FFI::NCurses::KEY_F10 )
|
data/examples/testree.rb
CHANGED
@@ -8,11 +8,11 @@ class Tester
|
|
8
8
|
acolor = $reversecolor
|
9
9
|
end
|
10
10
|
def run
|
11
|
-
@window = Canis::Window.root_window
|
11
|
+
@window = Canis::Window.root_window
|
12
12
|
@form = Form.new @window
|
13
13
|
|
14
14
|
h = 20; w = 75; t = 3; l = 4
|
15
|
-
#$choice = 1
|
15
|
+
#$choice = 1
|
16
16
|
case $choice
|
17
17
|
when 1
|
18
18
|
root = TreeNode.new "ROOT"
|
@@ -29,7 +29,7 @@ class Tester
|
|
29
29
|
leaf1 << "leaf11"
|
30
30
|
leaf1 << "leaf12"
|
31
31
|
|
32
|
-
root.add "blocky", true do
|
32
|
+
root.add "blocky", true do
|
33
33
|
add "block2"
|
34
34
|
add "block3" do
|
35
35
|
add "block31"
|
data/examples/testsplitlayout.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# ----------------------------------------------------------------------------- #
|
2
|
-
# File: testsplitlayout.rb
|
3
|
-
# Description:
|
2
|
+
# File: testsplitlayout.rb
|
3
|
+
# Description:
|
4
4
|
# Author: j kepler http://github.com/mare-imbrium/canis/
|
5
5
|
# Date: 2014-05-09 - 20:24
|
6
6
|
# License: MIT
|
@@ -19,7 +19,7 @@ if __FILE__ == $PROGRAM_NAME
|
|
19
19
|
lb1 = Listbox.new @form, :list => ["bach","beethoven","mozart","gorecki", "chopin","wagner","grieg","holst"] , :name => "mylist1"
|
20
20
|
|
21
21
|
|
22
|
-
alist = %w[ ruby perl python java jruby macruby rubinius rails rack sinatra pylons django cakephp grails]
|
22
|
+
alist = %w[ ruby perl python java jruby macruby rubinius rails rack sinatra pylons django cakephp grails]
|
23
23
|
str = "Hello, people of Earth.\nI am HAL, a textbox.\nUse arrow keys, j/k/h/l/gg/G/C-a/C-e/C-n/C-p\n"
|
24
24
|
str << alist.join("\n")
|
25
25
|
tv = TextPad.new @form, :name => "text", :text => str.split("\n")
|
@@ -50,4 +50,4 @@ if __FILE__ == $PROGRAM_NAME
|
|
50
50
|
|
51
51
|
st = status_line :row => -1
|
52
52
|
end # app
|
53
|
-
end # if
|
53
|
+
end # if
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# ----------------------------------------------------------------------------- #
|
2
|
-
# File: testsplitlayout.rb
|
3
|
-
# Description:
|
2
|
+
# File: testsplitlayout.rb
|
3
|
+
# Description:
|
4
4
|
# Author: j kepler http://github.com/mare-imbrium/canis/
|
5
5
|
# Date: 2014-05-09 - 20:24
|
6
6
|
# License: MIT
|
@@ -19,7 +19,7 @@ if __FILE__ == $PROGRAM_NAME
|
|
19
19
|
lb1 = Listbox.new @form, :list => ["bach","beethoven","mozart","gorecki", "chopin","wagner","grieg","holst"] , :name => "mylist1"
|
20
20
|
|
21
21
|
|
22
|
-
alist = %w[ ruby perl python java jruby macruby rubinius rails rack sinatra pylons django cakephp grails]
|
22
|
+
alist = %w[ ruby perl python java jruby macruby rubinius rails rack sinatra pylons django cakephp grails]
|
23
23
|
str = "Hello, people of Earth.\nI am HAL, a textbox.\nUse arrow keys, j/k/h/l/gg/G/C-a/C-e/C-n/C-p\n"
|
24
24
|
str << alist.join("\n")
|
25
25
|
tv = TextPad.new @form, :name => "text", :text => str.split("\n")
|
@@ -46,4 +46,4 @@ if __FILE__ == $PROGRAM_NAME
|
|
46
46
|
|
47
47
|
st = status_line :row => -1
|
48
48
|
end # app
|
49
|
-
end # if
|
49
|
+
end # if
|
data/examples/teststacklayout.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# #!/usr/bin/env ruby -w
|
2
2
|
# ----------------------------------------------------------------------------- #
|
3
3
|
# File: teststacklayout.rb
|
4
|
-
# Description:
|
4
|
+
# Description:
|
5
5
|
# Author: j kepler http://github.com/mare-imbrium/canis/
|
6
6
|
# Date: 2014-05-08 - 23:34
|
7
7
|
# License: MIT
|
@@ -15,7 +15,7 @@ if __FILE__ == $PROGRAM_NAME
|
|
15
15
|
App.new do
|
16
16
|
|
17
17
|
|
18
|
-
@form.bind_key(FFI::NCurses::KEY_F3,'view log') {
|
18
|
+
@form.bind_key(FFI::NCurses::KEY_F3,'view log') {
|
19
19
|
require 'canis/core/util/viewer'
|
20
20
|
Canis::Viewer.view("canis14.log", :close_key => KEY_ENTER, :title => "<Enter> to close")
|
21
21
|
}
|
@@ -26,7 +26,7 @@ if __FILE__ == $PROGRAM_NAME
|
|
26
26
|
lb2 = Listbox.new @form, :list => `gem list --local`.split("\n") , :name => "mylist2"
|
27
27
|
=begin
|
28
28
|
|
29
|
-
alist = %w[ ruby perl python java jruby macruby rubinius rails rack sinatra pylons django cakephp grails]
|
29
|
+
alist = %w[ ruby perl python java jruby macruby rubinius rails rack sinatra pylons django cakephp grails]
|
30
30
|
str = "Hello, people of Earth.\nI am HAL, a textbox.\nUse arrow keys, j/k/h/l/gg/G/C-a/C-e/C-n/C-p\n"
|
31
31
|
str << alist.join("\n")
|
32
32
|
tv = TextPad.new @form, :name => "text", :text => str.split("\n")
|
@@ -45,4 +45,4 @@ if __FILE__ == $PROGRAM_NAME
|
|
45
45
|
|
46
46
|
st = status_line :row => -1
|
47
47
|
end # app
|
48
|
-
end # if
|
48
|
+
end # if
|
data/examples/testwsshortcuts.rb
CHANGED
@@ -49,7 +49,7 @@ if $0 == __FILE__
|
|
49
49
|
# XXX update with new color and kb
|
50
50
|
Canis::start_ncurses # this is initializing colors via ColorMap.setup
|
51
51
|
path = File.join(ENV["LOGDIR"] || "./" ,"canis14.log")
|
52
|
-
file = File.open(path, File::WRONLY|File::TRUNC|File::CREAT)
|
52
|
+
file = File.open(path, File::WRONLY|File::TRUNC|File::CREAT)
|
53
53
|
$log = Logger.new(path)
|
54
54
|
$log.level = Logger::DEBUG
|
55
55
|
catch(:close) do
|
@@ -35,7 +35,7 @@ class SetupMessagebox
|
|
35
35
|
field :label => "%15s" % ["Address: "], :width => 15, :attr => :reverse
|
36
36
|
blank
|
37
37
|
check :text => "Using version control", :value => true, :onvalue => "yes", :offvalue => "no" do |eve|
|
38
|
-
unless eve.item.value
|
38
|
+
unless eve.item.value
|
39
39
|
alert "NO VC! We need to talk"
|
40
40
|
end
|
41
41
|
end
|
@@ -53,7 +53,7 @@ class SetupMessagebox
|
|
53
53
|
radio :text => "Window", :value => "Win", :group => :os
|
54
54
|
blank
|
55
55
|
flow :item_width => 15 do
|
56
|
-
button :text => "Install" do
|
56
|
+
button :text => "Install" do
|
57
57
|
# you can avoid this by giving the radio buttons your own Variable (see test2.rb)
|
58
58
|
choice = @variables[:os].value
|
59
59
|
case choice
|
@@ -72,7 +72,7 @@ class SetupMessagebox
|
|
72
72
|
end
|
73
73
|
end # flow
|
74
74
|
#button :text => "Execute"
|
75
|
-
text = [" #[reverse]Unix Philosophy #[end] ",
|
75
|
+
text = [" #[reverse]Unix Philosophy #[end] ",
|
76
76
|
"#[fg=green, underline]Eric Raymond#[end] in his book, #[fg=green, underline]The Art of Unix Programming#[end] summarized the Unix philosophy.",
|
77
77
|
" ",
|
78
78
|
"Rule of #[fg=yellow]Modularity#[end]: Write simple parts connected by clean interfaces.",
|
@@ -91,7 +91,7 @@ class SetupMessagebox
|
|
91
91
|
#t.formatted_text(text, :tmux)
|
92
92
|
t.text(text, :content_type => :tmux)
|
93
93
|
t1 = textview :title => 'ansi formatted document'
|
94
|
-
text = File.open("data/color.2","r").readlines
|
94
|
+
text = File.open(File.expand_path("../data/color.2", __FILE__),"r").readlines
|
95
95
|
#text = `ri -f bs String`.split("\n")
|
96
96
|
#t1.formatted_text(text, :ansi)
|
97
97
|
t1.text(text, :content_type => :ansi)
|
@@ -5,7 +5,7 @@
|
|
5
5
|
# Author: jkepler http://github.com/mare-imbrium/canis/
|
6
6
|
# Date: 07.11.11 - 12:31
|
7
7
|
# Same as Ruby's License (http://www.ruby-lang.org/LICENSE.txt)
|
8
|
-
# Last update:
|
8
|
+
# Last update: 2017-03-09 23:13
|
9
9
|
# ------------------------------------------------------------ #
|
10
10
|
#
|
11
11
|
|
@@ -178,9 +178,9 @@ module Canis
|
|
178
178
|
# NOTE: tested with pad only. Not with window.
|
179
179
|
# Moved from textpad, this is the one method textpad is to call.
|
180
180
|
# @param [Pad] pad on which to print
|
181
|
-
# @param [
|
182
|
-
# @param [
|
183
|
-
# @param [
|
181
|
+
# @param [Integer] lineno to print (zero-based)
|
182
|
+
# @param [Integer] column to start printing on, usually 0
|
183
|
+
# @param [Integer] width of pad, usually @content_cols
|
184
184
|
# @param [color_pair] colorpair of textpad or widget
|
185
185
|
# @param [attr] attr of textpad or widget
|
186
186
|
def print pad, lineno, col, width, color_pair, attr
|
@@ -183,7 +183,7 @@ module Canis
|
|
183
183
|
# unlike rb_gets allows user to enter control or alt or function character too.
|
184
184
|
# @param [String] prompt or label to show.
|
185
185
|
# @param [Hash] configuration such as default or regexp for validation
|
186
|
-
# @return [
|
186
|
+
# @return [Integer] nil if canceled, or ret value of getchar which is numeric
|
187
187
|
# If default provided, then ENTER returns the default
|
188
188
|
def rb_getchar(prompt, config={}) # yield field
|
189
189
|
begin
|
@@ -238,7 +238,7 @@ module Canis
|
|
238
238
|
# Prompt user for a file name, allowing him to tab to complete filenames
|
239
239
|
# @see #choose_file from rcommandwindow.rb
|
240
240
|
# @param [String] label to print before field
|
241
|
-
# @param [
|
241
|
+
# @param [Integer] max length of field
|
242
242
|
# @return [String] filename or blank if user cancelled
|
243
243
|
def get_file prompt, config={} #:nodoc:
|
244
244
|
maxlen = 70
|
@@ -294,7 +294,7 @@ module Canis
|
|
294
294
|
# The first 3 params are no longer required since we create a window
|
295
295
|
# of our own.
|
296
296
|
# @param [String] prompt - label to show
|
297
|
-
# @param [
|
297
|
+
# @param [Integer] maxlen - max length of input
|
298
298
|
# @param [Hash] config - :default, :width of Field, :help_text, :tab_completion
|
299
299
|
# help_text is displayed on F1
|
300
300
|
# tab_completion is a proc which helps to complete user input
|
@@ -4,7 +4,7 @@
|
|
4
4
|
# Author: j kepler http://github.com/mare-imbrium/canis/
|
5
5
|
# Date: 2014-05-09 - 17:15
|
6
6
|
# License: MIT
|
7
|
-
# Last update:
|
7
|
+
# Last update: 2017-03-09 23:13
|
8
8
|
# ----------------------------------------------------------------------------- #
|
9
9
|
# abstractlayout.rb Copyright (C) 2012-2014 j kepler
|
10
10
|
|
@@ -87,7 +87,7 @@ class AbstractLayout
|
|
87
87
|
|
88
88
|
|
89
89
|
# Add a component, giving a weightage for height
|
90
|
-
# @param [
|
90
|
+
# @param [Integer, Float] give absolute weight, or fraction of layouts height
|
91
91
|
# if wt is >= 1 then it is absolute height, else if between 0 and 1 ,
|
92
92
|
# it is a percentage.
|
93
93
|
def add_with_weight item, weight
|
@@ -183,7 +183,7 @@ class AbstractLayout
|
|
183
183
|
e.col = c
|
184
184
|
wt = @wts[e]
|
185
185
|
if wt
|
186
|
-
if wt.is_a?
|
186
|
+
if wt.is_a? Integer
|
187
187
|
e.height = wt
|
188
188
|
elsif wt.is_a? Float
|
189
189
|
e.height = (wt * balance_ht).floor
|
@@ -4,7 +4,7 @@
|
|
4
4
|
# Author: j kepler http://github.com/mare-imbrium/canis/
|
5
5
|
# Date: 2014-05-08 - 18:33
|
6
6
|
# License: MIT
|
7
|
-
# Last update:
|
7
|
+
# Last update: 2017-03-09 23:13
|
8
8
|
# ----------------------------------------------------------------------------- #
|
9
9
|
# stacklayout.rb Copyright (C) 2012-2014 j kepler
|
10
10
|
require 'canis/core/include/layouts/abstractlayout'
|
@@ -74,7 +74,7 @@ class FlowLayout < AbstractLayout
|
|
74
74
|
e.col = c
|
75
75
|
wt = cget(e, :weight)
|
76
76
|
if wt
|
77
|
-
if wt.is_a?
|
77
|
+
if wt.is_a? Integer
|
78
78
|
e.width = wt
|
79
79
|
elsif wt.is_a? Float
|
80
80
|
e.width = (wt * balance_ht).floor
|
@@ -4,7 +4,7 @@
|
|
4
4
|
# Author: j kepler http://github.com/mare-imbrium/canis/
|
5
5
|
# Date: 2014-05-08 - 18:33
|
6
6
|
# License: MIT
|
7
|
-
# Last update:
|
7
|
+
# Last update: 2017-03-09 23:14
|
8
8
|
# ----------------------------------------------------------------------------- #
|
9
9
|
# stacklayout.rb Copyright (C) 2012-2014 j kepler
|
10
10
|
require 'canis/core/include/layouts/abstractlayout'
|
@@ -26,7 +26,7 @@ class StackLayout < AbstractLayout
|
|
26
26
|
# send in the widget and its weightage.
|
27
27
|
#
|
28
28
|
# @param [Widget] widget whose weightage is to be specified
|
29
|
-
# @param [Float,
|
29
|
+
# @param [Float, Integer] weightage for the given widget (@see add_with_weight)
|
30
30
|
def weightage item, wt
|
31
31
|
@wts[item] = wt
|
32
32
|
end
|
@@ -79,7 +79,7 @@ class StackLayout < AbstractLayout
|
|
79
79
|
e.col = c
|
80
80
|
wt = @wts[e]
|
81
81
|
if wt
|
82
|
-
if wt.is_a?
|
82
|
+
if wt.is_a? Integer
|
83
83
|
e.height = wt
|
84
84
|
elsif wt.is_a? Float
|
85
85
|
e.height = (wt * balance_ht).floor
|