visualruby 3.6.9 → 3.6.10

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 025aff744920618f514efa29597f80dfa6bd2b7ca31f554682db6a9ff059851d
4
- data.tar.gz: 8dac675f4e5c6e3f3043e318b69cd5e4327c2e2ec99ef37da57a1de7413b1445
3
+ metadata.gz: 6e15dd9e8e52407fa845892c35368830810a838f222e6128a1812a53a07924b5
4
+ data.tar.gz: 47c1cf77cc648edb67fb142ee163ea56806b470291e0919f3d67086ea4dcc16f
5
5
  SHA512:
6
- metadata.gz: 339f985e3fd472f1f37b7fce8f9205c49f8c9391439d4f8a281a2059b719cb6b19f5490e37d41e6953dea81f4d1fddcfa15627fd7e70e594c5306f8e0928634e
7
- data.tar.gz: 91a6668bab35eb101a33b43cbb7e93b02882301d59f9535a7368a3245c1c517296af09a0d12607c537ea62253f4fbed12e6925895710d333c48c683306300cb1
6
+ metadata.gz: 57cd278417e7c253c354a7edcaa47b60ef9db1336dbdef755879f7089bcca0e077cd6b7e16f3608f0c5a940a0b0a29936fb8b82952dc6e60d0787fd31069389a
7
+ data.tar.gz: e5701785c8307ffcc3f85337562d82685333ba4e67353c9dd6220a5430cb6fe90ccf125835321300e6a0c837b0e35d5c1cdace6174b19f1569a7aa8601ce5bff
data/.vr_settings.yaml CHANGED
@@ -12,11 +12,20 @@ open_files:
12
12
  - "/home/eric/vrp/vr3/src/editor/VR_Document.rb"
13
13
  - "/home/eric/vrp/vr3/src/main/VR_Tools.rb"
14
14
  - "/home/eric/vrp/vr3/src/main/OpenProject.rb"
15
- - "/home/eric/vrp/vr3/src/main/NewProjectGUI.rb"
16
15
  - "/home/eric/vrp/vr3/src/version.rb"
17
- - "/home/eric/vrp/vr3/site/Quick_Start.md"
18
- - "/home/eric/vrp/vr3/site/Download.md"
19
- - "/home/eric/vrp/vr3/README.md"
16
+ - "/home/eric/vrp/vr3/lib/Alert.rb"
17
+ - "/home/eric/vrp/vr3/lib/vrlib.rb"
18
+ - "/home/eric/vrp/vr3/lib/AlertDialog.rb"
19
+ - "/home/eric/vrp/vr3/src/main/NewProjectGUI.rb"
20
+ - "/home/eric/vrp/vr3/src/editor/VR_Tabs.rb"
21
+ - "/home/eric/vrp/vr3/examples/06_alert_box/alertdemo.rb"
22
+ - "/home/eric/vrp/vr3/examples/35_child_window/child_window.rb"
23
+ - "/home/eric/vrp/vr3/examples/71_prettify_view/prettify_view.rb"
24
+ - "/home/eric/vrp/vr3/examples/72_object_views/object_views.rb"
25
+ - "/home/eric/vrp/vr3/examples/78_listview/listview.rb"
26
+ - "/home/eric/vrp/vr3/examples/78_listview_objects/listviewobjects.rb"
27
+ - "/home/eric/vrp/vr3/examples/95_active_record/active_record.rb"
28
+ - "/home/eric/vrp/vr3/examples/97_active_record2/main.rb"
20
29
  open_folders:
21
30
  - "/home/eric/vrp/vr3"
22
31
  - "/home/eric/vrp/vr3/lib"
@@ -28,8 +37,8 @@ open_folders:
28
37
  - "/home/eric/vrp/vr3/src/editor"
29
38
  - "/home/eric/vrp/vr3/src/main"
30
39
  - "/home/eric/vrp/vr3/src/main/glade"
31
- current_file: "/home/eric/vrp/vr3/lib/GladeGUI.rb"
32
- current_line: 414
40
+ current_file: "/home/eric/vrp/vr3/examples/78_listview_objects/listviewobjects.rb"
41
+ current_line: 4
33
42
  rdoc_command_line: rdoc -x README
34
43
  builder: !ruby/object:Gtk::Builder {}
35
44
  top_level_window: false
data/.yardoc/my_yard.yaml CHANGED
@@ -5,8 +5,8 @@ template_root: "/home/eric/my_yard/templates"
5
5
  output_dir: docs
6
6
  theme: visualruby
7
7
  template: visualruby
8
- files: lib/**/*.rb
9
- extra_files: "**/**/*.md"
8
+ files: 'lib/**/*.rb '
9
+ extra_files: "*/**/*.md"
10
10
  exclude: ''
11
11
  include_public: true
12
12
  include_private: false
@@ -19,4 +19,3 @@ export_db_path: ".yardoc"
19
19
  vr_yaml_file: "/home/eric/vrp/vr3/.yardoc/my_yard.yaml"
20
20
  builder: !ruby/object:Gtk::Builder
21
21
  top_level_window: false
22
- top_level_window: false
@@ -6,10 +6,10 @@ panel_pos: 360
6
6
  notebook_panel_position: 718
7
7
  run_command_line: builder.rb
8
8
  open_files:
9
- - "/home/eric/vrp/vr3/examples/02_hello/Untitled"
9
+ - "/home/eric/vrp/vr3/examples/03_builder_variable/README.txt"
10
10
  open_folders:
11
11
  - "/home/eric/vrp/vr3/examples/03_builder_variable"
12
- current_file: "/home/eric/vrp/vr3/examples/02_hello/Untitled"
12
+ current_file: "/home/eric/vrp/vr3/examples/03_builder_variable/README.txt"
13
13
  current_line: 1
14
14
  rdoc_command_line: rdoc -x README
15
15
  builder: !ruby/object:Gtk::Builder {}
@@ -11,8 +11,8 @@ open_folders:
11
11
  - "/home/eric/vrp/vr3/examples/04_before_show"
12
12
  current_file: "/home/eric/vrp/vr3/examples/04_before_show/README.txt"
13
13
  current_line: 9
14
- builder: !ruby/object:Gtk::Builder {}
15
14
  rdoc_command_line: rdoc -x README
15
+ builder: !ruby/object:Gtk::Builder {}
16
16
  top_level_window: false
17
17
  browser: firefox
18
18
  backup_path: "/home/eric"
@@ -7,10 +7,13 @@ notebook_panel_position: 501
7
7
  run_command_line: alertdemo.rb
8
8
  open_files:
9
9
  - "/home/eric/vrp/vr3/examples/06_alert_box/README.txt"
10
+ - "/home/eric/vrp/vr3/examples/06_alert_box/alertdemo.rb"
11
+ - "/home/eric/vrp/vr3/examples/06_alert_box/src/AlertBoxDemo.rb"
10
12
  open_folders:
11
13
  - "/home/eric/vrp/vr3/examples/06_alert_box"
12
- current_file: "/home/eric/vrp/vr3/examples/06_alert_box/README.txt"
13
- current_line: 7
14
+ - "/home/eric/vrp/vr3/examples/06_alert_box/src"
15
+ current_file: "/home/eric/vrp/vr3/examples/06_alert_box/src/AlertBoxDemo.rb"
16
+ current_line: 9
14
17
  rdoc_command_line: rdoc -x README
15
18
  builder: !ruby/object:Gtk::Builder {}
16
19
  top_level_window: false
@@ -1,5 +1,6 @@
1
1
 
2
2
  require "vrlib"
3
+
3
4
  require_relative "src/AlertBoxDemo.rb"
4
5
 
5
6
 
@@ -54,7 +54,7 @@ class AlertBoxDemo
54
54
  if answer.is_a?(String)
55
55
  alert ("You chose: #{answer}\nUser_id: #{user_id[names.index(answer)].to_s}")
56
56
  elsif answer == false #no_button pressed = new name
57
- new_name = alert("Enter New Person:", input_text: "")
57
+ new_name = alert("Enter New Person:", data: "")
58
58
  elsif answer.nil?
59
59
  alert "You pressed the 'X' button"
60
60
  end
@@ -62,7 +62,7 @@ class AlertBoxDemo
62
62
 
63
63
  def buttonHash__clicked(*a)
64
64
  my_hash = { username: "", password: "" }
65
- answer = alert("Enter your credentials:", headline: "Sign In", data: my_hash, button_no: "Forgot Password")
65
+ answer = alert("Enter your credentials:", headline: "Sign In", data: my_hash, button_no: "Forgot Password", width:550)
66
66
  if answer.is_a? Hash
67
67
  alert "Alert() Returned Hash: \n\n" + answer.to_s
68
68
  elsif answer == false
@@ -15,8 +15,8 @@ open_folders:
15
15
  - "/home/eric/vrp/vr3/examples/35_child_window"
16
16
  - "/home/eric/vrp/vr3/examples/35_child_window/src"
17
17
  - "/home/eric/vrp/vr3/examples/35_child_window/src/glade"
18
- current_file: "/home/eric/vrp/vr3/examples/35_child_window/child_window.rb"
19
- current_line: 3
18
+ current_file: "/home/eric/vrp/vr3/examples/35_child_window/src/ChildWindowDemo.rb"
19
+ current_line: 42
20
20
  rdoc_command_line: rdoc -x README
21
21
  builder: !ruby/object:Gtk::Builder {}
22
22
  top_level_window: false
@@ -1,6 +1,6 @@
1
1
 
2
- #require "vrlib"
3
- require_relative "./../../lib/vrlib"
2
+ require "vrlib"
3
+ #require_relative "./../../lib/vrlib"
4
4
 
5
5
  require_relative "src/ChildWindowDemo"
6
6
  require_relative "src/ModalWindow"
@@ -4,7 +4,7 @@ width: 1854
4
4
  height: 1003
5
5
  panel_pos: 360
6
6
  notebook_panel_position: 718
7
- run_command_line: ruby better_views.rb
7
+ run_command_line: better_views.rb
8
8
  open_files:
9
9
  - "/home/eric/vrp/vr3/examples/70_better_views/README.txt"
10
10
  - "/home/eric/vrp/vr3/examples/70_better_views/better_views.rb"
@@ -16,7 +16,8 @@ open_folders:
16
16
  current_file: "/home/eric/vrp/vr3/examples/70_better_views/src/BetterView.rb"
17
17
  current_line: 9
18
18
  rdoc_command_line: rdoc -x README
19
- builder: !ruby/object:Gtk::Builder {}
19
+ builder: !ruby/object:Gtk::Builder
20
+ top_level_window: false
20
21
  top_level_window: false
21
22
  browser: firefox
22
23
  backup_path: "/home/eric"
@@ -1,5 +1,5 @@
1
1
 
2
- require "../../lib/vrlib"
2
+ require "vrlib"
3
3
 
4
4
  require_relative "src/BalanceClass"
5
5
  require_relative "src/CustomerClass"
@@ -1,7 +1,6 @@
1
+ require "vrlib"
1
2
 
2
- # require "vrlib"
3
-
4
- require_relative "../../lib/vrlib"
3
+ #require_relative "../../lib/vrlib"
5
4
 
6
5
 
7
6
  require_relative "src/SongListView"
@@ -1,7 +1,7 @@
1
1
 
2
- #require "vrlib"
2
+ require "vrlib"
3
3
 
4
- require_relative "../../lib/vrlib"
4
+ # require_relative "../../lib/vrlib"
5
5
 
6
6
  require_relative 'src/DataObject'
7
7
  require_relative 'src/ListViewObjects'
@@ -1,7 +1,4 @@
1
- #change
2
-
3
- # ignore -- this is for development, same as require 'vrlib'
4
- require File.exist?("./../../lib/vrlib.rb") ? "./../../lib/vrlib.rb" : "vrlib"
1
+ require "vrlib"
5
2
 
6
3
  begin
7
4
  require 'active_record'
@@ -1,6 +1,6 @@
1
1
 
2
2
  # ignore -- this is for development, same as require 'vrlib'
3
- require File.exist?("./../../lib/vrlib.rb") ? "./../../lib/vrlib.rb" : "vrlib"
3
+ require "vrlib"
4
4
 
5
5
  begin
6
6
  require 'active_record'
@@ -0,0 +1,16 @@
1
+ --- !ruby/object:VR_ENV
2
+ vr_yaml_file: "/home/eric/vrp/vr3/examples/dialog_box/.vr_settings.yaml"
3
+ width: 1854
4
+ height: 1003
5
+ panel_pos: 360
6
+ notebook_panel_position: 506
7
+ run_command_line: dialog_box.rb
8
+ open_files:
9
+ - "/home/eric/vrp/vr3/examples/dialog_box/dialog_box.rb"
10
+ - "/home/eric/vrp/vr3/examples/dialog_box/src/ChooserDialog.rb"
11
+ open_folders:
12
+ - "/home/eric/vrp/vr3/examples/dialog_box"
13
+ - "/home/eric/vrp/vr3/examples/dialog_box/src"
14
+ - "/home/eric/vrp/vr3/examples/dialog_box/src/glade"
15
+ current_file: "/home/eric/vrp/vr3/examples/dialog_box/src/ChooserDialog.rb"
16
+ current_line: 12
@@ -0,0 +1,11 @@
1
+
2
+ require "vrlib"
3
+
4
+ require_relative "src/ChooserDialog"
5
+
6
+ dialog = ChooserDialog.new()
7
+ language, set_default = dialog.run()
8
+ alert("Language: #{language}\nSet Default?: #{set_default ? 'true' : 'false'}") unless language.nil?
9
+
10
+
11
+
@@ -0,0 +1,19 @@
1
+
2
+ class ChooserDialog
3
+
4
+ include GladeGUI
5
+
6
+ def run()
7
+ load_glade
8
+ response = @builder[:window1].run()
9
+ @builder[:window1].hide
10
+ case response
11
+ when Gtk::ResponseType::OK
12
+ return @builder[:comboLang].active_text, @builder[:checkDefault].active?
13
+ when Gtk::ResponseType::CANCEL
14
+ return nil, nil
15
+ end
16
+ end
17
+
18
+ end
19
+
@@ -0,0 +1,136 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Generated with glade 3.40.0 -->
3
+ <interface>
4
+ <requires lib="gtk+" version="3.24"/>
5
+ <object class="GtkDialog" id="window1">
6
+ <property name="can-focus">False</property>
7
+ <property name="type-hint">dialog</property>
8
+ <child internal-child="vbox">
9
+ <object class="GtkBox">
10
+ <property name="can-focus">False</property>
11
+ <property name="margin-start">40</property>
12
+ <property name="margin-end">40</property>
13
+ <property name="margin-top">40</property>
14
+ <property name="margin-bottom">40</property>
15
+ <property name="orientation">vertical</property>
16
+ <property name="spacing">15</property>
17
+ <child internal-child="action_area">
18
+ <object class="GtkButtonBox">
19
+ <property name="can-focus">False</property>
20
+ <property name="layout-style">end</property>
21
+ <child>
22
+ <object class="GtkButton" id="buttonCancel">
23
+ <property name="label" translatable="yes">Cancel</property>
24
+ <property name="visible">True</property>
25
+ <property name="can-focus">True</property>
26
+ <property name="receives-default">True</property>
27
+ </object>
28
+ <packing>
29
+ <property name="expand">True</property>
30
+ <property name="fill">True</property>
31
+ <property name="position">0</property>
32
+ </packing>
33
+ </child>
34
+ <child>
35
+ <object class="GtkButton" id="buttonOK">
36
+ <property name="label" translatable="yes">OK</property>
37
+ <property name="visible">True</property>
38
+ <property name="can-focus">True</property>
39
+ <property name="receives-default">True</property>
40
+ </object>
41
+ <packing>
42
+ <property name="expand">True</property>
43
+ <property name="fill">True</property>
44
+ <property name="position">1</property>
45
+ </packing>
46
+ </child>
47
+ </object>
48
+ <packing>
49
+ <property name="expand">False</property>
50
+ <property name="fill">False</property>
51
+ <property name="position">0</property>
52
+ </packing>
53
+ </child>
54
+ <child>
55
+ <object class="GtkBox">
56
+ <property name="visible">True</property>
57
+ <property name="can-focus">False</property>
58
+ <property name="margin-start">10</property>
59
+ <property name="margin-end">10</property>
60
+ <property name="margin-top">10</property>
61
+ <property name="margin-bottom">10</property>
62
+ <property name="orientation">vertical</property>
63
+ <property name="spacing">20</property>
64
+ <child>
65
+ <object class="GtkLabel">
66
+ <property name="visible">True</property>
67
+ <property name="can-focus">False</property>
68
+ <property name="label" translatable="yes">&lt;big&gt;&lt;b&gt;Choose Your Favorite Language:&lt;/b&gt;&lt;/big&gt;</property>
69
+ <property name="use-markup">True</property>
70
+ </object>
71
+ <packing>
72
+ <property name="expand">False</property>
73
+ <property name="fill">True</property>
74
+ <property name="position">0</property>
75
+ </packing>
76
+ </child>
77
+ <child>
78
+ <object class="GtkBox">
79
+ <property name="visible">True</property>
80
+ <property name="can-focus">False</property>
81
+ <property name="spacing">10</property>
82
+ <child>
83
+ <object class="GtkComboBoxText" id="comboLang">
84
+ <property name="visible">True</property>
85
+ <property name="can-focus">False</property>
86
+ <property name="hexpand">True</property>
87
+ <property name="active">0</property>
88
+ <items>
89
+ <item translatable="yes">Python</item>
90
+ <item translatable="yes">Ruby</item>
91
+ <item translatable="yes">Java</item>
92
+ <item translatable="yes">Swift</item>
93
+ </items>
94
+ </object>
95
+ <packing>
96
+ <property name="expand">False</property>
97
+ <property name="fill">True</property>
98
+ <property name="position">1</property>
99
+ </packing>
100
+ </child>
101
+ <child>
102
+ <object class="GtkCheckButton" id="checkDefault">
103
+ <property name="label" translatable="yes">Set Default</property>
104
+ <property name="visible">True</property>
105
+ <property name="can-focus">True</property>
106
+ <property name="receives-default">False</property>
107
+ <property name="draw-indicator">True</property>
108
+ </object>
109
+ <packing>
110
+ <property name="expand">False</property>
111
+ <property name="fill">True</property>
112
+ <property name="position">2</property>
113
+ </packing>
114
+ </child>
115
+ </object>
116
+ <packing>
117
+ <property name="expand">False</property>
118
+ <property name="fill">True</property>
119
+ <property name="position">1</property>
120
+ </packing>
121
+ </child>
122
+ </object>
123
+ <packing>
124
+ <property name="expand">False</property>
125
+ <property name="fill">True</property>
126
+ <property name="position">1</property>
127
+ </packing>
128
+ </child>
129
+ </object>
130
+ </child>
131
+ <action-widgets>
132
+ <action-widget response="-6">buttonCancel</action-widget>
133
+ <action-widget response="-5">buttonOK</action-widget>
134
+ </action-widgets>
135
+ </object>
136
+ </interface>
@@ -0,0 +1,36 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Generated with glade 3.16.1 -->
3
+ <interface>
4
+ <requires lib="gtk+" version="3.0"/>
5
+ <object class="GtkWindow" id="window1">
6
+ <property name="can_focus">False</property>
7
+ <property name="window_position">center</property>
8
+ <child>
9
+ <object class="GtkButtonBox" id="buttonbox1">
10
+ <property name="visible">True</property>
11
+ <property name="can_focus">False</property>
12
+ <property name="halign">center</property>
13
+ <property name="valign">center</property>
14
+ <property name="margin_left">50</property>
15
+ <property name="margin_right">50</property>
16
+ <property name="margin_top">50</property>
17
+ <property name="margin_bottom">50</property>
18
+ <property name="orientation">vertical</property>
19
+ <property name="layout_style">start</property>
20
+ <child>
21
+ <object class="GtkButton" id="button1">
22
+ <property name="label" translatable="yes">button</property>
23
+ <property name="visible">True</property>
24
+ <property name="can_focus">True</property>
25
+ <property name="receives_default">True</property>
26
+ </object>
27
+ <packing>
28
+ <property name="expand">True</property>
29
+ <property name="fill">True</property>
30
+ <property name="position">0</property>
31
+ </packing>
32
+ </child>
33
+ </object>
34
+ </child>
35
+ </object>
36
+ </interface>
data/lib/Alert.rb CHANGED
@@ -142,7 +142,7 @@ end
142
142
  #
143
143
  # There are many examples in the "alert_box" example project.
144
144
 
145
- def alert(message, options = {})
145
+ def alert2(message, options = {})
146
146
  ans = VR::Alert::DialogAnswer.new()
147
147
  VR::Alert.new(message, ans, options).show_glade(options[:parent])
148
148
  return ans.answer
@@ -150,3 +150,6 @@ end
150
150
 
151
151
 
152
152
 
153
+
154
+
155
+
@@ -0,0 +1,145 @@
1
+ module VR
2
+
3
+ # Class that the #alert method uses. This class is note useful by itself. See #alert method instead.
4
+ # @see #alert
5
+ # @private
6
+ class AlertDialog
7
+
8
+ include GladeGUI
9
+
10
+ # Just passes on values from #alert method.
11
+ # @see #alert
12
+
13
+ def initialize(message, flags = {})
14
+ @flags = flags
15
+ @message = message
16
+ end
17
+
18
+ def before_show
19
+ @builder[:window1].show_all
20
+ @builder[:boxData].visible = false
21
+ @builder[:input_text].visible = false
22
+ @builder[:ui_grid].visible = false
23
+ @builder[:choices_text].visible = false
24
+ @builder[:headline].hide
25
+ @flags[:title] = @flags[:title] ? @flags[:title] : @flags[:headline]
26
+ @builder[:window1].title = @flags[:title] if @flags[:title]
27
+ width = @flags[:width].to_i > 100 ? @flags[:width].to_i : 300
28
+ @builder[:window1].resize(width, 150)
29
+ @builder[:headline].show if @flags[:headline]
30
+
31
+ if @flags[:data].is_a? Hash
32
+ row = 0
33
+ @my_hash = @flags[:data]
34
+ @flags[:data].each_pair do |key,val|
35
+ label = Gtk::Label.new(key.to_s + ": ")
36
+ label.halign = :end # use to_s for symbol keys
37
+ @builder["ui_grid"].attach(label, 0, row, 1, 1)
38
+ entry = Gtk::Entry.new(Gtk::EntryBuffer.new(val.to_s))
39
+ entry.hexpand = true
40
+ @builder["ui_grid"].attach(entry, 1, row, 1, 1)
41
+ @my_hash[key] = entry
42
+ row = row + 1
43
+ end
44
+ @flags[:button_yes] ||= "Save"
45
+ @flags[:button_cancel] ||= "Cancel"
46
+ @builder[:boxData].visible = true
47
+ @builder["ui_grid"].show_all
48
+ elsif @flags[:data].is_a? Array
49
+ @flags[:button_yes] ||= "Select"
50
+ @flags[:button_cancel] ||= "Cancel"
51
+ @flags[:data].each { |c| @builder[:choices_text].append_text(c) }
52
+ @choices_text = @flags[:data][0]
53
+ @builder[:boxData].visible = true
54
+ @builder[:choices_text].show
55
+ elsif @flags[:data].is_a? String
56
+ @flags[:button_yes] ||= "Save"
57
+ @flags[:button_cancel] ||= "Cancel"
58
+ @builder[:input_text].buffer.text = @flags[:data]
59
+ @builder[:boxData].visible = true
60
+ @builder[:input_text].show
61
+ end
62
+ @builder[:button_no].hide unless @flags[:button_no]
63
+ @builder[:button_cancel].hide unless @flags[:button_cancel]
64
+ set_glade_variables
65
+ set_glade_hash(@flags)
66
+ end
67
+
68
+ def run()
69
+ load_glade()
70
+ before_show()
71
+ response = @builder[:window1].run
72
+ case response
73
+ when Gtk::ResponseType::YES
74
+ if @flags[:data].is_a? String
75
+ answer = @builder[:input_text].buffer.text
76
+ elsif @flags[:data].is_a? Array
77
+ answer = @builder[:choices_text].active_text
78
+ elsif @flags[:data].is_a? Hash
79
+ answer = @my_hash # clean up
80
+ @my_hash.each_pair do |key, val|
81
+ answer[key] = @my_hash[key].buffer.text
82
+ end
83
+ else
84
+ answer = true
85
+ end
86
+ when Gtk::ResponseType::NO
87
+ answer = false
88
+ else
89
+ answer = nil
90
+ end # case
91
+ @builder[:window1].destroy
92
+ return answer
93
+ end # run
94
+
95
+ end
96
+
97
+ end
98
+
99
+ # @param [String] message text message to display in alert box. Uses markup.
100
+ # @param [Hash] options Hash of options: :button_yes => text on the button that returns true.
101
+ # @option options [String] :button_yes Text that appears on the "yes" button.
102
+ # @option options [String] :button_no Text that appears on "no" button. (set to make no button appear)
103
+ # @option options [String] :button_cancel Text that appears on "cancel" button. (set to make cancel button appear)
104
+ # @option options [Variable] :data Either String, Array, or Hash. This will determine type of user input.
105
+ # @option options [String] :headline Larger headline over text message.
106
+ # @option options [String] :title Title of the alert box window. Defaults to :headline.
107
+ # @option options [Integer] :width The width in pixels of the window. Used for wrapping text.
108
+ # @option options [Object #builder] :parent The window that the alert box is always on top of.
109
+ # @return [String] text in the text entry field when the :button_yes button is pressed. (:data passed a String)
110
+ # @return [String] selected text from dropdown when the :button_yes button is pressed. (:data passed an Array)
111
+ # @return [Hash] When :data is passed as Hash, this is updated Hash from user input.
112
+ # @return [true] When the :button_yes button is selected and there's no text entry box.
113
+ # @return [false] When :button_no is pressed
114
+ # @return [nil] When :button_cancel or the "X" button is pressed.
115
+ # The alert method creates a pop-up alert in your program. It creates a modal
116
+ # window that halts execution of your code until the user closes it. Its great
117
+ # for displaying messages and debugging. It also has the option of allowing the user
118
+ # input in the form of a String or a selection from a Hash or Array. This small tool can save
119
+ # hundreds of lines of code in your programs. It can be used extesnively to
120
+ # display all types of messages and request all types of user input.
121
+ #
122
+ # @example
123
+ # alert("Continue?", button_no: "Nope", button_cancel: "Quit", parent: self)
124
+ #
125
+ # @example
126
+ # alert "The file you selected is already on disk. Do you want to overwrite it?",
127
+ # headline: "Overwrite FIle?",
128
+ # button_yes: "Overwrite",
129
+ # button_no: "Reload From Disk",
130
+ # button_cancel: "Cancel"
131
+ #
132
+ # The alert box can disply 1, 2 or 3 buttons. The first button is denoted using the symbol: :button_yes
133
+ # button and is always displayed. You can add :button_no and :button_cancel.
134
+ # If you want to add these buttons, just set their values to whatever text you want them to
135
+ # display and they will appear. Likewise, if you pass a :data parameter with a String, Hash or Array,
136
+ # it will ask for user input.
137
+ #
138
+ # There are many examples in the "alert_box" example project.
139
+
140
+ def alert(message, options = {})
141
+ win = VR::AlertDialog.new(message, options)
142
+ return win.run()
143
+ end
144
+
145
+ # alert2("Hello There", data: {name: "", password: ""}, headline: "testing", width: 500)
@@ -0,0 +1,181 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Generated with glade 3.40.0 -->
3
+ <interface>
4
+ <requires lib="gtk+" version="3.24"/>
5
+ <object class="GtkDialog" id="window1">
6
+ <property name="width-request">400</property>
7
+ <property name="height-request">200</property>
8
+ <property name="can-focus">False</property>
9
+ <property name="default-width">400</property>
10
+ <property name="default-height">200</property>
11
+ <property name="type-hint">dialog</property>
12
+ <child internal-child="vbox">
13
+ <object class="GtkBox">
14
+ <property name="can-focus">False</property>
15
+ <property name="margin-start">20</property>
16
+ <property name="margin-end">20</property>
17
+ <property name="margin-top">20</property>
18
+ <property name="margin-bottom">20</property>
19
+ <property name="orientation">vertical</property>
20
+ <child internal-child="action_area">
21
+ <object class="GtkButtonBox">
22
+ <property name="can-focus">False</property>
23
+ <property name="margin-top">10</property>
24
+ <property name="layout-style">end</property>
25
+ <child>
26
+ <object class="GtkButton" id="button_cancel">
27
+ <property name="label" translatable="yes">button</property>
28
+ <property name="can-focus">True</property>
29
+ <property name="receives-default">True</property>
30
+ </object>
31
+ <packing>
32
+ <property name="expand">False</property>
33
+ <property name="fill">True</property>
34
+ <property name="position">0</property>
35
+ </packing>
36
+ </child>
37
+ <child>
38
+ <object class="GtkButton" id="button_no">
39
+ <property name="label" translatable="yes">button</property>
40
+ <property name="can-focus">True</property>
41
+ <property name="receives-default">True</property>
42
+ </object>
43
+ <packing>
44
+ <property name="expand">True</property>
45
+ <property name="fill">True</property>
46
+ <property name="position">1</property>
47
+ </packing>
48
+ </child>
49
+ <child>
50
+ <object class="GtkButton" id="button_yes">
51
+ <property name="label" translatable="yes">OK</property>
52
+ <property name="visible">True</property>
53
+ <property name="can-focus">True</property>
54
+ <property name="receives-default">True</property>
55
+ </object>
56
+ <packing>
57
+ <property name="expand">True</property>
58
+ <property name="fill">True</property>
59
+ <property name="position">2</property>
60
+ </packing>
61
+ </child>
62
+ </object>
63
+ <packing>
64
+ <property name="expand">False</property>
65
+ <property name="fill">False</property>
66
+ <property name="position">0</property>
67
+ </packing>
68
+ </child>
69
+ <child>
70
+ <object class="GtkBox" id="box1">
71
+ <property name="visible">True</property>
72
+ <property name="can-focus">False</property>
73
+ <property name="margin-start">20</property>
74
+ <property name="margin-end">20</property>
75
+ <property name="margin-top">20</property>
76
+ <property name="margin-bottom">20</property>
77
+ <property name="orientation">vertical</property>
78
+ <property name="spacing">15</property>
79
+ <child>
80
+ <object class="GtkLabel" id="headline">
81
+ <property name="can-focus">False</property>
82
+ <property name="label" translatable="yes">label</property>
83
+ <attributes>
84
+ <attribute name="size" value="18000"/>
85
+ </attributes>
86
+ </object>
87
+ <packing>
88
+ <property name="expand">False</property>
89
+ <property name="fill">True</property>
90
+ <property name="position">0</property>
91
+ </packing>
92
+ </child>
93
+ <child>
94
+ <object class="GtkLabel" id="message">
95
+ <property name="visible">True</property>
96
+ <property name="can-focus">False</property>
97
+ <property name="valign">start</property>
98
+ <property name="hexpand">True</property>
99
+ <property name="vexpand">True</property>
100
+ <property name="label" translatable="yes">label</property>
101
+ <property name="use-markup">True</property>
102
+ <property name="wrap">True</property>
103
+ </object>
104
+ <packing>
105
+ <property name="expand">False</property>
106
+ <property name="fill">True</property>
107
+ <property name="position">1</property>
108
+ </packing>
109
+ </child>
110
+ </object>
111
+ <packing>
112
+ <property name="expand">False</property>
113
+ <property name="fill">True</property>
114
+ <property name="position">1</property>
115
+ </packing>
116
+ </child>
117
+ <child>
118
+ <object class="GtkBox" id="boxData">
119
+ <property name="visible">True</property>
120
+ <property name="can-focus">False</property>
121
+ <property name="margin-start">20</property>
122
+ <property name="margin-end">20</property>
123
+ <property name="margin-bottom">20</property>
124
+ <property name="hexpand">True</property>
125
+ <property name="vexpand">True</property>
126
+ <property name="orientation">vertical</property>
127
+ <child>
128
+ <object class="GtkEntry" id="input_text">
129
+ <property name="can-focus">True</property>
130
+ </object>
131
+ <packing>
132
+ <property name="expand">False</property>
133
+ <property name="fill">True</property>
134
+ <property name="position">0</property>
135
+ </packing>
136
+ </child>
137
+ <child>
138
+ <object class="GtkComboBoxText" id="choices_text">
139
+ <property name="can-focus">False</property>
140
+ </object>
141
+ <packing>
142
+ <property name="expand">False</property>
143
+ <property name="fill">True</property>
144
+ <property name="position">1</property>
145
+ </packing>
146
+ </child>
147
+ <child>
148
+ <!-- n-columns=2 n-rows=0 -->
149
+ <object class="GtkGrid" id="ui_grid">
150
+ <property name="can-focus">False</property>
151
+ <property name="row-spacing">10</property>
152
+ <property name="column-spacing">10</property>
153
+ <child>
154
+ <placeholder/>
155
+ </child>
156
+ <child>
157
+ <placeholder/>
158
+ </child>
159
+ </object>
160
+ <packing>
161
+ <property name="expand">False</property>
162
+ <property name="fill">True</property>
163
+ <property name="position">2</property>
164
+ </packing>
165
+ </child>
166
+ </object>
167
+ <packing>
168
+ <property name="expand">False</property>
169
+ <property name="fill">True</property>
170
+ <property name="position">3</property>
171
+ </packing>
172
+ </child>
173
+ </object>
174
+ </child>
175
+ <action-widgets>
176
+ <action-widget response="-6">button_cancel</action-widget>
177
+ <action-widget response="-9">button_no</action-widget>
178
+ <action-widget response="-8">button_yes</action-widget>
179
+ </action-widgets>
180
+ </object>
181
+ </interface>
data/lib/vrlib.rb CHANGED
@@ -6,10 +6,10 @@ require "yaml"
6
6
  require "find"
7
7
  require "fileutils"
8
8
 
9
-
10
9
  #tools go first
11
10
  require_relative "GladeGUI"
12
- require_relative "Alert"
11
+ # require_relative "Alert"
12
+ require_relative "AlertDialog"
13
13
  require_relative "DragDrop"
14
14
  require_relative "SavableClass"
15
15
 
@@ -36,12 +36,11 @@ class VR_Tabs < Gtk::Notebook
36
36
  end
37
37
  return false
38
38
  end
39
-
39
+
40
40
  def save_changes?
41
- answer = alert "Save chages to: <b> #{File.basename(@docs[page].full_path_file)}</b> ?",
42
- parent: @main,
41
+ answer = alert("Save chages to: <b> #{File.basename(@docs[page].full_path_file)}</b> ?",
43
42
  button_yes: "Save Changes", button_no: "Discard Changes",
44
- headline: "Save Changes?", button_cancel: "Cancel"
43
+ headline: "Save Changes?", button_cancel: "Cancel")
45
44
  if answer == true # save
46
45
  if @docs[page].title.label == "Untitled"
47
46
  return save_as()
data/src/main/VR_Main.rb CHANGED
@@ -50,7 +50,6 @@ class VR_Main
50
50
  @remote_gem_tree.show
51
51
 
52
52
  load_project
53
-
54
53
  end
55
54
 
56
55
  def load_project(path = @proj_path)
data/src/version.rb CHANGED
@@ -1,4 +1,4 @@
1
- VERSION = "3.6.9"
1
+ VERSION = "3.6.10"
2
2
  GTK_VERSION = "gtk3"
3
3
  GTK_SOURCEVIEW_VERSION = "gtksourceview4"
4
4
 
data/vr CHANGED
@@ -6,11 +6,11 @@ require GTK_VERSION
6
6
  require GTK_SOURCEVIEW_VERSION
7
7
 
8
8
  $root = File.dirname(__FILE__)
9
-
9
+
10
10
  require_relative "all_requires"
11
11
 
12
12
  VR_Main.new(ARGV).show_glade()
13
-
13
+
14
14
  # Gtk.main_quit
15
15
  #
16
16
  # main = Gtk::Application.new("visualruby.org.main", [:non_unique] )
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: visualruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.9
4
+ version: 3.6.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Cunningham
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir:
10
10
  - "."
11
11
  cert_chain: []
12
- date: 2024-11-30 00:00:00.000000000 Z
12
+ date: 2024-12-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: gtk3
@@ -204,6 +204,11 @@ files:
204
204
  - "./examples/97_active_record2/bin/glade/Paycheck.glade"
205
205
  - "./examples/97_active_record2/db/development.sqlite3"
206
206
  - "./examples/97_active_record2/main.rb"
207
+ - "./examples/dialog_box/.vr_settings.yaml"
208
+ - "./examples/dialog_box/dialog_box.rb"
209
+ - "./examples/dialog_box/src/ChooserDialog.rb"
210
+ - "./examples/dialog_box/src/glade/ChooserDialog.glade"
211
+ - "./examples/dialog_box/src/glade/MyClass.glade"
207
212
  - "./img/close.png"
208
213
  - "./img/folder.png"
209
214
  - "./img/glade.png"
@@ -215,11 +220,13 @@ files:
215
220
  - "./img/splash.png"
216
221
  - "./img/unknown.png"
217
222
  - "./lib/Alert.rb"
223
+ - "./lib/AlertDialog.rb"
218
224
  - "./lib/DragDrop.rb"
219
225
  - "./lib/GladeGUI.rb"
220
226
  - "./lib/SavableClass.rb"
221
227
  - "./lib/Tools.rb"
222
228
  - "./lib/glade/Alert.glade"
229
+ - "./lib/glade/AlertDialog.glade"
223
230
  - "./lib/oinspect/MethodsListView.rb"
224
231
  - "./lib/oinspect/ObjectInspectorGUI.rb"
225
232
  - "./lib/oinspect/VariablesListView.rb"