Class: MenuMotion::MenuItem
- Inherits:
-
NSMenuItem
- Object
- NSMenuItem
- MenuMotion::MenuItem
- Defined in:
- lib/menu-motion/menu_item.rb
Instance Attribute Summary collapse
-
#item_action ⇒ Object
Returns the value of attribute item_action.
-
#item_target ⇒ Object
Returns the value of attribute item_target.
-
#root_menu ⇒ Object
Returns the value of attribute root_menu.
-
#tag ⇒ Object
Returns the value of attribute tag.
-
#validate ⇒ Object
Returns the value of attribute validate.
Instance Method Summary collapse
- #checked ⇒ Object (also: #checked?)
- #checked=(value) ⇒ Object
- #image=(value) ⇒ Object
-
#initialize(params = {}) ⇒ MenuItem
constructor
A new instance of MenuItem.
- #perform_action ⇒ Object
- #update(params) ⇒ Object
- #valid? ⇒ Boolean
- #valid_target_and_action? ⇒ Boolean
Constructor Details
#initialize(params = {}) ⇒ MenuItem
Returns a new instance of MenuItem.
25 26 27 28 29 |
# File 'lib/menu-motion/menu_item.rb', line 25 def initialize(params = {}) super() update(params) self end |
Instance Attribute Details
#item_action ⇒ Object
Returns the value of attribute item_action.
5 6 7 |
# File 'lib/menu-motion/menu_item.rb', line 5 def item_action @item_action end |
#item_target ⇒ Object
Returns the value of attribute item_target.
5 6 7 |
# File 'lib/menu-motion/menu_item.rb', line 5 def item_target @item_target end |
#root_menu ⇒ Object
Returns the value of attribute root_menu.
5 6 7 |
# File 'lib/menu-motion/menu_item.rb', line 5 def @root_menu end |
#tag ⇒ Object
Returns the value of attribute tag.
5 6 7 |
# File 'lib/menu-motion/menu_item.rb', line 5 def tag @tag end |
#validate ⇒ Object
Returns the value of attribute validate.
5 6 7 |
# File 'lib/menu-motion/menu_item.rb', line 5 def validate @validate end |
Instance Method Details
#checked ⇒ Object Also known as: checked?
11 12 13 |
# File 'lib/menu-motion/menu_item.rb', line 11 def checked self.state == NSOnState end |
#checked=(value) ⇒ Object
16 17 18 |
# File 'lib/menu-motion/menu_item.rb', line 16 def checked=(value) self.state = (value ? NSOnState : NSOffState) end |
#image=(value) ⇒ Object
20 21 22 23 |
# File 'lib/menu-motion/menu_item.rb', line 20 def image=(value) value = NSImage.imageNamed(value) unless value.is_a?(NSImage) self.setImage(value) end |
#perform_action ⇒ Object
31 32 33 34 35 36 37 38 39 |
# File 'lib/menu-motion/menu_item.rb', line 31 def perform_action if self.valid? && self.valid_target_and_action? if self.item_action.to_s.end_with?(":") self.item_target.performSelector(self.item_action, withObject: self) else self.item_target.performSelector(self.item_action) end end end |
#update(params) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/menu-motion/menu_item.rb', line 41 def update(params) assign_attributes(params) self.item_action = params[:action] if params.has_key?(:action) self.item_target = params[:target] if params.has_key?(:target) # Set NSApp as the default target if no other target is given if self.item_action && self.item_target.nil? self.item_target = NSApp end # Setup submenu and keyboard shortcut (params) set_keyboard_shortcut(params[:shortcut]) if params.has_key?(:shortcut) self end |
#valid? ⇒ Boolean
59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/menu-motion/menu_item.rb', line 59 def valid? if self. || self.valid_target_and_action? if self.validate.nil? true else self.validate.call(self) end else false end end |
#valid_target_and_action? ⇒ Boolean
71 72 73 |
# File 'lib/menu-motion/menu_item.rb', line 71 def valid_target_and_action? self.item_target && self.item_action && self.item_target.respond_to?(self.item_action.gsub(":", "")) end |