visualruby 1.0.12

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 (114) hide show
  1. checksums.yaml +7 -0
  2. data/bin/editor/VR_Document.rb +219 -0
  3. data/bin/editor/VR_TabSearch.rb +50 -0
  4. data/bin/editor/VR_Tabs.rb +99 -0
  5. data/bin/editor/VR_TextShell.rb +83 -0
  6. data/bin/editor/VR_TextViewCommon.rb +65 -0
  7. data/bin/editor/glade/VR_Document.glade +160 -0
  8. data/bin/main/GemTree.rb +23 -0
  9. data/bin/main/NewProjectGUI.rb +28 -0
  10. data/bin/main/ProjectChooserGUI.rb +41 -0
  11. data/bin/main/ProjectChooserView.rb +39 -0
  12. data/bin/main/RubygemsAPI.rb +93 -0
  13. data/bin/main/Splash.rb +22 -0
  14. data/bin/main/VR_ENV.rb +61 -0
  15. data/bin/main/VR_ENV_GLOBAL.rb +64 -0
  16. data/bin/main/VR_File_Tree.rb +120 -0
  17. data/bin/main/VR_Local_Gem_Tree.rb +80 -0
  18. data/bin/main/VR_Main.rb +313 -0
  19. data/bin/main/VR_Remote_Gem_Tree.rb +70 -0
  20. data/bin/main/glade/NewProjectGUI.glade +141 -0
  21. data/bin/main/glade/ProjectChooserGUI.glade +140 -0
  22. data/bin/main/glade/RubygemsAPI.glade +130 -0
  23. data/bin/main/glade/Splash.glade +18 -0
  24. data/bin/main/glade/VR_ENV.glade +168 -0
  25. data/bin/main/glade/VR_ENV_GLOBAL.glade +268 -0
  26. data/bin/main/glade/VR_File_Tree.glade +65 -0
  27. data/bin/main/glade/VR_Local_Gem_Tree.glade +45 -0
  28. data/bin/main/glade/VR_Main.glade +707 -0
  29. data/bin/main/glade/VR_Remote_Gem_Tree.glade +76 -0
  30. data/bin/tools/VR_Tools.rb +120 -0
  31. data/img/close.png +0 -0
  32. data/img/folder.png +0 -0
  33. data/img/glade.png +0 -0
  34. data/img/gtk-edit.png +0 -0
  35. data/img/obj.png +0 -0
  36. data/img/png.png +0 -0
  37. data/img/rb.png +0 -0
  38. data/img/ruby.png +0 -0
  39. data/img/splash.png +0 -0
  40. data/img/unknown.png +0 -0
  41. data/skeleton/document/New.glade +13 -0
  42. data/skeleton/document/NewWindow.rb +15 -0
  43. data/skeleton/project/bin/MyClass.rb +15 -0
  44. data/skeleton/project/bin/glade/MyClass.glade +45 -0
  45. data/skeleton/project/main.rb +14 -0
  46. data/visualruby_examples/active_record/.vr_settings.yaml +47 -0
  47. data/visualruby_examples/active_record/active_record.rb +52 -0
  48. data/visualruby_examples/active_record/bin/ChoosePerson.rb +17 -0
  49. data/visualruby_examples/active_record/bin/Person.rb +13 -0
  50. data/visualruby_examples/active_record/bin/glade/ChoosePerson.glade +61 -0
  51. data/visualruby_examples/active_record/bin/glade/Person.glade +148 -0
  52. data/visualruby_examples/active_record/db/development.sqlite3 +0 -0
  53. data/visualruby_examples/active_record2/.vr_settings.yaml +48 -0
  54. data/visualruby_examples/active_record2/active_record2.rb +142 -0
  55. data/visualruby_examples/active_record2/bin/CompanyGUI.rb +54 -0
  56. data/visualruby_examples/active_record2/bin/Employee.rb +20 -0
  57. data/visualruby_examples/active_record2/bin/Employer.rb +11 -0
  58. data/visualruby_examples/active_record2/bin/Paycheck.rb +11 -0
  59. data/visualruby_examples/active_record2/bin/glade/CompanyGUI.glade +167 -0
  60. data/visualruby_examples/active_record2/bin/glade/Employee.glade +123 -0
  61. data/visualruby_examples/active_record2/bin/glade/Employer.glade +147 -0
  62. data/visualruby_examples/active_record2/bin/glade/Paycheck.glade +145 -0
  63. data/visualruby_examples/active_record2/db/development.sqlite3 +0 -0
  64. data/visualruby_examples/all_widgets/.vr_settings.yaml +20 -0
  65. data/visualruby_examples/all_widgets/all_widgets.rb +13 -0
  66. data/visualruby_examples/all_widgets/bin/AllWidgets.rb +43 -0
  67. data/visualruby_examples/all_widgets/bin/glade/AllWidgets.glade +166 -0
  68. data/visualruby_examples/all_widgets/bin/splash.png +0 -0
  69. data/visualruby_examples/calculator/.vr_settings.yaml +21 -0
  70. data/visualruby_examples/calculator/bin/Calculator.rb +63 -0
  71. data/visualruby_examples/calculator/bin/glade/Calculator.glade +243 -0
  72. data/visualruby_examples/calculator/main.rb +13 -0
  73. data/visualruby_examples/child_window/.vr_settings.yaml +46 -0
  74. data/visualruby_examples/child_window/bin/ChildWindowDemo.rb +41 -0
  75. data/visualruby_examples/child_window/bin/MyChildClass.rb +42 -0
  76. data/visualruby_examples/child_window/bin/glade/ChildWindowDemo.glade +101 -0
  77. data/visualruby_examples/child_window/bin/glade/MyChildClass.glade +58 -0
  78. data/visualruby_examples/child_window/main.rb +13 -0
  79. data/visualruby_examples/drag_drop/.vr_settings.yaml +19 -0
  80. data/visualruby_examples/drag_drop/bin/DragDropDemo.rb +45 -0
  81. data/visualruby_examples/drag_drop/bin/glade/DragDropDemo.glade +143 -0
  82. data/visualruby_examples/drag_drop/img/folder.png +0 -0
  83. data/visualruby_examples/drag_drop/img/glade.png +0 -0
  84. data/visualruby_examples/drag_drop/img/gtk-edit.png +0 -0
  85. data/visualruby_examples/drag_drop/img/obj.png +0 -0
  86. data/visualruby_examples/drag_drop/img/png.png +0 -0
  87. data/visualruby_examples/drag_drop/img/rb.png +0 -0
  88. data/visualruby_examples/drag_drop/img/ruby.png +0 -0
  89. data/visualruby_examples/drag_drop/img/unknown.png +0 -0
  90. data/visualruby_examples/drag_drop/main.rb +14 -0
  91. data/visualruby_examples/listview/.vr_settings.yaml +46 -0
  92. data/visualruby_examples/listview/bin/SongListView.rb +89 -0
  93. data/visualruby_examples/listview/bin/SongListViewGUI.rb +67 -0
  94. data/visualruby_examples/listview/bin/audio-x-generic.png +0 -0
  95. data/visualruby_examples/listview/bin/glade/SongListViewGUI.glade +220 -0
  96. data/visualruby_examples/listview/main.rb +19 -0
  97. data/visualruby_examples/listview_objects/.vr_settings.yaml +46 -0
  98. data/visualruby_examples/listview_objects/bin/DataObject.rb +32 -0
  99. data/visualruby_examples/listview_objects/bin/DataObjectGUI.rb +41 -0
  100. data/visualruby_examples/listview_objects/bin/ListViewObjects.rb +34 -0
  101. data/visualruby_examples/listview_objects/bin/ListViewObjectsGUI.rb +18 -0
  102. data/visualruby_examples/listview_objects/bin/glade/DataObject.glade +198 -0
  103. data/visualruby_examples/listview_objects/bin/glade/ListViewObjectsGUI.glade +102 -0
  104. data/visualruby_examples/listview_objects/main.rb +13 -0
  105. data/visualruby_examples/simple_ruby_gui/.vr_settings.yaml +45 -0
  106. data/visualruby_examples/simple_ruby_gui/bin/DataObjectGUI.rb +20 -0
  107. data/visualruby_examples/simple_ruby_gui/bin/glade/DataObjectGUI.glade +163 -0
  108. data/visualruby_examples/simple_ruby_gui/simple_ruby_gui +16 -0
  109. data/visualruby_examples/treeview/.vr_settings.yaml +18 -0
  110. data/visualruby_examples/treeview/bin/MyClass.rb +28 -0
  111. data/visualruby_examples/treeview/bin/glade/MyClass.glade +48 -0
  112. data/visualruby_examples/treeview/main.rb +14 -0
  113. data/vr +40 -0
  114. metadata +202 -0
@@ -0,0 +1,166 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <interface>
3
+ <requires lib="gtk+" version="2.16"/>
4
+ <!-- interface-naming-policy project-wide -->
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"/>
9
+ <child>
10
+ <object class="GtkHBox" id="hbox1">
11
+ <property name="visible">True</property>
12
+ <child>
13
+ <object class="GtkVBox" id="vbox2">
14
+ <property name="visible">True</property>
15
+ <property name="spacing">10</property>
16
+ <child>
17
+ <object class="GtkImage" id="image1">
18
+ <property name="width_request">330</property>
19
+ <property name="height_request">200</property>
20
+ <property name="visible">True</property>
21
+ </object>
22
+ <packing>
23
+ <property name="padding">10</property>
24
+ <property name="position">0</property>
25
+ </packing>
26
+ </child>
27
+ <child>
28
+ <object class="GtkLabel" id="label1">
29
+ <property name="visible">True</property>
30
+ <property name="label" translatable="yes">label</property>
31
+ </object>
32
+ <packing>
33
+ <property name="position">1</property>
34
+ </packing>
35
+ </child>
36
+ <child>
37
+ <object class="GtkCheckButton" id="checkbutton1">
38
+ <property name="label" translatable="yes">checkbutton</property>
39
+ <property name="visible">True</property>
40
+ <property name="can_focus">True</property>
41
+ <property name="receives_default">False</property>
42
+ <property name="draw_indicator">True</property>
43
+ </object>
44
+ <packing>
45
+ <property name="position">2</property>
46
+ </packing>
47
+ </child>
48
+ <child>
49
+ <object class="GtkSpinButton" id="spinbutton1">
50
+ <property name="visible">True</property>
51
+ <property name="can_focus">True</property>
52
+ <property name="invisible_char">•</property>
53
+ <property name="adjustment">adjustment1</property>
54
+ <property name="climb_rate">0.10000000000000001</property>
55
+ <property name="digits">1</property>
56
+ <property name="numeric">True</property>
57
+ </object>
58
+ <packing>
59
+ <property name="padding">10</property>
60
+ <property name="position">3</property>
61
+ </packing>
62
+ </child>
63
+ <child>
64
+ <object class="GtkLinkButton" id="linkbutton1">
65
+ <property name="label" translatable="yes">button</property>
66
+ <property name="visible">True</property>
67
+ <property name="can_focus">True</property>
68
+ <property name="receives_default">True</property>
69
+ <property name="has_tooltip">True</property>
70
+ <property name="relief">none</property>
71
+ <property name="uri">http://glade.gnome.org</property>
72
+ </object>
73
+ <packing>
74
+ <property name="position">4</property>
75
+ </packing>
76
+ </child>
77
+ <child>
78
+ <object class="GtkEntry" id="entry1">
79
+ <property name="visible">True</property>
80
+ <property name="can_focus">True</property>
81
+ <property name="invisible_char">•</property>
82
+ </object>
83
+ <packing>
84
+ <property name="position">5</property>
85
+ </packing>
86
+ </child>
87
+ <child>
88
+ <object class="GtkProgressBar" id="progressbar1">
89
+ <property name="visible">True</property>
90
+ <property name="fraction">0.080000000000000002</property>
91
+ <property name="text" translatable="yes">I'm a progressbar</property>
92
+ </object>
93
+ <packing>
94
+ <property name="padding">10</property>
95
+ <property name="position">6</property>
96
+ </packing>
97
+ </child>
98
+ </object>
99
+ <packing>
100
+ <property name="padding">10</property>
101
+ <property name="position">0</property>
102
+ </packing>
103
+ </child>
104
+ <child>
105
+ <object class="GtkVBox" id="vbox1">
106
+ <property name="visible">True</property>
107
+ <child>
108
+ <object class="GtkCalendar" id="calendar1">
109
+ <property name="visible">True</property>
110
+ <property name="can_focus">True</property>
111
+ <property name="year">2012</property>
112
+ <property name="month">2</property>
113
+ <property name="day">12</property>
114
+ </object>
115
+ <packing>
116
+ <property name="expand">False</property>
117
+ <property name="fill">False</property>
118
+ <property name="padding">10</property>
119
+ <property name="position">0</property>
120
+ </packing>
121
+ </child>
122
+ <child>
123
+ <object class="GtkHButtonBox" id="hbuttonbox1">
124
+ <property name="visible">True</property>
125
+ <child>
126
+ <object class="GtkFontButton" id="fontbutton1">
127
+ <property name="visible">True</property>
128
+ <property name="can_focus">True</property>
129
+ <property name="receives_default">True</property>
130
+ </object>
131
+ <packing>
132
+ <property name="expand">False</property>
133
+ <property name="fill">False</property>
134
+ <property name="position">0</property>
135
+ </packing>
136
+ </child>
137
+ </object>
138
+ <packing>
139
+ <property name="position">1</property>
140
+ </packing>
141
+ </child>
142
+ <child>
143
+ <object class="GtkTextView" id="textview1">
144
+ <property name="height_request">80</property>
145
+ <property name="visible">True</property>
146
+ <property name="can_focus">True</property>
147
+ </object>
148
+ <packing>
149
+ <property name="padding">10</property>
150
+ <property name="position">2</property>
151
+ </packing>
152
+ </child>
153
+ </object>
154
+ <packing>
155
+ <property name="padding">10</property>
156
+ <property name="position">1</property>
157
+ </packing>
158
+ </child>
159
+ </object>
160
+ </child>
161
+ </object>
162
+ <object class="GtkAdjustment" id="adjustment1">
163
+ <property name="upper">100</property>
164
+ <property name="step_increment">0.10000000000000001</property>
165
+ </object>
166
+ </interface>
@@ -0,0 +1,21 @@
1
+ --- !ruby/object:VR_ENV
2
+ backup_path: /home/eric
3
+ browser: firefox
4
+ current_file: /home/eric/vrp/vrx/visualruby_examples/calculator/main.rb
5
+ font_name: Monospace 10
6
+ glade_path: glade-3
7
+ height: 600
8
+ open_files:
9
+ - /home/eric/vrp/vrx/visualruby_examples/calculator/main.rb
10
+ - /home/eric/vrp/vrx/visualruby_examples/calculator/bin/Calculator.rb
11
+ open_folders:
12
+ - /home/eric/vrp/vrx/visualruby_examples/calculator
13
+ - /home/eric/vrp/vrx/visualruby_examples/calculator/bin
14
+ panel_pos: 360
15
+ rdoc_command_line: rdoc -x README
16
+ run_command_line: ruby main.rb
17
+ tab_spaces: 2
18
+ width: 800
19
+ builder: !ruby/object:Gtk::Builder {}
20
+ glade_box: !ruby/object:VR::SimpleComboBoxEntry {}
21
+ browser_box: !ruby/object:VR::SimpleComboBoxEntry {}
@@ -0,0 +1,63 @@
1
+ ##
2
+ # This class is a GUI for a calculator. The show() method
3
+ # loads the Calculator.glade file using the line:
4
+ #
5
+ # load_glade(__FILE__)
6
+ #
7
+ # The instance variable, @builder is a reference to the
8
+ # Gtk::Builder object. @builder["window1"] is a reference to
9
+ # the main window of the calculator. So, if you edit
10
+ # the Calculator.glade file (using glade) you'll see that
11
+ # the top window is named "window1." (Always keep the name
12
+ # "window1"!)
13
+ #
14
+ # In glade, you'll see that the names of the keys are:
15
+ #
16
+ # Calculator.keys[0]
17
+ # Calculator.keys[1] ...etc.
18
+ #
19
+ # This corresponds to the array @keys. Visual Ruby's library
20
+ # will automatically load the values of the array into the
21
+ # glade form using this line:
22
+ #
23
+ # set_glade_variables(self)
24
+ #
25
+ # This line causes GladeGUI to search all the instance variables
26
+ # and fill-in widgets that match the vaiable names.
27
+ #
28
+
29
+ class Calculator
30
+
31
+ include GladeGUI
32
+
33
+ def before_show()
34
+ @builder["window1"].title = "Calculator"
35
+ @keys = [ 1, 2, 3, "C" ] +
36
+ [ 4, 5, 6, "+" ] +
37
+ [ 7, 8, 9, "-" ] +
38
+ [ 0, ".","/","=" ]
39
+ end
40
+
41
+ # This method is called when a key is clicked. It follows
42
+ # this naming convention: <glade_name>__<signal_name>. (Separator is
43
+ # two underscores. This tells GladeGUI to connect all the
44
+ # "clicked" signals to this method. It matches the glade
45
+ # names "keys", "keys[x]" or "Calculator.keys[x]" to this method
46
+ # automatically for all the buttons. Look at the names
47
+ # of the keys in glade by right clicking on Calculator.rb
48
+
49
+ def keys__clicked(button)
50
+ case button.label
51
+ when "C" then @builder["display"].text = ""
52
+ when "=" then
53
+ begin # this doesn't catch all errors
54
+ @builder["display.text"] = eval(@builder["display"].text).to_s
55
+ rescue
56
+ @builder["display.text"] = "error"
57
+ end
58
+ else @builder["display.text"] = @builder["display"].text + button.label
59
+ end
60
+ end
61
+
62
+ end
63
+
@@ -0,0 +1,243 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <interface>
3
+ <requires lib="gtk+" version="2.16"/>
4
+ <!-- interface-naming-policy project-wide -->
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"/>
9
+ <child>
10
+ <object class="GtkVBox" id="vbox1">
11
+ <property name="visible">True</property>
12
+ <child>
13
+ <object class="GtkEntry" id="display">
14
+ <property name="visible">True</property>
15
+ <property name="can_focus">True</property>
16
+ <property name="editable">False</property>
17
+ <property name="invisible_char">•</property>
18
+ <property name="xalign">1</property>
19
+ </object>
20
+ <packing>
21
+ <property name="position">0</property>
22
+ </packing>
23
+ </child>
24
+ <child>
25
+ <object class="GtkTable" id="table1">
26
+ <property name="visible">True</property>
27
+ <property name="n_rows">4</property>
28
+ <property name="n_columns">4</property>
29
+ <child>
30
+ <object class="GtkButton" id="Calculator.keys[0]">
31
+ <property name="label" translatable="yes">button</property>
32
+ <property name="visible">True</property>
33
+ <property name="can_focus">True</property>
34
+ <property name="receives_default">True</property>
35
+ </object>
36
+ </child>
37
+ <child>
38
+ <object class="GtkButton" id="Calculator.keys[1]">
39
+ <property name="label" translatable="yes">button</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="left_attach">1</property>
46
+ <property name="right_attach">2</property>
47
+ </packing>
48
+ </child>
49
+ <child>
50
+ <object class="GtkButton" id="Calculator.keys[2]">
51
+ <property name="label" translatable="yes">button</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="left_attach">2</property>
58
+ <property name="right_attach">3</property>
59
+ </packing>
60
+ </child>
61
+ <child>
62
+ <object class="GtkButton" id="Calculator.keys[3]">
63
+ <property name="label" translatable="yes">button</property>
64
+ <property name="visible">True</property>
65
+ <property name="can_focus">True</property>
66
+ <property name="receives_default">True</property>
67
+ </object>
68
+ <packing>
69
+ <property name="left_attach">3</property>
70
+ <property name="right_attach">4</property>
71
+ </packing>
72
+ </child>
73
+ <child>
74
+ <object class="GtkButton" id="Calculator.keys[4]">
75
+ <property name="label" translatable="yes">button</property>
76
+ <property name="visible">True</property>
77
+ <property name="can_focus">True</property>
78
+ <property name="receives_default">True</property>
79
+ </object>
80
+ <packing>
81
+ <property name="top_attach">1</property>
82
+ <property name="bottom_attach">2</property>
83
+ </packing>
84
+ </child>
85
+ <child>
86
+ <object class="GtkButton" id="Calculator.keys[5]">
87
+ <property name="label" translatable="yes">button</property>
88
+ <property name="visible">True</property>
89
+ <property name="can_focus">True</property>
90
+ <property name="receives_default">True</property>
91
+ </object>
92
+ <packing>
93
+ <property name="left_attach">1</property>
94
+ <property name="right_attach">2</property>
95
+ <property name="top_attach">1</property>
96
+ <property name="bottom_attach">2</property>
97
+ </packing>
98
+ </child>
99
+ <child>
100
+ <object class="GtkButton" id="keys[6]">
101
+ <property name="label" translatable="yes">button</property>
102
+ <property name="visible">True</property>
103
+ <property name="can_focus">True</property>
104
+ <property name="receives_default">True</property>
105
+ </object>
106
+ <packing>
107
+ <property name="left_attach">2</property>
108
+ <property name="right_attach">3</property>
109
+ <property name="top_attach">1</property>
110
+ <property name="bottom_attach">2</property>
111
+ </packing>
112
+ </child>
113
+ <child>
114
+ <object class="GtkButton" id="Calculator.keys[7]">
115
+ <property name="label" translatable="yes">button</property>
116
+ <property name="visible">True</property>
117
+ <property name="can_focus">True</property>
118
+ <property name="receives_default">True</property>
119
+ </object>
120
+ <packing>
121
+ <property name="left_attach">3</property>
122
+ <property name="right_attach">4</property>
123
+ <property name="top_attach">1</property>
124
+ <property name="bottom_attach">2</property>
125
+ </packing>
126
+ </child>
127
+ <child>
128
+ <object class="GtkButton" id="Calculator.keys[8]">
129
+ <property name="label" translatable="yes">button</property>
130
+ <property name="visible">True</property>
131
+ <property name="can_focus">True</property>
132
+ <property name="receives_default">True</property>
133
+ </object>
134
+ <packing>
135
+ <property name="top_attach">2</property>
136
+ <property name="bottom_attach">3</property>
137
+ </packing>
138
+ </child>
139
+ <child>
140
+ <object class="GtkButton" id="Calculator.keys[9]">
141
+ <property name="label" translatable="yes">button</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="left_attach">1</property>
148
+ <property name="right_attach">2</property>
149
+ <property name="top_attach">2</property>
150
+ <property name="bottom_attach">3</property>
151
+ </packing>
152
+ </child>
153
+ <child>
154
+ <object class="GtkButton" id="Calculator.keys[10]">
155
+ <property name="label" translatable="yes">button</property>
156
+ <property name="visible">True</property>
157
+ <property name="can_focus">True</property>
158
+ <property name="receives_default">True</property>
159
+ </object>
160
+ <packing>
161
+ <property name="left_attach">2</property>
162
+ <property name="right_attach">3</property>
163
+ <property name="top_attach">2</property>
164
+ <property name="bottom_attach">3</property>
165
+ </packing>
166
+ </child>
167
+ <child>
168
+ <object class="GtkButton" id="Calculator.keys[11]">
169
+ <property name="label" translatable="yes">button</property>
170
+ <property name="visible">True</property>
171
+ <property name="can_focus">True</property>
172
+ <property name="receives_default">True</property>
173
+ </object>
174
+ <packing>
175
+ <property name="left_attach">3</property>
176
+ <property name="right_attach">4</property>
177
+ <property name="top_attach">2</property>
178
+ <property name="bottom_attach">3</property>
179
+ </packing>
180
+ </child>
181
+ <child>
182
+ <object class="GtkButton" id="Calculator.keys[12]">
183
+ <property name="label" translatable="yes">button</property>
184
+ <property name="visible">True</property>
185
+ <property name="can_focus">True</property>
186
+ <property name="receives_default">True</property>
187
+ </object>
188
+ <packing>
189
+ <property name="top_attach">3</property>
190
+ <property name="bottom_attach">4</property>
191
+ </packing>
192
+ </child>
193
+ <child>
194
+ <object class="GtkButton" id="Calculator.keys[13]">
195
+ <property name="label" translatable="yes">button</property>
196
+ <property name="visible">True</property>
197
+ <property name="can_focus">True</property>
198
+ <property name="receives_default">True</property>
199
+ </object>
200
+ <packing>
201
+ <property name="left_attach">1</property>
202
+ <property name="right_attach">2</property>
203
+ <property name="top_attach">3</property>
204
+ <property name="bottom_attach">4</property>
205
+ </packing>
206
+ </child>
207
+ <child>
208
+ <object class="GtkButton" id="Calculator.keys[14]">
209
+ <property name="label" translatable="yes">button</property>
210
+ <property name="visible">True</property>
211
+ <property name="can_focus">True</property>
212
+ <property name="receives_default">True</property>
213
+ </object>
214
+ <packing>
215
+ <property name="left_attach">2</property>
216
+ <property name="right_attach">3</property>
217
+ <property name="top_attach">3</property>
218
+ <property name="bottom_attach">4</property>
219
+ </packing>
220
+ </child>
221
+ <child>
222
+ <object class="GtkButton" id="Calculator.keys[15]">
223
+ <property name="label" translatable="yes">button</property>
224
+ <property name="visible">True</property>
225
+ <property name="can_focus">True</property>
226
+ <property name="receives_default">True</property>
227
+ </object>
228
+ <packing>
229
+ <property name="left_attach">3</property>
230
+ <property name="right_attach">4</property>
231
+ <property name="top_attach">3</property>
232
+ <property name="bottom_attach">4</property>
233
+ </packing>
234
+ </child>
235
+ </object>
236
+ <packing>
237
+ <property name="position">1</property>
238
+ </packing>
239
+ </child>
240
+ </object>
241
+ </child>
242
+ </object>
243
+ </interface>
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require 'vrlib.rb'
4
+
5
+ #make program output in real time so errors visible in VR.
6
+ STDOUT.sync = true
7
+ STDERR.sync = true
8
+
9
+ my_path = File.expand_path(File.dirname(__FILE__))
10
+ require_all Dir.glob(my_path + "/bin/**/*.rb")
11
+
12
+ Calculator.new.show
13
+
@@ -0,0 +1,46 @@
1
+ --- !ruby/object:VR_ENV
2
+ backup_path: /home/eric
3
+ browser: firefox
4
+ current_file: /home/eric/vrp/vrx/visualruby_examples/child_window/main.rb
5
+ font_name: Monospace 10
6
+ glade_path: glade-gtk2
7
+ height: 637
8
+ open_files:
9
+ - /home/eric/vrp/vrx/visualruby_examples/child_window/bin/ChildWindowDemo.rb
10
+ - /home/eric/vrp/vrx/visualruby_examples/child_window/bin/MyChildClass.rb
11
+ - /home/eric/vrp/vrx/visualruby_examples/child_window/main.rb
12
+ open_folders:
13
+ - /home/eric/vrp/vrx/visualruby_examples/child_window
14
+ - /home/eric/vrp/vrx/visualruby_examples/child_window/bin
15
+ - /home/eric/vrp/vrx/visualruby_examples/child_window/bin/glade
16
+ panel_pos: 360
17
+ rdoc_command_line: rdoc -x README
18
+ run_command_line: ruby main.rb
19
+ tab_spaces: 2
20
+ width: 1031
21
+ builder: !ruby/object:Gtk::Builder {}
22
+ glade_box: !ruby/object:VR::SimpleComboBoxEntry {}
23
+ browser_box: !ruby/object:VR::SimpleComboBoxEntry {}
24
+ buttonChooseFolder: ! '...'
25
+ vbox1: !ruby/object:Gtk::VBox {}
26
+ label7: ! 'Editor Font:'
27
+ label3: ! 'Back-up Path:'
28
+ window1: !ruby/object:Gtk::Window {}
29
+ hbuttonbox1: !ruby/object:Gtk::HButtonBox {}
30
+ buttonCancel: Cancel
31
+ label8: ! 'RDoc Command Line: '
32
+ table1: !ruby/object:Gtk::Table {}
33
+ buttonTryBrowser: Try
34
+ buttonSave: Save
35
+ hboxBrowser: !ruby/object:Gtk::HBox {}
36
+ hboxGlade: !ruby/object:Gtk::HBox {}
37
+ label1: <big><big><b>Visual Ruby Settings</b></big></big>
38
+ label2: ! 'Browser Command Line:'
39
+ label4: ! 'Spaces for Each Tab in Editor:'
40
+ label5: ! 'Glade Command Line:'
41
+ label6: ! 'Command Line when "Run" is pressed:'
42
+ hbox1: !ruby/object:Gtk::HBox {}
43
+ hbox2: !ruby/object:Gtk::HBox {}
44
+ hbox3: !ruby/object:Gtk::HBox {}
45
+ hbox4: !ruby/object:Gtk::HBox {}
46
+ buttonTryGlade: Try
@@ -0,0 +1,41 @@
1
+
2
+ ##
3
+ # This is a "main" GUI class for a program. It will spawn
4
+ # child windows that must close when MyClass's window closes
5
+ # It starts a Gtk.main program loop by calling show().
6
+ # When the user clicks the "X" button, the window will be
7
+ # automatically destroyed, and Gtk.main.quit will be called, terminating
8
+ # the Gtk.main loop. This happens because this window's destroy
9
+ # signal has been set in glade to: destroy_window.
10
+ #
11
+ # If you don't understand, don't worry. Here's what you
12
+ # need to know:
13
+ #
14
+ # 1) The show() method takes one argument: a reference to the parent.
15
+ # If no parent is given, it will open as Modal.
16
+ # 2) Call show_window() (window appears)
17
+ # 3) You can terminate the loop by calling destroy_window()
18
+ #
19
+
20
+ class ChildWindowDemo #(change name)
21
+
22
+ include GladeGUI
23
+
24
+ def buttonOpenChild__clicked(*argv)
25
+ win = MyChildClass.new
26
+ win.set_parent(self)
27
+ win.show #self = parent
28
+ end
29
+
30
+ def modalButton__clicked(*argv)
31
+ MyChildClass.new.show
32
+ end
33
+
34
+ def cancelButton__clicked(*argv)
35
+ destroy_window()
36
+ end
37
+
38
+ end
39
+
40
+
41
+
@@ -0,0 +1,42 @@
1
+ ##
2
+ # This shows how to make child windows that close when
3
+ # their parent window closes.
4
+ #
5
+ # Passing a reference to the parent to the new() method solves all the
6
+ # complications of running the child and parent simultaniously.
7
+ #
8
+ # The passing the parent to the new() constructor does three things:
9
+ #
10
+ # 1) It registers the parent window (using win.transient_for=parent )
11
+ # 2) It causes show() to run the child in the main window's
12
+ # Gtk.main loop, instead of starting its own loop.
13
+ # 3) It causes destroy_window() to destroy only the child without
14
+ # calling Gtk.main.quit, so the main program's loop continues after
15
+ # the child is destroyed.
16
+ #
17
+ # So, just pass a reference to the parent to load_glade for all child windows,
18
+ # and everyting will be done automatically:
19
+ #
20
+ class MyChildClass
21
+
22
+ include GladeGUI
23
+
24
+ def initialize(parent = nil)
25
+ super()
26
+ set_parent(parent) if parent
27
+ if parent.nil?
28
+ @hello.label = "MODAL WINDOW\nThis window freezes the parent program until it is closed.\nTherefore you can't open any more windows, or close the\n parent window until you close this window."
29
+ @window1.title = "Modal Window"
30
+ else
31
+ @hello.label = "NON-MODAL WINDOW\n This window doesn't interfere with the operation of the rest of the program.\nTherefore you can open more of these windows if you like.\nIf you close the parent, I will close too."
32
+ @window1.title = "Non-Modal Window"
33
+ end
34
+ end
35
+
36
+ # When cancel clicked in MyChildClass.glade
37
+ def buttonCancel__clicked(*argv)
38
+ destroy_window()
39
+ end
40
+
41
+ end
42
+