ppcurses 0.0.22 → 0.0.23

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