visualruby 3.0.10 → 3.0.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 46496d9e3a786ea8b5f5f1b6a89b813b6cd0d09a
4
- data.tar.gz: d8876ec02fb0ed6e7b05f31ed7d0737bb3239e16
3
+ metadata.gz: 7db31ad34e0e7b2513be6233c8114076d23ec55d
4
+ data.tar.gz: 636fe8b6150eb4d660aee38d868bb5eaca3f3c6f
5
5
  SHA512:
6
- metadata.gz: 030b6c8b25c1312e5360076d557145e68805a0db37ec2a5f36f046485365decd9f6ab0f3611df3fb0c3e68cb1817812e2b1bd72f2f927219c7e999a4768095b1
7
- data.tar.gz: 7963567437104f66bd96f322efcf05d1c3c2047c9cc080c3fd81d51758552a74df5aa687d74726baeea0098278c012665dc07ded4825a6de531d7e9d05b8fa1f
6
+ metadata.gz: 8f5897f76551d4c65420d3c4476c210154e0f724add59be939f9a7e5cd701b4a0657768204d96fe9320999c66b573d408ce1cd88a34ff07f4145d89fa49a79ac
7
+ data.tar.gz: 6ba18aa633a78c2ab3eb3b42fa98f0dcbe96d497daab6c7d53cf95c02d42f9d42e8630212438daec3349acc79fc3dbdccd69216d5664311656985c42c9a8362d
data/.vr_settings.yaml CHANGED
@@ -1,19 +1,26 @@
1
1
  --- !ruby/object:VR_ENV
2
- width: 1261
3
- height: 720
2
+ vr_yaml_file: ".vr_settings.yaml"
3
+ width: 1364
4
+ height: 691
4
5
  panel_pos: 360
5
- run_command_line: ruby main.rb
6
+ notebook_panel_position: 400
7
+ run_command_line: ruby vr
6
8
  open_files:
7
- - "/home/eric/vrp/vr3/bin/editor/VR_Document.rb"
8
- - "/home/eric/vrp/vr3/bin/main/VR_Main.rb"
9
- - "/home/eric/vrp/vr3/vrlib/lib/treeview/FileTreeView.rb"
10
- - "/home/eric/vrp/vr3/vr.gemspec"
9
+ - "/home/eric/vrp/vr3/vrlib/yard_hack/common.css"
10
+ - "/home/eric/vrp/vr3/vrlib/README.md"
11
+ - "/home/eric/vrp/vr3/vrlib/doc/top-level-namespace.html"
12
+ - "/home/eric/vrp/vr3/vrlib/doc/method_list.html"
13
+ - "/home/eric/vrp/vr3/vrlib/doc/class_list.html"
11
14
  open_folders:
12
15
  - "/home/eric/vrp/vr3"
13
16
  - "/home/eric/vrp/vr3/bin"
14
17
  - "/home/eric/vrp/vr3/bin/main"
15
- current_file: "/home/eric/vrp/vr3/vr.gemspec"
16
- rdoc_command_line: rdoc -x README
17
- vr_yaml_file: ".vr_settings.yaml"
18
- notebook_panel_position: 400
19
- current_line: 21
18
+ - "/home/eric/vrp/vr3/vrlib"
19
+ - "/home/eric/vrp/vr3/vrlib/doc"
20
+ - "/home/eric/vrp/vr3/vrlib/doc/css"
21
+ - "/home/eric/vrp/vr3/vrlib/yard_hack"
22
+ current_file: "/home/eric/vrp/vr3/vrlib/doc/top-level-namespace.html"
23
+ current_line: 435
24
+ rdoc_command_line: yardoc - site/*.md
25
+ builder: !ruby/object:Gtk::Builder {}
26
+ top_level_window: false
@@ -55,8 +55,11 @@ class VR_File_Tree < VR::FileTreeView
55
55
  FileUtils.cd(fn)
56
56
  @main.shell.buffer.text = $VR_ENV.rdoc_command_line + fn + "\n"
57
57
  @main.shell.buffer.text += `#{$VR_ENV.rdoc_command_line} 2>&1`
58
- VR_Tools.replace_html_in_docs()
59
- FileUtils.cd(old_dir)
58
+ VR_Tools.replace_html_in_docs()
59
+ FileUtils.copy("yard_hack/common.css", "#{fn}/doc/css/common.css") if File.exists?("yard_hack/common.css")
60
+ FileUtils.copy("yard_hack/index.html", "#{fn}/doc/index.html") if File.exists?("yard_hack/index.html")
61
+ FileUtils.copy("yard_hack/index.html", "#{fn}/doc/frames.html") if File.exists?("yard_hack/index.html")
62
+ FileUtils.cd(old_dir)
60
63
  VR_Tools.popen("#{$VR_ENV_GLOBAL.browser} #{fn}/doc/index.html")
61
64
  @main.file_tree.refresh()
62
65
  end
@@ -114,8 +117,7 @@ class VR_File_Tree < VR::FileTreeView
114
117
  end
115
118
  end
116
119
 
117
- def self__key_press_event(view, evt)
118
- alert evt.keyval.to_s
120
+ def self__key_press_event(view, evt)
119
121
  return unless evt.keyval == 65535 #delete
120
122
  return unless file_name = get_selected_path()
121
123
  return unless alert("Delete: <b>" + File.basename(file_name) + "</b> ?" , :button_yes => "Delete", :button_no=>"Cancel", :parent=>self, :headline => "Delete FIle?")
data/vrlib/lib/Alert.rb CHANGED
@@ -1,7 +1,8 @@
1
1
 
2
2
  module VR
3
3
 
4
- class Alert # :nodoc:
4
+ # @see #alert
5
+ class Alert
5
6
 
6
7
  attr_accessor :answer
7
8
 
@@ -56,53 +57,40 @@ module VR
56
57
 
57
58
  end
58
59
 
59
- # The alert method creates a pop-up alert in your program. It creates a modal
60
- # window that halts execution of your code until the user closes it. Its great
61
- # for displaying messages and debugging. It also has the option of displaying
62
- # a text entry box for getting text input from the user. This small tool can save
63
- # hundreds of lines of code in your programs. It can be used extesnively to
64
- # display all types of messages and request all types of user input.
65
- #
66
- # There is an example project called "alert_box" in the home/visualruby/examples folder
67
- # that shows several ways to use this versitle method.
68
- #
69
- # The alert box can disply 1, 2 or 3 buttons. The first button is denoted using the symbol: :button_yes
70
- # button and is always displayed. You can add a :button_no button and a :button_cancel
71
- # as well. The alert method will return a value based on the button pressed:
72
- #
73
- # Returns:
74
- # true or String = :button_yes pressed (returns user input String when its a text entry box)
75
- # false = :button_no pressed
76
- # nil = :button_cancel pressed
77
- # nil = "x" button closed window
78
- #
79
- # The first argument is a text message to display. It is the only required argument.
80
- # If you just provide a text message, the message will pop-up with a button that says "Ok"
81
- # that closes the window.
82
- #
83
- # The second, optional argument is a hash of flags that can configure the alert box to
84
- # have much more functionality:
85
- #
86
- # :buton_yes = label for button that returns true (default: "Ok", "Save" when input_text is set))
87
- # :button_no = label for button that returns false (default "Cancel" when input_text is set)
88
- # :button_cancel = label for button that returns nil
89
- # :input_text = default text for input box. Triggers appearance of input box.
90
- # :width = with of window (used to make longer messages with wrapping look good.)
91
- # :title = title of the window (appears in bar at top) Default = :headline
92
- # :headline = large text that appears at the top.
93
- # :parent = reference to parent window. Alert box will always be on top of this parent. Usually=self!
94
- #
95
- # ALL THESE FLAGS ARE OPTIONAL
96
- #
97
- # If you want to add these buttons, just set their values to whatever text you want them to
98
- # display. For example, :button_no => "Abort Process" will cause the second button, to display
99
- # "Abort Process" and if the user clicks it, the alert method will return false.
100
- #
101
- # There are many examples in the "alert_box" example project.
102
- #
103
- def alert(msg, flags = {})
60
+ # The alert method creates a pop-up alert in your program. It creates a modal
61
+ # window that halts execution of your code until the user closes it. Its great
62
+ # for displaying messages and debugging. It also has the option of displaying
63
+ # a text entry box for getting text input from the user. This small tool can save
64
+ # hundreds of lines of code in your programs. It can be used extesnively to
65
+ # display all types of messages and request all types of user input.
66
+ #
67
+ # @example
68
+ # alert("Continue?", button_no: "Nope", button_cancel: "Quit", parent: self)
69
+ #
70
+ # The alert box can disply 1, 2 or 3 buttons. The first button is denoted using the symbol: :button_yes
71
+ # button and is always displayed. You can add :button_no and :button_cancel.
72
+ # If you want to add these buttons, just set their values to whatever text you want them to
73
+ # display and they will appear. Likewise, if you add the option, :input_text, a text entry box will
74
+ # appear.
75
+ #
76
+ # There are many examples in the "alert_box" example project.
77
+ # @param [String] message text message to display in alert box. Uses markup.
78
+ # @param [Hash] options -- Hash of options: :button_yes => text on the button that returns true.
79
+ # @option options [String] :button_yes Text that appears on the "yes" button.
80
+ # @option options [String] :button_no Text taht appears on "no" button. (set to make no button appear)
81
+ # @option options [String] :button_cancel Text taht appears on "cancel" button. (set to make cancel button appear)
82
+ # @option options [String] :input_text Text that appears in entry box. (set to make entry box appear)
83
+ # @option options [String] :headline Larger headline over text message.
84
+ # @option options [String] :title Title of the alert box window. Defaults to :headline.
85
+ # @option options [Integer] :width The width in pixels of the window for wrapping text.
86
+ # @option options [Object #builder] :parent The window that the alert box is always on top of.
87
+ # @return [String] text in the text entry field when the :button_yes button is pressed
88
+ # @return [true] When the :button_yes button is selected and there's no text entry box.
89
+ # @return [false] When :button_no is pressed
90
+ # @return [nil] When :button_cancel os the "X" button is pressed.
91
+ def alert(message, options = {})
104
92
  @answer = VR::DialogAnswer.new()
105
- VR::Alert.new(msg, @answer, flags).show_glade(flags[:parent])
93
+ VR::Alert.new(message, @answer, options).show_glade(options[:parent])
106
94
  return @answer.answer
107
95
  end
108
96
 
@@ -1,24 +1,22 @@
1
- #
2
- # GladeGUI connects your class to a glade form.
3
- # It will load a .glade
4
- # file into memory, enabling your ruby programs to have a GUI interface.
5
- #
6
- # GladeGUI works by adding an instance variable, @builder to your class. The @builder
7
- # variable is an instance of {Gtk::Builder}[http://ruby-gnome2.sourceforge.jp/hiki.cgi?Gtk%3A%3ABuilder]
8
- # It holds references to all your windows and widgets.
9
- #
10
- # ==Include the GladeGUI interface
1
+ # =GladeGUI
2
+ #
3
+ # GladeGUI connects your class to a glade form.
4
+ # It will load a .glade
5
+ # file into memory, enabling your ruby programs to have a GUI interface.
11
6
  #
12
- # To use the GladeGUI interface, include this line after your
13
- # “class” declaration:
7
+ # GladeGUI works by adding an instance variable, @builder to your class. The @builder
8
+ # variable is an instance of {Gtk::Builder}[http://ruby-gnome2.sourceforge.jp/hiki.cgi?Gtk%3A%3ABuilder]
9
+ # It holds references to all your windows and widgets.
14
10
  #
15
- # include GladeGUI
11
+ # =Include the GladeGUI interface
16
12
  #
17
- # Here is an example of a class that uses GladeGUI:
18
- #
19
- # class MyClass
20
- # include GladeGUI
21
- # end
13
+ # To use the GladeGUI interface, include this line after your
14
+ # “class” declaration:
15
+ # @example
16
+ # class MyClass
17
+ # include GladeGUI
18
+ # ...
19
+ # End
22
20
  #
23
21
  # GladeGUI will load a corresponding
24
22
  # glade file for this class. It knows which glade file to load by using a naming
@@ -86,10 +84,9 @@
86
84
  # the “email” widget in glade using the @email variable. so
87
85
  # you don’t need to include the above line of code. (see
88
86
  # set_glade_variables() method.)
89
-
90
-
91
87
  module GladeGUI
92
-
88
+
89
+ # @attribute A Builder object that holds references to everyhting from the galde form.
93
90
  attr_accessor :builder
94
91
 
95
92
  ##
@@ -118,25 +115,23 @@ end
118
115
 
119
116
 
120
117
  ##
121
- # This will Load the glade form.
122
- # It will create a Gtk::Builder object from your glade file.
123
- # The Gtk::Builder object is stored in the instance variable, @builder.
124
- # You can get a reference to any of the widgets on the glade form by
125
- # using the @builder object:
126
- #
127
- # widget = @builder["name"]
128
- #
129
- # Normally, you should give your widgets names of instance variables: i.e. @email
130
- # so they can be autoloaded using the set_glade_all() method. For example,
131
- # the value of the @email vaiable would be loaded into a Gtk:Entry named "email"
132
- # in your glade form. It saves you from having to do this:
118
+ # This will Load the glade form according to the naming convention: MyClass.rb => MyClass.glade.
119
+ # It will create a Gtk::Builder object from your glade file.
120
+ # The Gtk::Builder object is stored in the instance variable, @builder.
121
+ # You can get a reference to any of the widgets on the glade form by
122
+ # using the @builder object:
133
123
  #
134
- # @builder[:email] = @email
124
+ # @example
125
+ # widget = @builder["name"]
135
126
  #
136
- # You can also pass a reference to a parent class that also includes GladeGUI.
137
- # Then the child window will run simultaniously with the parent.
138
- #
139
-
127
+ # Normally, you should give your widgets names of instance variables: i.e. @email
128
+ # so they can be autoloaded when the glade form is shown using the #show_glade method. For example,
129
+ # the value of the @email vaiable would be loaded into a Gtk:Entry named "email"
130
+ # in your glade form. It saves you from having to do this:
131
+ #
132
+ # @example
133
+ # @builder[:email].text = @email
134
+ #
140
135
  def load_glade()
141
136
  caller__FILE__ = my_class_file_path()
142
137
  file_name = File.join(File.split(caller__FILE__)[0] , "glade", class_name(self) + ".glade")
@@ -145,18 +140,22 @@ end
145
140
  @builder.connect_signals{ |handle| method(handle) }
146
141
  end
147
142
 
148
- def class_name(obj) # :nodoc:
143
+ private def class_name(obj) # :nodoc:
149
144
  /.*\b(\w+)$/.match(obj.class.name)[1]
150
145
  end
151
146
 
152
- # The parse_signals() method is what connects gtk's signals to your methods. For example,
147
+ # Connects gtk's signals to your methods according to the naming convention widget__signal. For example,
153
148
  # when you place a button called "button1" in your glade form, and declare a method called
154
149
  # "button1__clicked", they aren't connected to each other. Clicking on the button does nothing
155
150
  # and the method never gets called. After running parse_signals(), the "clicked" signal is
156
151
  # connected to the method named "button1__clicked" so when the user clicks the button, the method is called.
157
152
  #
158
- # Remember that it will enforce the naming convention: gladename__signal. No arguments.
159
-
153
+ # @example methods
154
+ # button1__clicked(*args)
155
+ # self__row_activated(*args)
156
+ # instance_variable__key_press_event(*args)
157
+ #
158
+ # Remember that it will enforce the naming convention: name__signal (two underscores).
160
159
  def parse_signals()
161
160
  meths = self.class.instance_methods()
162
161
  meths.each do |meth|
@@ -220,25 +219,24 @@ end
220
219
  get_glade_variables(obj)
221
220
  end
222
221
 
223
- # Populates the glade form from the fields of an ActiveRecord object.
224
- # So instead of having to assign each widget a value:
225
- #
226
- # @builder["ARObject.name"].text = @name
227
- # @builder["ARObject.address"].text = @address
228
- # @builder["ARObject.email"].text = @eamil
229
- # @builder["ARObject.phone"].text = @phone
230
- #
231
- # you can write one line of code:
232
- #
233
- # set_glade_active_record()
234
- #
235
- # The optional parameter is seldom used because you usually want the
236
- # glade form to populate from the calling class. If you passed another object,
237
- # the form would populate from it.
222
+ # Populates the glade form from the fields of an ActiveRecord object.
223
+ # So instead of having to assign each widget a value:
224
+ # @example
225
+ # @builder["name"].text = @name
226
+ # @builder["address"].text = @address
227
+ # @builder["email"].text = @eamil
228
+ # @builder["phone"].text = @phone
229
+ #
230
+ # You can write one line of code:
231
+ # @example
232
+ # set_glade_active_record()
238
233
  #
239
- # obj - type ActiveRecord::Base
234
+ # The optional parameter is seldom used because you usually want the
235
+ # glade form to populate from the calling class. If you passed another object,
236
+ # the form would populate from it.
240
237
  #
241
-
238
+ # @param [ActiveRecord::Base] obj Any activerecod base object.
239
+ # @return none
242
240
  def set_glade_active_record(obj = self)
243
241
  return if not defined? @attributes
244
242
  obj.attributes.each_pair { |key, val| fill_control(class_name(obj) + "." + key, val) }
@@ -310,26 +308,26 @@ end
310
308
  end
311
309
 
312
310
  #
313
- # Populates the instance variables from the glade form.
314
- # This works for Gtk:Button, Gtk::Entry, Gtk::Label and Gtk::Checkbutton.
315
- # So instead of having to assign instance variable:
316
- #
317
- # @name = @builder["DataObjectGUI.name"].text
318
- # @address = @builder["DataObjectGUI.address"].text
319
- # @eamil = @builder["DataObjectGUI.email"].text
320
- # @phone = @builder["DataObjectGUI.phone"].text
321
- #
322
- # you can write one line of code:
311
+ # Populates your instance variables from the glade form.
312
+ # This works for Gtk:Button, Gtk::Entry, Gtk::Label and Gtk::Checkbutton.
313
+ # So instead of having to assign instance variable:
314
+ #
315
+ # @example
316
+ # @name = @builder["name"].text
317
+ # @address = @builder["address"].text
318
+ # @eamil = @builder["email"].text
319
+ # @phone = @builder["phone"].text
323
320
  #
324
- # get_glade_variables()
321
+ # You can write one line of code:
322
+ #
323
+ # @example
324
+ # get_glade_variables()
325
325
  #
326
- # The optional parameter is seldom used because you usually want the
327
- # glade form to populate from the calling class. If you passed another object,
328
- # the form would populate from it.
329
- #
330
- # obj - type Object
331
- #
332
-
326
+ # The optional parameter is seldom used because you usually want the
327
+ # glade form to populate from the calling class. If you passed another object,
328
+ # the form would populate from it.
329
+ # @param [Object] obj Any object with instance variables with same names as in galde form.
330
+ # @return none
333
331
  def get_glade_variables(obj = self)
334
332
  obj.instance_variables.each do |v|
335
333
  v = v.to_s #fix for ruby 1.9 giving symbols
@@ -372,7 +370,7 @@ end
372
370
  end
373
371
 
374
372
 
375
-
373
+ # Ignore, just helps figure out name of class including GladeGUI
376
374
  def self.included(obj)
377
375
  temp = caller[0].split(":") #correct for windows C:\Users\george etc.
378
376
  caller_path_to_class_file, = temp[0].size == 1 ? temp[0] + ":" + temp[1] : temp[0]
@@ -384,12 +382,12 @@ end
384
382
  end
385
383
 
386
384
 
387
- #
388
- #This shows the window and will start the Gtk.main loop (for top level windows.)
389
- #Using show_glade() is better than using Gtk.main and
390
- #Gtk.main.quit because visualruby automatically opens and closes all windows properly.
391
- #
392
- #
385
+
386
+ # The method you call to show the glade form.
387
+ # It loads the glade form, sets all the form's widgets to your instance variables,
388
+ # connects all your methods to their signals, and starts Gtk.main loop if necessary.
389
+ # @param [Object #builder] parent Optional parent that this window will always be on top of.
390
+ # @return nothing.
393
391
  def show_glade(parent = nil)
394
392
  load_glade()
395
393
  if parent then
@@ -402,25 +400,29 @@ end
402
400
  @top_level_window = Gtk.main_level == 0 ? true : false
403
401
  Gtk.main if @top_level_window or @builder[:window1].modal? #need new Gtk.main for blocking!
404
402
  end
405
-
403
+
404
+ # Called when window is destroyed when you execute: <tt>@builder[:window1].destroy</tt>
405
+ # It manages the Gtk.main loop for all the windows.
406
406
  def window1__destroy(*args)
407
407
  Gtk.main_quit if @top_level_window or @builder["window1"].modal?
408
408
  end
409
409
 
410
+ # Convenience method so you can just make a button named "buttonCancel" and it will work. This
411
+ # method isn't called in code, its triggered by a user clicking a button named "buttonCancel".
410
412
  def buttonCancel__clicked(*a)
411
413
  @builder[:window1].destroy
412
414
  end
413
415
 
414
-
415
- def active_record_valid?(show_errors = true)
416
- get_glade_all
417
- if not self.valid?
418
- alset(self.errors.full_messages.join("\n\n")) if show_errors
419
- self.reload
420
- return false
421
- end
422
- return true
423
- end
416
+ #
417
+ # private def active_record_valid?(show_errors = true)
418
+ # get_glade_all
419
+ # if not self.valid?
420
+ # alset(self.errors.full_messages.join("\n\n")) if show_errors
421
+ # self.reload
422
+ # return false
423
+ # end
424
+ # return true
425
+ # end
424
426
 
425
427
 
426
428
  end
@@ -1,14 +1,24 @@
1
1
 
2
2
  module VR
3
3
 
4
- class FileTreeView < VR::TreeView # :nodoc:
4
+ class FileTreeView < VR::TreeView
5
5
 
6
6
  include GladeGUI
7
7
 
8
- attr_accessor :root, :glob, :validation_block
9
-
8
+
9
+
10
+ # A code block that further eliminates files included in the tree. If this block returns false
11
+ # for the entry, it will be excluded.
12
+
13
+ attr_accessor :validation_block, :root, :glob
14
+
15
+ # FileTreeView creates a TreeView of files with folders and icons.
16
+ # Often you should subclass this class for a particular use.
17
+ # @param [String] root Root folder of the tree
18
+ # @param [String] icon_path Path to a folder where icons are stored. See VR::IconHash
19
+ # @param [String] glob Glob designating the files to be included. Google: "ruby glob" for more.
10
20
  def initialize(root = Dir.pwd, icon_path = nil, glob = "*")
11
- @root = root
21
+ @root = File.expand_path(root)
12
22
  @glob = glob
13
23
  super(:file => {:pix => Gdk::Pixbuf, :file_name => String}, :empty => TrueClass, :path => String, :modified_date => VR::DateCol, :sort_on => String)
14
24
  col_visible( :path => false, :modified_date => false, :sort_on => false, :empty => false)
@@ -21,7 +31,11 @@ module VR
21
31
  self.visible = true # necessary!
22
32
  end
23
33
 
24
- # flags: :root => root path, :open_folders => array of paths to open
34
+ # Refreshes the file tree, optionally with a new root folder, and optionally opening an array of folders.
35
+ # @param [Hash] flags Optionally pass a root or array of folders to open.
36
+ # @option flags [String] :root Path to root folder to open
37
+ # @option flags [Array] :open_folders A list of folders to open, possibly from #get_open_folders.
38
+ # Default: the currently open folders, so the tree doesn't collapse when refreshed.
25
39
  def refresh(flags={})
26
40
  @root = flags[:root] if flags[:root]
27
41
  open_folders = flags[:open_folders] ? flags[:open_folders] : get_open_folders()
@@ -31,9 +45,10 @@ module VR
31
45
  # fill_folder(@root_iter)
32
46
  # expand_row(@root_iter.path, false)
33
47
  open_folders(open_folders)
34
- end
35
-
36
- def fill_folder(parent_iter)
48
+ end
49
+
50
+ # reads a folder from the disk and expands it.
51
+ private def fill_folder(parent_iter)
37
52
  model.remove(parent_iter.first_child) #remove dummy record
38
53
  files = Dir.glob(File.join(parent_iter[id(:path)],@glob))
39
54
  files = files.select &@validation_block if @validation_block
@@ -48,6 +63,7 @@ module VR
48
63
  expand_row(iter.path, false)
49
64
  end
50
65
 
66
+ # Expands or collapses the currently selected row
51
67
  def expand_or_collapse_folder()
52
68
  return unless row = selected_rows.first
53
69
  if row_expanded?(row.path)
@@ -55,22 +71,25 @@ module VR
55
71
  else
56
72
  self__row_expanded(self, row, row.path)
57
73
  end
58
- end
59
-
74
+ end
75
+
76
+ # returns an array of open folders.
60
77
  def get_open_folders()
61
78
  expanded = []
62
79
  map_expanded_rows {|view, path| expanded << model.get_iter(path)[id(:path)] }
63
80
  return expanded
64
- end
65
-
81
+ end
82
+
83
+ # Opens a list of folders.
66
84
  def open_folders(folder_paths)
67
85
  model.each do |model, path, iter|
68
86
  if folder_paths.include?(iter[id(:path)])
69
87
  self__row_expanded(self, iter, path)
70
88
  end
71
89
  end
72
- end
73
-
90
+ end
91
+
92
+ # Adds a file to the tree under a given parent iter.
74
93
  def add_file(filename, parent = @root_iter)
75
94
  my_path = File.dirname(filename)
76
95
  model.each do |model, path, iter|
@@ -92,17 +111,18 @@ module VR
92
111
  end
93
112
  return child
94
113
  end
95
-
96
- def set_show_expanders(expand)
114
+
115
+ # Sets whether or not the little arrow expanders appear net to the folders.
116
+ # @param [Boolean] expand Whether or not to show the expanders next to the folders.
117
+ def set_show_expanders(expand = true)
97
118
  self.show_expanders = expand
98
119
  self.level_indentation = expand ? 0 : 12
99
- end
100
-
101
- def folder?(iter)
102
- iter[id(:sort_on)][0,1] == "0"
103
- end
104
-
105
- def get_selected_path() (selection.selected ? selection.selected[id(:path)] : nil) end
120
+ end
121
+
122
+ # Returns the full filename with path of the selected file
123
+ def get_selected_path()
124
+ selection.selected ? selection.selected[id(:path)] : nil
125
+ end
106
126
 
107
127
  end
108
128
 
@@ -5,30 +5,30 @@ module VR
5
5
 
6
6
  include ViewCommon
7
7
 
8
- #The new() constructor takes a Hash that defines the columns as its only argument. The Hash defines
9
- #symbols as the keys to give an ID to each column. The Hash also defines the type (class) of the column.
10
- #A simple constructor looks like this:
8
+ # The new() constructor takes a Hash that defines the columns as its only argument. The Hash defines
9
+ # symbols as the keys to give an ID to each column. The Hash also defines the type (class) of the column.
10
+ # A simple constructor looks like this:
11
+ # @example
12
+ # @view = VR::ListView.new(:name => String, :date => DateTime)
11
13
  #
12
- # @view = VR::ListView.new(:name => String, :date => DateTime)
14
+ # You can create columns with any type of data including your own classes, and classes subclassed
15
+ # from ActiveRecordBase. The common types that are included by default are:
13
16
  #
14
- #You can create columns with any type of data including your own classes, and classes subclassed
15
- #from ActiveRecordBase. The common types that are included by default are:
17
+ # * String - Displays and edits as a String.
18
+ # * Integer - Displays number, edits like a String.
19
+ # * FixNum - ditto
20
+ # * Integer - ditto
21
+ # * Float - ditto
22
+ # * DateTime - Displays in a default date format(editable), edits like a String
23
+ # * TrueClass - Displays as a GtkCheckButton, click checkbox to edit
24
+ # * GdkPixbuf - Just an Image, uneditable
25
+ # * VR::CalendarCol - Displays in a default date format(editable), calendar window to edit.
26
+ # * VR::SpinCol - Displays as a number with default number of digits, edits like a GtkSpinButton
27
+ # * VR::ComboCol - Displays String, edits like a GtkComboBoxEntry
28
+ # * VR::ProgressCol - Displays a GtkProgressBar, uneditable
29
+ # * VR::TextCol - For long strings. Displays first 20 characters in view, edits with simple text editor.
16
30
  #
17
- #- String - Displays and edits as a String.
18
- #- Integer - Displays number, edits like a String.
19
- #- FixNum - ditto
20
- #- Integer - ditto
21
- #- Float - ditto
22
- #- DateTime - Displays in a default date format(editable), edits like a String
23
- #- TrueClass - Displays as a GtkCheckButton, click checkbox to edit
24
- #- GdkPixbuf - Just an Image, uneditable
25
- #- VR::CalendarCol - Displays in a default date format(editable), calendar window to edit.
26
- #- VR::SpinCol - Displays as a number with default number of digits, edits like a GtkSpinButton
27
- #- VR::ComboCol - Displays String, edits like a GtkComboBoxEntry
28
- #- VR::ProgressCol - Displays a GtkProgressBar, uneditable
29
- #- VR::TextCol - For long strings. Displays first 20 characters in view, edits with simple text editor.
30
- #
31
- #You can also add your own user-defined column types. See: {Adding Your Own Objects to ListView}[link:/site/ListView%20Tutorial.html#objects].
31
+ # You can also add your own user-defined column types. See: {Adding Your Own Objects to ListView}[link:/site/ListView%20Tutorial.html#objects].
32
32
  #
33
33
 
34
34
  def initialize(cls)
@@ -1,6 +1,6 @@
1
1
  ---
2
- - - <nav id="home-section" class="section">
3
- - <nav id="home-section" class= "section" ><a href=/index.html><img src=http://visualruby.net/img/splash_small.png></a><br>
2
+ - - "<title>File List</title>"
3
+ - "<a href=file.README.html><img src=http://visualruby.net/img/splash_small.png></a><p><p>"
4
4
  - - Video:uploading_gems.avi
5
5
  - <iframe width="640" height="480" src="http://www.youtube.com/embed/6VsXlCjU89c"
6
6
  frameborder="0" allowfullscreen></iframe>
@@ -47,22 +47,10 @@
47
47
  - "<a href=http://ruby-gnome2.sourceforge.jp/hiki.cgi?Gtk%3A%3AProgressBar>Gtk::ProgressBar</a>"
48
48
  - - GtkSelection
49
49
  - "<A href=http://ruby-gnome2.sourceforge.jp/hiki.cgi?Gtk%3A%3ASelection>Gtk::Selection</a>"
50
- - - <div id="home-section" class="section">
51
- - <div id="home-section" class= "section" ><a href=/index.html><img src=http://visualruby.net/img/splash_small.png></a><br>
52
- - - "<title>index - RDoc Documentation</title>"
50
+ - - <li class="r1"><span class="object_link"><a href="index.html" title="README">README</a></a></li>
51
+ - "<!-- README deleted makes problem. -->"
52
+ - - '<div id="search">Search: <input type="text" /></div>'
53
53
  - "<title>Visual Ruby -- GUI with Ruby and Glade</title>"
54
- - - "<title>Download - RDoc Documentation</title>"
55
- - "<title>Download Visual Ruby -- Make GUIs with Ruby!</title>"
56
- - - "<title>RubyGems Tutorial - RDoc Documentation</title>"
57
- - "<title>RubyGems Tutorial - Use Visual Ruby to Push Gems!</title>"
58
- - - "<title>Signals Tutorial - RDoc Documentation</title>"
59
- - "<title>Ruby Signals Tutorial -- signal_connect with Visual Ruby!</title>"
60
- - - "<title>ListView Tutorial - RDoc Documentation</title>"
61
- - "<title>Ruby ListView Tutorial</title>"
62
- - - "<title>Child Windows Tutorial - RDoc Documentation</title>"
63
- - "<title>Ruby Child Windows Tutorial</title>"
64
- - - "<title>Help--Contact Info - RDoc Documentation</title>"
65
- - "<title>Visual Ruby Help</title>"
66
54
  - - video:activerecord.avi
67
55
  - <iframe width="640" height="480" src="http://www.youtube.com/embed/uySVKltD7fk"
68
56
  frameborder="0" allowfullscreen></iframe>
@@ -73,5 +61,5 @@
73
61
  - - video:activerecord2.avi
74
62
  - <iframe width="640" height="480" src="http://www.youtube.com/embed/3f1Lj5Q2Q8g"
75
63
  frameborder="0" allowfullscreen></iframe>
76
- - - <a href="./index.html" rel="home">Home</a>
77
- - "<a href=/index.html><img src=http://visualruby.net/img/splash_small.png></a>"
64
+ - - <h1 id="full_list_header">File List</h1>
65
+ - "<!- deleted -->"
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.10
4
+ version: 3.0.11
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-14 00:00:00.000000000 Z
12
+ date: 2016-06-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: gtk3
@@ -111,7 +111,6 @@ files:
111
111
  - "./examples/active_record2/bin/glade/Paycheck.glade"
112
112
  - "./examples/active_record2/db/development.sqlite3"
113
113
  - "./examples/active_record2/main.rb"
114
- - "./examples/alert_box/.vr_settings.yaml"
115
114
  - "./examples/alert_box/bin/AlertBoxDemo.rb"
116
115
  - "./examples/alert_box/bin/glade/AlertBoxDemo.glade"
117
116
  - "./examples/alert_box/main.rb"
@@ -170,7 +169,6 @@ files:
170
169
  - "./examples/listview_objects/bin/glade/DataObject.glade"
171
170
  - "./examples/listview_objects/bin/glade/ListViewObjectsGUI.glade"
172
171
  - "./examples/listview_objects/main.rb"
173
- - "./examples/settings_file/.vr_settings.yaml"
174
172
  - "./examples/settings_file/bin/MainApp.rb"
175
173
  - "./examples/settings_file/bin/SavableSettings.rb"
176
174
  - "./examples/settings_file/bin/glade/MainApp.glade"
@@ -202,7 +200,6 @@ files:
202
200
  - "./skeleton/project/bin/glade/MyClass.glade"
203
201
  - "./skeleton/project/main.rb"
204
202
  - "./vr"
205
- - "./vrlib/.vr_settings.yaml"
206
203
  - "./vrlib/lib/Alert.rb"
207
204
  - "./vrlib/lib/DragDrop.rb"
208
205
  - "./vrlib/lib/GladeGUI.rb"
@@ -1,17 +0,0 @@
1
- --- !ruby/object:VR_ENV
2
- width: 1329
3
- height: 753
4
- panel_pos: 513
5
- run_command_line: ruby main.rb
6
- open_files:
7
- - "/home/eric/vrp/vr3/examples/alert_box/bin/AlertBoxDemo.rb"
8
- - "/home/eric/vrp/vr3/examples/alert_box/main.rb"
9
- open_folders:
10
- - "/home/eric/vrp/vr3/examples/alert_box"
11
- - "/home/eric/vrp/vr3/examples/alert_box/bin"
12
- current_file: "/home/eric/vrp/vr3/examples/alert_box/bin/AlertBoxDemo.rb"
13
- rdoc_command_line: rdoc -x README
14
- vr_yaml_file: ".vr_settings.yaml"
15
- notebook_panel_position: 400
16
- current_line: 61
17
- settings_file_version: 1
@@ -1,24 +0,0 @@
1
- --- !ruby/object:VR_ENV
2
- width: 1264
3
- height: 727
4
- panel_pos: 267
5
- run_command_line: ruby main.rb
6
- open_files:
7
- - "/home/eric/vrp/vr3/examples/settings_file/main.rb"
8
- - "/home/eric/vrp/vr3/examples/settings_file/bin/SavableSettings.rb"
9
- - "/home/eric/vrp/vr3/examples/settings_file/bin/MainApp.rb"
10
- open_folders:
11
- - "/home/eric/vrp/vr3/examples/settings_file"
12
- - "/home/eric/vrp/vr3/examples/settings_file/bin"
13
- - "/home/eric/vrp/vr3/examples/settings_file/bin/glade"
14
- current_file: "/home/eric/vrp/vr3/examples/settings_file/bin/SavableSettings.rb"
15
- rdoc_command_line: rdoc -x README
16
- vr_yaml_file: ".vr_settings.yaml"
17
- notebook_panel_position: 444
18
- current_line: 24
19
- filename: ".vr_settings.yaml"
20
- backup_path: "/home/eric"
21
- browser: firefox
22
- font_name: Monospace 10
23
- glade_path: glade-3
24
- tab_spaces: 2
@@ -1,21 +0,0 @@
1
- --- !ruby/object:VR_ENV
2
- vr_yaml_file: ".vr_settings.yaml"
3
- width: 1364
4
- height: 691
5
- panel_pos: 264
6
- notebook_panel_position: 400
7
- run_command_line: ruby main.rb
8
- open_files:
9
- - "/home/eric/vrp/vr3/vrlib/Untitled"
10
- open_folders:
11
- - "/home/eric/vrp/vr3/vrlib"
12
- - "/home/eric/vrp/vr3/vrlib/lib"
13
- - "/home/eric/vrp/vr3/vrlib/lib/treeview"
14
- - "/home/eric/vrp/vr3/vrlib/site"
15
- current_file: "/home/eric/vrp/vr3/vrlib/Untitled"
16
- current_line: 1
17
- rdoc_command_line: rdoc -x /*.glade -x /*.css -x /*.gemspec -x /*.yaml
18
- builder: !ruby/object:Gtk::Builder {}
19
- top_level_window: false
20
- settings_file_version: 1
21
- filename: ".vr_settings.yaml"