cosmos 4.0.0 → 4.0.1

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 (66) hide show
  1. checksums.yaml +4 -4
  2. data/Manifest.txt +16 -3
  3. data/autohotkey/tools/ConfigEditor +16 -0
  4. data/autohotkey/tools/packet_viewer.ahk +2 -1
  5. data/autohotkey/tools/tlm_viewer.ahk +2 -0
  6. data/autohotkey/tools/tool_launch.rb +38 -0
  7. data/data/COSMOS_Architecture.png +0 -0
  8. data/data/config/system.yaml +79 -2
  9. data/data/crc.txt +29 -28
  10. data/demo/Gemfile +1 -1
  11. data/demo/config/data/crc.txt +7 -2
  12. data/demo/config/targets/SYSTEM/cmd_tlm/meta_tlm.txt +10 -0
  13. data/demo/config/tools/cmd_tlm_server/cmd_tlm_server.txt +1 -1
  14. data/demo/tools/mac/ConfigEditor.app/Contents/Info.plist +38 -0
  15. data/demo/tools/mac/ConfigEditor.app/Contents/MacOS/ConfigEditor.rb +16 -0
  16. data/demo/tools/mac/ConfigEditor.app/Contents/MacOS/main.sh +10 -0
  17. data/demo/tools/mac/ConfigEditor.app/Contents/MacOS/tool_launch.rb +38 -0
  18. data/demo/tools/mac/ConfigEditor.app/Contents/Resources/appIcon.icns +0 -0
  19. data/install/Gemfile +1 -1
  20. data/install/config/data/crc.txt +6 -1
  21. data/install/config/targets/SYSTEM/cmd_tlm/meta_tlm.txt +9 -0
  22. data/install/tools/mac/ConfigEditor.app/Contents/Info.plist +38 -0
  23. data/install/tools/mac/ConfigEditor.app/Contents/MacOS/ConfigEditor.rb +16 -0
  24. data/install/tools/mac/ConfigEditor.app/Contents/MacOS/main.sh +10 -0
  25. data/install/tools/mac/ConfigEditor.app/Contents/MacOS/tool_launch.rb +38 -0
  26. data/install/tools/mac/ConfigEditor.app/Contents/Resources/appIcon.icns +0 -0
  27. data/lib/cosmos/gui/dialogs/set_tlm_dialog.rb +3 -0
  28. data/lib/cosmos/gui/dialogs/tlm_graph_dialog.rb +7 -13
  29. data/lib/cosmos/interfaces/interface.rb +1 -1
  30. data/lib/cosmos/packets/commands.rb +5 -0
  31. data/lib/cosmos/packets/packet.rb +8 -0
  32. data/lib/cosmos/packets/packet_item.rb +9 -0
  33. data/lib/cosmos/script/api_shared.rb +1 -29
  34. data/lib/cosmos/script/scripting.rb +2 -4
  35. data/lib/cosmos/script/telemetry.rb +38 -22
  36. data/lib/cosmos/system/system.rb +51 -53
  37. data/lib/cosmos/tools/cmd_tlm_server/api.rb +27 -4
  38. data/lib/cosmos/tools/cmd_tlm_server/gui/packets_tab.rb +1 -7
  39. data/lib/cosmos/tools/config_editor/config_editor.rb +9 -1
  40. data/lib/cosmos/tools/config_editor/config_editor_frame.rb +16 -1
  41. data/lib/cosmos/tools/packet_viewer/packet_viewer.rb +1 -9
  42. data/lib/cosmos/tools/tlm_viewer/tlm_viewer.rb +1 -1
  43. data/lib/cosmos/tools/tlm_viewer/widgets/canvas_clickable.rb +33 -0
  44. data/lib/cosmos/tools/tlm_viewer/widgets/canvas_widget.rb +14 -6
  45. data/lib/cosmos/tools/tlm_viewer/widgets/canvasdot_widget.rb +15 -17
  46. data/lib/cosmos/tools/tlm_viewer/widgets/canvasimage_widget.rb +5 -3
  47. data/lib/cosmos/tools/tlm_viewer/widgets/canvasimagevalue_widget.rb +17 -15
  48. data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabel_widget.rb +13 -6
  49. data/lib/cosmos/tools/tlm_viewer/widgets/canvaslabelvalue_widget.rb +5 -7
  50. data/lib/cosmos/tools/tlm_viewer/widgets/canvasline_widget.rb +2 -4
  51. data/lib/cosmos/tools/tlm_viewer/widgets/canvaslinevalue_widget.rb +8 -11
  52. data/lib/cosmos/tools/tlm_viewer/widgets/canvasvalue_widget.rb +2 -4
  53. data/lib/cosmos/top_level.rb +14 -0
  54. data/lib/cosmos/utilities/ruby_lex_utils.rb +1 -1
  55. data/lib/cosmos/version.rb +4 -4
  56. data/spec/install/config/targets/INST/cmd_tlm/inst_tlm.txt +3 -3
  57. data/spec/install/config/targets/SYSTEM/cmd_tlm/meta_tlm.txt +10 -0
  58. data/spec/packets/commands_spec.rb +10 -0
  59. data/spec/packets/packet_spec.rb +62 -0
  60. data/spec/script/telemetry_spec.rb +8 -6
  61. data/spec/system/system_spec.rb +192 -0
  62. data/spec/system/target_spec.rb +6 -5
  63. metadata +18 -5
  64. data/demo/config/targets/SYSTEM/cmd_tlm/meta_cmd_tlm.txt +0 -16
  65. data/install/config/targets/SYSTEM/cmd_tlm/meta_cmd_tlm.txt +0 -14
  66. data/spec/install/config/targets/SYSTEM/cmd_tlm/meta_cmd_tlm.txt +0 -16
@@ -23,6 +23,13 @@ require 'cosmos/gui/choosers/file_chooser'
23
23
  require 'cosmos/config/meta_config_parser'
24
24
 
25
25
  module Cosmos
26
+ class FocusComboBox < Qt::ComboBox
27
+ signals 'focus_in()'
28
+ def focusInEvent(event)
29
+ emit focus_in
30
+ end
31
+ end
32
+
26
33
  class ConfigEditorFrame < Qt::Widget
27
34
  slots 'context_menu(const QPoint&)'
28
35
  slots 'undo_available(bool)'
@@ -576,7 +583,7 @@ module Cosmos
576
583
  process_parameters(attribute_value[current_value]['parameters'], parameter_index + 1)
577
584
  end
578
585
  elsif attribute_value.is_a? Array # Just a bunch of strings
579
- value_widget = Qt::ComboBox.new()
586
+ value_widget = FocusComboBox.new()
580
587
  value_widget.addItems(attribute_value)
581
588
  if required && current_value.nil?
582
589
  value_widget.setStyleSheet("border: 1px solid red")
@@ -585,6 +592,14 @@ module Cosmos
585
592
  value_widget.addItem(current_value) unless attribute_value.include?(current_value)
586
593
  value_widget.setCurrentText(current_value)
587
594
  end
595
+ # If a user is typing in a line from scratch and tabs to a ComboBox
596
+ # field we want to insert the current value as it gets focus so
597
+ # something gets populated. This will happen even in a fully populated
598
+ # line as well but has no effect since we're replacing with the currentText.
599
+ value_widget.connect(SIGNAL('focus_in()')) do |event|
600
+ value_widget.setStyleSheet("")
601
+ insert_word(value_widget.currentText(), parameter_index)
602
+ end
588
603
  value_widget.connect(SIGNAL('currentIndexChanged(const QString&)')) do |word|
589
604
  value_widget.setStyleSheet("")
590
605
  insert_word(word, parameter_index)
@@ -276,7 +276,7 @@ module Cosmos
276
276
  file = File.read(filename)
277
277
  # Wild card the target name because it is not used and is often aliased
278
278
  if file =~ /TELEMETRY\s+.*\s+#{@packet_select.text}/
279
- Cosmos.open_in_text_editor(filename)
279
+ Cosmos.run_cosmos_tool('ConfigEditor', "-f #{filename}")
280
280
  found = true
281
281
  break
282
282
  end
@@ -556,13 +556,6 @@ module Cosmos
556
556
  graph_action.statusTip = tr("Create a new COSMOS graph of #{target_name} #{packet_name} #{item_name}")
557
557
  graph_action.connect(SIGNAL('triggered()')) do
558
558
  @table.clearSelection
559
- if Kernel.is_windows?
560
- Cosmos.run_process("rubyw tools/TlmGrapher -i \"#{target_name} #{packet_name} #{item_name}\" --system #{File.basename(System.initial_filename)}")
561
- elsif Kernel.is_mac? and File.exist?("tools/mac/TlmGrapher.app")
562
- Cosmos.run_process("open tools/mac/TlmGrapher.app --args -i \"#{target_name} #{packet_name} #{item_name}\" --system #{File.basename(System.initial_filename)}")
563
- else
564
- Cosmos.run_process("ruby tools/TlmGrapher -i \"#{target_name} #{packet_name} #{item_name}\" --system #{File.basename(System.initial_filename)}")
565
- end
566
559
  TlmGraphDialog.new(self, target_name, packet_name, item_name)
567
560
  end
568
561
  menu.addAction(graph_action)
@@ -613,4 +606,3 @@ module Cosmos
613
606
  end # class PacketViewer
614
607
 
615
608
  end # module Cosmos
616
-
@@ -258,7 +258,7 @@ module Cosmos
258
258
  # Access the variant we created for this screen name
259
259
  string = combo.itemData(combo.currentIndex)
260
260
  # The second part of the variant after the semicolon is the screen filename
261
- Cosmos.open_in_text_editor(string.value.split(';')[1])
261
+ Cosmos.run_cosmos_tool('ConfigEditor', "-f #{string.value.split(';')[1]}")
262
262
  end
263
263
  grid.addWidget(edit_button, row, 3)
264
264
  end
@@ -0,0 +1,33 @@
1
+ # encoding: ascii-8bit
2
+
3
+ # Copyright 2014 Ball Aerospace & Technologies Corp.
4
+ # All Rights Reserved.
5
+ #
6
+ # This program is free software; you can modify and/or redistribute it
7
+ # under the terms of the GNU General Public License
8
+ # as published by the Free Software Foundation; version 3 with
9
+ # attribution addendums as found in the LICENSE.txt
10
+
11
+ module Cosmos
12
+ module CanvasClickable
13
+ # Requires @x, @y, @x_end, and @y_end to be defined
14
+ def on_click(event, x, y)
15
+ return false unless @screen_settings
16
+ if (x < @x_end) && (x > @x) && (y < @y_end) && (y > @y)
17
+ display(@screen_settings[0], @screen_settings[1].to_i, @screen_settings[2].to_i)
18
+ true
19
+ else
20
+ false
21
+ end
22
+ end
23
+
24
+ def set_setting(setting_name, setting_values)
25
+ case setting_name.upcase
26
+ when 'SCREEN'
27
+ @screen_settings = setting_values
28
+ else
29
+ super(setting_name, setting_values)
30
+ end
31
+ end
32
+ end
33
+ end
@@ -17,14 +17,13 @@ require 'cosmos/tools/tlm_viewer/widgets/widget'
17
17
  require 'cosmos/tools/tlm_viewer/widgets/layout_widget'
18
18
 
19
19
  module Cosmos
20
-
21
20
  class CanvasWidget < Qt::Widget
22
21
  include Widget
23
22
  include LayoutWidget
24
23
 
25
24
  def initialize(parent_layout, width, height)
26
25
  super()
27
- @repaintObjects = []
26
+ @repaint_objects = []
28
27
  self.minimumWidth = width.to_i
29
28
  self.minimumHeight = height.to_i
30
29
  parent_layout.addWidget(self) if parent_layout
@@ -35,7 +34,7 @@ module Cosmos
35
34
  # the order in which child widgets are painted is the order in which they
36
35
  # are created.
37
36
  def add_repaint(obj)
38
- @repaintObjects << obj
37
+ @repaint_objects << obj
39
38
  end
40
39
 
41
40
  def paintEvent(event)
@@ -44,7 +43,7 @@ module Cosmos
44
43
  painter.begin(self)
45
44
  painter.setBackgroundMode(Qt::OpaqueMode)
46
45
  painter.setBackground(Cosmos.getBrush(Qt::white))
47
- @repaintObjects.each do |obj|
46
+ @repaint_objects.each do |obj|
48
47
  obj.paint(painter)
49
48
  end
50
49
  painter.end
@@ -54,9 +53,18 @@ module Cosmos
54
53
  end
55
54
  end
56
55
 
56
+ def mouseReleaseEvent(event)
57
+ cur_x = mapFromGlobal(self.cursor.pos).x
58
+ cur_y = mapFromGlobal(self.cursor.pos).y
59
+ @repaint_objects.each do |obj|
60
+ if obj.respond_to?(:on_click)
61
+ break if obj.on_click(event, cur_x, cur_y)
62
+ end
63
+ end
64
+ end
65
+
57
66
  def update_widget
58
67
  self.update
59
68
  end
60
69
  end
61
-
62
- end # module Cosmos
70
+ end
@@ -11,47 +11,46 @@
11
11
  require 'cosmos/tools/tlm_viewer/widgets/widget'
12
12
 
13
13
  module Cosmos
14
-
15
14
  class CanvasdotWidget
16
15
  include Widget
17
-
18
- def initialize(parent_layout, x, y, color='black', width=3)
16
+
17
+ def initialize(parent_layout, x, y, color = 'black', width = 3)
19
18
  super()
20
19
  if is_numeric?(x)
21
20
  @x = x.to_i
22
21
  else
23
22
  @x = x.to_s
24
23
  end
25
-
24
+
26
25
  if is_numeric?(y)
27
26
  @y = y.to_i
28
27
  else
29
28
  @y = y.to_s
30
29
  end
31
-
30
+
32
31
  @point = Qt::Point.new(0, 0)
33
32
  update_point
34
-
33
+
35
34
  @width = width.to_i
36
35
  @color = Cosmos::getColor(color)
37
36
  parent_layout.add_repaint(self)
38
- end # initialize
39
-
37
+ end
38
+
40
39
  def update_point
41
40
  if is_numeric?(@x)
42
41
  @point.x = @x
43
42
  else
44
43
  @point.x = eval_str(@x)
45
44
  end
46
-
45
+
47
46
  if is_numeric?(@y)
48
47
  @point.y = @y
49
48
  else
50
49
  @point.y = eval_str(@y)
51
50
  end
52
- end # update_point
53
-
54
- def is_numeric?(obj)
51
+ end
52
+
53
+ def is_numeric?(obj)
55
54
  obj.to_s.match(/\A[+-]?\d+?(\.\d+)?\Z/) == nil ? false : true
56
55
  end
57
56
 
@@ -61,11 +60,11 @@ module Cosmos
61
60
  painter.drawEllipse(@point, @width, @width)
62
61
  painter.restore
63
62
  end
64
-
63
+
65
64
  def eval_str(string_to_eval)
66
65
  @screen.instance_eval(string_to_eval)
67
66
  end
68
-
67
+
69
68
  def update_widget
70
69
  update_point
71
70
  end
@@ -74,6 +73,5 @@ module Cosmos
74
73
  super()
75
74
  @point.dispose
76
75
  end
77
- end # CanvasdotWidget
78
-
79
- end # module Cosmos
76
+ end
77
+ end
@@ -9,11 +9,12 @@
9
9
  # attribution addendums as found in the LICENSE.txt
10
10
 
11
11
  require 'cosmos/tools/tlm_viewer/widgets/widget'
12
+ require 'cosmos/tools/tlm_viewer/widgets/canvas_clickable'
12
13
 
13
14
  module Cosmos
14
-
15
15
  class CanvasimageWidget
16
16
  include Widget
17
+ include CanvasClickable
17
18
 
18
19
  def initialize(parent_layout, filename, x, y)
19
20
  super()
@@ -26,6 +27,8 @@ module Cosmos
26
27
  end
27
28
  @image = Qt::Image.new(filename)
28
29
  parent_layout.add_repaint(self)
30
+ @x_end = @x + @image.width
31
+ @y_end = @y + @image.height
29
32
  end
30
33
 
31
34
  def paint(painter)
@@ -37,5 +40,4 @@ module Cosmos
37
40
  @image.dispose
38
41
  end
39
42
  end
40
-
41
- end # module Cosmos
43
+ end
@@ -14,44 +14,46 @@
14
14
  # telemetry point value of 1 or 0 respectively.
15
15
 
16
16
  require 'cosmos/tools/tlm_viewer/widgets/canvasvalue_widget'
17
+ require 'cosmos/tools/tlm_viewer/widgets/canvas_clickable'
17
18
 
18
19
  module Cosmos
19
-
20
20
  class CanvasimagevalueWidget < CanvasvalueWidget
21
-
22
- def initialize(parent_layout, target_name, packet_name, item_name, filename, x, y, value_type=:RAW)
21
+ include CanvasClickable
22
+
23
+ def initialize(parent_layout, target_name, packet_name, item_name, filename, x, y, value_type = :RAW)
23
24
  super(parent_layout, target_name, packet_name, item_name, value_type)
24
25
  @x = x.to_i
25
26
  @y = y.to_i
26
- @imageOn = nil
27
- @imageOff = nil
27
+ @image_on = nil
28
+ @image_off = nil
28
29
 
29
- filenameOn = File.join(::Cosmos::USERPATH, 'config', 'data', filename+'on.gif')
30
+ filenameOn = Dir[File.join(::Cosmos::USERPATH, 'config', 'data', filename + 'on.*')][0]
30
31
  unless File.exist?(filenameOn)
31
32
  raise "Can't find the file #{filenameOn} in #{::Cosmos::USERPATH}/config/data"
32
33
  end
33
- @imageOn = Qt::Image.new(filenameOn)
34
+ @image_on = Qt::Image.new(filenameOn)
34
35
 
35
- filenameOff = File.join(::Cosmos::USERPATH, 'config', 'data', filename+'off.gif')
36
+ filenameOff = Dir[File.join(::Cosmos::USERPATH, 'config', 'data', filename + 'off.*')][0]
36
37
  unless File.exist?(filenameOff)
37
38
  raise "Can't find the file #{filenameOff} in #{::Cosmos::USERPATH}/config/data"
38
39
  end
39
- @imageOff = Qt::Image.new(filenameOff)
40
+ @image_off = Qt::Image.new(filenameOff)
41
+ @x_end = @x + [@image_on.width, @image_off.width].max
42
+ @y_end = @y + [@image_on.height, @image_off.height].max
40
43
  end
41
44
 
42
45
  def draw_widget(painter, on_value)
43
46
  if on_value
44
- painter.drawImage(@x, @y, @imageOn) if @imageOn
47
+ painter.drawImage(@x, @y, @image_on) if @image_on
45
48
  else
46
- painter.drawImage(@x, @y, @imageOff) if @imageOff
49
+ painter.drawImage(@x, @y, @image_off) if @image_off
47
50
  end
48
51
  end
49
52
 
50
53
  def dispose
51
54
  super()
52
- @imageOn.dispose
53
- @imageOff.dispose
55
+ @image_on.dispose
56
+ @image_off.dispose
54
57
  end
55
58
  end
56
-
57
- end # module Cosmos
59
+ end
@@ -9,19 +9,27 @@
9
9
  # attribution addendums as found in the LICENSE.txt
10
10
 
11
11
  require 'cosmos/tools/tlm_viewer/widgets/widget'
12
+ require 'cosmos/tools/tlm_viewer/widgets/canvas_clickable'
12
13
 
13
14
  module Cosmos
14
-
15
15
  class CanvaslabelWidget
16
16
  include Widget
17
+ include CanvasClickable
17
18
 
18
- def initialize(parent_layout, x, y, text, font_size = 12, color='black')
19
+ def initialize(parent_layout, x, y, text, font_size = 12, color = 'black')
19
20
  super()
20
21
  @x = x.to_i
21
- @y = y.to_i
22
+ @paint_y = y.to_i
22
23
  @text = text
23
24
  @color = Cosmos::getColor(color)
24
25
  @font = Cosmos.getFont("helvetica", font_size.to_i)
26
+ fm = Qt::FontMetrics.new(@font)
27
+ @x_end = @x + fm.width(text)
28
+ # drawText uses the y value as the bottom of the text
29
+ # Thus for the clickable area we need to set the y_end to the y value
30
+ # and calculate the top y value by subtracting the font height
31
+ @y_end = y.to_i
32
+ @y = @y_end - fm.height()
25
33
  parent_layout.add_repaint(self)
26
34
  end
27
35
 
@@ -29,9 +37,8 @@ module Cosmos
29
37
  painter.save
30
38
  painter.setPen(@color)
31
39
  painter.setFont(@font)
32
- painter.drawText(@x, @y, @text)
40
+ painter.drawText(@x, @paint_y, @text)
33
41
  painter.restore
34
42
  end
35
43
  end
36
-
37
- end # module Cosmos
44
+ end
@@ -14,7 +14,6 @@ require 'cosmos/tools/tlm_viewer/widgets/canvasvalue_widget'
14
14
  module Cosmos
15
15
 
16
16
  class CanvaslabelvalueWidget < CanvasvalueWidget
17
-
18
17
  def initialize(parent_layout, target_name, packet_name, item_name, x1, y1, font_size = 12, color = 'black', frame = true, frame_width = 3, value_type = :CONVERTED)
19
18
  super(parent_layout, target_name, packet_name, item_name, value_type)
20
19
  @x = x1.to_i
@@ -44,13 +43,12 @@ module Cosmos
44
43
  h = @fm.height
45
44
  w = @fm.width(@value.to_s)
46
45
  @pen.setWidth(@frame_width)
47
- painter.drawLine(@x-5, @y+5, @x+w+10, @y+5) # bottom line
48
- painter.drawLine(@x-5, @y+5, @x-5, @y-h-5) # left line
49
- painter.drawLine(@x-5, @y-h-5, @x+w+10, @y-h-5) # top line
50
- painter.drawLine(@x+w+10, @y+5, @x+w+10, @y-h-5) # right line
46
+ painter.drawLine(@x - 5, @y + 5, @x + w + 10, @y + 5) # bottom line
47
+ painter.drawLine(@x - 5, @y + 5, @x - 5, @y - h - 5) # left line
48
+ painter.drawLine(@x - 5, @y - h - 5, @x + w + 10, @y - h - 5) # top line
49
+ painter.drawLine(@x + w + 10, @y + 5, @x + w + 10, @y - h - 5) # right line
51
50
  end
52
51
  painter.restore
53
52
  end
54
53
  end
55
-
56
- end # module Cosmos
54
+ end
@@ -11,11 +11,10 @@
11
11
  require 'cosmos/tools/tlm_viewer/widgets/widget'
12
12
 
13
13
  module Cosmos
14
-
15
14
  class CanvaslineWidget
16
15
  include Widget
17
16
 
18
- def initialize(parent_layout, x1, y1, x2, y2, color='black', width=1, connector='NO_CONNECTOR')
17
+ def initialize(parent_layout, x1, y1, x2, y2, color = 'black', width = 1, connector = 'NO_CONNECTOR')
19
18
  super()
20
19
  @x1 = x1.to_i
21
20
  @y1 = y1.to_i
@@ -51,5 +50,4 @@ module Cosmos
51
50
  @point.dispose
52
51
  end
53
52
  end
54
-
55
- end # module Cosmos
53
+ end
@@ -15,10 +15,8 @@
15
15
  require 'cosmos/tools/tlm_viewer/widgets/canvasvalue_widget'
16
16
 
17
17
  module Cosmos
18
-
19
18
  class CanvaslinevalueWidget < CanvasvalueWidget
20
-
21
- def initialize (parent_layout, target_name, packet_name, item_name, x1, y1, x2, y2, coloron='green', coloroff='blue', width=3, connector='NO_CONNECTOR', value_type = :RAW)
19
+ def initialize(parent_layout, target_name, packet_name, item_name, x1, y1, x2, y2, color_on = 'green', color_off = 'blue', width = 3, connector = 'NO_CONNECTOR', value_type = :RAW)
22
20
  super(parent_layout, target_name, packet_name, item_name, value_type)
23
21
  @x1 = x1.to_i
24
22
  @y1 = y1.to_i
@@ -30,10 +28,10 @@ module Cosmos
30
28
  else
31
29
  @connector = false
32
30
  end
33
- @coloron = Cosmos::getColor(coloron)
34
- @coloroff = Cosmos::getColor(coloroff)
35
- @pen_on = Cosmos::getPen(coloron)
36
- @pen_off = Cosmos::getPen(coloroff)
31
+ @color_on = Cosmos::getColor(color_on)
32
+ @color_off = Cosmos::getColor(color_off)
33
+ @pen_on = Cosmos::getPen(color_on)
34
+ @pen_off = Cosmos::getPen(color_off)
37
35
  @width = width.to_i
38
36
  end
39
37
 
@@ -41,10 +39,10 @@ module Cosmos
41
39
  painter.save
42
40
  if (on_state == true)
43
41
  pen = @pen_on
44
- color = @coloron
42
+ color = @color_on
45
43
  else
46
44
  pen = @pen_off
47
- color = @coloroff
45
+ color = @color_off
48
46
  end
49
47
 
50
48
  pen.setWidth(@width)
@@ -62,5 +60,4 @@ module Cosmos
62
60
  @point.dispose
63
61
  end
64
62
  end
65
-
66
- end # module Cosmos
63
+ end