visualruby 3.0.2 → 3.0.3

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 (121) hide show
  1. checksums.yaml +4 -4
  2. data/.vr_settings.yaml +27 -0
  3. data/bin/editor/VR_Document.rb +156 -156
  4. data/bin/editor/VR_TabSearch.rb +37 -37
  5. data/bin/editor/VR_Tabs.rb +82 -82
  6. data/bin/editor/VR_TextShell.rb +49 -52
  7. data/bin/editor/VR_TextViewCommon.rb +31 -31
  8. data/bin/main/GemTree.rb +14 -14
  9. data/bin/main/NewProjectGUI.rb +24 -24
  10. data/bin/main/OpenProject.rb +53 -53
  11. data/bin/main/ProjectChooserView.rb +31 -31
  12. data/bin/main/ProjectTree.rb +17 -17
  13. data/bin/main/RubygemsAPI.rb +73 -63
  14. data/bin/main/VR_ENV.rb +29 -29
  15. data/bin/main/VR_ENV_GLOBAL.rb +52 -52
  16. data/bin/main/VR_File_Tree.rb +88 -88
  17. data/bin/main/VR_Local_Gem_Tree.rb +53 -53
  18. data/bin/main/VR_Main.rb +240 -238
  19. data/bin/main/VR_Remote_Gem_Tree.rb +41 -41
  20. data/bin/main/glade/Splash.glade +19 -0
  21. data/bin/tools/VR_Tools.rb +72 -72
  22. data/examples/active_record/.vr_settings.yaml +50 -0
  23. data/examples/active_record/active_record.rb +2 -2
  24. data/examples/active_record/bin/ChoosePerson.rb +10 -10
  25. data/examples/active_record/bin/Person.rb +6 -6
  26. data/examples/active_record2/.vr_settings.yaml +23 -0
  27. data/examples/active_record2/bin/CompanyGUI.rb +42 -42
  28. data/examples/active_record2/bin/Employee.rb +13 -13
  29. data/examples/active_record2/bin/Employer.rb +5 -5
  30. data/examples/active_record2/bin/Paycheck.rb +5 -5
  31. data/examples/active_record2/main.rb +4 -4
  32. data/examples/alert_box/bin/AlertBoxDemo.rb +40 -50
  33. data/examples/alert_box/bin/glade/AlertBoxDemo.glade +14 -45
  34. data/examples/all_widgets/.vr_settings.yaml +18 -0
  35. data/examples/all_widgets/bin/AllWidgets.rb +19 -16
  36. data/examples/calculator/.vr_settings.yaml +18 -0
  37. data/examples/calculator/bin/Calculator.rb +22 -22
  38. data/examples/child_window/.vr_settings.yaml +21 -0
  39. data/examples/child_window/bin/ChildWindowDemo.rb +10 -10
  40. data/examples/child_window/bin/ModalWindow.rb +4 -4
  41. data/examples/child_window/bin/ModelessWindow.rb +4 -4
  42. data/examples/child_window/bin/MyChildClass.rb +10 -10
  43. data/examples/drag_drop/.vr_settings.yaml +16 -0
  44. data/examples/drag_drop/bin/DragDropDemo.rb +28 -28
  45. data/examples/filetreeview/.vr_settings.yaml +20 -0
  46. data/examples/filetreeview/bin/ProjectTree.rb +13 -23
  47. data/examples/filetreeview/bin/ProjectTreeGUI.rb +18 -17
  48. data/examples/listview/.vr_settings.yaml +19 -0
  49. data/examples/listview/bin/SongListView.rb +72 -72
  50. data/examples/listview/bin/SongListViewGUI.rb +52 -52
  51. data/examples/listview_objects/.vr_settings.yaml +19 -0
  52. data/examples/listview_objects/bin/DataObject.rb +23 -23
  53. data/examples/listview_objects/bin/ListViewObjects.rb +29 -29
  54. data/examples/listview_objects/bin/ListViewObjectsGUI.rb +12 -12
  55. data/examples/settings_file/bin/MainApp.rb +25 -25
  56. data/examples/settings_file/bin/SavableSettings.rb +25 -26
  57. data/examples/settings_file/settings.yaml +1 -1
  58. data/examples/simple_ruby_gui/.vr_settings.yaml +20 -0
  59. data/examples/simple_ruby_gui/bin/DataObjectGUI.rb +12 -12
  60. data/examples/treeview/.vr_settings.yaml +17 -0
  61. data/examples/treeview/bin/MyClass.rb +18 -17
  62. data/examples/treeview/bin/glade/MyClass.glade +61 -6
  63. data/skeleton/document/NewWindow.rb +8 -8
  64. data/skeleton/project/.vr_settings.yaml +15 -0
  65. data/skeleton/project/bin/MyClass.rb +7 -7
  66. data/vr +38 -41
  67. data/vrlib/doc/images/add.png +0 -0
  68. data/vrlib/doc/images/arrow_up.png +0 -0
  69. data/vrlib/doc/images/brick.png +0 -0
  70. data/vrlib/doc/images/brick_link.png +0 -0
  71. data/vrlib/doc/images/bug.png +0 -0
  72. data/vrlib/doc/images/bullet_black.png +0 -0
  73. data/vrlib/doc/images/bullet_toggle_minus.png +0 -0
  74. data/vrlib/doc/images/bullet_toggle_plus.png +0 -0
  75. data/vrlib/doc/images/date.png +0 -0
  76. data/vrlib/doc/images/delete.png +0 -0
  77. data/vrlib/doc/images/find.png +0 -0
  78. data/vrlib/doc/images/macFFBgHack.png +0 -0
  79. data/vrlib/doc/images/package.png +0 -0
  80. data/vrlib/doc/images/page_green.png +0 -0
  81. data/vrlib/doc/images/page_white_text.png +0 -0
  82. data/vrlib/doc/images/page_white_width.png +0 -0
  83. data/vrlib/doc/images/plugin.png +0 -0
  84. data/vrlib/doc/images/ruby.png +0 -0
  85. data/vrlib/doc/images/tag_blue.png +0 -0
  86. data/vrlib/doc/images/tag_green.png +0 -0
  87. data/vrlib/doc/images/transparent.png +0 -0
  88. data/vrlib/doc/images/wrench.png +0 -0
  89. data/vrlib/doc/images/wrench_orange.png +0 -0
  90. data/vrlib/doc/images/zoom.png +0 -0
  91. data/vrlib/lib/Alert.rb +98 -55
  92. data/vrlib/lib/DragDrop.rb +43 -43
  93. data/vrlib/lib/GladeGUI.rb +207 -207
  94. data/vrlib/lib/IconHash.rb +10 -10
  95. data/vrlib/lib/SavableClass.rb +38 -38
  96. data/vrlib/lib/SimpleComboBoxEntry.rb +3 -3
  97. data/vrlib/lib/treeview/FileTreeView.rb +71 -70
  98. data/vrlib/lib/treeview/IterMethods.rb +35 -35
  99. data/vrlib/lib/treeview/ListView.rb +25 -25
  100. data/vrlib/lib/treeview/TreeView.rb +15 -15
  101. data/vrlib/lib/treeview/ViewCommon.rb +134 -131
  102. data/vrlib/lib/treeview/columns/CalendarCol.rb +48 -48
  103. data/vrlib/lib/treeview/columns/CellRendererCombo.rb +26 -26
  104. data/vrlib/lib/treeview/columns/CellRendererDate.rb +25 -25
  105. data/vrlib/lib/treeview/columns/CellRendererObject.rb +37 -37
  106. data/vrlib/lib/treeview/columns/CellRendererPhone.rb +25 -25
  107. data/vrlib/lib/treeview/columns/CellRendererPixbuf.rb +8 -8
  108. data/vrlib/lib/treeview/columns/CellRendererProgress.rb +8 -8
  109. data/vrlib/lib/treeview/columns/CellRendererSpin.rb +17 -17
  110. data/vrlib/lib/treeview/columns/CellRendererText.rb +18 -18
  111. data/vrlib/lib/treeview/columns/CellRendererToggle.rb +25 -25
  112. data/vrlib/lib/treeview/columns/ComboCol.rb +12 -12
  113. data/vrlib/lib/treeview/columns/CurrencyCol.rb +13 -13
  114. data/vrlib/lib/treeview/columns/DateCol.rb +10 -10
  115. data/vrlib/lib/treeview/columns/ImageCol.rb +16 -16
  116. data/vrlib/lib/treeview/columns/SpinCol.rb +5 -5
  117. data/vrlib/lib/treeview/columns/TextCol.rb +24 -24
  118. data/vrlib/lib/treeview/columns/TreeViewColumn.rb +71 -76
  119. data/vrlib/rdoc_replace.yaml +36 -36
  120. metadata +43 -6
  121. data/Splash.rb +0 -40
@@ -6,29 +6,29 @@ module VR_Tools
6
6
  end
7
7
  end
8
8
 
9
- def VR_Tools.popen(cmd)
10
- begin
11
- IO.popen(cmd)
12
- rescue
13
- alert("The following command couldn't run:\n\n<b>#{cmd}</b>\n\nCheck the path in Tools > Settings")
14
- end
15
- end
9
+ def VR_Tools.popen(cmd)
10
+ begin
11
+ IO.popen(cmd)
12
+ rescue
13
+ alert("The following command couldn't run:\n\n<b>#{cmd}</b>\n\nCheck the path in Tools > Settings")
14
+ end
15
+ end
16
16
 
17
17
 
18
18
 
19
19
  def VR_Tools.back_up()
20
- path = File.join(ENV["HOME"], "visualruby_backup", Dir.pwd.gsub(ENV["HOME"], ""))
20
+ path = File.join(ENV["HOME"], "visualruby_backup", Dir.pwd.gsub(ENV["HOME"], ""))
21
21
  t = Time.now
22
22
  out_dir = path + "/" + Dir.pwd.split("/").last + " Backup " + t.month().to_s + '-' + t.day().to_s + "-" + t.year().to_s + " at " + t.strftime('%I %M%p')
23
23
  copy_recursively(Dir.pwd, out_dir)
24
- alert "Files backed up to: \n\n" + path
24
+ alert "Files backed up to: \n\n" + path
25
25
  end
26
26
 
27
- def VR_Tools.copy_skeleton_project(path)
28
- VR_Tools.copy_recursively(File.dirname(__FILE__) + "/../../skeleton/project", path)
29
- end
27
+ def VR_Tools.copy_skeleton_project(path)
28
+ VR_Tools.copy_recursively(File.dirname(__FILE__) + "/../../skeleton/project", path)
29
+ end
30
30
 
31
- def VR_Tools.copy_recursively(from, out_dir)
31
+ def VR_Tools.copy_recursively(from, out_dir)
32
32
  Find.find(from) do |path|
33
33
  next if path == from
34
34
  rel_path = path.gsub(from, "")
@@ -41,75 +41,75 @@ module VR_Tools
41
41
  FileUtils.copy(path, out_dir + rel_path)
42
42
  end
43
43
  end
44
- end
44
+ end
45
45
 
46
- def self.create_gemspec()
47
- main_file = $VR_ENV.run_command_line.split(" ")[1]
48
- main_path = "."
49
- bindir = "'.'" #( main_path == "bin") ? "'bin'" : "'#{main_path}', 'bin'"
50
- libdir = "'.'" #(main_path == "lib") ? "'lib'" : "'#{main_path}', 'lib'"
51
- str = <<END
46
+ def self.create_gemspec()
47
+ main_file = $VR_ENV.run_command_line.split(" ")[1]
48
+ main_path = "."
49
+ bindir = "'.'" #( main_path == "bin") ? "'bin'" : "'#{main_path}', 'bin'"
50
+ libdir = "'.'" #(main_path == "lib") ? "'lib'" : "'#{main_path}', 'lib'"
51
+ str = <<END
52
52
  Gem::Specification.new do |s|
53
53
  s.name = "#{File.basename(Dir.pwd).downcase}" # i.e. visualruby. This name will show up in the gem list.
54
54
  s.version = "0.0.1" # i.e. (major,non-backwards compatable).(backwards compatable).(bugfix)
55
- s.add_dependency "vrlib", ">= 0.0.1"
56
- s.add_dependency "gtk2", ">= 0.0.1"
57
- s.add_dependency "require_all", ">= 0.0.1"
58
- s.has_rdoc = false
55
+ s.add_dependency "vrlib", ">= 0.0.1"
56
+ s.add_dependency "gtk2", ">= 0.0.1"
57
+ s.add_dependency "require_all", ">= 0.0.1"
58
+ s.has_rdoc = false
59
59
  s.authors = ["Your Name"]
60
60
  s.email = "you@yoursite.com" # optional
61
61
  s.summary = "Short Description Here." # optional
62
62
  s.homepage = "http://www.yoursite.org/" # optional
63
63
  s.description = "Full description here" # optional
64
- s.executables = ['#{main_file}'] # i.e. 'vr' (optional, blank if library project)
65
- s.default_executable = '#{main_file}' # i.e. 'vr' (optional, blank if library project)
66
- s.bindir = [#{bindir}] # optional, default = bin
67
- s.require_paths = [#{libdir}] # optional, default = lib
68
- s.files = Dir.glob(File.join("**", "*.{rb,glade}"))
69
- s.rubyforge_project = "nowarning" # supress warning message
64
+ s.executables = ['#{main_file}'] # i.e. 'vr' (optional, blank if library project)
65
+ s.default_executable = '#{main_file}' # i.e. 'vr' (optional, blank if library project)
66
+ s.bindir = [#{bindir}] # optional, default = bin
67
+ s.require_paths = [#{libdir}] # optional, default = lib
68
+ s.files = Dir.glob(File.join("**", "*.{rb,glade}"))
69
+ s.rubyforge_project = "nowarning" # supress warning message
70
70
  end
71
71
  END
72
- name = File.basename(Dir.pwd).downcase + ".gemspec"
73
- if File.file?(name)
74
- unless alert("Do you want to overwrite existing file?:\n<b>#{name}</b>?",
75
- :headline => "File Already Exists", :button_yes => "Overwrite", :button_no => "Cancel", :width => 400)
76
- return false
77
- end
78
- end
79
- file_name = File.join(Dir.pwd,name)
80
- File.open(file_name, "w") { |f| f.puts(str) }
81
- return file_name
72
+ name = File.basename(Dir.pwd).downcase + ".gemspec"
73
+ if File.file?(name)
74
+ unless alert("Do you want to overwrite existing file?:\n<b>#{name}</b>?",
75
+ :headline => "File Already Exists", :button_yes => "Overwrite", :button_no => "Cancel", :width => 400)
76
+ return false
77
+ end
78
+ end
79
+ file_name = File.join(Dir.pwd,name)
80
+ File.open(file_name, "w") { |f| f.puts(str) }
81
+ return file_name
82
+ end
83
+ #
84
+ #this works on Dir.pwd that's maybe different from project
85
+ def VR_Tools.replace_html_in_docs()
86
+ return if not File.file? "rdoc_replace.yaml"
87
+ ar = YAML.load_file "rdoc_replace.yaml"
88
+ Dir.glob("#{Dir.pwd}/doc/**/*.html") do |f|
89
+ str = File.open(f).read
90
+ ar.each do |pair|
91
+ str.gsub!(pair[0], pair[1])
92
+ end
93
+ File.open(f, "w") { |file| file.puts(str) }
94
+ end
95
+ FileUtils.cp "#{Dir.pwd}/rdoc.css", "#{Dir.pwd}/doc/rdoc.css" if File.file?("#{Dir.pwd}/rdoc.css") and File.directory?("#{Dir.pwd}/doc")
82
96
  end
83
- #
84
- #this works on Dir.pwd that's maybe different from project
85
- def VR_Tools.replace_html_in_docs()
86
- return if not File.file? "rdoc_replace.yaml"
87
- ar = YAML.load_file "rdoc_replace.yaml"
88
- Dir.glob("#{Dir.pwd}/doc/**/*.html") do |f|
89
- str = File.open(f).read
90
- ar.each do |pair|
91
- str.gsub!(pair[0], pair[1])
92
- end
93
- File.open(f, "w") { |file| file.puts(str) }
94
- end
95
- FileUtils.cp "#{Dir.pwd}/rdoc.css", "#{Dir.pwd}/doc/rdoc.css" if File.file?("#{Dir.pwd}/rdoc.css") and File.directory?("#{Dir.pwd}/doc")
96
- end
97
97
 
98
98
  end
99
- # def VR_Tools.sudo_command(command)
100
- # @pass ||= ""
101
- # if @pass.strip() == ""
102
- # @pass = VR::Dialog.input_box("Enter System Password:")
103
- # end
104
- # result = command + "\n" + `echo #{@pass} | sudo -S #{command}`
105
- # @pass = "" if result.include? "incorrect password"
106
- # return result
107
- # end
99
+ # def VR_Tools.sudo_command(command)
100
+ # @pass ||= ""
101
+ # if @pass.strip() == ""
102
+ # @pass = VR::Dialog.input_box("Enter System Password:")
103
+ # end
104
+ # result = command + "\n" + `echo #{@pass} | sudo -S #{command}`
105
+ # @pass = "" if result.include? "incorrect password"
106
+ # return result
107
+ # end
108
108
 
109
- # def VR_Tools.create_desktop_launcher()
110
- # command = "vr " + Dir.pwd
111
- # name = File.basename(Dir.pwd) + " Project"
112
- # str = <<END
109
+ # def VR_Tools.create_desktop_launcher()
110
+ # command = "vr " + Dir.pwd
111
+ # name = File.basename(Dir.pwd) + " Project"
112
+ # str = <<END
113
113
  #
114
114
  ##!/usr/bin/env xdg-open
115
115
  #
@@ -126,10 +126,10 @@ end
126
126
  #Icon=gnome-panel-launcher
127
127
  #
128
128
  #END
129
- # return unless File.directory?(ENV["HOME"] + "/Desktop")
130
- # fn = ENV["HOME"] + "/Desktop/" + name + ".desktop"
129
+ # return unless File.directory?(ENV["HOME"] + "/Desktop")
130
+ # fn = ENV["HOME"] + "/Desktop/" + name + ".desktop"
131
131
  # File.open(fn,"w") { |f| f.puts(str) }
132
- # File.chmod(0755, fn)
133
- # alert("Created launcher:\n" + name + "\non your computer's desktop")
134
- # end
132
+ # File.chmod(0755, fn)
133
+ # alert("Created launcher:\n" + name + "\non your computer's desktop")
134
+ # end
135
135
 
@@ -0,0 +1,50 @@
1
+ --- !ruby/object:VR_ENV
2
+ vr_yaml_file: ".vr_settings.yaml"
3
+ width: 1139
4
+ height: 691
5
+ panel_pos: 453
6
+ notebook_panel_position: 400
7
+ run_command_line: ruby active_record.rb
8
+ open_files:
9
+ - "/home/eric/vrp/vr3/examples/active_record/bin/Person.rb"
10
+ - "/home/eric/vrp/vr3/examples/active_record/bin/ChoosePerson.rb"
11
+ - "/home/eric/vrp/vr3/examples/active_record/active_record.rb"
12
+ open_folders:
13
+ - "/home/eric/vrp/vr3/examples/active_record"
14
+ - "/home/eric/vrp/vr3/examples/active_record/bin"
15
+ - "/home/eric/vrp/vr3/examples/active_record/bin/glade"
16
+ current_file: "/home/eric/vrp/vr3/examples/active_record/active_record.rb"
17
+ current_line: 6
18
+ rdoc_command_line: rdoc -x README
19
+ builder: !ruby/object:Gtk::Builder {}
20
+ filename: ".vr_settings.yaml"
21
+ backup_path: "/home/eric"
22
+ browser: firefox
23
+ font_name: Monospace 10
24
+ glade_path: glade-gtk2
25
+ tab_spaces: 2
26
+ glade_box: !ruby/object:VR::SimpleComboBoxEntry {}
27
+ browser_box: !ruby/object:VR::SimpleComboBoxEntry {}
28
+ buttonChooseFolder: "..."
29
+ vbox1: !ruby/object:Gtk::VBox {}
30
+ label7: 'Editor Font:'
31
+ label3: 'Back-up Path:'
32
+ window1: !ruby/object:Gtk::Window {}
33
+ hbuttonbox1: !ruby/object:Gtk::HButtonBox {}
34
+ buttonCancel: Cancel
35
+ label8: 'RDoc Command Line: '
36
+ table1: !ruby/object:Gtk::Table {}
37
+ buttonTryBrowser: Try
38
+ buttonSave: Save
39
+ hboxBrowser: !ruby/object:Gtk::HBox {}
40
+ hboxGlade: !ruby/object:Gtk::HBox {}
41
+ label1: "<big><big><b>Visual Ruby Settings</b></big></big>"
42
+ label2: 'Browser Command Line:'
43
+ label4: 'Spaces for Each Tab in Editor:'
44
+ label5: 'Glade Command Line:'
45
+ label6: 'Command Line when "Run" is pressed:'
46
+ hbox1: !ruby/object:Gtk::HBox {}
47
+ hbox2: !ruby/object:Gtk::HBox {}
48
+ hbox3: !ruby/object:Gtk::HBox {}
49
+ hbox4: !ruby/object:Gtk::HBox {}
50
+ buttonTryGlade: Try
@@ -28,8 +28,8 @@ ChoosePerson.new.show_glade()
28
28
  # create_table :people do |table|
29
29
  # table.column :name, :string
30
30
  # table.column :address, :string
31
- # table.column :phone, :string
32
- # table.column :email, :string
31
+ # table.column :phone, :string
32
+ # table.column :email, :string
33
33
  # end
34
34
  #end
35
35
  #
@@ -1,19 +1,19 @@
1
1
 
2
2
  class ChoosePerson < VR::ListView
3
3
 
4
- include GladeGUI
4
+ include GladeGUI
5
5
 
6
- def initialize()
7
- super(:person => Person) # Person class
8
- end
6
+ def initialize()
7
+ super(:person => Person) # Person class
8
+ end
9
9
 
10
- def before_show()
11
- @builder["scrolledwindow1"].add(self)
12
- Person.all.each do |p|
13
- row = add_row(:person => p)
14
- end
10
+ def before_show()
11
+ @builder["scrolledwindow1"].add(self)
12
+ Person.all.each do |p|
13
+ row = add_row(:person => p)
14
+ end
15
15
  self.show
16
- end
16
+ end
17
17
 
18
18
  def buttonShow__clicked(*a)
19
19
  return unless row = selected_rows.first
@@ -1,15 +1,15 @@
1
1
  class Person < ActiveRecord::Base
2
2
 
3
- include GladeGUI
3
+ include GladeGUI
4
4
 
5
- def before_show
5
+ def before_show
6
6
  @builder[:labelName].label = "<big>#{name}</big>"
7
- set_glade_all() # updates entry boxes
8
- end
7
+ set_glade_all() # updates entry boxes
8
+ end
9
9
 
10
10
  # this is what shows in the listview
11
- def to_s
12
- "#{self.name} (#{self.email}) #{self.phone}"
11
+ def to_s
12
+ "#{self.name} (#{self.email}) #{self.phone}"
13
13
  end
14
14
 
15
15
  def buttonSave__clicked(*a)
@@ -0,0 +1,23 @@
1
+ --- !ruby/object:VR_ENV
2
+ vr_yaml_file: ".vr_settings.yaml"
3
+ width: 1046
4
+ height: 718
5
+ panel_pos: 360
6
+ notebook_panel_position: 400
7
+ run_command_line: ruby main.rb
8
+ open_files:
9
+ - "/home/eric/vrp/vr3/examples/active_record2/main.rb"
10
+ - "/home/eric/vrp/vr3/examples/active_record2/bin/CompanyGUI.rb"
11
+ - "/home/eric/vrp/vr3/examples/active_record2/bin/Employer.rb"
12
+ - "/home/eric/vrp/vr3/examples/active_record2/bin/Employee.rb"
13
+ open_folders:
14
+ - "/home/eric/vrp/vr3/examples/active_record2"
15
+ - "/home/eric/vrp/vr3/examples/active_record2/bin"
16
+ - "/home/eric/vrp/vr3/examples/active_record2/bin/glade"
17
+ - "/home/eric/vrp/vr3/examples/active_record2/db"
18
+ current_file: "/home/eric/vrp/vr3/examples/active_record2/bin/Employee.rb"
19
+ current_line: 22
20
+ rdoc_command_line: rdoc -x README
21
+ builder: !ruby/object:Gtk::Builder {}
22
+ filename: ".vr_settings.yaml"
23
+ settings_file_version: 1
@@ -1,54 +1,54 @@
1
1
 
2
2
  class CompanyGUI
3
3
 
4
- include GladeGUI
4
+ include GladeGUI
5
5
 
6
6
 
7
- def before_show()
8
- @employer_view = VR::ListView.new(:employer => Employer, :address => String, :company_type => String)
9
- @builder["scroll_employer"].add(@employer_view)
10
- # @employer_view.selection.signal_connect("changed") { employer_view__changed }
11
- @employer_view.col_width(:employer => 160, :address => 340, :company_type => 180)
7
+ def before_show()
8
+ @employer_view = VR::ListView.new(:employer => Employer, :address => String, :company_type => String)
9
+ @builder["scroll_employer"].add(@employer_view)
10
+ # @employer_view.selection.signal_connect("changed") { employer_view__changed }
11
+ @employer_view.col_width(:employer => 160, :address => 340, :company_type => 180)
12
12
 
13
- @employee_view = VR::ListView.new(:employer => Employer, :employee => Employee, :address => String, :balance => String)
14
- @builder["scroll_employee"].add(@employee_view)
15
- ## @employee_view.selection.signal_connect("changed") { employee_view__changed }
16
- @employee_view.col_width(:employer => 160, :employee => 150, :address => 320)
13
+ @employee_view = VR::ListView.new(:employer => Employer, :employee => Employee, :address => String, :balance => String)
14
+ @builder["scroll_employee"].add(@employee_view)
15
+ ## @employee_view.selection.signal_connect("changed") { employee_view__changed }
16
+ @employee_view.col_width(:employer => 160, :employee => 150, :address => 320)
17
17
 
18
- @paycheck_view = VR::ListView.new(:employee => Employee, :date => DateTime, :description => String, :amt => Paycheck)
19
- @builder["scroll_paycheck"].add(@paycheck_view)
20
- @paycheck_view.col_width(:employee => 200, :date => 100, :description => 220, :amt => 100)
18
+ @paycheck_view = VR::ListView.new(:employee => Employee, :date => DateTime, :description => String, :amt => Paycheck)
19
+ @builder["scroll_paycheck"].add(@paycheck_view)
20
+ @paycheck_view.col_width(:employee => 200, :date => 100, :description => 220, :amt => 100)
21
21
 
22
- Employer.all.each do |e|
23
- row = @employer_view.add_row
24
- row[:employer] = e
25
- row.load_object(e)
26
- end
22
+ Employer.all.each do |e|
23
+ row = @employer_view.add_row
24
+ row[:employer] = e
25
+ row.load_object(e)
26
+ end
27
27
  @builder[:window1].show_all
28
- # @employer_view.select_row()
29
- end
30
-
31
-
32
- def employer_view__cursor_changed(*a)
33
- return unless row = @employer_view.selected_rows[0]
34
- @employee_view.model.clear
35
- Employee.where(:employer_id => row[:employer].id).each do |e|
36
- row = @employee_view.add_row
37
- row[:employee] = e
38
- row.load_object(e)
39
- end
40
- # @employee_view.select_row(0)
41
- end
42
-
43
- def employee_view__cursor_changed(*a)
44
- return unless row = @employee_view.selected_rows[0]
45
- @paycheck_view.model.clear
46
- Paycheck.where(:employee_id => row[:employee].id).each do |e|
47
- row = @paycheck_view.add_row
48
- row.load_object(e) #this loads employee object
49
- row[:amt] = e
50
- end
51
- end
28
+ # @employer_view.select_row()
29
+ end
30
+
31
+
32
+ def employer_view__cursor_changed(*a)
33
+ return unless row = @employer_view.selected_rows[0]
34
+ @employee_view.model.clear
35
+ Employee.where(:employer_id => row[:employer].id).each do |e|
36
+ row = @employee_view.add_row
37
+ row[:employee] = e
38
+ row.load_object(e)
39
+ end
40
+ # @employee_view.select_row(0)
41
+ end
42
+
43
+ def employee_view__cursor_changed(*a)
44
+ return unless row = @employee_view.selected_rows[0]
45
+ @paycheck_view.model.clear
46
+ Paycheck.where(:employee_id => row[:employee].id).each do |e|
47
+ row = @paycheck_view.add_row
48
+ row.load_object(e) #this loads employee object
49
+ row[:amt] = e
50
+ end
51
+ end
52
52
 
53
53
 
54
54
  end
@@ -1,21 +1,21 @@
1
1
 
2
2
  class Employee < ActiveRecord::Base
3
- has_many :paychecks
4
- belongs_to :employer
3
+ has_many :paychecks
4
+ belongs_to :employer
5
5
 
6
- include GladeGUI
6
+ include GladeGUI
7
7
 
8
- def visual_attributes
9
- bal = balance().to_f
10
- hash = { :text => name }
11
- hash[:foreground] = (bal < 0) ? "white" : "black"
8
+ def visual_attributes
9
+ bal = balance().to_f
10
+ hash = { :text => name }
11
+ hash[:foreground] = (bal < 0) ? "white" : "black"
12
12
  hash[:background] = (bal < 0) ? "red" : "white"
13
- return hash
14
- end
13
+ return hash
14
+ end
15
15
 
16
- def balance()
17
- Paycheck.sum(:amount, :conditions => "employee_id = #{id}").round(2).to_s
18
- # Paycheck.find("employee_id = #{id}").calculate(:sum, :amount).round(2).to_s
19
- end
16
+ def balance()
17
+ Paycheck.sum(:amount, :conditions => "employee_id = #{id}").round(2).to_s
18
+ # Paycheck.find("employee_id = #{id}").calculate(:sum, :amount).round(2).to_s
19
+ end
20
20
 
21
21
  end
@@ -1,11 +1,11 @@
1
1
 
2
2
  class Employer < ActiveRecord::Base
3
- has_many :employees
3
+ has_many :employees
4
4
 
5
- include GladeGUI
5
+ include GladeGUI
6
6
 
7
- def to_s # this is what shows in the VR::ListView
8
- name
9
- end
7
+ def to_s # this is what shows in the VR::ListView
8
+ name
9
+ end
10
10
 
11
11
  end
@@ -1,11 +1,11 @@
1
1
 
2
2
  class Paycheck < ActiveRecord::Base
3
- belongs_to :employee
3
+ belongs_to :employee
4
4
 
5
- include GladeGUI
5
+ include GladeGUI
6
6
 
7
- def to_s
8
- sprintf("%.2f", amount)
9
- end
7
+ def to_s
8
+ sprintf("%.2f", amount)
9
+ end
10
10
 
11
11
  end
@@ -29,18 +29,18 @@ CompanyGUI.new.show_glade()
29
29
  # create_table :employers do |table|
30
30
  # table.column :name, :string
31
31
  # table.column :address, :string
32
- # table.column :company_type, :string
32
+ # table.column :company_type, :string
33
33
  # end
34
34
  # create_table :employees do |table|
35
- # table.column :employer_id, :integer
35
+ # table.column :employer_id, :integer
36
36
  # table.column :name, :string
37
37
  # table.column :address, :string
38
38
  # end
39
39
  # create_table :paychecks do |table|
40
- # table.column :employee_id, :integer
40
+ # table.column :employee_id, :integer
41
41
  # table.column :date, :date
42
42
  # table.column :description, :string
43
- # table.column :amount, :float
43
+ # table.column :amount, :float
44
44
  # end
45
45
  #
46
46
  #end
@@ -3,10 +3,10 @@
3
3
  # If the flag :input_text is set, it will show a textbox. Then it will return
4
4
  # the String value of the textbox, false or nil.
5
5
  #
6
- # Returns:
7
- # true or String = :button_yes pressed
8
- # false = :button_no pressed
9
- # nil = "x" button closed window
6
+ # Returns:
7
+ # true or String = :button_yes pressed
8
+ # false = :button_no pressed
9
+ # nil = "x" button closed window
10
10
  #
11
11
  #
12
12
  # the flags for the alert() method are:
@@ -25,56 +25,46 @@
25
25
  class AlertBoxDemo
26
26
 
27
27
 
28
- include GladeGUI
28
+ include GladeGUI
29
29
 
30
- def buttonSimple__clicked(*a)
30
+ def buttonSimple__clicked(*a)
31
+ alert "I'll be back"
32
+ end
31
33
 
32
- path = ENV["HOME"]
33
- alert("The example projects are installed in this folder:\n\n<b>#{path}</b>\n\n "+
34
- "Use your <b>/home/visualruby</b> folder for all your visualruby projects.",
35
- :parent => self,
36
- :headline => "Installing Example Projects...",
37
- :width => 500)
34
+ #its best to include a parent so alert box always on top:
35
+ def buttonYesNo__clicked(*a)
36
+ if alert("Do you want to continue?", :button_yes => "Yes", :button_no => "No", :parent => self) #on top
37
+ alert "Ok we'll contine..." # not always on top
38
+ else
39
+ alert "Ok we'll abort!"
40
+ end
41
+ end
38
42
 
39
- alert "I'll be back"
40
- end
43
+ # input boxes will return the string entered, false, or nil for "X" button:
44
+ def buttonInput__clicked(*a)
45
+ if answer = alert("Enter your full name:", :input_text => "Ralph",
46
+ :button_yes => "Go", :headline => "Enter Name")
47
+ alert "You entered:\n\n<b>" + answer + "</b>"
48
+ elsif answer == false
49
+ alert "You pressed the <b>Cancel</b> button"
50
+ elsif answer.nil?
51
+ alert "You pressed the <b>'X'</b> button"
52
+ else
53
+ # will never get here
54
+ end
55
+ end
41
56
 
42
- def buttonSimpleInput__clicked(*a)
43
- alert("Enter your age:", :input_text => "")
44
- end
45
-
46
- #its best to include a parent so alert box always on top:
47
- def buttonYesNo__clicked(*a)
48
- if alert("Do you want to continue?", :button_yes => "Yes", :button_no => "No", :parent => self) #on top
49
- alert "Ok we'll contine..." # not always on top
50
- end
51
- end
52
-
53
- # input boxes will return the string entered, false, or nil for "X" button:
54
- def buttonInput__clicked(*a)
55
- if answer = alert("Enter your full name:", :input_text => "Ralph",
56
- :button_yes => "Go", :headline => "Enter Name")
57
- alert "You entered:\n\n<b>" + answer + "</b>"
58
- elsif answer == false
59
- alert "You pressed the <b>Cancel</b> button"
60
- elsif answer.nil?
61
- alert "You pressed the <b>'X'</b> button"
62
- else
63
- alert "Error: Should return String (yes), false (no) or nil (quit button)"
64
- end
65
- end
66
-
67
- def buttonQuestion__clicked(*a)
68
- if answer = alert("Your pants are on <b><u>fire</u></b>. What do you want to do?", :width => 500, :button_cancel => "Quit",
69
- :button_yes => "Jump in Pool", :button_no => "Panic!", :title => "Pants on Fire", :headline => "Warning")
70
- alert "Get going!"
71
- end
72
- end
73
-
74
-
75
- def buttonQuit__clicked(*a)
76
- @builder[:window1].destroy
77
- end
57
+ def buttonQuestion__clicked(*a)
58
+ if answer = alert("Your pants are on <b><u>fire</u></b>. What do you want to do?", :width => 500, :button_cancel => "Quit",
59
+ :button_yes => "Jump in Pool", :button_no => "Panic!",
60
+ :title => "Pants on Fire", :headline => "Warning")
61
+ alert "Get going!\n(alert() returned true)"
62
+ elsif answer == false # Panic
63
+ alert "Start Panicing!\n(alert() returned false)"
64
+ else
65
+ alert "Ok Avoid the question.\n(alert() returned nil)"
66
+ end
67
+ end
78
68
 
79
69
  end
80
70