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 +4 -4
- data/lib/ppcurses/menu/BaseMenu.rb +1 -1
- data/lib/ppcurses/menu/Menu.rb +1 -5
- data/lib/ppcurses/menu/menu_item.rb +15 -1
- data/test/menu/menuItemsWTarget.rb +47 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6475164ec6c50df8c759822b063b25b206cf6e15
|
4
|
+
data.tar.gz: 4839f8f44cef3f7b7f32ace4af493ef7637b5093
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 812ba94e081dc939d4ccf8ab5eca062d37c9b06de91f8d6b7d1e78caf6f5eadc3051c9fa1eaa6af8704d9cde279eaf7ea1445b71fa1b1abafdf908b2361d7f83
|
7
|
+
data.tar.gz: 9232ada4a8f40c8bb64c1052d06623b4723301140a023c46e8f4d2d882f9e844a0dc7fd7d835ece6a72f72373737b0ec50650620d0e8b3b6f32b2cd10be5fd00
|
data/lib/ppcurses/menu/Menu.rb
CHANGED
@@ -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
|
-
|
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.
|
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
|