mrdialog 1.0.3 → 1.0.5

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.
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ ########################################################################
4
+ # Example for calendar widget.
5
+ # muquit@muquit.com Apr-02-2014
6
+ ########################################################################
7
+ #
8
+ require [File.expand_path(File.dirname(__FILE__)), '../..', 'lib', 'mrdialog'].join('/')
9
+ require 'date'
10
+
11
+ begin
12
+ ME = File.basename($0)
13
+ if ENV['CHANGE_TITLE']
14
+ if ME =~ /(.+)\.rb$/
15
+ base = $1
16
+ puts "\033]0;mrdialog - #{base}\007"
17
+ end
18
+ end
19
+
20
+ text = "Please choose a date..."
21
+
22
+ height = 0
23
+ width = 0
24
+ day = Date.today.mday
25
+ month =Date.today.mon
26
+ year =Date.today.year
27
+
28
+ dialog = MRDialog.new
29
+ dialog.logger = Logger.new(ENV["HOME"] + "/dialog_" + ME + ".log")
30
+ dialog.clear = true
31
+ dialog.title = "CALENDAR"
32
+ dialog.extra_button = true
33
+ dialog.ok_label = "Save"
34
+ dialog.extra_label = "Send"
35
+ dialog.cancel_label = "Quit"
36
+
37
+ date = dialog.calendar(text, height, width, day, month, year)
38
+ puts "Exit code: #{dialog.exit_code}"
39
+ puts "Result is: #{date.to_s}"
40
+
41
+ rescue => e
42
+ puts "#{$!}"
43
+ t = e.backtrace.join("\n\t")
44
+ puts "Error: #{t}"
45
+ end
@@ -0,0 +1,84 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require [File.expand_path(File.dirname(__FILE__)), '../..', 'lib', 'mrdialog'].join('/')
4
+ require 'pp'
5
+
6
+ begin
7
+ ME = File.basename($0)
8
+ if ENV['CHANGE_TITLE']
9
+ if ME =~ /(.+)\.rb$/
10
+ base = $1
11
+ puts "\033]0;mrdialog - #{base}\007"
12
+ end
13
+ end
14
+
15
+ text = <<EOF
16
+ This example is taken from dialog/samples/radiolist
17
+ shell script.
18
+
19
+ Hi, this is a radiolist box. You can use this to
20
+ present a list of choices which can be turned on or
21
+ off. If there are more items than can fit on the
22
+ screen, the list will be scrolled. You can use the
23
+ UP/DOWN arrow keys, the first letter of the choice as a
24
+ hot key, or the number keys 1-9 to choose an option.
25
+ Press SPACE to toggle an option on/off. Set the option
26
+ notags to true if you don't want to diaplay the tags.
27
+
28
+ Which of the following are fruits?
29
+
30
+ EOF
31
+ items = []
32
+ checklist_data = Struct.new(:tag, :item, :select)
33
+
34
+ data = checklist_data.new
35
+ data.tag = "Apple"
36
+ data.item = "It's an applie"
37
+ data.select = false
38
+ items.push(data.to_a)
39
+
40
+ data = checklist_data.new
41
+ data.tag = "Dog"
42
+ data.item = "No it's not my dog"
43
+ data.select = true
44
+ items.push(data.to_a)
45
+
46
+ data = checklist_data.new
47
+ data.tag = "Orange"
48
+ data.item = "Yeah! it is juicy"
49
+ data.select = false
50
+ items.push(data.to_a)
51
+
52
+ data = checklist_data.new
53
+ data.tag = "Chicken"
54
+ data.item = "Normally not a pet"
55
+ data.select = true
56
+ items.push(data.to_a)
57
+
58
+ dialog = MRDialog.new
59
+ # dialog.notags = false
60
+ # dialog.dialog_options = "--no-tags"
61
+ dialog.clear = true
62
+ dialog.title = "CHECKLIST"
63
+ dialog.logger = Logger.new(ENV["HOME"] + "/dialog_" + ME + ".log")
64
+ dialog.extra_button = true
65
+ dialog.ok_label = "Send"
66
+ dialog.extra_label = "Save"
67
+ dialog.cancel_label = "Quit"
68
+
69
+ selected_items = dialog.checklist(text, items)
70
+ exit_code = dialog.exit_code
71
+ puts selected_items.class
72
+ puts "Exit code: #{exit_code}"
73
+ if selected_items
74
+ puts "Selected Items:"
75
+ selected_items.each do |item|
76
+ puts " '#{item}'"
77
+ end
78
+ end
79
+
80
+ rescue => e
81
+ puts "#{$!}"
82
+ t = e.backtrace.join("\n\t")
83
+ puts "Error: #{t}"
84
+ end
@@ -0,0 +1,101 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # muquit@muquit.com Apr-01-2014
4
+ require [File.expand_path(File.dirname(__FILE__)), '../..', 'lib', 'mrdialog'].join('/')
5
+ require 'pp'
6
+
7
+ begin
8
+ ME = File.basename($0)
9
+ if ENV['CHANGE_TITLE']
10
+ if ME =~ /(.+)\.rb$/
11
+ base = $1
12
+ puts "\033]0;mrdialog - #{base}\007"
13
+ end
14
+ end
15
+
16
+ user = ''
17
+ uid = ''
18
+ gid = ''
19
+ home = ENV["HOME"]
20
+
21
+ id = `id`.chomp
22
+ if id =~ /^uid=(\d+)\((.+)\)\sgid=(\d+)\(.*$/
23
+ uid = $1
24
+ user = $2
25
+ gid = $3
26
+ end
27
+
28
+ dialog = MRDialog.new
29
+ dialog.clear = true
30
+ dialog.logger = Logger.new(ENV["HOME"] + "/dialog_" + ME + ".log")
31
+
32
+ text = <<EOF
33
+ Here is a possible piece of a configuration program.
34
+ EOF
35
+ items = []
36
+ form_data = Struct.new(:label, :ly, :lx, :item, :iy, :ix, :flen, :ilen)
37
+
38
+ data = form_data.new
39
+ data.label = "Username:"
40
+ data.ly = 1
41
+ data.lx = 1
42
+ data.item = user
43
+ data.iy = 1
44
+ data.ix = 10
45
+ data.flen = user.length + 10
46
+ data.ilen = 0
47
+ items.push(data.to_a)
48
+
49
+ data = form_data.new
50
+ data.label = "UID:"
51
+ data.ly = 2
52
+ data.lx = 1
53
+ data.item = uid.to_s
54
+ data.iy = 2
55
+ data.ix = 10
56
+ data.flen = uid.length + 10
57
+ data.ilen = 0
58
+ items.push(data.to_a)
59
+
60
+ data = form_data.new
61
+ data.label = "GID:"
62
+ data.ly = 3
63
+ data.lx = 1
64
+ data.item = gid.to_s
65
+ data.iy =3
66
+ data.ix = 10
67
+ data.flen = gid.length + 2
68
+ data.ilen = 0
69
+ items.push(data.to_a)
70
+
71
+ data = form_data.new
72
+ data.label = "HOME:"
73
+ data.ly = 4
74
+ data.lx = 1
75
+ data.item = home
76
+ data.iy = 4
77
+ data.ix = 10
78
+ data.flen = home.length + 40
79
+ data.ilen = 0
80
+ items.push(data.to_a)
81
+
82
+ dialog.title = "FORM"
83
+ dialog.extra_button = true
84
+ dialog.ok_label = "Save"
85
+ dialog.extra_label = "Submit"
86
+ dialog.cancel_label = "Quit"
87
+
88
+ result_hash = dialog.form(text, items, 20, 50, 0)
89
+ if result_hash
90
+ puts "Resulting data:"
91
+ result_hash.each do |key, val|
92
+ puts " #{key} = #{val}"
93
+ end
94
+ end
95
+
96
+
97
+ rescue => e
98
+ puts "#{$!}"
99
+ t = e.backtrace.join("\n\t")
100
+ puts "Error: #{t}"
101
+ end
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # muquit@muquit.com Apr-01-2014
4
+ require [File.expand_path(File.dirname(__FILE__)), '../..', 'lib', 'mrdialog'].join('/')
5
+ require 'pp'
6
+
7
+ begin
8
+ ME = File.basename($0)
9
+ if ENV['CHANGE_TITLE']
10
+ if ME =~ /(.+)\.rb$/
11
+ base = $1
12
+ puts "\033]0;mrdialog - #{base}\007"
13
+ end
14
+ end
15
+
16
+ dialog = MRDialog.new
17
+ dialog.clear = true
18
+ dialog.title = "Please choose a file"
19
+ dialog.extra_button = true
20
+ dialog.ok_label = "Copy"
21
+ dialog.extra_label = "Delete"
22
+ dialog.cancel_label = "Quit"
23
+
24
+ h = 14
25
+ w = 48
26
+ file_path = ENV["HOME"] + "/"
27
+ file = dialog.fselect(file_path, h, w)
28
+
29
+ puts "Exit code: #{dialog.exit_code}"
30
+ puts "Result is: #{file}"
31
+
32
+ rescue => e
33
+ puts "#{$!}"
34
+ t = e.backtrace.join("\n\t")
35
+ puts "Error: #{t}"
36
+ end
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # muquit@muquit.com Apr-01-2014
4
+ require [File.expand_path(File.dirname(__FILE__)), '../..', 'lib', 'mrdialog'].join('/')
5
+ require 'pp'
6
+
7
+ begin
8
+ ME = File.basename($0)
9
+ if ENV['CHANGE_TITLE']
10
+ if ME =~ /(.+)\.rb$/
11
+ base = $1
12
+ puts "\033]0;mrdialog - #{base}\007"
13
+ end
14
+ end
15
+
16
+ text = <<EOF
17
+ Hi, this is an input dialog box. You can use
18
+ this to ask questions that require the user
19
+ to input a string as the answer. You can
20
+ input strings of length longer than the
21
+ width of the input box, in that case, the
22
+ input field will be automatically scrolled.
23
+ You can use BACKSPACE to correct errors.
24
+ Try entering your name below:
25
+
26
+ EOF
27
+ dialog = MRDialog.new
28
+ dialog.logger = Logger.new(ENV["HOME"] + "/dialog_" + ME + ".log")
29
+ dialog.clear = true
30
+ dialog.title = "INPUT BOX"
31
+ dialog.extra_button = true
32
+ dialog.ok_label = "Send"
33
+ dialog.extra_label = "Save"
34
+ dialog.cancel_label = "Quit"
35
+
36
+ height = 16
37
+ width = 51
38
+ init = "blah"
39
+ result = dialog.inputbox(text, height, width, init)
40
+
41
+ puts "Exit Code: #{dialog.exit_code}"
42
+ puts "Result is: #{result}"
43
+
44
+ rescue => e
45
+ puts "#{$!}"
46
+ t = e.backtrace.join("\n\t")
47
+ puts "Error: #{t}"
48
+ end
@@ -0,0 +1,85 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # muquit@muquit.com Apr-01-2014
4
+ require [File.expand_path(File.dirname(__FILE__)), '../..', 'lib', 'mrdialog'].join('/')
5
+ begin
6
+ ME = File.basename($0)
7
+ if ENV['CHANGE_TITLE']
8
+ if ME =~ /(.+)\.rb$/
9
+ base = $1
10
+ puts "\033]0;mrdialog - #{base}\007"
11
+ end
12
+ end
13
+
14
+ dialog = MRDialog.new
15
+ dialog.logger = Logger.new(ENV["HOME"] + "/dialog_" + ME + ".log")
16
+ dialog.clear = true
17
+ dialog.title = "MENU BOX"
18
+ dialog.extra_button = true
19
+ dialog.ok_label = "Send"
20
+ dialog.extra_label = "Save"
21
+ dialog.cancel_label = "Quit"
22
+
23
+
24
+ text = <<EOF
25
+ This example is taken from dialog/samples/menubox1
26
+
27
+ Hi, this is a menu box. You can use this to
28
+ present a list of choices for the user to
29
+ choose. If there are more items than can fit
30
+ on the screen, the menu will be scrolled.
31
+ You can use the UP/DOWN arrow keys, the first
32
+ letter of the choice as a hot key, or the
33
+ number keys 1-9 to choose an option.
34
+ Try it now!
35
+
36
+ Choose the OS you like:
37
+
38
+ EOF
39
+ items = []
40
+ menu_data = Struct.new(:tag, :item)
41
+ data = menu_data.new
42
+ data.tag = "Linux"
43
+ data.item = "The Great Unix Clone for 386/486"
44
+ items.push(data.to_a)
45
+
46
+ data = menu_data.new
47
+ data.tag = "NetBSD"
48
+ data.item = "Another free Unix Clone for 386/486"
49
+ items.push(data.to_a)
50
+
51
+ data = menu_data.new
52
+ data.tag = "OS/2"
53
+ data.item = "IBM OS/2"
54
+ items.push(data.to_a)
55
+
56
+ data = menu_data.new
57
+ data.tag = "WIN NT"
58
+ data.item = "Microsoft Windows NT"
59
+ items.push(data.to_a)
60
+
61
+ data = menu_data.new
62
+ data.tag = "PCDOS"
63
+ data.item = "IBM PC DOS"
64
+ items.push(data.to_a)
65
+
66
+ data = menu_data.new
67
+ data.tag = "MSDOS"
68
+ data.item = "Microsoft DOS"
69
+ items.push(data.to_a)
70
+
71
+
72
+ height = 0
73
+ width = 0
74
+ menu_height = 4
75
+
76
+ selected_item = dialog.menu(text, items, height, width, menu_height)
77
+
78
+ puts "Exit Code: #{dialog.exit_code}"
79
+ puts "Selected item: #{selected_item}"
80
+
81
+ rescue => e
82
+ puts "#{$!}"
83
+ t = e.backtrace.join("\n\t")
84
+ puts "Error: #{t}"
85
+ end
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env ruby
2
+ # muquit@muquit.com Apr-01-2014
3
+ require [File.expand_path(File.dirname(__FILE__)), '../..', 'lib', 'mrdialog'].join('/')
4
+ require 'pp'
5
+
6
+ begin
7
+ ME = File.basename($0)
8
+ if ENV['CHANGE_TITLE']
9
+ if ME =~ /(.+)\.rb$/
10
+ base = $1
11
+ puts "\033]0;mrdialog - #{base}\007"
12
+ end
13
+ end
14
+
15
+ text = <<EOF
16
+ Hi, this is an password dialog box. You can use
17
+ this to ask questions that require the user
18
+ to input a string as the answer. You can
19
+ input strings of length longer than the
20
+ width of the input box, in that case, the
21
+ input field will be automatically scrolled.
22
+ You can use BACKSPACE to correct errors.
23
+ Try entering your name below:
24
+
25
+ EOF
26
+ dialog = MRDialog.new
27
+ dialog.logger = Logger.new(ENV["HOME"] + "/dialog_" + ME + ".log")
28
+ dialog.clear = true
29
+ dialog.title = "Password box"
30
+ dialog.extra_button = true
31
+ dialog.ok_label = "Login"
32
+ dialog.extra_label = "Reset"
33
+ dialog.cancel_label = "Quit"
34
+
35
+ result = dialog.passwordbox(text)
36
+
37
+ puts "Exit Code: #{dialog.exit_code}"
38
+ puts "Result is: #{result}"
39
+
40
+ rescue => e
41
+ puts "#{$!}"
42
+ t = e.backtrace.join("\n\t")
43
+ puts "Error: #{t}"
44
+ end
@@ -0,0 +1,86 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # muquit@muquit.com Apr-01-2014
4
+ require [File.expand_path(File.dirname(__FILE__)), '../..', 'lib', 'mrdialog'].join('/')
5
+ require 'pp'
6
+
7
+ class TestRadiolist
8
+ ME = File.basename($0)
9
+
10
+ def initialize
11
+ if ENV['CHANGE_TITLE']
12
+ if ME =~ /(.+)\.rb$/
13
+ base = $1
14
+ puts "\033]0;mrdialog - #{base}\007"
15
+ end
16
+ end
17
+ end
18
+
19
+ def doit
20
+ dialog = MRDialog.new
21
+ dialog.clear = true
22
+ dialog.logger = Logger.new(ENV["HOME"] + "/dialog_" + ME + ".log")
23
+
24
+ text = <<EOF
25
+ This example is taken from dialog/samples/radiolist
26
+ shell script.
27
+
28
+ Hi, this is a radiolist box. You can use this to
29
+ present a list of choices which can be turned on or
30
+ off. If there are more items than can fit on the
31
+ screen, the list will be scrolled. You can use the
32
+ UP/DOWN arrow keys, the first letter of the choice as a
33
+ hot key, or the number keys 1-9 to choose an option.
34
+ Press SPACE to toggle an option on/off.
35
+
36
+ Which of the following are fruits?
37
+
38
+ EOF
39
+ items = []
40
+ radiolist_data = Struct.new(:tag, :item, :select)
41
+
42
+ data = radiolist_data.new
43
+ data.tag = "Apple"
44
+ data.item = "It's an applie"
45
+ data.select = false
46
+ items.push(data.to_a)
47
+
48
+ data = radiolist_data.new
49
+ data.tag = "Dog"
50
+ data.item = "No it's not my dog"
51
+ data.select = true
52
+ items.push(data.to_a)
53
+
54
+ data = radiolist_data.new
55
+ data.tag = "Orange"
56
+ data.item = "Yeah! it is juicy"
57
+ data.select = false
58
+ items.push(data.to_a)
59
+
60
+ dialog.title = "RADIOLIST"
61
+ dialog.extra_button = true
62
+ dialog.ok_label = "Edit"
63
+ dialog.extra_label = "Delete"
64
+ dialog.cancel_label = "Quit"
65
+
66
+ selected_item = dialog.radiolist(text, items)
67
+ exit_code = dialog.exit_code
68
+ case exit_code
69
+ when dialog.dialog_ok
70
+ puts "OK Pressed"
71
+ when dialog.dialog_extra
72
+ puts "Extra Pressed"
73
+ when dialog.dialog_cancel
74
+ puts "Cancel Pressed"
75
+ when dialog.dialog_esc
76
+ puts "Escape Pressed"
77
+ end
78
+
79
+ puts "Selected item: #{selected_item}"
80
+ end
81
+ end
82
+
83
+ if __FILE__ == $0
84
+ TestRadiolist.new.doit
85
+ end
86
+
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # muquit@muquit.com Apr-01-2014
4
+ require [File.expand_path(File.dirname(__FILE__)), '../..', 'lib', 'mrdialog'].join('/')
5
+ require 'pp'
6
+
7
+ begin
8
+ ME = File.basename($0)
9
+ if ENV['CHANGE_TITLE']
10
+ if ME =~ /(.+)\.rb$/
11
+ base = $1
12
+ puts "\033]0;mrdialog - #{base}\007"
13
+ end
14
+ end
15
+
16
+ text = <<EOF
17
+ Please set the time...
18
+ EOF
19
+
20
+ h = 0
21
+ w = 0
22
+ t = Time.new
23
+
24
+ dialog = MRDialog.new
25
+ dialog.logger = Logger.new(ENV["HOME"] + "/dialog_" + ME + ".log")
26
+ dialog.clear = true
27
+ dialog.title = "TIEMBOX"
28
+ dialog.extra_button = true
29
+ dialog.ok_label = "Event"
30
+ dialog.extra_label = "Alert"
31
+ dialog.cancel_label = "Quit"
32
+
33
+ # return Time
34
+ time = dialog.timebox(text, h, w, t)
35
+
36
+ puts "Exit Code: #{dialog.exit_code}"
37
+ puts "time: #{time}"
38
+
39
+ rescue => e
40
+ puts "#{$!}"
41
+ t = e.backtrace.join("\n\t")
42
+ puts "Error: #{t}"
43
+ end
@@ -0,0 +1,112 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # muquit@muquit.com Apr-20-2014
4
+ require [File.expand_path(File.dirname(__FILE__)), '../..', 'lib', 'mrdialog'].join('/')
5
+ require 'pp'
6
+
7
+ begin
8
+ ME = File.basename($0)
9
+ if ENV['CHANGE_TITLE']
10
+ if ME =~ /(.+)\.rb$/
11
+ base = $1
12
+ puts "\033]0;mrdialog - #{base}\007"
13
+ end
14
+ end
15
+
16
+ text = <<-EOF
17
+ This example is taken from dialog/samples/treeview1
18
+ shell script.
19
+
20
+ EOF
21
+ items = []
22
+ Struct.new("TreeviewData", :tag, :item, :status, :depth)
23
+ data = Struct::TreeviewData.new
24
+
25
+ data.tag = "tag1"
26
+ data.item = "Item number 1"
27
+ data.status = false
28
+ data.depth = 0
29
+ items.push(data.to_a)
30
+
31
+ data = Struct::TreeviewData.new
32
+ data.tag = "tag2"
33
+ data.item = "Item number 2"
34
+ data.status = false
35
+ data.depth = 1
36
+ items.push(data.to_a)
37
+
38
+ data = Struct::TreeviewData.new
39
+ data.tag = "tag3"
40
+ data.item = "Item number 3"
41
+ data.status = true
42
+ data.depth = 2
43
+ items.push(data.to_a)
44
+
45
+ data = Struct::TreeviewData.new
46
+ data.tag = "tag4"
47
+ data.item = "Item number 4"
48
+ data.status = false
49
+ data.depth = 1
50
+ items.push(data.to_a)
51
+
52
+ data = Struct::TreeviewData.new
53
+ data.tag = "tag5"
54
+ data.item = "Item number 5"
55
+ data.status = false
56
+ data.depth = 2
57
+ items.push(data.to_a)
58
+
59
+ data = Struct::TreeviewData.new
60
+ data.tag = "tag6"
61
+ data.item = "Item number 6"
62
+ data.status = false
63
+ data.depth = 3
64
+ items.push(data.to_a)
65
+
66
+ data = Struct::TreeviewData.new
67
+ data.tag = "tag7"
68
+ data.item = "Item number 7"
69
+ data.status = false
70
+ data.depth = 3
71
+ items.push(data.to_a)
72
+
73
+ data = Struct::TreeviewData.new
74
+ data.tag = "tag8"
75
+ data.item = "Item number 8"
76
+ data.status = false
77
+ data.depth = 4
78
+ items.push(data.to_a)
79
+
80
+ data = Struct::TreeviewData.new
81
+ data.tag = "tag9"
82
+ data.item = "Item number 9"
83
+ data.status = false
84
+ data.depth = 1
85
+ items.push(data.to_a)
86
+
87
+ dialog = MRDialog.new
88
+ dialog.clear = true
89
+ dialog.title = "TREEVIEW"
90
+ dialog.logger = Logger.new(ENV["HOME"] + "/dialog_" + ME + ".log")
91
+ dialog.extra_button = true
92
+ dialog.ok_label = "Edit"
93
+ dialog.extra_label = "Delete"
94
+ dialog.cancel_label = "Quit"
95
+
96
+
97
+ height = 0
98
+ width = 0
99
+ listheight = 0
100
+
101
+ selected_tag = dialog.treeview(text, items, height, width, listheight)
102
+ exit_code = dialog.exit_code
103
+ puts "Exit code: #{exit_code}"
104
+ if exit_code != 1
105
+ puts "Selected tag: #{selected_tag}"
106
+ end
107
+
108
+ rescue => e
109
+ puts "#{$!}"
110
+ t = e.backtrace.join("\n\t")
111
+ puts "Error: #{t}"
112
+ end
data/samples/run_all.rb CHANGED
@@ -39,7 +39,7 @@ EOF
39
39
  pwd = Dir.pwd
40
40
  entries = Dir.entries(pwd)
41
41
  entries.each do |prog|
42
- next if prog == '.' || prog == '..' || prog =~ /run_all.rb/
42
+ next if prog =~ /run_all.rb/ || prog !~ /\.rb$/
43
43
  cmd = ""
44
44
  cmd << "ruby ./#{prog}"
45
45
  system(cmd)