visualruby 3.6.3 → 3.6.4

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