module Canis::WidgetMenu

Public Class Methods

extended(obj) click to toggle source

@param key, label, desc, action | symbol

key, symbol
Action
Action[] (maybe)
# File lib/canis/core/include/widgetmenu.rb, line 24
def self.extended(obj)
  # don't want this executed each time
  @objects ||= []
  return if @objects.include? obj
  @objects << obj

  obj.instance_exec {
    @_menuitems ||= []
    # callign this method means that no other programs can use those actions else
    # that method will be called more than once, so it must either be called in the constructor
    # or else have a check that it is only called once.
    obj.init_menu if obj.respond_to? :init_menu
  }

end

Public Instance Methods

_show_menu() click to toggle source

popup the hist

# File lib/canis/core/include/widgetmenu.rb, line 55
def _show_menu
  return if @_menuitems.nil? || @_menuitems.empty?
  list = @_menuitems
  menu = PromptMenu.new self do |m|
  list.each { |e| 
    m.add *e
  }
  end
  menu.display_new :title => 'Widget Menu (Press letter)'
end
add_menu_item(*val) click to toggle source
# File lib/canis/core/include/widgetmenu.rb, line 39
def add_menu_item *val
  #@_menuitems ||= []
  @_menuitems << val
end
create_menuitem(*args) click to toggle source
# File lib/canis/core/include/widgetmenu.rb, line 49
def create_menuitem *args
  PromptMenu.create_menuitem *args
end
insert_menu_item(pos, *val) click to toggle source

insert an item at given position (index)

# File lib/canis/core/include/widgetmenu.rb, line 45
def insert_menu_item pos, *val
  #@_menuitems ||= []
  @_menuitems[pos] = val
end