visualruby 1.0.19 → 3.0.2

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.
Files changed (182) hide show
  1. checksums.yaml +4 -4
  2. data/Splash.rb +40 -0
  3. data/bin/editor/VR_Document.rb +81 -74
  4. data/bin/editor/VR_TabSearch.rb +5 -7
  5. data/bin/editor/VR_Tabs.rb +57 -36
  6. data/bin/editor/VR_TextShell.rb +12 -34
  7. data/bin/editor/VR_TextViewCommon.rb +9 -28
  8. data/bin/main/NewProjectGUI.rb +14 -13
  9. data/bin/main/OpenProject.rb +69 -0
  10. data/bin/main/ProjectChooserView.rb +3 -2
  11. data/bin/main/ProjectTree.rb +25 -0
  12. data/bin/main/RubygemsAPI.rb +15 -11
  13. data/bin/main/VR_ENV.rb +38 -60
  14. data/bin/main/VR_ENV_GLOBAL.rb +45 -44
  15. data/bin/main/VR_File_Tree.rb +29 -21
  16. data/bin/main/VR_Local_Gem_Tree.rb +4 -19
  17. data/bin/main/VR_Main.rb +128 -144
  18. data/bin/main/VR_Remote_Gem_Tree.rb +6 -19
  19. data/bin/main/glade/NewProjectGUI.glade +94 -98
  20. data/bin/main/glade/OpenProject.glade +259 -0
  21. data/bin/main/glade/RubygemsAPI.glade +98 -62
  22. data/bin/main/glade/VR_ENV.glade +46 -55
  23. data/bin/main/glade/VR_ENV_GLOBAL.glade +251 -180
  24. data/bin/main/glade/VR_File_Tree.glade +25 -16
  25. data/bin/main/glade/VR_Local_Gem_Tree.glade +16 -8
  26. data/bin/main/glade/VR_Main.glade +410 -449
  27. data/bin/main/glade/VR_Remote_Gem_Tree.glade +33 -31
  28. data/bin/tools/VR_Tools.rb +60 -46
  29. data/{visualruby_examples → examples}/active_record/active_record.rb +16 -10
  30. data/{visualruby_examples → examples}/active_record/bin/ChoosePerson.rb +7 -0
  31. data/examples/active_record/bin/Person.rb +21 -0
  32. data/examples/active_record/bin/glade/ChoosePerson.glade +89 -0
  33. data/examples/active_record/bin/glade/Person.glade +197 -0
  34. data/{visualruby_examples → examples}/active_record/db/development.sqlite3 +0 -0
  35. data/{visualruby_examples → examples}/active_record2/bin/CompanyGUI.rb +7 -7
  36. data/{visualruby_examples → examples}/active_record2/bin/Employee.rb +0 -0
  37. data/{visualruby_examples → examples}/active_record2/bin/Employer.rb +0 -0
  38. data/{visualruby_examples → examples}/active_record2/bin/Paycheck.rb +0 -0
  39. data/examples/active_record2/bin/glade/CompanyGUI.glade +149 -0
  40. data/examples/active_record2/bin/glade/Employee.glade +126 -0
  41. data/{visualruby_examples → examples}/active_record2/bin/glade/Employer.glade +0 -0
  42. data/{visualruby_examples → examples}/active_record2/bin/glade/Paycheck.glade +0 -0
  43. data/{visualruby_examples → examples}/active_record2/db/development.sqlite3 +0 -0
  44. data/{visualruby_examples → examples}/active_record2/main.rb +15 -9
  45. data/examples/alert_box/bin/AlertBoxDemo.rb +80 -0
  46. data/examples/alert_box/bin/glade/AlertBoxDemo.glade +234 -0
  47. data/examples/alert_box/main.rb +12 -0
  48. data/{visualruby_examples → examples}/all_widgets/bin/AllWidgets.rb +18 -10
  49. data/{visualruby_examples → examples}/all_widgets/bin/glade/AllWidgets.glade +52 -16
  50. data/{visualruby_examples → examples}/all_widgets/bin/splash.png +0 -0
  51. data/examples/all_widgets/main.rb +12 -0
  52. data/{visualruby_examples → examples}/calculator/bin/Calculator.rb +23 -22
  53. data/{visualruby_examples → examples}/calculator/bin/glade/Calculator.glade +81 -51
  54. data/examples/calculator/main.rb +13 -0
  55. data/examples/child_window/bin/ChildWindowDemo.rb +52 -0
  56. data/examples/child_window/bin/ModalWindow.rb +9 -0
  57. data/examples/child_window/bin/ModelessWindow.rb +9 -0
  58. data/examples/child_window/bin/MyChildClass.rb +21 -0
  59. data/examples/child_window/bin/glade/ChildWindowDemo.glade +87 -0
  60. data/examples/child_window/bin/glade/ModalWindow.glade +61 -0
  61. data/examples/child_window/bin/glade/ModelessWindow.glade +61 -0
  62. data/{visualruby_examples → examples}/child_window/bin/glade/MyChildClass.glade +14 -12
  63. data/examples/child_window/main.rb +12 -0
  64. data/{visualruby_examples → examples}/drag_drop/bin/DragDropDemo.rb +9 -10
  65. data/examples/drag_drop/bin/glade/DragDropDemo.glade +161 -0
  66. data/{visualruby_examples → examples}/drag_drop/img/folder.png +0 -0
  67. data/{visualruby_examples → examples}/drag_drop/img/glade.png +0 -0
  68. data/{visualruby_examples → examples}/drag_drop/img/gtk-edit.png +0 -0
  69. data/{visualruby_examples → examples}/drag_drop/img/obj.png +0 -0
  70. data/{visualruby_examples → examples}/drag_drop/img/png.png +0 -0
  71. data/{visualruby_examples → examples}/drag_drop/img/rb.png +0 -0
  72. data/{visualruby_examples → examples}/drag_drop/img/ruby.png +0 -0
  73. data/{visualruby_examples → examples}/drag_drop/img/unknown.png +0 -0
  74. data/examples/drag_drop/main.rb +11 -0
  75. data/examples/filetreeview/bin/ProjectTree.rb +32 -0
  76. data/examples/filetreeview/bin/ProjectTreeGUI.rb +28 -0
  77. data/examples/filetreeview/bin/glade/ProjectTreeGUI.glade +156 -0
  78. data/examples/filetreeview/main.rb +13 -0
  79. data/{visualruby_examples → examples}/listview/bin/SongListView.rb +24 -20
  80. data/{visualruby_examples → examples}/listview/bin/SongListViewGUI.rb +12 -11
  81. data/{visualruby_examples → examples}/listview/bin/audio-x-generic.png +0 -0
  82. data/examples/listview/bin/glade/SongListViewGUI.glade +195 -0
  83. data/examples/listview/main.rb +10 -0
  84. data/examples/listview_objects/bin/DataObject.rb +53 -0
  85. data/{visualruby_examples → examples}/listview_objects/bin/ListViewObjects.rb +7 -4
  86. data/examples/listview_objects/bin/ListViewObjectsGUI.rb +26 -0
  87. data/examples/listview_objects/bin/glade/DataObject.glade +196 -0
  88. data/examples/listview_objects/bin/glade/ListViewObjectsGUI.glade +87 -0
  89. data/examples/listview_objects/main.rb +12 -0
  90. data/examples/settings_file/bin/MainApp.rb +38 -0
  91. data/examples/settings_file/bin/SavableSettings.rb +39 -0
  92. data/examples/settings_file/bin/glade/MainApp.glade +87 -0
  93. data/examples/settings_file/bin/glade/SavableSettings.glade +162 -0
  94. data/examples/settings_file/main.rb +14 -0
  95. data/examples/settings_file/settings.yaml +15 -0
  96. data/examples/simple_ruby_gui/bin/DataObjectGUI.rb +21 -0
  97. data/examples/simple_ruby_gui/bin/glade/DataObjectGUI.glade +195 -0
  98. data/examples/simple_ruby_gui/main.rb +16 -0
  99. data/{visualruby_examples → examples}/treeview/bin/MyClass.rb +1 -5
  100. data/examples/treeview/bin/glade/MyClass.glade +24 -0
  101. data/examples/treeview/main.rb +13 -0
  102. data/skeleton/document/New.glade +3 -4
  103. data/skeleton/document/NewWindow.rb +1 -1
  104. data/skeleton/project/bin/MyClass.rb +2 -2
  105. data/skeleton/project/bin/glade/MyClass.glade +12 -26
  106. data/skeleton/project/main.rb +4 -8
  107. data/vr +41 -37
  108. data/vrlib/lib/Alert.rb +67 -0
  109. data/vrlib/lib/DragDrop.rb +90 -0
  110. data/vrlib/lib/GladeGUI.rb +433 -0
  111. data/vrlib/lib/IconHash.rb +18 -0
  112. data/vrlib/lib/SavableClass.rb +56 -0
  113. data/vrlib/lib/SimpleComboBoxEntry.rb +8 -0
  114. data/vrlib/lib/glade/Alert.glade +119 -0
  115. data/vrlib/lib/treeview/FileTreeView.rb +113 -0
  116. data/vrlib/lib/treeview/IterMethods.rb +82 -0
  117. data/vrlib/lib/treeview/ListView.rb +85 -0
  118. data/vrlib/lib/treeview/TreeView.rb +43 -0
  119. data/vrlib/lib/treeview/ViewCommon.rb +370 -0
  120. data/vrlib/lib/treeview/columns/CalendarCol.rb +89 -0
  121. data/vrlib/lib/treeview/columns/CellRendererCombo.rb +66 -0
  122. data/vrlib/lib/treeview/columns/CellRendererDate.rb +45 -0
  123. data/vrlib/lib/treeview/columns/CellRendererObject.rb +57 -0
  124. data/vrlib/lib/treeview/columns/CellRendererPhone.rb +45 -0
  125. data/vrlib/lib/treeview/columns/CellRendererPixbuf.rb +16 -0
  126. data/vrlib/lib/treeview/columns/CellRendererProgress.rb +17 -0
  127. data/vrlib/lib/treeview/columns/CellRendererSpin.rb +37 -0
  128. data/vrlib/lib/treeview/columns/CellRendererText.rb +38 -0
  129. data/vrlib/lib/treeview/columns/CellRendererToggle.rb +47 -0
  130. data/vrlib/lib/treeview/columns/ComboCol.rb +43 -0
  131. data/vrlib/lib/treeview/columns/CurrencyCol.rb +23 -0
  132. data/vrlib/lib/treeview/columns/DateCol.rb +20 -0
  133. data/vrlib/lib/treeview/columns/ImageCol.rb +27 -0
  134. data/vrlib/lib/treeview/columns/ProgressCol.rb +27 -0
  135. data/vrlib/lib/treeview/columns/SpinCol.rb +11 -0
  136. data/vrlib/lib/treeview/columns/TextCol.rb +65 -0
  137. data/vrlib/lib/treeview/columns/TreeViewColumn.rb +93 -0
  138. data/{bin/main/glade/ProjectChooserGUI.glade → vrlib/lib/treeview/columns/glade/CalendarCol.glade} +71 -63
  139. data/{bin/main/glade/Splash.glade → vrlib/lib/treeview/columns/glade/ImageCol.glade} +5 -6
  140. data/vrlib/lib/treeview/columns/glade/TextCol.glade +82 -0
  141. data/vrlib/rdoc_replace.yaml +77 -0
  142. data/vrlib/vrlib.rb +7 -0
  143. metadata +163 -136
  144. data/bin/editor/glade/VR_Document.glade +0 -160
  145. data/bin/main/ProjectChooserGUI.rb +0 -41
  146. data/bin/main/Splash.rb +0 -22
  147. data/visualruby_examples/active_record/.vr_settings.yaml +0 -47
  148. data/visualruby_examples/active_record/bin/Person.rb +0 -13
  149. data/visualruby_examples/active_record/bin/glade/ChoosePerson.glade +0 -61
  150. data/visualruby_examples/active_record/bin/glade/Person.glade +0 -148
  151. data/visualruby_examples/active_record2/.vr_settings.yaml +0 -16
  152. data/visualruby_examples/active_record2/bin/glade/CompanyGUI.glade +0 -167
  153. data/visualruby_examples/active_record2/bin/glade/Employee.glade +0 -123
  154. data/visualruby_examples/all_widgets/.vr_settings.yaml +0 -13
  155. data/visualruby_examples/all_widgets/main.rb +0 -14
  156. data/visualruby_examples/calculator/.vr_settings.yaml +0 -11
  157. data/visualruby_examples/calculator/main.rb +0 -13
  158. data/visualruby_examples/child_window/.vr_settings.yaml +0 -16
  159. data/visualruby_examples/child_window/bin/ChildWindowDemo.rb +0 -39
  160. data/visualruby_examples/child_window/bin/MyChildClass.rb +0 -40
  161. data/visualruby_examples/child_window/bin/glade/ChildWindowDemo.glade +0 -101
  162. data/visualruby_examples/child_window/main.rb +0 -13
  163. data/visualruby_examples/drag_drop/.vr_settings.yaml +0 -12
  164. data/visualruby_examples/drag_drop/bin/glade/DragDropDemo.glade +0 -143
  165. data/visualruby_examples/drag_drop/main.rb +0 -14
  166. data/visualruby_examples/listview/.vr_settings.yaml +0 -12
  167. data/visualruby_examples/listview/bin/glade/SongListViewGUI.glade +0 -220
  168. data/visualruby_examples/listview/main.rb +0 -19
  169. data/visualruby_examples/listview_objects/.vr_settings.yaml +0 -16
  170. data/visualruby_examples/listview_objects/bin/DataObject.rb +0 -32
  171. data/visualruby_examples/listview_objects/bin/DataObjectGUI.rb +0 -41
  172. data/visualruby_examples/listview_objects/bin/ListViewObjectsGUI.rb +0 -18
  173. data/visualruby_examples/listview_objects/bin/glade/DataObject.glade +0 -198
  174. data/visualruby_examples/listview_objects/bin/glade/ListViewObjectsGUI.glade +0 -102
  175. data/visualruby_examples/listview_objects/main.rb +0 -13
  176. data/visualruby_examples/simple_ruby_gui/.vr_settings.yaml +0 -16
  177. data/visualruby_examples/simple_ruby_gui/bin/DataObjectGUI.rb +0 -20
  178. data/visualruby_examples/simple_ruby_gui/bin/glade/DataObjectGUI.glade +0 -163
  179. data/visualruby_examples/simple_ruby_gui/main.rb +0 -16
  180. data/visualruby_examples/treeview/.vr_settings.yaml +0 -12
  181. data/visualruby_examples/treeview/bin/glade/MyClass.glade +0 -48
  182. data/visualruby_examples/treeview/main.rb +0 -14
@@ -0,0 +1,87 @@
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="GtkBox" id="box1">
10
+ <property name="visible">True</property>
11
+ <property name="can_focus">False</property>
12
+ <property name="margin_left">20</property>
13
+ <property name="margin_right">20</property>
14
+ <property name="margin_top">20</property>
15
+ <property name="margin_bottom">20</property>
16
+ <property name="orientation">vertical</property>
17
+ <child>
18
+ <object class="GtkLabel" id="label2">
19
+ <property name="visible">True</property>
20
+ <property name="can_focus">False</property>
21
+ <property name="label" translatable="yes">&lt;big&gt;&lt;big&gt;&lt;big&gt;ListView Objects&lt;/big&gt;&lt;/big&gt;&lt;/big&gt;
22
+ Try double-clicking on each field to edit an object. Also, try entering invalid email addresses.</property>
23
+ <property name="use_markup">True</property>
24
+ </object>
25
+ <packing>
26
+ <property name="expand">True</property>
27
+ <property name="fill">True</property>
28
+ <property name="position">0</property>
29
+ </packing>
30
+ </child>
31
+ <child>
32
+ <object class="GtkScrolledWindow" id="scrolledwindow1">
33
+ <property name="height_request">150</property>
34
+ <property name="visible">True</property>
35
+ <property name="can_focus">True</property>
36
+ <child>
37
+ <placeholder/>
38
+ </child>
39
+ </object>
40
+ <packing>
41
+ <property name="expand">True</property>
42
+ <property name="fill">True</property>
43
+ <property name="padding">15</property>
44
+ <property name="position">1</property>
45
+ </packing>
46
+ </child>
47
+ <child>
48
+ <object class="GtkFrame" id="frame2">
49
+ <property name="height_request">100</property>
50
+ <property name="visible">True</property>
51
+ <property name="can_focus">False</property>
52
+ <property name="label_xalign">0</property>
53
+ <property name="shadow_type">none</property>
54
+ <child>
55
+ <object class="GtkAlignment" id="alignment2">
56
+ <property name="visible">True</property>
57
+ <property name="can_focus">False</property>
58
+ <property name="left_padding">12</property>
59
+ <child>
60
+ <object class="GtkLabel" id="labelQuote">
61
+ <property name="width_request">600</property>
62
+ <property name="visible">True</property>
63
+ <property name="can_focus">False</property>
64
+ <property name="label" translatable="yes">Quote Goes Here</property>
65
+ <property name="wrap">True</property>
66
+ </object>
67
+ </child>
68
+ </object>
69
+ </child>
70
+ <child type="label">
71
+ <object class="GtkLabel" id="label5">
72
+ <property name="visible">True</property>
73
+ <property name="can_focus">False</property>
74
+ <property name="label" translatable="yes">Quote</property>
75
+ </object>
76
+ </child>
77
+ </object>
78
+ <packing>
79
+ <property name="expand">False</property>
80
+ <property name="fill">True</property>
81
+ <property name="position">2</property>
82
+ </packing>
83
+ </child>
84
+ </object>
85
+ </child>
86
+ </object>
87
+ </interface>
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/ruby
2
+
3
+ # Updated for Gtk3!
4
+
5
+ # ignore -- this is for development, same as require 'vrlib'
6
+ require File.exists?("./../../vrlib/vrlib.rb") ? "./../../vrlib/vrlib.rb" : "vrlib"
7
+
8
+ # from require_all gem:
9
+ require_rel 'bin/'
10
+
11
+
12
+ ListViewObjectsGUI.new.show_glade()
@@ -0,0 +1,38 @@
1
+
2
+ class MainApp #(change name)
3
+
4
+ include GladeGUI
5
+
6
+ # make $ENV global object available everywhere
7
+ def before_show()
8
+ $ENV = VR::load_yaml(:class => SavableSettings, :file_name => "settings.yaml")
9
+ @builder[:window1].resize $ENV.width, $ENV.height
10
+ refresh()
11
+ end
12
+
13
+ def refresh()
14
+ @builder[:text].text = $ENV.text
15
+ @builder[:window1].title = $ENV.title
16
+ end
17
+
18
+ def buttonEdit__clicked(*a)
19
+ $ENV.show_glade(self)
20
+ refresh()
21
+ end
22
+
23
+ # delete_event signal occurs before the window actually closes
24
+ # It gives us time to save the height and width of the widow before
25
+ #closing it. Returns: true = don't close window, false = close window.
26
+ def window1__delete_event(*)
27
+ $ENV.width, $ENV.height = @builder[:window1].size()
28
+ VR::save_yaml($ENV)
29
+ return false #ok to close
30
+ end
31
+
32
+ def buttonCancel__clicked(*a)
33
+ window1__delete_event
34
+ @builder[:window1].destroy
35
+ end
36
+
37
+ end
38
+
@@ -0,0 +1,39 @@
1
+
2
+ class SavableSettings
3
+
4
+ include GladeGUI
5
+ # include Savable
6
+
7
+ attr_accessor :height, :width, :title, :text
8
+
9
+ def initialize()
10
+ defaults()
11
+ end
12
+
13
+ # defaults are set on new and loaded objects. You can add to this list
14
+ # and it will not cause errors. New variables will be added
15
+ # and loaded objects will function flawlessly.
16
+ def defaults()
17
+ @height ||= 200
18
+ @width ||= 350
19
+ @title ||= "Savable Settings Demo"
20
+ @text ||= "Try running this program multiple times.\n\n" +
21
+ "It will create a file named settings.yaml that stores " +
22
+ "the height, width, title, and text from this window, so the " +
23
+ "window will be restored to the same state as when you exited.\n\n " +
24
+ "If you want to reset the file to the defaults, just delete the settings.yaml file.\n\n" +
25
+ "You may need to click the 'Refresh' to see the settings.yaml file."
26
+ end
27
+
28
+ def buttonSave__clicked(*a)
29
+ get_glade_variables
30
+ VR::save_yaml(self)
31
+ @builder[:window1].destroy
32
+ end
33
+
34
+ def buttonCancel__clicked(*a)
35
+ @builder[:window1].destroy
36
+ end
37
+
38
+ end
39
+
@@ -0,0 +1,87 @@
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="GtkBox" id="box1">
10
+ <property name="visible">True</property>
11
+ <property name="can_focus">False</property>
12
+ <property name="margin_left">20</property>
13
+ <property name="margin_right">20</property>
14
+ <property name="margin_top">20</property>
15
+ <property name="margin_bottom">20</property>
16
+ <property name="orientation">vertical</property>
17
+ <child>
18
+ <object class="GtkLabel" id="label1">
19
+ <property name="visible">True</property>
20
+ <property name="can_focus">False</property>
21
+ <property name="label" translatable="yes">&lt;big&gt;Savable Settings Demo&lt;/big&gt;</property>
22
+ <property name="use_markup">True</property>
23
+ </object>
24
+ <packing>
25
+ <property name="expand">False</property>
26
+ <property name="fill">True</property>
27
+ <property name="position">0</property>
28
+ </packing>
29
+ </child>
30
+ <child>
31
+ <object class="GtkLabel" id="text">
32
+ <property name="visible">True</property>
33
+ <property name="can_focus">False</property>
34
+ <property name="vexpand">True</property>
35
+ <property name="ypad">1</property>
36
+ <property name="label" translatable="yes">label</property>
37
+ <property name="wrap">True</property>
38
+ </object>
39
+ <packing>
40
+ <property name="expand">False</property>
41
+ <property name="fill">False</property>
42
+ <property name="position">1</property>
43
+ </packing>
44
+ </child>
45
+ <child>
46
+ <object class="GtkButtonBox" id="buttonbox1">
47
+ <property name="visible">True</property>
48
+ <property name="can_focus">False</property>
49
+ <property name="spacing">10</property>
50
+ <property name="layout_style">end</property>
51
+ <child>
52
+ <object class="GtkButton" id="buttonCancel">
53
+ <property name="label" translatable="yes">Cancel</property>
54
+ <property name="visible">True</property>
55
+ <property name="can_focus">True</property>
56
+ <property name="receives_default">True</property>
57
+ </object>
58
+ <packing>
59
+ <property name="expand">True</property>
60
+ <property name="fill">True</property>
61
+ <property name="position">0</property>
62
+ </packing>
63
+ </child>
64
+ <child>
65
+ <object class="GtkButton" id="buttonEdit">
66
+ <property name="label" translatable="yes">Edit</property>
67
+ <property name="visible">True</property>
68
+ <property name="can_focus">True</property>
69
+ <property name="receives_default">True</property>
70
+ </object>
71
+ <packing>
72
+ <property name="expand">True</property>
73
+ <property name="fill">True</property>
74
+ <property name="position">1</property>
75
+ </packing>
76
+ </child>
77
+ </object>
78
+ <packing>
79
+ <property name="expand">False</property>
80
+ <property name="fill">True</property>
81
+ <property name="position">2</property>
82
+ </packing>
83
+ </child>
84
+ </object>
85
+ </child>
86
+ </object>
87
+ </interface>
@@ -0,0 +1,162 @@
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="visible">True</property>
7
+ <property name="can_focus">False</property>
8
+ <property name="title" translatable="yes">Edit Settings</property>
9
+ <property name="modal">True</property>
10
+ <property name="window_position">center</property>
11
+ <property name="default_width">400</property>
12
+ <property name="default_height">400</property>
13
+ <child>
14
+ <object class="GtkBox" id="box1">
15
+ <property name="visible">True</property>
16
+ <property name="can_focus">False</property>
17
+ <property name="margin_left">20</property>
18
+ <property name="margin_right">20</property>
19
+ <property name="margin_top">20</property>
20
+ <property name="margin_bottom">20</property>
21
+ <property name="orientation">vertical</property>
22
+ <property name="spacing">10</property>
23
+ <child>
24
+ <object class="GtkLabel" id="label1">
25
+ <property name="visible">True</property>
26
+ <property name="can_focus">False</property>
27
+ <property name="label" translatable="yes">&lt;big&gt;Settings&lt;/big&gt;</property>
28
+ <property name="use_markup">True</property>
29
+ </object>
30
+ <packing>
31
+ <property name="expand">False</property>
32
+ <property name="fill">True</property>
33
+ <property name="position">0</property>
34
+ </packing>
35
+ </child>
36
+ <child>
37
+ <object class="GtkBox" id="box2">
38
+ <property name="visible">True</property>
39
+ <property name="can_focus">False</property>
40
+ <property name="hexpand">True</property>
41
+ <child>
42
+ <object class="GtkLabel" id="label2">
43
+ <property name="visible">True</property>
44
+ <property name="can_focus">False</property>
45
+ <property name="label" translatable="yes">Window Title: </property>
46
+ </object>
47
+ <packing>
48
+ <property name="expand">False</property>
49
+ <property name="fill">True</property>
50
+ <property name="position">0</property>
51
+ </packing>
52
+ </child>
53
+ <child>
54
+ <object class="GtkEntry" id="title">
55
+ <property name="visible">True</property>
56
+ <property name="can_focus">True</property>
57
+ </object>
58
+ <packing>
59
+ <property name="expand">True</property>
60
+ <property name="fill">True</property>
61
+ <property name="position">1</property>
62
+ </packing>
63
+ </child>
64
+ </object>
65
+ <packing>
66
+ <property name="expand">False</property>
67
+ <property name="fill">True</property>
68
+ <property name="position">1</property>
69
+ </packing>
70
+ </child>
71
+ <child>
72
+ <object class="GtkFrame" id="frame1">
73
+ <property name="visible">True</property>
74
+ <property name="can_focus">False</property>
75
+ <property name="label_xalign">0</property>
76
+ <property name="shadow_type">in</property>
77
+ <child>
78
+ <object class="GtkAlignment" id="alignment1">
79
+ <property name="visible">True</property>
80
+ <property name="can_focus">False</property>
81
+ <property name="left_padding">12</property>
82
+ <child>
83
+ <object class="GtkScrolledWindow" id="scrolledwindow1">
84
+ <property name="visible">True</property>
85
+ <property name="can_focus">True</property>
86
+ <property name="margin_right">10</property>
87
+ <property name="margin_bottom">10</property>
88
+ <property name="hexpand">True</property>
89
+ <property name="vexpand">True</property>
90
+ <property name="shadow_type">in</property>
91
+ <child>
92
+ <object class="GtkTextView" id="text">
93
+ <property name="visible">True</property>
94
+ <property name="can_focus">True</property>
95
+ <property name="margin_left">10</property>
96
+ <property name="margin_right">10</property>
97
+ <property name="margin_top">1</property>
98
+ <property name="margin_bottom">1</property>
99
+ <property name="wrap_mode">word</property>
100
+ </object>
101
+ </child>
102
+ </object>
103
+ </child>
104
+ </object>
105
+ </child>
106
+ <child type="label">
107
+ <object class="GtkLabel" id="label3">
108
+ <property name="visible">True</property>
109
+ <property name="can_focus">False</property>
110
+ <property name="label" translatable="yes">Text</property>
111
+ </object>
112
+ </child>
113
+ </object>
114
+ <packing>
115
+ <property name="expand">True</property>
116
+ <property name="fill">True</property>
117
+ <property name="position">2</property>
118
+ </packing>
119
+ </child>
120
+ <child>
121
+ <object class="GtkButtonBox" id="buttonbox1">
122
+ <property name="visible">True</property>
123
+ <property name="can_focus">False</property>
124
+ <property name="spacing">10</property>
125
+ <property name="layout_style">end</property>
126
+ <child>
127
+ <object class="GtkButton" id="buttonCancel">
128
+ <property name="label" translatable="yes">Cancel</property>
129
+ <property name="visible">True</property>
130
+ <property name="can_focus">True</property>
131
+ <property name="receives_default">True</property>
132
+ </object>
133
+ <packing>
134
+ <property name="expand">True</property>
135
+ <property name="fill">True</property>
136
+ <property name="position">0</property>
137
+ </packing>
138
+ </child>
139
+ <child>
140
+ <object class="GtkButton" id="buttonSave">
141
+ <property name="label" translatable="yes">Save</property>
142
+ <property name="visible">True</property>
143
+ <property name="can_focus">True</property>
144
+ <property name="receives_default">True</property>
145
+ </object>
146
+ <packing>
147
+ <property name="expand">True</property>
148
+ <property name="fill">True</property>
149
+ <property name="position">1</property>
150
+ </packing>
151
+ </child>
152
+ </object>
153
+ <packing>
154
+ <property name="expand">False</property>
155
+ <property name="fill">True</property>
156
+ <property name="position">3</property>
157
+ </packing>
158
+ </child>
159
+ </object>
160
+ </child>
161
+ </object>
162
+ </interface>
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/ruby
2
+
3
+ # ignore -- this is for development, same as require 'vrlib'
4
+ require File.exists?("./../../vrlib/vrlib.rb") ? "./../../vrlib/vrlib.rb" : "vrlib"
5
+
6
+
7
+ # from require_all gem:
8
+ require_rel 'bin/'
9
+
10
+
11
+
12
+
13
+ MainApp.new.show_glade()
14
+
@@ -0,0 +1,15 @@
1
+ --- !ruby/object:SavableSettings
2
+ height: 415
3
+ width: 765
4
+ title: Savable Settings Demo
5
+ text: |-
6
+ Try running this program multiple times.
7
+
8
+ It will create a file named settings.yaml that stores the height, width, title, and text from this window, so the window will be restored to the same state as when you exited.
9
+
10
+ If you want to reset the file to the defaults, just delete the settings.yamls file.
11
+
12
+ You may need to click the 'Refresh' to see the settings.yaml file.
13
+ vr_yaml_file: settings.yaml
14
+ builder: !ruby/object:Gtk::Builder {}
15
+ top_level_window: false
@@ -0,0 +1,21 @@
1
+
2
+ class DataObjectGUI
3
+
4
+ include GladeGUI
5
+
6
+
7
+ def initialize(name, address, phone, email)
8
+ @name = name
9
+ @address = address
10
+ @phone = phone
11
+ @email = email
12
+ end
13
+
14
+ def buttonShow__clicked(*args)
15
+ get_glade_variables() #sets values of @name, @address etc. to values from glade form.
16
+ alert "Curent values:\n\n#{@name}\n#{@address}\n#{@email}\n#{@phone}\n"
17
+ end
18
+
19
+
20
+ end
21
+