mrdialog 1.0.1 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +5 -5
  2. data/ChangeLog.md +68 -23
  3. data/Gemfile +3 -2
  4. data/LICENSE.txt +1 -1
  5. data/README.md +196 -0
  6. data/Rakefile +3 -3
  7. data/VERSION +1 -1
  8. data/lib/mrdialog/mrdialog.rb +261 -178
  9. data/mrdialog.gemspec +124 -0
  10. data/pkg/md5.txt +1 -0
  11. data/samples/buildlist.rb +9 -1
  12. data/samples/calendar.rb +7 -0
  13. data/samples/checklist.rb +17 -4
  14. data/samples/editbox.rb +7 -0
  15. data/samples/extra_button/buildlist.rb +89 -0
  16. data/samples/extra_button/calendar.rb +45 -0
  17. data/samples/extra_button/checklist.rb +84 -0
  18. data/samples/extra_button/form1.rb +101 -0
  19. data/samples/extra_button/fselect.rb +36 -0
  20. data/samples/extra_button/inputbox.rb +48 -0
  21. data/samples/extra_button/menubox.rb +85 -0
  22. data/samples/extra_button/password.rb +44 -0
  23. data/samples/extra_button/radiolist.rb +86 -0
  24. data/samples/extra_button/timebox.rb +43 -0
  25. data/samples/extra_button/treeview.rb +112 -0
  26. data/samples/form1.rb +8 -2
  27. data/samples/form2.rb +7 -0
  28. data/samples/form3.rb +7 -1
  29. data/samples/fselect.rb +7 -0
  30. data/samples/gauge.rb +7 -0
  31. data/samples/infobox.rb +7 -0
  32. data/samples/inputbox.rb +7 -0
  33. data/samples/menubox.rb +7 -0
  34. data/samples/mixedform1.rb +7 -2
  35. data/samples/msgbox.rb +7 -0
  36. data/samples/password.rb +7 -0
  37. data/samples/password2.rb +7 -0
  38. data/samples/passwordform.rb +8 -2
  39. data/samples/pause.rb +7 -0
  40. data/samples/prgbox.rb +7 -0
  41. data/samples/program.rb +7 -0
  42. data/samples/progress.rb +7 -0
  43. data/samples/radiolist.rb +8 -0
  44. data/samples/run_all.rb +52 -0
  45. data/samples/timebox.rb +7 -0
  46. data/samples/treeview.rb +7 -0
  47. data/samples/treeview2.rb +7 -0
  48. data/samples/yesno.rb +7 -0
  49. data/screenshots/README.txt +10 -0
  50. data/screenshots/all.gif +0 -0
  51. data/screenshots/buildlist.png +0 -0
  52. data/screenshots/calendar.png +0 -0
  53. data/screenshots/checklist.png +0 -0
  54. data/screenshots/editbox.png +0 -0
  55. data/screenshots/form1.png +0 -0
  56. data/screenshots/form2.png +0 -0
  57. data/screenshots/form3.png +0 -0
  58. data/screenshots/fselect.png +0 -0
  59. data/screenshots/gauge.png +0 -0
  60. data/screenshots/infobox.png +0 -0
  61. data/screenshots/inputbox.png +0 -0
  62. data/screenshots/menubox.png +0 -0
  63. data/screenshots/mixedform1.png +0 -0
  64. data/screenshots/msgbox.png +0 -0
  65. data/screenshots/password.png +0 -0
  66. data/screenshots/password2.png +0 -0
  67. data/screenshots/passwordform.png +0 -0
  68. data/screenshots/pause.png +0 -0
  69. data/screenshots/prgbox.png +0 -0
  70. data/screenshots/program.png +0 -0
  71. data/screenshots/progress.png +0 -0
  72. data/screenshots/radiolist.png +0 -0
  73. data/screenshots/take_shots.rb +111 -0
  74. data/screenshots/timebox.png +0 -0
  75. data/screenshots/treeview.png +0 -0
  76. data/screenshots/treeview2.png +0 -0
  77. data/screenshots/yesno.png +0 -0
  78. metadata +83 -29
  79. data/Gemfile.lock +0 -82
  80. data/README.rdoc +0 -52
  81. data/pkg/mrdialog-1.0.1.gem +0 -0
data/mrdialog.gemspec ADDED
@@ -0,0 +1,124 @@
1
+ # Generated by juwelier
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+ # stub: mrdialog 1.0.4 ruby lib
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = "mrdialog"
9
+ s.version = "1.0.4"
10
+
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib"]
13
+ s.authors = ["Aleks Clark", "Muhammad Muquit"]
14
+ s.date = "2018-04-12"
15
+ s.description = "A ruby gem for ncurses dialog program.\n This gem is based on rdialog (http://rdialog.rubyforge.org/) by\n Aleks Clark. I added support for missing widgets, fixed \n bugs and wrote the sample apps. I am \n also renaming the class to MRDialog to avoid conflicts.\n Please look at ChangeLog.md for details. "
16
+ s.email = "muquit@gmail.com"
17
+ s.extra_rdoc_files = [
18
+ "ChangeLog.md",
19
+ "LICENSE.txt",
20
+ "README.md"
21
+ ]
22
+ s.files = [
23
+ ".document",
24
+ "ChangeLog.md",
25
+ "Gemfile",
26
+ "Gemfile.lock",
27
+ "LICENSE.txt",
28
+ "README.md",
29
+ "Rakefile",
30
+ "VERSION",
31
+ "lib/mrdialog.rb",
32
+ "lib/mrdialog/mrdialog.rb",
33
+ "pkg/md5.txt",
34
+ "pkg/mrdialog-1.0.4.gem",
35
+ "samples/buildlist.rb",
36
+ "samples/calendar.rb",
37
+ "samples/checklist.rb",
38
+ "samples/editbox.rb",
39
+ "samples/form1.rb",
40
+ "samples/form2.rb",
41
+ "samples/form3.rb",
42
+ "samples/fselect.rb",
43
+ "samples/gauge.rb",
44
+ "samples/infobox.rb",
45
+ "samples/inputbox.rb",
46
+ "samples/menubox.rb",
47
+ "samples/mixedform1.rb",
48
+ "samples/msgbox.rb",
49
+ "samples/password.rb",
50
+ "samples/password2.rb",
51
+ "samples/passwordform.rb",
52
+ "samples/pause.rb",
53
+ "samples/prgbox.rb",
54
+ "samples/program.rb",
55
+ "samples/progress.rb",
56
+ "samples/radiolist.rb",
57
+ "samples/run_all.rb",
58
+ "samples/shortlist",
59
+ "samples/timebox.rb",
60
+ "samples/treeview.rb",
61
+ "samples/treeview2.rb",
62
+ "samples/yesno.rb",
63
+ "screenshots/README.txt",
64
+ "screenshots/all.gif",
65
+ "screenshots/buildlist.png",
66
+ "screenshots/calendar.png",
67
+ "screenshots/checklist.png",
68
+ "screenshots/editbox.png",
69
+ "screenshots/form1.png",
70
+ "screenshots/form2.png",
71
+ "screenshots/form3.png",
72
+ "screenshots/fselect.png",
73
+ "screenshots/gauge.png",
74
+ "screenshots/infobox.png",
75
+ "screenshots/inputbox.png",
76
+ "screenshots/menubox.png",
77
+ "screenshots/mixedform1.png",
78
+ "screenshots/msgbox.png",
79
+ "screenshots/password.png",
80
+ "screenshots/password2.png",
81
+ "screenshots/passwordform.png",
82
+ "screenshots/pause.png",
83
+ "screenshots/prgbox.png",
84
+ "screenshots/program.png",
85
+ "screenshots/progress.png",
86
+ "screenshots/radiolist.png",
87
+ "screenshots/take_shots.rb",
88
+ "screenshots/timebox.png",
89
+ "screenshots/treeview.png",
90
+ "screenshots/treeview2.png",
91
+ "screenshots/yesno.png",
92
+ "test/helper.rb",
93
+ "test/test_mrdialog.rb"
94
+ ]
95
+ s.homepage = "http://github.com/muquit/mrdialog"
96
+ s.licenses = ["MIT"]
97
+ s.rubygems_version = "2.5.2.1"
98
+ s.summary = "A ruby gem for ncurses dialog program, based on the gem rdialog"
99
+
100
+ if s.respond_to? :specification_version then
101
+ s.specification_version = 4
102
+
103
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
104
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
105
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
106
+ s.add_development_dependency(%q<bundler>, ["~> 1.0"])
107
+ s.add_development_dependency(%q<juwelier>, ["~> 2.0.1"])
108
+ s.add_development_dependency(%q<simplecov>, [">= 0"])
109
+ else
110
+ s.add_dependency(%q<shoulda>, [">= 0"])
111
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
112
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
113
+ s.add_dependency(%q<juwelier>, ["~> 2.0.1"])
114
+ s.add_dependency(%q<simplecov>, [">= 0"])
115
+ end
116
+ else
117
+ s.add_dependency(%q<shoulda>, [">= 0"])
118
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
119
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
120
+ s.add_dependency(%q<juwelier>, ["~> 2.0.1"])
121
+ s.add_dependency(%q<simplecov>, [">= 0"])
122
+ end
123
+ end
124
+
data/pkg/md5.txt ADDED
@@ -0,0 +1 @@
1
+ e6497d81db203c5c49dfff90c7870a09 mrdialog-1.0.3.gem
data/samples/buildlist.rb CHANGED
@@ -5,6 +5,12 @@ require 'pp'
5
5
 
6
6
  begin
7
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
8
14
  text = <<EOF
9
15
  This example is taken from dialog/samples/menulist
10
16
  shell script.
@@ -12,7 +18,7 @@ shell script.
12
18
  Hi, this is a buildlist dialog. The list on the left
13
19
  shows the unselected items. The list on the right shows
14
20
  the selected items. Use SPACE bar to select/unselect
15
- items.
21
+ items. Shadow is set to false.
16
22
 
17
23
  EOF
18
24
  items = []
@@ -56,6 +62,8 @@ EOF
56
62
 
57
63
  dialog = MRDialog.new
58
64
  dialog.clear = true
65
+ dialog.shadow = false
66
+ dialog.title = "BUILDLIST"
59
67
  dialog.logger = Logger.new(ENV["HOME"] + "/dialog_" + ME + ".log")
60
68
 
61
69
  height = 0
data/samples/calendar.rb CHANGED
@@ -10,6 +10,13 @@ require 'date'
10
10
 
11
11
  begin
12
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
+
13
20
  text = "Please choose a date..."
14
21
 
15
22
  height = 0
data/samples/checklist.rb CHANGED
@@ -5,6 +5,13 @@ require 'pp'
5
5
 
6
6
  begin
7
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
+
8
15
  text = <<EOF
9
16
  This example is taken from dialog/samples/radiolist
10
17
  shell script.
@@ -15,7 +22,8 @@ off. If there are more items than can fit on the
15
22
  screen, the list will be scrolled. You can use the
16
23
  UP/DOWN arrow keys, the first letter of the choice as a
17
24
  hot key, or the number keys 1-9 to choose an option.
18
- Press SPACE to toggle an option on/off.
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.
19
27
 
20
28
  Which of the following are fruits?
21
29
 
@@ -48,16 +56,21 @@ EOF
48
56
  items.push(data.to_a)
49
57
 
50
58
  dialog = MRDialog.new
59
+ # dialog.notags = false
60
+ # dialog.dialog_options = "--no-tags"
51
61
  dialog.clear = true
62
+ dialog.title = "CHECKLIST"
52
63
  dialog.logger = Logger.new(ENV["HOME"] + "/dialog_" + ME + ".log")
53
64
 
54
65
  selected_items = dialog.checklist(text, items)
55
66
  exit_code = dialog.exit_code
56
67
  puts selected_items.class
57
68
  puts "Exit code: #{exit_code}"
58
- puts "Selected Items:"
59
- selected_items.each do |item|
60
- puts " '#{item}'"
69
+ if selected_items
70
+ puts "Selected Items:"
71
+ selected_items.each do |item|
72
+ puts " '#{item}'"
73
+ end
61
74
  end
62
75
 
63
76
  rescue => e
data/samples/editbox.rb CHANGED
@@ -6,6 +6,12 @@ require 'tempfile'
6
6
 
7
7
  begin
8
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
9
15
 
10
16
  tmp = Tempfile.new('editbox')
11
17
  tmp.puts <<-EOF
@@ -45,6 +51,7 @@ EOF
45
51
  dialog = MRDialog.new
46
52
  dialog.clear = true
47
53
  dialog.shadow = false
54
+ dialog.title = "EDITBOX"
48
55
  dialog.logger = Logger.new(ENV["HOME"] + "/dialog_" + ME + ".log")
49
56
 
50
57
  output = dialog.editbox(tmp.path, height, width)
@@ -0,0 +1,89 @@
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
+ text = <<EOF
15
+ This example is taken from dialog/samples/menulist
16
+ shell script.
17
+
18
+ Hi, this is a buildlist dialog. The list on the left
19
+ shows the unselected items. The list on the right shows
20
+ the selected items. Use SPACE bar to select/unselect
21
+ items. Shadow is set to false.
22
+
23
+ EOF
24
+ items = []
25
+ Struct.new("BuildListData", :tag, :item, :status)
26
+ data = Struct::BuildListData.new
27
+
28
+ data.tag = "1"
29
+ data.item = "Item number 1"
30
+ data.status = true
31
+ items.push(data.to_a)
32
+
33
+ data = Struct::BuildListData.new
34
+ data.tag = "2"
35
+ data.item = "Item number 2"
36
+ data.status = false
37
+ items.push(data.to_a)
38
+
39
+ data = Struct::BuildListData.new
40
+ data.tag = "3"
41
+ data.item = "Item number 3"
42
+ data.status = false
43
+ items.push(data.to_a)
44
+
45
+ data = Struct::BuildListData.new
46
+ data.tag = "4"
47
+ data.item = "Item number 4"
48
+ data.status = true
49
+ items.push(data.to_a)
50
+
51
+ data = Struct::BuildListData.new
52
+ data.tag = "5"
53
+ data.item = "Item number 5"
54
+ data.status = false
55
+ items.push(data.to_a)
56
+
57
+ data = Struct::BuildListData.new
58
+ data.tag = "6"
59
+ data.item = "Item number 6"
60
+ data.status = true
61
+ items.push(data.to_a)
62
+
63
+ dialog = MRDialog.new
64
+ dialog.clear = true
65
+ dialog.shadow = false
66
+ dialog.title = "BUILDLIST"
67
+ dialog.logger = Logger.new(ENV["HOME"] + "/dialog_" + ME + ".log")
68
+ dialog.extra_button = true
69
+ dialog.ok_label = "Send"
70
+ dialog.extra_label = "Archive"
71
+ dialog.cancel_label = "Quit"
72
+
73
+ height = 0
74
+ width = 0
75
+ listheight = 0
76
+
77
+ selected_items = dialog.buildlist(text, items, height, width, listheight)
78
+ exit_code = dialog.exit_code
79
+ puts "Exit code: #{exit_code}"
80
+ puts "Selecetd tags:"
81
+ selected_items.each do |item|
82
+ puts " '#{item}'"
83
+ end
84
+
85
+ rescue => e
86
+ puts "#{$!}"
87
+ t = e.backtrace.join("\n\t")
88
+ puts "Error: #{t}"
89
+ end
@@ -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