visualruby 3.0.2 → 3.0.3

Sign up to get free protection for your applications and to get access to all the features.
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