visualruby 3.6.3 → 3.6.4

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 (93) hide show
  1. checksums.yaml +4 -4
  2. data/.vr_settings.yaml +22 -10
  3. data/all_requires.rb +35 -0
  4. data/examples/01_phantom/main.rb +6 -0
  5. data/examples/02_hello/.vr_settings.yaml +21 -0
  6. data/examples/{phantom → 02_hello}/main.rb +2 -3
  7. data/examples/02_hello/src/MyClass.rb +11 -0
  8. data/examples/02_hello/src/glade/MyClass.glade +36 -0
  9. data/examples/03_simple_ruby_gui/main.rb +11 -0
  10. data/examples/04_calculator/.vr_settings.yaml +21 -0
  11. data/examples/04_calculator/calculator.rb +7 -0
  12. data/examples/{calculator/bin/Calculator.rb → 04_calculator/src/CalculatorGUI.rb} +3 -3
  13. data/examples/07_event_handlers/.vr_settings.yaml +23 -0
  14. data/examples/07_event_handlers/main.rb +9 -0
  15. data/examples/07_event_handlers/src/MyClass.rb +26 -0
  16. data/examples/07_event_handlers/src/MyTextView.rb +13 -0
  17. data/examples/07_event_handlers/src/glade/MyClass.glade +90 -0
  18. data/examples/active_record/.vr_settings.yaml +2 -3
  19. data/examples/active_record/active_record.rb +1 -1
  20. data/examples/alert_box/.vr_settings.yaml +11 -8
  21. data/examples/alert_box/alertdemo.rb +11 -0
  22. data/examples/alert_box/{bin → src}/AlertBoxDemo.rb +19 -6
  23. data/examples/alert_box/{bin → src}/glade/AlertBoxDemo.glade +37 -4
  24. data/examples/all_widgets/.vr_settings.yaml +8 -7
  25. data/examples/all_widgets/{main.rb → all_widgets.rb} +1 -4
  26. data/examples/all_widgets/{bin → src}/AllWidgets.rb +1 -1
  27. data/examples/child_window/.vr_settings.yaml +10 -9
  28. data/examples/child_window/child_window.rb +11 -0
  29. data/examples/drag_drop/.vr_settings.yaml +6 -5
  30. data/examples/drag_drop/{main.rb → drag_drop.rb} +1 -3
  31. data/examples/filetreeview/.vr_settings.yaml +10 -8
  32. data/examples/filetreeview/filetreeview.rb +10 -0
  33. data/examples/filetreeview/{bin → src}/ProjectTree.rb +1 -12
  34. data/examples/filetreeview/{bin → src}/ProjectTreeGUI.rb +9 -0
  35. data/examples/filetreeview/{bin → src}/glade/ProjectTreeGUI.glade +37 -37
  36. data/examples/golf_handicap/.vr_settings.yaml +5 -6
  37. data/examples/golf_handicap/eric_cunningham.yaml +106 -0
  38. data/examples/golf_handicap/golf_handicap.rb +18 -0
  39. data/examples/golf_handicap/src/Handicap.rb +31 -29
  40. data/examples/golf_handicap/src/LoadGolfer.rb +27 -27
  41. data/examples/golf_handicap/src/Score.rb +10 -9
  42. data/examples/golf_handicap/src/glade/Handicap.glade +46 -42
  43. data/examples/golf_handicap/src/glade/Score.glade +58 -80
  44. data/examples/listview/.vr_settings.yaml +10 -8
  45. data/examples/listview/listview.rb +7 -0
  46. data/examples/listview/{bin → src}/SongListView.rb +2 -1
  47. data/examples/listview/{bin → src}/SongListViewGUI.rb +1 -0
  48. data/lib/Alert.rb +2 -2
  49. data/lib/GladeGUI.rb +10 -11
  50. data/lib/TestWindow.rb +33 -0
  51. data/lib/VR_GtkWindow.rb +7 -0
  52. data/lib/glade/TestWindow.glade +73 -0
  53. data/lib/treeview/TreeView.rb +0 -2
  54. data/lib/vrlib.rb +1 -0
  55. data/skeleton/project/main.rb +1 -4
  56. data/src/editor/VR_Document.rb +1 -4
  57. data/src/editor/VR_TabSearch.rb +1 -1
  58. data/src/main/RubygemsAPI.rb +3 -8
  59. data/src/main/SplashWindow.rb +18 -0
  60. data/src/main/VR_Main.rb +19 -26
  61. data/src/main/VR_Tools.rb +10 -8
  62. data/src/main/glade/VR_Main.glade +173 -178
  63. data/src/version.rb +1 -1
  64. data/test.rb +7 -0
  65. data/vr +40 -70
  66. metadata +59 -41
  67. data/examples/alert_box/main.rb +0 -9
  68. data/examples/calculator/.vr_settings.yaml +0 -19
  69. data/examples/calculator/main.rb +0 -9
  70. data/examples/filetreeview/main.rb +0 -11
  71. data/examples/listview/main.rb +0 -8
  72. data/examples/simple_ruby_gui/main.rb +0 -14
  73. /data/examples/{phantom → 01_phantom}/.vr_settings.yaml +0 -0
  74. /data/examples/{phantom → 01_phantom}/src/MyClass.rb +0 -0
  75. /data/examples/{phantom → 01_phantom}/src/glade/MyClass.glade +0 -0
  76. /data/examples/{simple_ruby_gui → 03_simple_ruby_gui}/.vr_settings.yaml +0 -0
  77. /data/examples/{simple_ruby_gui → 03_simple_ruby_gui}/bin/DataObjectGUI.rb +0 -0
  78. /data/examples/{simple_ruby_gui → 03_simple_ruby_gui}/bin/glade/DataObjectGUI.glade +0 -0
  79. /data/examples/{calculator/bin/glade/Calculator.glade → 04_calculator/src/glade/CalculatorGUI.glade} +0 -0
  80. /data/examples/all_widgets/{bin → src}/glade/AllWidgets.glade +0 -0
  81. /data/examples/all_widgets/{bin → src}/splash.png +0 -0
  82. /data/examples/child_window/{bin → src}/ChildWindowDemo.rb +0 -0
  83. /data/examples/child_window/{bin → src}/ModalWindow.rb +0 -0
  84. /data/examples/child_window/{bin → src}/ModelessWindow.rb +0 -0
  85. /data/examples/child_window/{bin → src}/MyChildClass.rb +0 -0
  86. /data/examples/child_window/{bin → src}/glade/ChildWindowDemo.glade +0 -0
  87. /data/examples/child_window/{bin → src}/glade/ModalWindow.glade +0 -0
  88. /data/examples/child_window/{bin → src}/glade/ModelessWindow.glade +0 -0
  89. /data/examples/child_window/{bin → src}/glade/MyChildClass.glade +0 -0
  90. /data/examples/drag_drop/{bin → src}/DragDropDemo.rb +0 -0
  91. /data/examples/drag_drop/{bin → src}/glade/DragDropDemo.glade +0 -0
  92. /data/examples/listview/{bin → src}/audio-x-generic.png +0 -0
  93. /data/examples/listview/{bin → src}/glade/SongListViewGUI.glade +0 -0
@@ -39,7 +39,7 @@ class AllWidgets
39
39
  @window1 = "Showing All Widgets"
40
40
  @label1 = "I'm a Label"
41
41
  @checkbutton1 = true
42
- @image1 = "bin/splash.png"
42
+ @image1 = "src/splash.png"
43
43
  @linkbutton1 = "http://www.visualruby.net"
44
44
  @entry1 = "I'm an Entry Box"
45
45
  @progressbar1 = 0.85 # text property set in glade
@@ -4,18 +4,19 @@ width: 1097
4
4
  height: 691
5
5
  panel_pos: 437
6
6
  notebook_panel_position: 400
7
- run_command_line: ruby main.rb
7
+ run_command_line: ruby child_window.rb
8
8
  open_files:
9
+ - "/home/eric/vrp/vr3/examples/child_window/src/ChildWindowDemo.rb"
9
10
  - "/home/eric/vrp/vr3/examples/child_window/main.rb"
10
- - "/home/eric/vrp/vr3/examples/child_window/bin/MyChildClass.rb"
11
- - "/home/eric/vrp/vr3/examples/child_window/bin/ChildWindowDemo.rb"
12
- - "/home/eric/vrp/vr3/examples/child_window/bin/ModalWindow.rb"
13
- - "/home/eric/vrp/vr3/examples/child_window/bin/ModelessWindow.rb"
11
+ - "/home/eric/vrp/vr3/examples/child_window/child_window.rb"
12
+ - "/home/eric/vrp/vr3/examples/child_window/src/ModalWindow.rb"
13
+ - "/home/eric/vrp/vr3/examples/child_window/src/MyChildClass.rb"
14
14
  open_folders:
15
15
  - "/home/eric/vrp/vr3/examples/child_window"
16
- - "/home/eric/vrp/vr3/examples/child_window/bin"
17
- - "/home/eric/vrp/vr3/examples/child_window/bin/glade"
18
- current_file: "/home/eric/vrp/vr3/examples/child_window/main.rb"
19
- current_line: 2
16
+ - "/home/eric/vrp/vr3/examples/child_window/src"
17
+ current_file: "/home/eric/vrp/vr3/examples/child_window/src/ChildWindowDemo.rb"
18
+ current_line: 30
20
19
  rdoc_command_line: rdoc -x README
20
+ builder: !ruby/object:Gtk::Builder {}
21
+ top_level_window: false
21
22
  settings_file_version: 1
@@ -0,0 +1,11 @@
1
+
2
+ require "vrlib"
3
+
4
+ require_relative "src/ChildWindowDemo"
5
+ require_relative "src/ModalWindow"
6
+ require_relative "src/ModelessWindow"
7
+ require_relative "src/MyChildClass"
8
+
9
+
10
+ ChildWindowDemo.new.show_glade()
11
+
@@ -4,15 +4,16 @@ width: 1307
4
4
  height: 698
5
5
  panel_pos: 423
6
6
  notebook_panel_position: 400
7
- run_command_line: ruby main.rb
7
+ run_command_line: ruby drag_drop.rb
8
8
  open_files:
9
- - "/home/eric/vrp/vr3/examples/drag_drop/bin/DragDropDemo.rb"
10
- - "/home/eric/vrp/vr3/examples/drag_drop/main.rb"
9
+ - "/home/eric/vrp/vr3/examples/drag_drop/src/DragDropDemo.rb"
11
10
  open_folders:
12
11
  - "/home/eric/vrp/vr3/examples/drag_drop"
13
12
  - "/home/eric/vrp/vr3/examples/drag_drop/bin"
14
13
  - "/home/eric/vrp/vr3/examples/drag_drop/bin/glade"
15
- current_file: "/home/eric/vrp/vr3/examples/drag_drop/main.rb"
16
- current_line: 9
14
+ current_file: "/home/eric/vrp/vr3/examples/drag_drop/src/DragDropDemo.rb"
15
+ current_line: 4
17
16
  rdoc_command_line: rdoc -x README
17
+ builder: !ruby/object:Gtk::Builder {}
18
18
  settings_file_version: 1
19
+ top_level_window: false
@@ -1,8 +1,6 @@
1
1
 
2
2
  require "vrlib"
3
-
4
- # from require_all gem:
5
- require_rel 'bin/'
3
+ require_relative "src/DragDropDemo"
6
4
 
7
5
  DragDropDemo.new.show_glade()
8
6
 
@@ -4,18 +4,20 @@ width: 1301
4
4
  height: 744
5
5
  panel_pos: 490
6
6
  notebook_panel_position: 400
7
- run_command_line: ruby main.rb
7
+ run_command_line: ruby filetreeview.rb
8
8
  open_files:
9
- - "/home/eric/vrp/vr3/examples/filetreeview/main.rb"
10
- - "/home/eric/vrp/vr3/examples/filetreeview/bin/ProjectTreeGUI.rb"
11
- - "/home/eric/vrp/vr3/examples/filetreeview/bin/ProjectTree.rb"
9
+ - "/home/eric/vrp/vr3/examples/filetreeview/src/ProjectTreeGUI.rb"
10
+ - "/home/eric/vrp/vr3/examples/filetreeview/filetreeview.rb"
11
+ - "/home/eric/vrp/vr3/examples/filetreeview/src/ProjectTree.rb"
12
12
  open_folders:
13
13
  - "/home/eric/vrp/vr3/examples/filetreeview"
14
- - "/home/eric/vrp/vr3/examples/filetreeview/bin"
15
- - "/home/eric/vrp/vr3/examples/filetreeview/bin/glade"
16
14
  - "/home/eric/vrp/vr3/examples/filetreeview/img"
17
- current_file: "/home/eric/vrp/vr3/examples/filetreeview/bin/ProjectTree.rb"
18
- current_line: 15
15
+ - "/home/eric/vrp/vr3/examples/filetreeview/src"
16
+ - "/home/eric/vrp/vr3/examples/filetreeview/src/glade"
17
+ current_file: "/home/eric/vrp/vr3/examples/filetreeview/src/ProjectTree.rb"
18
+ current_line: 39
19
19
  rdoc_command_line: rdoc -x README
20
+ builder: !ruby/object:Gtk::Builder {}
21
+ top_level_window: false
20
22
  settings_file_version: 1
21
23
  filename: ".vr_settings.yaml"
@@ -0,0 +1,10 @@
1
+
2
+ require "vrlib"
3
+ require 'find'
4
+
5
+ require_relative "src/ProjectTreeGUI"
6
+ require_relative "src/ProjectTree"
7
+
8
+
9
+ ProjectTreeGUI.new.show_glade()
10
+
@@ -21,18 +21,7 @@ class ProjectTree < VR::FileTreeView
21
21
  def initialize()
22
22
  root_path = File.join(ENV["HOME"], "visualruby")
23
23
  icon_path = File.join(File.dirname(__FILE__), "/../img")
24
- glob = "*"
25
- super(root_path, icon_path, glob)
26
- @validate_block = proc { |folder| has_settings_file?(folder) }
27
- end
28
-
29
- def self__row_activated(_self, path, col)
30
- row = vr_row(get_iter(path))
31
- if File.exists?(File.join(row[:path], ".vr_settings.yaml")) #test if its a vr project.
32
- alert "You selected: \n\n" + row[:file_name]
33
- else
34
- expand_or_collapse_folder()
35
- end
24
+ super(root_path, icon_path, "*" , proc { |folder| has_settings_file?(folder) })
36
25
  end
37
26
 
38
27
 
@@ -12,6 +12,15 @@ class ProjectTreeGUI #(change name)
12
12
  @open_folders = []
13
13
  end
14
14
 
15
+ def ftv__row_activated(_self, path, col)
16
+ return unless row = @ftv.selected_rows.first
17
+ if File.exists?(File.join(row[:path], ".vr_settings.yaml")) #test if its a vr project.
18
+ alert "You selected: \n\n" + row[:file_name]
19
+ else
20
+ @ftv.expand_or_collapse_folder()
21
+ end
22
+ end
23
+
15
24
  def show_expanders__toggled(*a)
16
25
  @ftv.set_show_expanders(@builder[:show_expanders].active?)
17
26
  end
@@ -1,31 +1,31 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <!-- Generated with glade 3.16.1 -->
2
+ <!-- Generated with glade 3.40.0 -->
3
3
  <interface>
4
4
  <requires lib="gtk+" version="3.0"/>
5
5
  <object class="GtkWindow" id="window1">
6
6
  <property name="visible">True</property>
7
- <property name="can_focus">False</property>
7
+ <property name="can-focus">False</property>
8
8
  <property name="title" translatable="yes">FileTreeView Demo</property>
9
9
  <property name="modal">True</property>
10
- <property name="window_position">center</property>
11
- <property name="default_width">460</property>
12
- <property name="default_height">700</property>
10
+ <property name="window-position">center</property>
11
+ <property name="default-width">460</property>
12
+ <property name="default-height">700</property>
13
13
  <child>
14
14
  <object class="GtkBox" id="box1">
15
15
  <property name="visible">True</property>
16
- <property name="can_focus">False</property>
17
- <property name="margin_left">20</property>
18
- <property name="margin_right">20</property>
19
- <property name="margin_top">20</property>
20
- <property name="margin_bottom">20</property>
16
+ <property name="can-focus">False</property>
17
+ <property name="margin-left">20</property>
18
+ <property name="margin-right">20</property>
19
+ <property name="margin-top">20</property>
20
+ <property name="margin-bottom">20</property>
21
21
  <property name="orientation">vertical</property>
22
22
  <property name="spacing">10</property>
23
23
  <child>
24
24
  <object class="GtkLabel" id="label1">
25
25
  <property name="visible">True</property>
26
- <property name="can_focus">False</property>
26
+ <property name="can-focus">False</property>
27
27
  <property name="label" translatable="yes">&lt;big&gt;FileTreeView Demo&lt;/big&gt;</property>
28
- <property name="use_markup">True</property>
28
+ <property name="use-markup">True</property>
29
29
  </object>
30
30
  <packing>
31
31
  <property name="expand">False</property>
@@ -36,22 +36,22 @@
36
36
  <child>
37
37
  <object class="GtkFrame" id="frame1">
38
38
  <property name="visible">True</property>
39
- <property name="can_focus">False</property>
40
- <property name="label_xalign">0</property>
41
- <property name="shadow_type">in</property>
39
+ <property name="can-focus">False</property>
40
+ <property name="label-xalign">0</property>
41
+ <property name="shadow-type">in</property>
42
42
  <child>
43
43
  <object class="GtkAlignment" id="alignment1">
44
44
  <property name="visible">True</property>
45
- <property name="can_focus">False</property>
46
- <property name="left_padding">12</property>
45
+ <property name="can-focus">False</property>
46
+ <property name="left-padding">12</property>
47
47
  <child>
48
48
  <object class="GtkLabel" id="label3">
49
49
  <property name="visible">True</property>
50
- <property name="can_focus">False</property>
51
- <property name="margin_left">10</property>
52
- <property name="margin_right">10</property>
53
- <property name="margin_top">10</property>
54
- <property name="margin_bottom">10</property>
50
+ <property name="can-focus">False</property>
51
+ <property name="margin-left">10</property>
52
+ <property name="margin-right">10</property>
53
+ <property name="margin-top">10</property>
54
+ <property name="margin-bottom">10</property>
55
55
  <property name="label" translatable="yes">This filetreeview shows only the folders that contain the hidden file, .vr_settings. This is how a visualruby project is identified. You will only be able to select valid visualruby project folders. </property>
56
56
  <property name="wrap">True</property>
57
57
  </object>
@@ -61,7 +61,7 @@
61
61
  <child type="label">
62
62
  <object class="GtkLabel" id="label2">
63
63
  <property name="visible">True</property>
64
- <property name="can_focus">False</property>
64
+ <property name="can-focus">False</property>
65
65
  <property name="label" translatable="yes">Instructions</property>
66
66
  </object>
67
67
  </child>
@@ -75,11 +75,11 @@
75
75
  <child>
76
76
  <object class="GtkScrolledWindow" id="scrolledwindow1">
77
77
  <property name="visible">True</property>
78
- <property name="can_focus">True</property>
79
- <property name="margin_top">8</property>
80
- <property name="margin_bottom">8</property>
78
+ <property name="can-focus">True</property>
79
+ <property name="margin-top">8</property>
80
+ <property name="margin-bottom">8</property>
81
81
  <property name="vexpand">True</property>
82
- <property name="shadow_type">in</property>
82
+ <property name="shadow-type">in</property>
83
83
  <child>
84
84
  <placeholder/>
85
85
  </child>
@@ -93,15 +93,15 @@
93
93
  <child>
94
94
  <object class="GtkBox" id="box2">
95
95
  <property name="visible">True</property>
96
- <property name="can_focus">False</property>
96
+ <property name="can-focus">False</property>
97
97
  <child>
98
98
  <object class="GtkCheckButton" id="show_expanders">
99
99
  <property name="label" translatable="yes">Show Expanders</property>
100
100
  <property name="visible">True</property>
101
- <property name="can_focus">True</property>
102
- <property name="receives_default">False</property>
101
+ <property name="can-focus">True</property>
102
+ <property name="receives-default">False</property>
103
103
  <property name="xalign">0</property>
104
- <property name="draw_indicator">True</property>
104
+ <property name="draw-indicator">True</property>
105
105
  </object>
106
106
  <packing>
107
107
  <property name="expand">False</property>
@@ -112,14 +112,14 @@
112
112
  <child>
113
113
  <object class="GtkButtonBox" id="buttonbox1">
114
114
  <property name="visible">True</property>
115
- <property name="can_focus">False</property>
116
- <property name="layout_style">spread</property>
115
+ <property name="can-focus">False</property>
116
+ <property name="layout-style">spread</property>
117
117
  <child>
118
118
  <object class="GtkButton" id="load_state">
119
119
  <property name="label" translatable="yes">Load State</property>
120
120
  <property name="visible">True</property>
121
- <property name="can_focus">True</property>
122
- <property name="receives_default">True</property>
121
+ <property name="can-focus">True</property>
122
+ <property name="receives-default">True</property>
123
123
  </object>
124
124
  <packing>
125
125
  <property name="expand">True</property>
@@ -131,8 +131,8 @@
131
131
  <object class="GtkButton" id="save_state">
132
132
  <property name="label" translatable="yes">Save State</property>
133
133
  <property name="visible">True</property>
134
- <property name="can_focus">True</property>
135
- <property name="receives_default">True</property>
134
+ <property name="can-focus">True</property>
135
+ <property name="receives-default">True</property>
136
136
  </object>
137
137
  <packing>
138
138
  <property name="expand">True</property>
@@ -4,19 +4,18 @@ width: 1086
4
4
  height: 600
5
5
  panel_pos: 360
6
6
  notebook_panel_position: 400
7
- run_command_line: ruby golf_handicap eric
7
+ run_command_line: ruby golf_handicap.rb
8
8
  open_files:
9
- - "/home/eric/vrp/vr3/examples/golf_handicap/golf_handicap"
10
9
  - "/home/eric/vrp/vr3/examples/golf_handicap/src/Handicap.rb"
11
- - "/home/eric/vrp/vr3/examples/golf_handicap/src/Score.rb"
12
- - "/home/eric/vrp/vr3/examples/golf_handicap/golf_handicap.gemspec"
13
10
  - "/home/eric/vrp/vr3/examples/golf_handicap/src/LoadGolfer.rb"
11
+ - "/home/eric/vrp/vr3/examples/golf_handicap/src/Score.rb"
12
+ - "/home/eric/vrp/vr3/examples/golf_handicap/golf_handicap.rb"
14
13
  open_folders:
15
14
  - "/home/eric/vrp/vr3/examples/golf_handicap"
16
15
  - "/home/eric/vrp/vr3/examples/golf_handicap/src"
17
16
  - "/home/eric/vrp/vr3/examples/golf_handicap/src/glade"
18
- current_file: "/home/eric/vrp/vr3/examples/golf_handicap/golf_handicap"
19
- current_line: 20
17
+ current_file: "/home/eric/vrp/vr3/examples/golf_handicap/src/LoadGolfer.rb"
18
+ current_line: 9
20
19
  rdoc_command_line: rdoc -x README
21
20
  builder: !ruby/object:Gtk::Builder {}
22
21
  top_level_window: false
@@ -0,0 +1,106 @@
1
+ --- !ruby/object:Handicap
2
+ scores:
3
+ - !ruby/object:Score
4
+ ui_course_name_ent: Agusta National
5
+ ui_course_rating_ent: '70'
6
+ ui_course_slope_ent: '134'
7
+ ui_date_calendar: !ruby/object:DateTime 2024-09-30 00:00:00.000000000 Z
8
+ ui_score_ent: '90'
9
+ used: "y"
10
+ handicap: '16.2'
11
+ builder: !ruby/object:Gtk::Builder {}
12
+ top_level_window: false
13
+ - !ruby/object:Score
14
+ ui_course_name_ent: Agusta National
15
+ ui_course_rating_ent: '70'
16
+ ui_course_slope_ent: '134'
17
+ ui_date_calendar: !ruby/object:DateTime 2024-09-28 18:07:05.009883419 -04:00
18
+ ui_score_ent: '90'
19
+ used: "y"
20
+ handicap: '16.2'
21
+ builder: !ruby/object:Gtk::Builder {}
22
+ top_level_window: false
23
+ - !ruby/object:Score
24
+ ui_course_name_ent: Bushwood Links
25
+ ui_course_rating_ent: '71'
26
+ ui_course_slope_ent: '120'
27
+ ui_date_calendar: !ruby/object:DateTime 2024-09-28 18:07:00.570518201 -04:00
28
+ ui_score_ent: '90'
29
+ used: ''
30
+ handicap: '16.3'
31
+ builder: !ruby/object:Gtk::Builder {}
32
+ top_level_window: false
33
+ - !ruby/object:Score
34
+ ui_course_name_ent: Bushwood Links
35
+ ui_course_rating_ent: '71'
36
+ ui_course_slope_ent: '120'
37
+ ui_date_calendar: !ruby/object:DateTime 2024-09-28 18:04:04.941273790 -04:00
38
+ ui_score_ent: '90'
39
+ used: ''
40
+ handicap: '16.3'
41
+ builder: !ruby/object:Gtk::Builder {}
42
+ top_level_window: false
43
+ - !ruby/object:Score
44
+ ui_course_name_ent: Agusta National
45
+ ui_course_rating_ent: '70'
46
+ ui_course_slope_ent: '134'
47
+ ui_date_calendar: !ruby/object:DateTime 2024-09-28 00:00:00.000000000 Z
48
+ ui_score_ent: '99'
49
+ used: ''
50
+ handicap: '16.3'
51
+ builder: !ruby/object:Gtk::Builder {}
52
+ top_level_window: false
53
+ - !ruby/object:Score
54
+ ui_course_name_ent: Bushwood Links
55
+ ui_course_rating_ent: '71'
56
+ ui_course_slope_ent: '120'
57
+ ui_date_calendar: !ruby/object:DateTime 2024-09-26 00:00:00.000000000 Z
58
+ ui_score_ent: '90'
59
+ used: ''
60
+ handicap: '16.3'
61
+ builder: !ruby/object:Gtk::Builder {}
62
+ top_level_window: false
63
+ - !ruby/object:Score
64
+ ui_course_name_ent: Bushwood Links
65
+ ui_course_rating_ent: '71'
66
+ ui_course_slope_ent: '120'
67
+ ui_date_calendar: !ruby/object:DateTime 2024-09-13 00:00:00.000000000 Z
68
+ ui_score_ent: '89'
69
+ used: "y"
70
+ handicap: n/a
71
+ builder: !ruby/object:Gtk::Builder {}
72
+ top_level_window: false
73
+ - !ruby/object:Score
74
+ ui_course_name_ent: Bushwood Links
75
+ ui_course_rating_ent: '71'
76
+ ui_course_slope_ent: '120'
77
+ ui_date_calendar: !ruby/object:DateTime 2024-09-11 00:00:00.000000000 Z
78
+ ui_score_ent: '98'
79
+ used: ''
80
+ handicap: n/a
81
+ builder: !ruby/object:Gtk::Builder {}
82
+ top_level_window: false
83
+ - !ruby/object:Score
84
+ ui_course_name_ent: Whittier Narrows
85
+ ui_course_rating_ent: '70'
86
+ ui_course_slope_ent: '116'
87
+ ui_date_calendar: !ruby/object:DateTime 2024-09-02 00:00:00.000000000 Z
88
+ ui_score_ent: '96'
89
+ used: ''
90
+ handicap: n/a
91
+ builder: !ruby/object:Gtk::Builder {}
92
+ top_level_window: false
93
+ - !ruby/object:Score
94
+ ui_course_name_ent: Bushwood Links
95
+ ui_course_rating_ent: '71'
96
+ ui_course_slope_ent: '120'
97
+ ui_date_calendar: !ruby/object:DateTime 2024-09-02 00:00:00.000000000 Z
98
+ ui_score_ent: '89'
99
+ used: ''
100
+ handicap: n/a
101
+ builder: !ruby/object:Gtk::Builder {}
102
+ top_level_window: false
103
+ vr_yaml_file: "/home/eric/vrp/vr3/examples/golf_handicap/eric_cunningham.yaml"
104
+ builder: !ruby/object:Gtk::Builder {}
105
+ ui_rounds_listview:
106
+ top_level_window: true
@@ -0,0 +1,18 @@
1
+
2
+ require "vrlib"
3
+ require_relative "src/Handicap"
4
+ require_relative "src/LoadGolfer"
5
+ require_relative "src/Score"
6
+
7
+ last_file = Dir.glob("*.yaml").max_by {|f| File.mtime(f)}
8
+
9
+ if last_file.nil?
10
+ load_new_golfer
11
+ else
12
+ VR::load_yaml(Handicap, last_file).show_glade
13
+ end
14
+
15
+
16
+
17
+
18
+
@@ -7,51 +7,53 @@ class Handicap
7
7
  end
8
8
 
9
9
  def before_show()
10
- @view = VR::ListView.new(rnd: String, date: VR::Col::CalendarCol,
10
+ @ui_rounds_listview = VR::ListView.new(rnd: String, date: VR::Col::CalendarCol,
11
11
  course: String, rating_slope: String, score: String, diff: Score,
12
12
  hcp: String)
13
- @view.col_xalign(diff: 1, hcp: 1, score: 1)
14
- @view.col_sortable(date: true, course: true)
15
- @view.show
13
+ @ui_rounds_listview.col_xalign(diff: 1, hcp: 1, score: 1)
14
+ @ui_rounds_listview.col_sortable(date: true, course: true)
15
+ @ui_rounds_listview.show
16
16
  golfer_file = File.basename(@vr_yaml_file, ".*")
17
17
  golfer = golfer_file.split("_").map(&:capitalize).join(' ')
18
- @builder[:name].label = "<big><big><big><big><big>#{golfer}</big></big></big></big></big>"
18
+ @builder[:ui_name_lbl].label = "<big><big><big><big><big>#{golfer}</big></big></big></big></big>"
19
19
  if File.exists?(golfer_file + ".jpg")
20
- @builder[:image].file = golfer_file + ".jpg"
21
- @builder[:image].visible = true
20
+ @builder[:ui_image].file = golfer_file + ".jpg"
21
+ @builder[:ui_image].visible = true
22
22
  end
23
23
  refresh()
24
24
  end
25
25
 
26
26
  def refresh()
27
27
  update_handicaps
28
- @view.model.clear
28
+ @ui_rounds_listview.model.clear
29
29
  i = 1
30
30
  @scores.each do |s|
31
- row = @view.add_row()
31
+ row = @ui_rounds_listview.add_row()
32
32
  row[:rnd] = "#{i}."
33
33
  i += 1
34
- row[:date] = VR::Col::CalendarCol.new(s.date, :format => "%d %b %Y ", :hide_time=>true, :hide_date => false)
35
- row[:course] = s.course_name
36
- row[:score] = s.score
37
- row[:rating_slope] = "#{s.course_rating.to_s}/#{s.course_slope.to_s}"
38
- row[:diff] = s
34
+ row[:date] = VR::Col::CalendarCol.new(s.ui_date_calendar, :format => "%d %b %Y ", :hide_time=>true, :hide_date => false)
35
+ row[:course] = s.ui_course_name_ent
36
+ row[:score] = s.ui_score_ent
37
+ row[:rating_slope] = "#{s.ui_course_rating_ent.to_s}/#{s.ui_course_slope_ent.to_s}"
38
+ row[:diff] = s # store whole object
39
39
  row[:hcp] = s.handicap
40
40
  end
41
41
  end
42
42
 
43
- def buttonAdd__clicked(*a)
44
- if row = @view.selected_rows.first
43
+ def ui_add_but__clicked(*a)
44
+ if row = @ui_rounds_listview.selected_rows.first
45
45
  course = row[:course]
46
46
  rating, slope = row[:rating_slope].split("/")
47
47
  else
48
- course = rating = slope = ""
48
+ course = "Agusta National"
49
+ rating = "70"
50
+ slope = "134"
49
51
  end
50
52
  score = Score.new(course, rating, slope)
51
- score.show_glade
52
- if !score.used.nil? and score.score.to_i > 50
53
+ score.show_glade(self)
54
+ if !score.used.nil? and score.ui_score_ent.to_i > 50 #score.used = "n" when save butoon pressed
53
55
  @scores << score
54
- @scores.sort! { |x,y| y.date <=> x.date }
56
+ @scores.sort! { |x,y| y.ui_date_calendar <=> x.ui_date_calendar }
55
57
  refresh()
56
58
  end
57
59
  end
@@ -62,7 +64,7 @@ class Handicap
62
64
  end
63
65
  @scores.each {|s| s.used = ""}
64
66
  fill_handicap(@scores)
65
- @builder[:handicap].label = "<big><big><big><big><big><big><big><big>#{@scores[0].handicap}</big></big></big></big></big></big></big></big>" if @scores[0]
67
+ @builder[:ui_handicap_lbl].label = "<big><big><big><big><big><big><big><big>#{@scores[0].handicap}</big></big></big></big></big></big></big></big>" if @scores[0]
66
68
  end
67
69
 
68
70
  def fill_handicap(score_array)
@@ -76,8 +78,8 @@ class Handicap
76
78
  score_array[0].handicap = count > 0 ? x[0..x.index(".")+1] : "n/a" if score_array[0]
77
79
  end
78
80
 
79
- def buttonChangeGolfer__clicked(*a)
80
- @view = nil # so it doesn't save contents
81
+ def ui_change_but__clicked(*a)
82
+ @ui_rounds_listview = nil # so it doesn't save contents
81
83
  VR::save_yaml(self)
82
84
  @builder[:window1].destroy
83
85
  load_new_golfer
@@ -85,7 +87,7 @@ class Handicap
85
87
 
86
88
 
87
89
  def window1__delete_event(*)
88
- @view = nil
90
+ @ui_rounds_listview = nil
89
91
  VR::save_yaml(self)
90
92
  return false #ok to close
91
93
  end
@@ -98,18 +100,18 @@ class Handicap
98
100
  end
99
101
  end
100
102
 
101
- def buttonDelete__clicked(*a)
102
- return unless row = @view.selected_rows.first
103
+ def ui_delete_but__clicked(*a)
104
+ return unless row = @ui_rounds_listview.selected_rows.first
103
105
  if alert("Are you sure you want to delete this score?", button_yes: "Delete", button_no: "Cancel")
104
106
  @scores.delete(row[:diff])
105
107
  refresh
106
108
  end
107
109
  end
108
110
 
109
- def buttonEditScore__clicked(*a)
110
- return unless row = @view.selected_rows.first
111
+ def ui_edit_but__clicked(*a)
112
+ return unless row = @ui_rounds_listview.selected_rows.first
111
113
  row[:diff].show_glade
112
- @scores.sort! { |x,y| y.date <=> x.date }
114
+ @scores.sort! { |x,y| y.ui_date_calendar <=> x.ui_date_calendar }
113
115
  refresh
114
116
  end
115
117
  end
@@ -1,27 +1,27 @@
1
- def load_new_golfer
2
- files = []
3
- names = []
4
- Dir[File.expand_path('~/visualruby/golf_handicap/**/*.yaml')].each do |file_name|
5
- files << file_name
6
- names << File.basename(file_name, ".*")
7
- end
8
-
9
- answer = files.empty? ? false : alert("Choose Golfer:", choices: names, button_no: "New Golfer")
10
-
11
- if answer.is_a?(String)
12
- load_file = files[names.index(answer)]
13
- elsif answer == false
14
- golfer_name = alert("Enter Name of Golfer to Create a new Handicap File:",
15
- input_text: "",
16
- button_yes: "Add Golfer"
17
- )
18
- exit! unless golfer_name.is_a?(String)
19
- exit! unless golfer_name.length > 2
20
- load_file = golfer_name.downcase.tr("^a-z\s", '').gsub(" ", "_") + ".yaml"
21
- else
22
- exit!
23
- end
24
-
25
- VR::load_yaml(Handicap, load_file).show_glade
26
-
27
- end
1
+ def load_new_golfer
2
+ files = []
3
+ names = []
4
+ Dir[File.expand_path("*.yaml")].each do |file_name|
5
+ files << file_name
6
+ names << File.basename(file_name, ".*")
7
+ end
8
+
9
+ answer = files.empty? ? false : alert("Choose Golfer:", choices: names, button_no: "New Golfer")
10
+
11
+ if answer.is_a?(String)
12
+ load_file = files[names.index(answer)]
13
+ elsif answer == false
14
+ golfer_name = alert("Enter Name of Golfer to Create a new Handicap File:",
15
+ input_text: "",
16
+ button_yes: "Add Golfer"
17
+ )
18
+ exit! unless golfer_name.is_a?(String)
19
+ exit! unless golfer_name.length > 2
20
+ load_file = golfer_name.downcase.tr("^a-z\s", '').gsub(" ", "_") + ".yaml"
21
+ else
22
+ exit!
23
+ end
24
+
25
+ VR::load_yaml(Handicap, load_file).show_glade
26
+
27
+ end