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
@@ -1,41 +1,57 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Generated with glade 3.16.1 -->
2
3
  <interface>
3
- <requires lib="gtk+" version="2.16"/>
4
- <!-- interface-naming-policy project-wide -->
4
+ <requires lib="gtk+" version="3.0"/>
5
5
  <object class="GtkWindow" id="window1">
6
- <property name="visible">True</property>
7
- <property name="window_position">center-always</property>
8
- <signal name="destroy" handler="destroy_window"/>
6
+ <property name="can_focus">False</property>
7
+ <property name="window_position">center</property>
9
8
  <child>
10
- <object class="GtkVBox" id="vbox1">
9
+ <object class="GtkBox" id="box1">
11
10
  <property name="visible">True</property>
11
+ <property name="can_focus">False</property>
12
+ <property name="margin_left">8</property>
13
+ <property name="margin_right">8</property>
14
+ <property name="margin_top">8</property>
15
+ <property name="margin_bottom">12</property>
16
+ <property name="orientation">vertical</property>
17
+ <property name="spacing">8</property>
12
18
  <child>
13
19
  <object class="GtkEntry" id="display">
14
20
  <property name="visible">True</property>
15
- <property name="can_focus">True</property>
21
+ <property name="can_focus">False</property>
16
22
  <property name="editable">False</property>
17
- <property name="invisible_char">•</property>
18
23
  <property name="xalign">1</property>
19
24
  </object>
20
25
  <packing>
26
+ <property name="expand">False</property>
27
+ <property name="fill">True</property>
21
28
  <property name="position">0</property>
22
29
  </packing>
23
30
  </child>
24
31
  <child>
25
- <object class="GtkTable" id="table1">
32
+ <object class="GtkGrid" id="grid1">
26
33
  <property name="visible">True</property>
27
- <property name="n_rows">4</property>
28
- <property name="n_columns">4</property>
34
+ <property name="can_focus">False</property>
35
+ <property name="row_spacing">3</property>
36
+ <property name="column_spacing">3</property>
37
+ <property name="row_homogeneous">True</property>
38
+ <property name="column_homogeneous">True</property>
29
39
  <child>
30
- <object class="GtkButton" id="Calculator.keys[0]">
40
+ <object class="GtkButton" id="button[0]">
31
41
  <property name="label" translatable="yes">button</property>
32
42
  <property name="visible">True</property>
33
43
  <property name="can_focus">True</property>
34
44
  <property name="receives_default">True</property>
35
45
  </object>
46
+ <packing>
47
+ <property name="left_attach">0</property>
48
+ <property name="top_attach">0</property>
49
+ <property name="width">1</property>
50
+ <property name="height">1</property>
51
+ </packing>
36
52
  </child>
37
53
  <child>
38
- <object class="GtkButton" id="Calculator.keys[1]">
54
+ <object class="GtkButton" id="button[1]">
39
55
  <property name="label" translatable="yes">button</property>
40
56
  <property name="visible">True</property>
41
57
  <property name="can_focus">True</property>
@@ -43,11 +59,13 @@
43
59
  </object>
44
60
  <packing>
45
61
  <property name="left_attach">1</property>
46
- <property name="right_attach">2</property>
62
+ <property name="top_attach">0</property>
63
+ <property name="width">1</property>
64
+ <property name="height">1</property>
47
65
  </packing>
48
66
  </child>
49
67
  <child>
50
- <object class="GtkButton" id="Calculator.keys[2]">
68
+ <object class="GtkButton" id="button[2]">
51
69
  <property name="label" translatable="yes">button</property>
52
70
  <property name="visible">True</property>
53
71
  <property name="can_focus">True</property>
@@ -55,11 +73,13 @@
55
73
  </object>
56
74
  <packing>
57
75
  <property name="left_attach">2</property>
58
- <property name="right_attach">3</property>
76
+ <property name="top_attach">0</property>
77
+ <property name="width">1</property>
78
+ <property name="height">1</property>
59
79
  </packing>
60
80
  </child>
61
81
  <child>
62
- <object class="GtkButton" id="Calculator.keys[3]">
82
+ <object class="GtkButton" id="button[3]">
63
83
  <property name="label" translatable="yes">button</property>
64
84
  <property name="visible">True</property>
65
85
  <property name="can_focus">True</property>
@@ -67,23 +87,27 @@
67
87
  </object>
68
88
  <packing>
69
89
  <property name="left_attach">3</property>
70
- <property name="right_attach">4</property>
90
+ <property name="top_attach">0</property>
91
+ <property name="width">1</property>
92
+ <property name="height">1</property>
71
93
  </packing>
72
94
  </child>
73
95
  <child>
74
- <object class="GtkButton" id="Calculator.keys[4]">
96
+ <object class="GtkButton" id="button[4]">
75
97
  <property name="label" translatable="yes">button</property>
76
98
  <property name="visible">True</property>
77
99
  <property name="can_focus">True</property>
78
100
  <property name="receives_default">True</property>
79
101
  </object>
80
102
  <packing>
103
+ <property name="left_attach">0</property>
81
104
  <property name="top_attach">1</property>
82
- <property name="bottom_attach">2</property>
105
+ <property name="width">1</property>
106
+ <property name="height">1</property>
83
107
  </packing>
84
108
  </child>
85
109
  <child>
86
- <object class="GtkButton" id="Calculator.keys[5]">
110
+ <object class="GtkButton" id="button[5]">
87
111
  <property name="label" translatable="yes">button</property>
88
112
  <property name="visible">True</property>
89
113
  <property name="can_focus">True</property>
@@ -91,13 +115,13 @@
91
115
  </object>
92
116
  <packing>
93
117
  <property name="left_attach">1</property>
94
- <property name="right_attach">2</property>
95
118
  <property name="top_attach">1</property>
96
- <property name="bottom_attach">2</property>
119
+ <property name="width">1</property>
120
+ <property name="height">1</property>
97
121
  </packing>
98
122
  </child>
99
123
  <child>
100
- <object class="GtkButton" id="keys[6]">
124
+ <object class="GtkButton" id="button[6]">
101
125
  <property name="label" translatable="yes">button</property>
102
126
  <property name="visible">True</property>
103
127
  <property name="can_focus">True</property>
@@ -105,13 +129,13 @@
105
129
  </object>
106
130
  <packing>
107
131
  <property name="left_attach">2</property>
108
- <property name="right_attach">3</property>
109
132
  <property name="top_attach">1</property>
110
- <property name="bottom_attach">2</property>
133
+ <property name="width">1</property>
134
+ <property name="height">1</property>
111
135
  </packing>
112
136
  </child>
113
137
  <child>
114
- <object class="GtkButton" id="Calculator.keys[7]">
138
+ <object class="GtkButton" id="button[7]">
115
139
  <property name="label" translatable="yes">button</property>
116
140
  <property name="visible">True</property>
117
141
  <property name="can_focus">True</property>
@@ -119,25 +143,27 @@
119
143
  </object>
120
144
  <packing>
121
145
  <property name="left_attach">3</property>
122
- <property name="right_attach">4</property>
123
146
  <property name="top_attach">1</property>
124
- <property name="bottom_attach">2</property>
147
+ <property name="width">1</property>
148
+ <property name="height">1</property>
125
149
  </packing>
126
150
  </child>
127
151
  <child>
128
- <object class="GtkButton" id="Calculator.keys[8]">
152
+ <object class="GtkButton" id="button[8]">
129
153
  <property name="label" translatable="yes">button</property>
130
154
  <property name="visible">True</property>
131
155
  <property name="can_focus">True</property>
132
156
  <property name="receives_default">True</property>
133
157
  </object>
134
158
  <packing>
159
+ <property name="left_attach">0</property>
135
160
  <property name="top_attach">2</property>
136
- <property name="bottom_attach">3</property>
161
+ <property name="width">1</property>
162
+ <property name="height">1</property>
137
163
  </packing>
138
164
  </child>
139
165
  <child>
140
- <object class="GtkButton" id="Calculator.keys[9]">
166
+ <object class="GtkButton" id="button[9]">
141
167
  <property name="label" translatable="yes">button</property>
142
168
  <property name="visible">True</property>
143
169
  <property name="can_focus">True</property>
@@ -145,13 +171,13 @@
145
171
  </object>
146
172
  <packing>
147
173
  <property name="left_attach">1</property>
148
- <property name="right_attach">2</property>
149
174
  <property name="top_attach">2</property>
150
- <property name="bottom_attach">3</property>
175
+ <property name="width">1</property>
176
+ <property name="height">1</property>
151
177
  </packing>
152
178
  </child>
153
179
  <child>
154
- <object class="GtkButton" id="Calculator.keys[10]">
180
+ <object class="GtkButton" id="button[10]">
155
181
  <property name="label" translatable="yes">button</property>
156
182
  <property name="visible">True</property>
157
183
  <property name="can_focus">True</property>
@@ -159,13 +185,13 @@
159
185
  </object>
160
186
  <packing>
161
187
  <property name="left_attach">2</property>
162
- <property name="right_attach">3</property>
163
188
  <property name="top_attach">2</property>
164
- <property name="bottom_attach">3</property>
189
+ <property name="width">1</property>
190
+ <property name="height">1</property>
165
191
  </packing>
166
192
  </child>
167
193
  <child>
168
- <object class="GtkButton" id="Calculator.keys[11]">
194
+ <object class="GtkButton" id="button[11]">
169
195
  <property name="label" translatable="yes">button</property>
170
196
  <property name="visible">True</property>
171
197
  <property name="can_focus">True</property>
@@ -173,25 +199,27 @@
173
199
  </object>
174
200
  <packing>
175
201
  <property name="left_attach">3</property>
176
- <property name="right_attach">4</property>
177
202
  <property name="top_attach">2</property>
178
- <property name="bottom_attach">3</property>
203
+ <property name="width">1</property>
204
+ <property name="height">1</property>
179
205
  </packing>
180
206
  </child>
181
207
  <child>
182
- <object class="GtkButton" id="Calculator.keys[12]">
208
+ <object class="GtkButton" id="button[12]">
183
209
  <property name="label" translatable="yes">button</property>
184
210
  <property name="visible">True</property>
185
211
  <property name="can_focus">True</property>
186
212
  <property name="receives_default">True</property>
187
213
  </object>
188
214
  <packing>
215
+ <property name="left_attach">0</property>
189
216
  <property name="top_attach">3</property>
190
- <property name="bottom_attach">4</property>
217
+ <property name="width">1</property>
218
+ <property name="height">1</property>
191
219
  </packing>
192
220
  </child>
193
221
  <child>
194
- <object class="GtkButton" id="Calculator.keys[13]">
222
+ <object class="GtkButton" id="button[13]">
195
223
  <property name="label" translatable="yes">button</property>
196
224
  <property name="visible">True</property>
197
225
  <property name="can_focus">True</property>
@@ -199,13 +227,13 @@
199
227
  </object>
200
228
  <packing>
201
229
  <property name="left_attach">1</property>
202
- <property name="right_attach">2</property>
203
230
  <property name="top_attach">3</property>
204
- <property name="bottom_attach">4</property>
231
+ <property name="width">1</property>
232
+ <property name="height">1</property>
205
233
  </packing>
206
234
  </child>
207
235
  <child>
208
- <object class="GtkButton" id="Calculator.keys[14]">
236
+ <object class="GtkButton" id="button[14]">
209
237
  <property name="label" translatable="yes">button</property>
210
238
  <property name="visible">True</property>
211
239
  <property name="can_focus">True</property>
@@ -213,13 +241,13 @@
213
241
  </object>
214
242
  <packing>
215
243
  <property name="left_attach">2</property>
216
- <property name="right_attach">3</property>
217
244
  <property name="top_attach">3</property>
218
- <property name="bottom_attach">4</property>
245
+ <property name="width">1</property>
246
+ <property name="height">1</property>
219
247
  </packing>
220
248
  </child>
221
249
  <child>
222
- <object class="GtkButton" id="Calculator.keys[15]">
250
+ <object class="GtkButton" id="button[15]">
223
251
  <property name="label" translatable="yes">button</property>
224
252
  <property name="visible">True</property>
225
253
  <property name="can_focus">True</property>
@@ -227,13 +255,15 @@
227
255
  </object>
228
256
  <packing>
229
257
  <property name="left_attach">3</property>
230
- <property name="right_attach">4</property>
231
258
  <property name="top_attach">3</property>
232
- <property name="bottom_attach">4</property>
259
+ <property name="width">1</property>
260
+ <property name="height">1</property>
233
261
  </packing>
234
262
  </child>
235
263
  </object>
236
264
  <packing>
265
+ <property name="expand">False</property>
266
+ <property name="fill">True</property>
237
267
  <property name="position">1</property>
238
268
  </packing>
239
269
  </child>
@@ -0,0 +1,13 @@
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
+ Calculator.new.show_glade()
13
+
@@ -0,0 +1,52 @@
1
+
2
+ ##
3
+ # This is a "main" GUI class for a program. It allows you
4
+ # to open modal and non-modal windows.
5
+ #
6
+ # Modal windows are
7
+ # windows that appear on top of the main program window and
8
+ # halt the main window until they are closed. They're good for
9
+ # dialogs etc.
10
+ #
11
+ # Normal non-modal windows operate concurrently with the main
12
+ # window and each other. You can open many child windows, and they
13
+ # will all function at the same time. For example, they're useful if you're
14
+ # opening several documents at the same time.
15
+ #
16
+ # To open a modal window, set the "modal" property in glade then call the show_glade()
17
+ # method with the parent
18
+ # as the aregument. Almost always, you will be calling the show method
19
+ # from within the parent window so you would pass "self" as the argument:
20
+ #
21
+ # ChildWindow.new.show_glade(self)
22
+ #
23
+ # This line would open a new ChildWindow window that always appears on top
24
+ # of the parent (self) window, and freezes the parent window until it closes.
25
+ #
26
+
27
+
28
+ class ChildWindowDemo #(change name)
29
+
30
+ include GladeGUI
31
+
32
+ def buttonOpenModeless__clicked(*argv)
33
+ ModelessWindow.new.show_glade() # no parent given so windows can overlap
34
+ end
35
+
36
+ # This modal window has its "modal" property set to true in glade.
37
+ # I pass a reference to "self" in the show method, setting the parent to this window,
38
+ # making it always on top. Its a good idea to have modal windows always on top
39
+ # because the parent is frozen, so the next action must be in the modal window.
40
+
41
+ def buttonOpenModal__clicked(*argv)
42
+ ModalWindow.new.show_glade(self) # self = parent, so always on top of parent
43
+ end
44
+
45
+ def buttonCancel__clicked(*argv)
46
+ @builder["window1"].destroy
47
+ end
48
+
49
+ end
50
+
51
+
52
+
@@ -0,0 +1,9 @@
1
+ class ModalWindow
2
+
3
+ include GladeGUI
4
+
5
+ def buttonOk__clicked(*argv)
6
+ @builder["window1"].destroy
7
+ end
8
+
9
+ end
@@ -0,0 +1,9 @@
1
+ class ModelessWindow
2
+
3
+ include GladeGUI
4
+
5
+ def buttonOk__clicked(*argv)
6
+ @builder["window1"].destroy
7
+ end
8
+
9
+ end
@@ -0,0 +1,21 @@
1
+ ##
2
+ # This is just a generic window that gets opened as either modal
3
+ # or non-modal.
4
+ #
5
+
6
+ class MyChildClass
7
+
8
+ include GladeGUI
9
+
10
+ def initialize(title, message)
11
+ @labelMessage = message
12
+ @window1 = title
13
+ end
14
+
15
+ # When cancel clicked in MyChildClass.glade
16
+ def buttonCancel__clicked(*args)
17
+ @builder["window1"].destroy
18
+ end
19
+
20
+ end
21
+
@@ -0,0 +1,87 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Generated with glade 3.18.3 -->
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
+ <property name="default_width">400</property>
9
+ <child>
10
+ <object class="GtkBox" id="box1">
11
+ <property name="visible">True</property>
12
+ <property name="can_focus">False</property>
13
+ <property name="margin_left">20</property>
14
+ <property name="margin_right">20</property>
15
+ <property name="orientation">vertical</property>
16
+ <child>
17
+ <object class="GtkLabel" id="label1">
18
+ <property name="visible">True</property>
19
+ <property name="can_focus">False</property>
20
+ <property name="xpad">10</property>
21
+ <property name="ypad">10</property>
22
+ <property name="label" translatable="yes">Open as many modeless windows as you want. You can switch between windows because they're not modal. When you open a Modal window it will block everything until its closed.</property>
23
+ <property name="wrap">True</property>
24
+ </object>
25
+ <packing>
26
+ <property name="expand">True</property>
27
+ <property name="fill">True</property>
28
+ <property name="padding">10</property>
29
+ <property name="position">0</property>
30
+ </packing>
31
+ </child>
32
+ <child>
33
+ <object class="GtkButtonBox" id="buttonbox1">
34
+ <property name="visible">True</property>
35
+ <property name="can_focus">False</property>
36
+ <property name="layout_style">spread</property>
37
+ <child>
38
+ <object class="GtkButton" id="buttonOpenModeless">
39
+ <property name="label" translatable="yes">Open Modeless Window</property>
40
+ <property name="visible">True</property>
41
+ <property name="can_focus">True</property>
42
+ <property name="receives_default">True</property>
43
+ </object>
44
+ <packing>
45
+ <property name="expand">False</property>
46
+ <property name="fill">True</property>
47
+ <property name="position">0</property>
48
+ </packing>
49
+ </child>
50
+ <child>
51
+ <object class="GtkButton" id="buttonOpenModal">
52
+ <property name="label" translatable="yes">Open Modal Window</property>
53
+ <property name="visible">True</property>
54
+ <property name="can_focus">True</property>
55
+ <property name="receives_default">True</property>
56
+ </object>
57
+ <packing>
58
+ <property name="expand">False</property>
59
+ <property name="fill">True</property>
60
+ <property name="position">1</property>
61
+ </packing>
62
+ </child>
63
+ <child>
64
+ <object class="GtkButton" id="buttonCancel">
65
+ <property name="label" translatable="yes">Cancel</property>
66
+ <property name="visible">True</property>
67
+ <property name="can_focus">True</property>
68
+ <property name="receives_default">True</property>
69
+ </object>
70
+ <packing>
71
+ <property name="expand">False</property>
72
+ <property name="fill">True</property>
73
+ <property name="position">2</property>
74
+ </packing>
75
+ </child>
76
+ </object>
77
+ <packing>
78
+ <property name="expand">True</property>
79
+ <property name="fill">True</property>
80
+ <property name="padding">20</property>
81
+ <property name="position">1</property>
82
+ </packing>
83
+ </child>
84
+ </object>
85
+ </child>
86
+ </object>
87
+ </interface>
@@ -0,0 +1,61 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Generated with glade 3.18.3 -->
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="title" translatable="yes">Modal Window</property>
8
+ <property name="modal">True</property>
9
+ <property name="window_position">center</property>
10
+ <child>
11
+ <object class="GtkBox" id="box1">
12
+ <property name="visible">True</property>
13
+ <property name="can_focus">False</property>
14
+ <property name="margin_left">20</property>
15
+ <property name="margin_right">20</property>
16
+ <property name="margin_top">20</property>
17
+ <property name="margin_bottom">20</property>
18
+ <property name="orientation">vertical</property>
19
+ <property name="spacing">20</property>
20
+ <child>
21
+ <object class="GtkLabel" id="label1">
22
+ <property name="visible">True</property>
23
+ <property name="can_focus">False</property>
24
+ <property name="label" translatable="yes">This modal window freezes the parent, and is always on top.</property>
25
+ </object>
26
+ <packing>
27
+ <property name="expand">False</property>
28
+ <property name="fill">True</property>
29
+ <property name="position">0</property>
30
+ </packing>
31
+ </child>
32
+ <child>
33
+ <object class="GtkButtonBox" id="buttonbox1">
34
+ <property name="visible">True</property>
35
+ <property name="can_focus">False</property>
36
+ <property name="orientation">vertical</property>
37
+ <property name="layout_style">start</property>
38
+ <child>
39
+ <object class="GtkButton" id="buttonOk">
40
+ <property name="label" translatable="yes">Ok</property>
41
+ <property name="visible">True</property>
42
+ <property name="can_focus">True</property>
43
+ <property name="receives_default">True</property>
44
+ </object>
45
+ <packing>
46
+ <property name="expand">False</property>
47
+ <property name="fill">True</property>
48
+ <property name="position">0</property>
49
+ </packing>
50
+ </child>
51
+ </object>
52
+ <packing>
53
+ <property name="expand">False</property>
54
+ <property name="fill">True</property>
55
+ <property name="position">1</property>
56
+ </packing>
57
+ </child>
58
+ </object>
59
+ </child>
60
+ </object>
61
+ </interface>
@@ -0,0 +1,61 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Generated with glade 3.18.3 -->
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="title" translatable="yes">Modeless Window</property>
8
+ <property name="window_position">center</property>
9
+ <child>
10
+ <object class="GtkBox" id="box1">
11
+ <property name="visible">True</property>
12
+ <property name="can_focus">False</property>
13
+ <property name="margin_left">20</property>
14
+ <property name="margin_right">20</property>
15
+ <property name="margin_top">20</property>
16
+ <property name="margin_bottom">20</property>
17
+ <property name="orientation">vertical</property>
18
+ <property name="spacing">15</property>
19
+ <child>
20
+ <object class="GtkLabel" id="label1">
21
+ <property name="visible">True</property>
22
+ <property name="can_focus">False</property>
23
+ <property name="label" translatable="yes">This window operates concurrently with the parent.
24
+ Open as many as you want!</property>
25
+ </object>
26
+ <packing>
27
+ <property name="expand">True</property>
28
+ <property name="fill">True</property>
29
+ <property name="position">0</property>
30
+ </packing>
31
+ </child>
32
+ <child>
33
+ <object class="GtkButtonBox" id="buttonbox1">
34
+ <property name="visible">True</property>
35
+ <property name="can_focus">False</property>
36
+ <property name="orientation">vertical</property>
37
+ <property name="layout_style">start</property>
38
+ <child>
39
+ <object class="GtkButton" id="buttonOk">
40
+ <property name="label" translatable="yes">Ok</property>
41
+ <property name="visible">True</property>
42
+ <property name="can_focus">True</property>
43
+ <property name="receives_default">True</property>
44
+ </object>
45
+ <packing>
46
+ <property name="expand">True</property>
47
+ <property name="fill">True</property>
48
+ <property name="position">0</property>
49
+ </packing>
50
+ </child>
51
+ </object>
52
+ <packing>
53
+ <property name="expand">False</property>
54
+ <property name="fill">True</property>
55
+ <property name="position">1</property>
56
+ </packing>
57
+ </child>
58
+ </object>
59
+ </child>
60
+ </object>
61
+ </interface>