class ArcadiaMainMenu

Constants

SUF

Attributes

menubar[R]

Public Class Methods

new(root) click to toggle source
# File lib/a-core.rb, line 1678
  def initialize(root)
    # Creating Menubar
    @menubar = Arcadia.wf.menu(root)
#    @menubar = TkMenu.new(root)
    begin
#      if !OS.mac?
#        @menubar.configure(Arcadia.style('menu').delete_if {|key, value| key=='tearoff'})
#        @menubar.extend(TkAutoPostMenu)
#        @menubar.event_posting_on
#      end
      root['menu'] = @menubar
      @menu_contexts = {}
    rescue RuntimeError => e
      Arcadia.runtime_error(e)
    end
  end
sub_menu(_menu, _title=nil) click to toggle source

Public Instance Methods

get_menu_context(_menubar, _context, _underline=nil) click to toggle source
# File lib/a-core.rb, line 1695
  def get_menu_context(_menubar, _context, _underline=nil)
    m = @menu_contexts[_context]
    if !m.nil? 
      m
    else
      topmenu = Arcadia.wf.menu(_menubar)
#      topmenu = TkMenu.new(_menubar)
#      if !OS.mac?
#        topmenu.configure(Arcadia.style('menu'))
#        topmenu.extend(TkAutoPostMenu)
#      end
      opt = {:menu => topmenu, :label => _context}
      opt[:underline]=_underline if _underline
      _menubar.add(:cascade, opt)
      @menu_contexts[_context] = topmenu
      topmenu
    end
  end
get_sub_menu(menu_context, folder=nil) click to toggle source
# File lib/a-core.rb, line 1739
  def get_sub_menu(menu_context, folder=nil)
    sub = ArcadiaMainMenu.sub_menu(menu_context, folder)
    if sub.nil?
      sub = Arcadia.wf.menu(:tearoff=>0)
#      sub = TkMenu.new(
#      :tearoff=>0
#      )
#      if !OS.mac?
#        sub.configure(Arcadia.style('menu'))
#        sub.extend(TkAutoPostMenu)
#      end
      #update_style(sub)
      menu_context.insert('end',
      :cascade,
      :label=>folder,
      :menu=>sub,
      :hidemargin => false
      )
    end
    sub
  end
make_menu(_menu, context_path, context_underline=nil) click to toggle source
# File lib/a-core.rb, line 1766
def make_menu(_menu, context_path, context_underline=nil)
  folders = context_path.split('/')
  sub = _menu
  folders.each{|folder|
    sub = get_sub_menu(sub, folder)
  }
  sub
end
make_menu_in_menubar(_menubar, _context, context_path, context_underline=nil) click to toggle source
# File lib/a-core.rb, line 1761
def make_menu_in_menubar(_menubar, _context, context_path, context_underline=nil)
  context_menu = get_menu_context(_menubar, _context, context_underline)
  make_menu(context_menu, context_path, context_underline)
end
new_item(_sender, _args= nil) click to toggle source
Calls superclass method ArcadiaUserControl#new_item
# File lib/a-core.rb, line 1775
def new_item(_sender, _args= nil)
  return if _args.nil?

  if _args['context_caption']
    conte = _args['context_caption']
  else
    conte = _args['context']
  end
  if _args['rif'] == 'main'
    _args['menu']=make_menu_in_menubar(@menubar, conte, _args['context_path'], _args['context_underline'])
  else
    if Arcadia.menu_root(_args['rif'])
      _args['menu']=make_menu(Arcadia.menu_root(_args['rif']), _args['context_path'], _args['context_underline'])
    else
      msg = Arcadia.text("main.e.adding_new_menu_item.msg", [_args['name'], _args['rif']])
      Arcadia.dialog(self,
      'type'=>'ok',
      'title' => Arcadia.text("main.e.adding_new_menu_item.title",[self.class::SUF]),
      'msg'=>msg,
      'level'=>'error')

      _args['menu']=make_menu_in_menubar(@menubar, conte, _args['context_path'], _args['context_underline'])
    end
  end
  super(_sender, _args)
end