mrdialog 1.0.3 → 1.0.4
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.
- checksums.yaml +5 -5
- data/ChangeLog.md +15 -1
- data/Gemfile +3 -2
- data/README.md +7 -3
- data/Rakefile +3 -3
- data/VERSION +1 -1
- data/lib/mrdialog/mrdialog.rb +35 -36
- data/mrdialog.gemspec +124 -0
- data/pkg/md5.txt +1 -1
- data/samples/extra_button/buildlist.rb +89 -0
- data/samples/extra_button/calendar.rb +45 -0
- data/samples/extra_button/checklist.rb +84 -0
- data/samples/extra_button/form1.rb +101 -0
- data/samples/extra_button/fselect.rb +36 -0
- data/samples/extra_button/inputbox.rb +48 -0
- data/samples/extra_button/menubox.rb +85 -0
- data/samples/extra_button/password.rb +44 -0
- data/samples/extra_button/radiolist.rb +86 -0
- data/samples/extra_button/timebox.rb +43 -0
- data/samples/extra_button/treeview.rb +112 -0
- data/samples/run_all.rb +1 -1
- metadata +39 -16
- data/Gemfile.lock +0 -82
- data/pkg/mrdialog-1.0.3.gem +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 4abf284e5f7c5aa297345dbd4506bce9997aae61093f05cb4dab1190f0c40346
|
4
|
+
data.tar.gz: f667bcca5f8556c139a4ee4d38e210df6f6c9163e3dfab588dfecfa8fa4766e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f79b47813388ebcf37ae95d3cb3373b792cd6e929c3f83a53fa6818a39fb6909e5096c9b493c89de8ae7f4b9233a4442b0844dd2db067bc7a3f885f88f7a3ffc
|
7
|
+
data.tar.gz: 89ac7a47299c65fc5fef30fbfd6acaba29e9f80ae20b0fc8d57ce8a65e57cec177f3adfdc6168406882cefe1970a9e776abc04b90ff16fb398b557bfd5decdfe
|
data/ChangeLog.md
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
## 1.0.4
|
2
|
+
* Previously only the OK/Yes button read input from forms, menus and lists.
|
3
|
+
If an extra button is used, it was treated the same as the Cancel/No
|
4
|
+
button, and no output from the form/menu/list was returned to the caller.
|
5
|
+
|
6
|
+
This PR changes the various user input dialogs to treat the Extra button
|
7
|
+
the same way as the OK/Yes button, and to return the dialog's input to the
|
8
|
+
caller.
|
9
|
+
|
10
|
+
Thanks to https://github.com/OtherJohnGray for pull request.
|
11
|
+
|
12
|
+
(Jun-22-2022)
|
13
|
+
|
14
|
+
|
1
15
|
## 1.0.3
|
2
16
|
* Added accessor `rc_file`. It specifies the DIALOGRC file to use. Default is $HOME/.dialogrc
|
3
17
|
* Added accessor `cancel_label`. It specifies the label to use for the 'Cancel' button.
|
@@ -29,7 +43,7 @@ This ia exactly same as `dialog.notags = true`
|
|
29
43
|
|
30
44
|
## 1.0.1
|
31
45
|
|
32
|
-
*
|
46
|
+
* Juwelier support for making the gem.
|
33
47
|
|
34
48
|
Implemented methods for:
|
35
49
|
|
data/Gemfile
CHANGED
@@ -8,7 +8,8 @@ source "http://rubygems.org"
|
|
8
8
|
group :development do
|
9
9
|
gem "shoulda", ">= 0"
|
10
10
|
gem "rdoc", "~> 3.12"
|
11
|
-
gem "bundler", "
|
12
|
-
gem "
|
11
|
+
gem "bundler", ">= 2.0"
|
12
|
+
gem "juwelier", "~> 2.1.0"
|
13
13
|
gem "simplecov", ">= 0"
|
14
|
+
gem "test-unit"
|
14
15
|
end
|
data/README.md
CHANGED
@@ -29,7 +29,7 @@ I did the following:
|
|
29
29
|
If you have bug reports, questions, requests or suggestions, please enter it in the [Issues](https://github.com/muquit/mrdialog/issues) with an appropriate label.
|
30
30
|
|
31
31
|
### Latest Version
|
32
|
-
The latest version is 1.0.
|
32
|
+
The latest version is 1.0.4.
|
33
33
|
Please look at the [ChangeLog.md](ChangeLog.md) file for details. Please look at he [screenshots](screenshots/) to see how the widgets look like.
|
34
34
|
|
35
35
|
### Screenshots
|
@@ -171,6 +171,10 @@ Please look at [treeview.rb](samples/treeview.rb) for an example.
|
|
171
171
|
Please look at [yesno.rb](samples/yesno.rb) for an example.
|
172
172
|
|
173
173
|
### For Developers
|
174
|
+
Note: Pre-built mrdialog-1.0.4.gem is in the pkg directory
|
175
|
+
|
176
|
+
If you need to build the gem yourself:
|
177
|
+
|
174
178
|
Install bundler first:
|
175
179
|
|
176
180
|
$ gem install bundler
|
@@ -180,11 +184,11 @@ Install bundler first:
|
|
180
184
|
|
181
185
|
Will create the gem inside the pkg directory
|
182
186
|
|
183
|
-
- To install the built gem: ```$ sudo gem install --local pkg/mrdialog-1.0.
|
187
|
+
- To install the built gem: ```$ sudo gem install --local pkg/mrdialog-1.0.4.gem```
|
184
188
|
|
185
189
|
- To install using rake: ```$ sudo rake install```
|
186
190
|
|
187
|
-
- To install the gem to a specific directory: ```$ GEM_HOME=/tmp gem install --local pkg/mrdialog-1.0.
|
191
|
+
- To install the gem to a specific directory: ```$ GEM_HOME=/tmp gem install --local pkg/mrdialog-1.0.4.gem```
|
188
192
|
|
189
193
|
The gem will be installed in /tmp/gems directory
|
190
194
|
|
data/Rakefile
CHANGED
@@ -11,8 +11,8 @@ rescue Bundler::BundlerError => e
|
|
11
11
|
end
|
12
12
|
require 'rake'
|
13
13
|
|
14
|
-
require '
|
15
|
-
|
14
|
+
require 'juwelier'
|
15
|
+
Juwelier::Tasks.new do |gem|
|
16
16
|
# gem is a Gem::Specification... see http://guides.rubygems.org/specification-reference/ for more options
|
17
17
|
gem.name = "mrdialog"
|
18
18
|
gem.homepage = "http://github.com/muquit/mrdialog"
|
@@ -34,7 +34,7 @@ Jeweler::Tasks.new do |gem|
|
|
34
34
|
gem.files.include 'ChangeLog.md'
|
35
35
|
# dependencies defined in Gemfile
|
36
36
|
end
|
37
|
-
|
37
|
+
Juwelier::RubygemsDotOrgTasks.new
|
38
38
|
|
39
39
|
require 'rake/testtask'
|
40
40
|
Rake::TestTask.new(:test) do |test|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.4
|
data/lib/mrdialog/mrdialog.rb
CHANGED
@@ -442,11 +442,12 @@ class MRDialog
|
|
442
442
|
@exit_code = $?.exitstatus
|
443
443
|
log_debug "Exit code: #{exit_code}"
|
444
444
|
tag = ''
|
445
|
-
if @exit_code
|
445
|
+
if @exit_code != 1
|
446
446
|
tag = tmp.read
|
447
447
|
end
|
448
|
-
tmp.close!
|
449
448
|
return tag
|
449
|
+
ensure
|
450
|
+
tmp.close!
|
450
451
|
end
|
451
452
|
|
452
453
|
#
|
@@ -525,7 +526,7 @@ class MRDialog
|
|
525
526
|
system(cmd)
|
526
527
|
@exit_code = $?.exitstatus
|
527
528
|
log_debug "Exit code: #{exit_code}"
|
528
|
-
if @exit_code
|
529
|
+
if @exit_code != 1
|
529
530
|
lines = tmp.read
|
530
531
|
log_debug "lines: #{lines} #{lines.class}"
|
531
532
|
sep = Shellwords.escape(@separator)
|
@@ -535,8 +536,9 @@ class MRDialog
|
|
535
536
|
selected_tags << tag if tag.to_s.length > 0
|
536
537
|
end
|
537
538
|
end
|
538
|
-
tmp.close!
|
539
539
|
return selected_tags
|
540
|
+
ensure
|
541
|
+
tmp.close!
|
540
542
|
end
|
541
543
|
|
542
544
|
# A pause box displays a meter along the bottom of the box. The
|
@@ -604,8 +606,9 @@ class MRDialog
|
|
604
606
|
if @exit_code == 0
|
605
607
|
result = tmp.read
|
606
608
|
end
|
607
|
-
tmp.close!
|
608
609
|
return result
|
610
|
+
ensure
|
611
|
+
tmp.close!
|
609
612
|
end
|
610
613
|
|
611
614
|
#
|
@@ -693,7 +696,7 @@ class MRDialog
|
|
693
696
|
@exit_code = $?.exitstatus
|
694
697
|
log_debug "Exit code: #{exit_code}"
|
695
698
|
|
696
|
-
if @exit_code
|
699
|
+
if @exit_code != 1
|
697
700
|
lines = tmp.readlines
|
698
701
|
lines.each_with_index do |val, idx|
|
699
702
|
key = items[idx][0]
|
@@ -701,8 +704,9 @@ class MRDialog
|
|
701
704
|
end
|
702
705
|
end
|
703
706
|
|
704
|
-
tmp.close!
|
705
707
|
return res_hash
|
708
|
+
ensure
|
709
|
+
tmp.close!
|
706
710
|
end
|
707
711
|
|
708
712
|
#
|
@@ -754,15 +758,14 @@ class MRDialog
|
|
754
758
|
" 2> " + tmp.path
|
755
759
|
success = system(command)
|
756
760
|
@exit_code = $?.exitstatus
|
757
|
-
if
|
761
|
+
if @exit_code != 1
|
758
762
|
date = Date::civil(*tmp.readline.split('/').collect {|i| i.to_i}.reverse)
|
759
|
-
tmp.close!
|
760
763
|
return date
|
761
764
|
else
|
762
|
-
tmp.close!
|
763
765
|
return success
|
764
766
|
end
|
765
|
-
|
767
|
+
ensure
|
768
|
+
tmp.close!
|
766
769
|
end
|
767
770
|
|
768
771
|
# A checklist box is similar to a menu box; there are multiple
|
@@ -800,9 +803,8 @@ class MRDialog
|
|
800
803
|
success = system(command)
|
801
804
|
@exit_code = $?.exitstatus
|
802
805
|
selected_array = []
|
803
|
-
if
|
806
|
+
if @exit_code != 1
|
804
807
|
selected_string = tmp.readline
|
805
|
-
tmp.close!
|
806
808
|
log_debug "Separator: #{@separator}"
|
807
809
|
|
808
810
|
sep = Shellwords.escape(@separator)
|
@@ -813,10 +815,10 @@ class MRDialog
|
|
813
815
|
end
|
814
816
|
return selected_array
|
815
817
|
else
|
816
|
-
tmp.close!
|
817
818
|
return success
|
818
819
|
end
|
819
|
-
|
820
|
+
ensure
|
821
|
+
tmp.close!
|
820
822
|
end
|
821
823
|
|
822
824
|
# The file-selection dialog displays a text-entry window in which
|
@@ -850,18 +852,18 @@ class MRDialog
|
|
850
852
|
success = system(command)
|
851
853
|
@exit_code = $?.exitstatus
|
852
854
|
|
853
|
-
if
|
855
|
+
if @exit_code != 1
|
854
856
|
begin
|
855
857
|
selected_string = tmp.readline
|
856
858
|
rescue EOFError
|
857
859
|
selected_string = ""
|
858
860
|
end
|
859
|
-
tmp.close!
|
860
861
|
return selected_string
|
861
862
|
else
|
862
|
-
tmp.close!
|
863
863
|
return success
|
864
864
|
end
|
865
|
+
ensure
|
866
|
+
tmp.close!
|
865
867
|
end
|
866
868
|
|
867
869
|
|
@@ -914,15 +916,14 @@ class MRDialog
|
|
914
916
|
success = system(command)
|
915
917
|
@exit_code = $?.exitstatus
|
916
918
|
|
917
|
-
if
|
919
|
+
if @exit_code != 1
|
918
920
|
selected_string = tmp.readline
|
919
|
-
tmp.close!
|
920
921
|
return selected_string
|
921
922
|
else
|
922
|
-
tmp.close!
|
923
923
|
return success
|
924
924
|
end
|
925
|
-
|
925
|
+
ensure
|
926
|
+
tmp.close!
|
926
927
|
end
|
927
928
|
|
928
929
|
# As its name suggests, a menu box is a dialog box that can be
|
@@ -961,15 +962,14 @@ class MRDialog
|
|
961
962
|
success = system(command)
|
962
963
|
@exit_code = $?.exitstatus
|
963
964
|
|
964
|
-
if
|
965
|
+
if @exit_code != 1
|
965
966
|
selected_string = tmp.readline
|
966
|
-
tmp.close!
|
967
967
|
return selected_string
|
968
968
|
else
|
969
|
-
tmp.close!
|
970
969
|
return success
|
971
970
|
end
|
972
|
-
|
971
|
+
ensure
|
972
|
+
tmp.close!
|
973
973
|
end
|
974
974
|
|
975
975
|
# A message box is very similar to a yes/no box. The only dif-
|
@@ -1012,18 +1012,18 @@ class MRDialog
|
|
1012
1012
|
success = system(command)
|
1013
1013
|
@exit_code = $?.exitstatus
|
1014
1014
|
|
1015
|
-
if
|
1015
|
+
if @exit_code != 1
|
1016
1016
|
begin
|
1017
1017
|
selected_string = tmp.readline
|
1018
1018
|
rescue EOFError
|
1019
1019
|
selected_string = ""
|
1020
1020
|
end
|
1021
|
-
tmp.close!
|
1022
1021
|
return selected_string
|
1023
1022
|
else
|
1024
|
-
tmp.close!
|
1025
1023
|
return success
|
1026
1024
|
end
|
1025
|
+
ensure
|
1026
|
+
tmp.close!
|
1027
1027
|
end
|
1028
1028
|
|
1029
1029
|
# The textbox method handles three similar dialog functions, textbox,
|
@@ -1093,15 +1093,14 @@ class MRDialog
|
|
1093
1093
|
log_debug("Command:\n#{command}")
|
1094
1094
|
success = system(command)
|
1095
1095
|
@exit_code = $?.exitstatus
|
1096
|
-
if
|
1096
|
+
if @exit_code != 1
|
1097
1097
|
time = Time.parse(tmp.readline)
|
1098
|
-
tmp.close!
|
1099
1098
|
return time
|
1100
1099
|
else
|
1101
|
-
tmp.close!
|
1102
1100
|
return success
|
1103
1101
|
end
|
1104
|
-
|
1102
|
+
ensure
|
1103
|
+
tmp.close!
|
1105
1104
|
end
|
1106
1105
|
|
1107
1106
|
# An input box is useful when you want to ask questions that
|
@@ -1129,18 +1128,18 @@ class MRDialog
|
|
1129
1128
|
success = system(command)
|
1130
1129
|
@exit_code = $?.exitstatus
|
1131
1130
|
|
1132
|
-
if
|
1131
|
+
if @exit_code != 1
|
1133
1132
|
begin
|
1134
1133
|
selected_string = tmp.readline
|
1135
1134
|
rescue EOFError
|
1136
1135
|
selected_string = ""
|
1137
1136
|
end
|
1138
|
-
tmp.close!
|
1139
1137
|
return selected_string
|
1140
1138
|
else
|
1141
|
-
tmp.close!
|
1142
1139
|
return success
|
1143
1140
|
end
|
1141
|
+
ensure
|
1142
|
+
tmp.close!
|
1144
1143
|
end
|
1145
1144
|
|
1146
1145
|
# A yes/no dialog box of size height rows by width columns will
|
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
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
e6497d81db203c5c49dfff90c7870a09 mrdialog-1.0.3.gem
|
@@ -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
|