ppcurses 0.0.22 → 0.0.23

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0471020cb99e01db0442124a99b4964966202dbb
4
- data.tar.gz: 19f200d50de12b5788e02989cec57db41fe4ce41
3
+ metadata.gz: 6475164ec6c50df8c759822b063b25b206cf6e15
4
+ data.tar.gz: 4839f8f44cef3f7b7f32ace4af493ef7637b5093
5
5
  SHA512:
6
- metadata.gz: f65b1cd40c6046404292bac909cbd1d8b08a56f11c86ed14f0bda8307626d2ee6691e0e6c703a07c7ec4e01619e376a4c2d5dcb713d0cea7fd7dad6fc3abf52d
7
- data.tar.gz: 645855d467fbaf5ee24dad1653f008a30530edefeb7181a821578d14f7b6359990d08ab27dd37d267e577d1e447782ae47d2ee535d51309494dafde3ff7f0910
6
+ metadata.gz: 812ba94e081dc939d4ccf8ab5eca062d37c9b06de91f8d6b7d1e78caf6f5eadc3051c9fa1eaa6af8704d9cde279eaf7ea1445b71fa1b1abafdf908b2361d7f83
7
+ data.tar.gz: 9232ada4a8f40c8bb64c1052d06623b4723301140a023c46e8f4d2d882f9e844a0dc7fd7d835ece6a72f72373737b0ec50650620d0e8b3b6f32b2cd10be5fd00
@@ -46,7 +46,7 @@ module PPCurses
46
46
  (0...menu_items.length).each { |i|
47
47
  menu_item = MenuItem.new(menu_items[i])
48
48
  unless action_items.nil?
49
- menu_item.action = action_items[i]
49
+ menu_item.target= action_items[i].method(:execute)
50
50
  end
51
51
 
52
52
  @menu_items.push(menu_item)
@@ -63,16 +63,12 @@ module PPCurses
63
63
  return true
64
64
  end
65
65
 
66
- if c == ENTER
66
+ if c == ENTER && !@global_action.nil?
67
67
 
68
68
  unless @global_action.nil?
69
69
  @global_action.execute
70
70
  end
71
71
 
72
- unless @menu_items[@selection].action.nil?
73
- @menu_items[@selection].action.execute
74
- end
75
-
76
72
  self.show
77
73
  return true
78
74
  end
@@ -10,7 +10,11 @@ module PPCurses
10
10
 
11
11
  class MenuItem
12
12
  attr_accessor :title
13
- attr_accessor :action
13
+
14
+ # Who to notify when menu is selected chosen?
15
+ # The target should be a method selector, and
16
+ attr_accessor :target
17
+
14
18
  attr_accessor :state
15
19
  attr_accessor :selectable
16
20
 
@@ -45,6 +49,16 @@ module PPCurses
45
49
 
46
50
  if key == ' ' and @selectable
47
51
  toggle_on_off_state
52
+ unless @target.nil?
53
+ @target.call(self)
54
+ end
55
+ return true
56
+ end
57
+
58
+ if key == ENTER
59
+ unless @target.nil?
60
+ @target.call(self)
61
+ end
48
62
  return true
49
63
  end
50
64
 
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require_relative '../../lib/ppcurses.rb'
5
+
6
+ class Receiver
7
+
8
+ attr_accessor :count
9
+
10
+ def initialize
11
+ @count = 0
12
+ end
13
+
14
+ def receive_message(menu_item)
15
+ @count = @count + 1
16
+ end
17
+
18
+ end
19
+
20
+ def display_menu
21
+
22
+ # The Receiver class will count every time it receives a message
23
+ # when the space bar is pressed on a menu item.
24
+
25
+ item1 = PPCurses::MenuItem.new('Item 1')
26
+ item1.selectable=true
27
+ item1.target=@receiver.method(:receive_message)
28
+ item2 = PPCurses::MenuItem.new('Item 2')
29
+ item2.selectable=true
30
+ item2.target=@receiver.method(:receive_message)
31
+ item3 = PPCurses::MenuItem.new('Item 3')
32
+ item3.selectable=true
33
+ item2.target=@receiver.method(:receive_message)
34
+
35
+ main_menu = PPCurses::Menu.new( [ item1, item2, item3], nil )
36
+ main_menu.show
37
+ main_menu.menu_selection
38
+ main_menu.close
39
+ end
40
+
41
+ @receiver = Receiver.new
42
+
43
+ screen = PPCurses::Screen.new
44
+ screen.run { display_menu }
45
+
46
+ puts 'count= ' + @receiver.count.to_s
47
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ppcurses
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.22
4
+ version: 0.0.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthieu Cormier
@@ -45,6 +45,7 @@ files:
45
45
  - test/menu/compositeMenu.rb
46
46
  - test/menu/displayMenu.rb
47
47
  - test/menu/menuInMenu.rb
48
+ - test/menu/menuItemsWTarget.rb
48
49
  - test/menu/menuWmenuItems.rb
49
50
  - LICENCE.txt
50
51
  - README.rdoc