visualruby 3.0.13 → 3.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.vr_settings.yaml +14 -3
- data/examples/alert_box/.vr_settings.yaml +3 -1
- data/lib/Alert.rb +5 -1
- data/lib/DragDrop.rb +1 -2
- data/lib/GladeGUI.rb +52 -54
- data/lib/oinspect/ObjectInspectorGUI.rb +5 -1
- data/lib/oinspect/VariablesListView.rb +1 -1
- data/lib/treeview/FileTreeView.rb +9 -2
- data/src/main/VR_File_Tree.rb +1 -0
- data/src/main/VR_Main.rb +8 -6
- data/src/main/glade/VR_Main.glade +14 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 548fa010bc3b7ce7b356805a4b3d2d8a43dfe2fc
|
4
|
+
data.tar.gz: b9a0df4868b9c4a09a8ee7e916be8dc18ef6b396
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ca8a27231a06ea45a1ccfa7130fd55524d70f26025fccf765fb208ad1751ef0e9c7a3e876b16bd269bbc31d80ad057ff0b67e38e0982553c94db1f1aeb5585a
|
7
|
+
data.tar.gz: e6edfd3ab82abeeebb2736b7269bafa454f6042f01877e25a8c4268dfdea5a767b500dfb22bc54acc4173eae917e12220ac1a60473e26bb7c7f441d3edb76c5a
|
data/.vr_settings.yaml
CHANGED
@@ -6,11 +6,22 @@ panel_pos: 360
|
|
6
6
|
notebook_panel_position: 400
|
7
7
|
run_command_line: ruby vr
|
8
8
|
open_files:
|
9
|
-
- "/home/eric/vrp/vr3/
|
9
|
+
- "/home/eric/vrp/vr3/lib/GladeGUI.rb"
|
10
|
+
- "/home/eric/vrp/vr3/lib/treeview/IterMethods.rb"
|
11
|
+
- "/home/eric/vrp/vr3/src/main/VR_Main.rb"
|
12
|
+
- "/home/eric/vrp/vr3/src/main/VR_File_Tree.rb"
|
13
|
+
- "/home/eric/vrp/vr3/lib/oinspect/ObjectInspectorGUI.rb"
|
14
|
+
- "/home/eric/vrp/vr3/lib/Alert.rb"
|
10
15
|
open_folders:
|
11
16
|
- "/home/eric/vrp/vr3"
|
12
|
-
|
13
|
-
|
17
|
+
- "/home/eric/vrp/vr3/examples"
|
18
|
+
- "/home/eric/vrp/vr3/lib"
|
19
|
+
- "/home/eric/vrp/vr3/lib/oinspect"
|
20
|
+
- "/home/eric/vrp/vr3/src"
|
21
|
+
- "/home/eric/vrp/vr3/src/main"
|
22
|
+
- "/home/eric/vrp/vr3/src/main/glade"
|
23
|
+
current_file: "/home/eric/vrp/vr3/src/main/VR_Main.rb"
|
24
|
+
current_line: 162
|
14
25
|
rdoc_command_line: yardoc lib - site/*.*
|
15
26
|
builder: !ruby/object:Gtk::Builder {}
|
16
27
|
top_level_window: false
|
@@ -14,5 +14,7 @@ open_folders:
|
|
14
14
|
- "/home/eric/vrp/vr3/examples/alert_box/bin/glade"
|
15
15
|
current_file: "/home/eric/vrp/vr3/examples/alert_box/main.rb"
|
16
16
|
current_line: 9
|
17
|
-
rdoc_command_line: rdoc
|
17
|
+
rdoc_command_line: rdoc
|
18
|
+
builder: !ruby/object:Gtk::Builder {}
|
19
|
+
top_level_window: false
|
18
20
|
settings_file_version: 1
|
data/lib/Alert.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
|
2
2
|
module VR
|
3
|
+
# Class that the #alert method uses.
|
3
4
|
|
4
5
|
# @see #alert
|
5
6
|
class Alert
|
@@ -8,6 +9,9 @@ module VR
|
|
8
9
|
|
9
10
|
include GladeGUI
|
10
11
|
|
12
|
+
# Just passes on values from #alert method.
|
13
|
+
# @see #alert
|
14
|
+
|
11
15
|
def initialize(message, answer, flags = {})
|
12
16
|
@flags = flags
|
13
17
|
@answer = answer
|
@@ -48,7 +52,7 @@ module VR
|
|
48
52
|
end
|
49
53
|
|
50
54
|
# Helper to VR::Alert so :answer can be passed by reference.
|
51
|
-
class DialogAnswer
|
55
|
+
class DialogAnswer
|
52
56
|
attr_accessor :answer
|
53
57
|
end
|
54
58
|
|
data/lib/DragDrop.rb
CHANGED
data/lib/GladeGUI.rb
CHANGED
@@ -4,43 +4,41 @@
|
|
4
4
|
# It will load a .glade
|
5
5
|
# file into memory, enabling your ruby programs to have a GUI interface.
|
6
6
|
#
|
7
|
-
# GladeGUI works by adding an instance variable
|
7
|
+
# GladeGUI works by adding an instance variable named "builder" to your class. The "builder"
|
8
8
|
# variable is an instance of {Gtk::Builder}[http://ruby-gnome2.sourceforge.jp/hiki.cgi?Gtk%3A%3ABuilder]
|
9
9
|
# It holds references to all your windows and widgets.
|
10
10
|
#
|
11
|
-
# =Include the GladeGUI interface
|
11
|
+
# = Include the GladeGUI interface
|
12
12
|
#
|
13
|
-
# To use the GladeGUI interface, include this line
|
14
|
-
#
|
15
|
-
#
|
16
|
-
#
|
17
|
-
#
|
18
|
-
#
|
19
|
-
#
|
20
|
-
#
|
21
|
-
#
|
22
|
-
#
|
23
|
-
# convention:
|
13
|
+
# To use the GladeGUI interface, include this line in your code:
|
14
|
+
#
|
15
|
+
#
|
16
|
+
# class MyClass
|
17
|
+
# include GladeGUI
|
18
|
+
# end
|
19
|
+
#
|
20
|
+
# GladeGUI will load a corresponding
|
21
|
+
# glade file for this class. It knows which glade file to load by using a naming
|
22
|
+
# convention:
|
24
23
|
#
|
25
|
-
# /
|
24
|
+
# /folder/MyClass.rb
|
26
25
|
#
|
27
|
-
#
|
26
|
+
# Will load this glade file:
|
28
27
|
#
|
29
|
-
# /
|
28
|
+
# /folder/glade/MyClass.glade
|
30
29
|
#
|
31
|
-
#
|
32
|
-
#
|
33
|
-
#
|
34
|
-
# the same name (case sensitive).
|
30
|
+
# The class, the class file name and the glade file name must match.
|
31
|
+
# You should always name your class, script, and glade file
|
32
|
+
# the same name (case sensitive).
|
35
33
|
#
|
36
|
-
#
|
34
|
+
# == <tt>builder</tt> variable holds all your widgets
|
37
35
|
#
|
38
|
-
#
|
36
|
+
# So when you "load" your class's glade file where is it loaded?
|
39
37
|
#
|
40
|
-
#
|
41
|
-
#
|
42
|
-
#
|
43
|
-
#
|
38
|
+
# GladeGUI adds an instance variable, builder to your class.
|
39
|
+
# It loads all the windows and widgets from your glade file into @builder.
|
40
|
+
# So, you use <tt>@builder</tt> to manipulate everything in you class's GUI.
|
41
|
+
# <tt>@builder</tt> is set when you call the show_glade() method, as this code shows:
|
44
42
|
#
|
45
43
|
# class MyClass
|
46
44
|
#
|
@@ -56,34 +54,34 @@
|
|
56
54
|
#
|
57
55
|
# end
|
58
56
|
#
|
59
|
-
#
|
60
|
-
#
|
61
|
-
#
|
62
|
-
#
|
63
|
-
#
|
64
|
-
#
|
65
|
-
# Here's another example: Suppose you have a glade form with a Gtk::Entry box on it named "email."
|
66
|
-
# You could set the text that appears in the Gtk::Entry by setting the Gtk::Entry#text property:
|
57
|
+
# After show_glade() is called, you can access any of your form's windows or widgets
|
58
|
+
# using the @builder variable:
|
59
|
+
# ```ruby
|
60
|
+
# @builder["window1"].title = "This is the title that appears at the top."
|
61
|
+
# ```
|
67
62
|
#
|
63
|
+
# Here's another example: Suppose you have a glade form with a Gtk::Entry box on it named "email."
|
64
|
+
# You could set the text that appears in the Gtk::Entry by setting the Gtk::Entry#text property:
|
65
|
+
# ```ruby
|
68
66
|
# @builder["email"].text = "harvey@harveyserver.com"
|
69
|
-
#
|
70
|
-
#
|
67
|
+
# ```
|
68
|
+
# Now the email adddess is set with a new value:
|
71
69
|
#
|
72
|
-
#
|
70
|
+
# http://visualruby.net/img/gladegui_simple.jpg
|
73
71
|
#
|
74
|
-
#
|
75
|
-
#
|
76
|
-
#
|
72
|
+
# == Auto fill your glade form
|
73
|
+
# You can streamline the process of setting-up your forms by
|
74
|
+
# auto-filling the widgets from instance variables with the same name.
|
77
75
|
#
|
78
|
-
#
|
79
|
-
#
|
80
|
-
#
|
81
|
-
#
|
82
|
-
#
|
83
|
-
#
|
84
|
-
#
|
85
|
-
#
|
86
|
-
#
|
76
|
+
# When assigning names to widgets in glade, give them names that
|
77
|
+
# correspond to your instance variables. For example, if you want
|
78
|
+
# to edit an email address on the glade form, create an instance
|
79
|
+
# variable named @email in your class. Then, in glade, you
|
80
|
+
# add a Gtk::Entry widget to your form and set its name to
|
81
|
+
# “email”. The advantage of this is that GladeGUI will populate
|
82
|
+
# the “email” widget in glade using the @email variable. so
|
83
|
+
# you don’t need to include the above line of code. (see
|
84
|
+
# set_glade_variables() method.)
|
87
85
|
module GladeGUI
|
88
86
|
|
89
87
|
# @attribute A Builder object that holds references to everything from the galde form.
|
@@ -140,7 +138,7 @@ end
|
|
140
138
|
@builder.connect_signals{ |handle| method(handle) }
|
141
139
|
end
|
142
140
|
|
143
|
-
private def class_name(obj)
|
141
|
+
private def class_name(obj)
|
144
142
|
/.*\b(\w+)$/.match(obj.class.name)[1]
|
145
143
|
end
|
146
144
|
|
@@ -286,7 +284,7 @@ end
|
|
286
284
|
end
|
287
285
|
|
288
286
|
|
289
|
-
def fill_control(glade_name, val)
|
287
|
+
def fill_control(glade_name, val)
|
290
288
|
control = @builder[glade_name]
|
291
289
|
control_name = glade_name.split(".")[1]
|
292
290
|
control ||= @builder[control_name] if control_name
|
@@ -349,7 +347,7 @@ end
|
|
349
347
|
end
|
350
348
|
|
351
349
|
|
352
|
-
def get_glade_active_record(obj)
|
350
|
+
def get_glade_active_record(obj)
|
353
351
|
return if not defined? @attributes
|
354
352
|
obj.attributes.each_pair do |key, val|
|
355
353
|
control = @builder[class_name(obj) + "." + key]
|
@@ -414,8 +412,8 @@ end
|
|
414
412
|
@builder[:window1].destroy
|
415
413
|
end
|
416
414
|
|
417
|
-
def
|
418
|
-
return unless evt.keyval ==
|
415
|
+
def window1__key_press_event(view, evt)
|
416
|
+
return unless evt.keyval == Gdk::Keyval::KEY_F8
|
419
417
|
oinspect
|
420
418
|
end
|
421
419
|
|
@@ -1,5 +1,7 @@
|
|
1
|
-
module VR::ObjectInspector
|
2
1
|
|
2
|
+
# ObjectInspector isn't meant to be called directly, #oinspect for API.
|
3
|
+
module VR::ObjectInspector
|
4
|
+
# ObjectInspector isn't meant to be called directly, see #oinspect for API.
|
3
5
|
class ObjectInspectorGUI
|
4
6
|
|
5
7
|
include GladeGUI
|
@@ -34,6 +36,8 @@ end
|
|
34
36
|
# the execution, and display an object in a window like this:
|
35
37
|
# alert anyobject
|
36
38
|
#
|
39
|
+
# Also, at any window, if you press the F8 key, the object inspector will run. Try it.
|
40
|
+
|
37
41
|
# http://visualruby.net/img/object_inspector.jpg
|
38
42
|
#
|
39
43
|
def oinspect(obj=self)
|
@@ -130,8 +130,15 @@ module VR
|
|
130
130
|
selection.selected ? selection.selected[id(:path)] : nil
|
131
131
|
end
|
132
132
|
|
133
|
-
|
134
|
-
|
133
|
+
# Creates a Hash of icons for VR::FileTreeView. The folder should contain
|
134
|
+
# .png files that correspond to file extensions. For example, rb.png
|
135
|
+
# would be an icon that displays next to files with an .rb extension.
|
136
|
+
# A file named "unknown.png" should be in the folder for file types that
|
137
|
+
# aren't found.
|
138
|
+
class IconHash < Hash
|
139
|
+
|
140
|
+
# Sets the path to find the icons
|
141
|
+
# @param [String] path Path to folder where icons are.
|
135
142
|
def initialize(path)
|
136
143
|
Dir.glob(path + "/*.png").each do |f|
|
137
144
|
ext = File.basename(f, ".png")
|
data/src/main/VR_File_Tree.rb
CHANGED
@@ -58,6 +58,7 @@ class VR_File_Tree < VR::FileTreeView
|
|
58
58
|
VR_Tools.replace_html_in_docs()
|
59
59
|
if File.exists?("yard_hack/index.html.replace")
|
60
60
|
FileUtils.copy("yard_hack/index.html.replace", "#{fn}/doc/index.html")
|
61
|
+
FileUtils.copy("yard_hack/index.html.replace", "#{fn}/doc/frames.html")
|
61
62
|
FileUtils.copy("yard_hack/common.css", "#{fn}/doc/css/common.css")
|
62
63
|
end
|
63
64
|
FileUtils.cd(old_dir)
|
data/src/main/VR_Main.rb
CHANGED
@@ -152,16 +152,18 @@ class VR_Main
|
|
152
152
|
VR_Tools.replace_html_in_docs()
|
153
153
|
if File.exists?("yard_hack/index.html.replace")
|
154
154
|
FileUtils.copy("yard_hack/index.html.replace", "doc/index.html")
|
155
|
+
FileUtils.copy("yard_hack/index.html.replace", "doc/frames.html")
|
155
156
|
FileUtils.copy("yard_hack/common.css", "doc/css/common.css")
|
156
157
|
end
|
157
|
-
|
158
|
+
|
159
|
+
end
|
160
|
+
|
161
|
+
def toolViewRDoc__clicked(*a)
|
162
|
+
VR_Tools.popen("#{$VR_ENV_GLOBAL.browser} #{Dir.pwd}/doc/index.html")
|
158
163
|
end
|
159
164
|
|
160
165
|
def toolSave__clicked(*a) # saves open tab
|
161
|
-
@tabs.docs[@tabs.page].try_to_save(false) # false = don't ask
|
162
|
-
# command = $VR_ENV.rdoc_command_line.split(" ")[0]
|
163
|
-
# file = @tabs.docs[@tabs.page].full_path_file
|
164
|
-
# run_command("#{command} #{file}")
|
166
|
+
@tabs.docs[@tabs.page].try_to_save(false) # false = don't ask
|
165
167
|
end
|
166
168
|
|
167
169
|
def menuNewWindow__activate(*a)
|
@@ -275,7 +277,7 @@ class VR_Main
|
|
275
277
|
def buttonFind_clicked
|
276
278
|
str = @builder["entryFind"].text
|
277
279
|
str = str.length < 2 ? @tabs.docs[@tabs.page].selected_text() : str
|
278
|
-
return if str.length < 2
|
280
|
+
return if str.nil? or str.length < 2
|
279
281
|
text = (@builder["radioOnDisk"].active?) ? @tabs.find_in_all(str) : @tabs.find_in_tabs(str)
|
280
282
|
@shell.hilight_links(text, false)
|
281
283
|
end
|
@@ -342,6 +342,20 @@
|
|
342
342
|
<property name="homogeneous">True</property>
|
343
343
|
</packing>
|
344
344
|
</child>
|
345
|
+
<child>
|
346
|
+
<object class="GtkToolButton" id="toolViewRDoc">
|
347
|
+
<property name="visible">True</property>
|
348
|
+
<property name="can_focus">False</property>
|
349
|
+
<property name="tooltip_text" translatable="yes">Open Documentation in browser.</property>
|
350
|
+
<property name="label" translatable="yes">View Docs</property>
|
351
|
+
<property name="use_underline">True</property>
|
352
|
+
<property name="stock_id">gtk-info</property>
|
353
|
+
</object>
|
354
|
+
<packing>
|
355
|
+
<property name="expand">False</property>
|
356
|
+
<property name="homogeneous">True</property>
|
357
|
+
</packing>
|
358
|
+
</child>
|
345
359
|
</object>
|
346
360
|
<packing>
|
347
361
|
<property name="expand">False</property>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: visualruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Cunningham
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir:
|
10
10
|
- "."
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-06-
|
12
|
+
date: 2016-06-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: gtk3
|