# File gnome/sample/gnome-app-helper.rb, line 33
  def initialize
    super(NAME, TITLE)

    self.set_default_size(200, 200)
    self.signal_connect("delete_event") do 
      Gtk::main_quit()
    end

    bar = Gnome::AppBar.new(false, true, Gnome::PREFERENCES_USER)
    self.statusbar = bar

    @label = Gtk::Label.new(TITLE)
    self.set_contents(@label)

    callback = proc { |item, arg| @label.set_text(arg) }

    file_menu = [
      Gnome::UIInfo::menu_new_item('_New', 'Create a new file', callback, 'New'),
      Gnome::UIInfo::menu_open_item(callback, 'Open'),
      Gnome::UIInfo::menu_save_item(callback, 'Save'),
      Gnome::UIInfo::menu_save_as_item(callback, 'Save As'),
      Gnome::UIInfo::menu_revert_item(callback, 'Revert'),
      Gnome::UIInfo::menu_print_item(callback, 'Print'),
      Gnome::UIInfo::menu_print_setup_item(callback, 'Print Setup'),
      Gnome::UIInfo::menu_close_item(callback, 'Close'),
      Gnome::UIInfo::menu_quit_item(callback, 'Quit'),
    ]

    edit_menu = [
      Gnome::UIInfo::menu_cut_item(callback, 'Cut'),
      Gnome::UIInfo::menu_copy_item(callback, 'Copy'),
      Gnome::UIInfo::menu_paste_item(callback, 'Paste'),
      Gnome::UIInfo::menu_select_all_item(callback, 'Select All'),
      Gnome::UIInfo::menu_clear_item(callback, 'Clear'),
      Gnome::UIInfo::menu_undo_item(callback, 'Undo'),
      Gnome::UIInfo::menu_redo_item(callback, 'Redo'),
      Gnome::UIInfo::menu_find_item(callback, 'Find'),
      Gnome::UIInfo::menu_find_again_item(callback, 'Find Again'),
      Gnome::UIInfo::menu_replace_item(callback, 'Replace'),
      Gnome::UIInfo::menu_properties_item(callback, 'Properties'),
    ]

    view_menu = [
    ]

    settings_menu = [
      Gnome::UIInfo::menu_preferences_item(callback, 'Preferences'),
    ]

    files_menu = [
    ]

    windows_menu = [
      Gnome::UIInfo::menu_new_window_item(callback, 'New Window'),
      Gnome::UIInfo::menu_close_window_item(callback, 'Close Window'),
    ]

    help_menu = [
      Gnome::UIInfo::menu_about_item(callback, 'About'),
    ]

    game_menu = [
      Gnome::UIInfo::menu_pause_game_item(callback, 'Pause Game'),
      Gnome::UIInfo::menu_restart_game_item(callback, 'Restart Game'),
      Gnome::UIInfo::menu_undo_move_item(callback, 'Undo Move'),
      Gnome::UIInfo::menu_redo_move_item(callback, 'Redo Move'),
      Gnome::UIInfo::menu_hint_item(callback, 'Hint'),
      Gnome::UIInfo::menu_scores_item(callback, 'Scores'),
      Gnome::UIInfo::menu_end_game_item(callback, 'End Game'),
    ]

    main_menu = [
      Gnome::UIInfo::menu_file_tree(file_menu),
      Gnome::UIInfo::menu_edit_tree(edit_menu),
      Gnome::UIInfo::menu_view_tree(view_menu),
      Gnome::UIInfo::menu_settings_tree(settings_menu),
      Gnome::UIInfo::menu_files_tree(files_menu),
      Gnome::UIInfo::menu_windows_tree(windows_menu),
      Gnome::UIInfo::menu_help_tree(help_menu),
      Gnome::UIInfo::menu_game_tree(game_menu),
    ]
    
    radio_toolbar = [
      [Gnome::App::UI_ITEM, "Red", "Red Book", callback, 'toolbar/red',
        Gnome::App::PIXMAP_STOCK, Gnome::Stock::BOOK_RED, 0, 0, nil],
      [Gnome::App::UI_ITEM, "Green", "Green Book", callback, 'toolbar/green',
        Gnome::App::PIXMAP_STOCK, Gnome::Stock::BOOK_GREEN, 0, 0, nil],
      [Gnome::App::UI_ITEM, "Blue", "Blue Book", callback, 'toolbar/blue',
        Gnome::App::PIXMAP_STOCK, Gnome::Stock::BOOK_BLUE, 0, 0, nil],
      [Gnome::App::UI_ITEM, "Yellow", "Yellow Book", callback, 'toolbar/yellow',
        Gnome::App::PIXMAP_STOCK, Gnome::Stock::BOOK_YELLOW, 0, 0, nil],
    ]

    main_toolbar = [
      [Gnome::App::UI_ITEM, "mail", "Mail", callback, 'toolbar/mail',
        Gnome::App::PIXMAP_STOCK, Gnome::Stock::MAIL, 0, 0, nil],
      [Gnome::App::UI_ITEM, "receive", "Mail receive", callback, 'toolbar/mail_receive',
        Gnome::App::PIXMAP_STOCK, Gnome::Stock::MAIL_RCV, 0, 0, nil],
      [Gnome::App::UI_ITEM, "send", "Mail Send", callback, 'toolbar/mail_send',
        Gnome::App::PIXMAP_STOCK, Gnome::Stock::MAIL_SND, 0, 0, nil],
      [Gnome::App::UI_ITEM, "reply", "Mail Reply", callback, 'toolbar/mail_reply',
        Gnome::App::PIXMAP_STOCK, Gnome::Stock::MAIL_RPL, 0, 0, nil],
      [Gnome::App::UI_ITEM, "foward", "Mail Forward", callback, 'toolbar/mail_foward',
        Gnome::App::PIXMAP_STOCK, Gnome::Stock::MAIL_FWD, 0, 0, nil],
      [Gnome::App::UI_ITEM, "new", "Mail New", callback, 'toolbar/mail_new',
        Gnome::App::PIXMAP_STOCK, Gnome::Stock::MAIL_NEW, 0, 0, nil],
      [Gnome::App::UI_ITEM, "attach", "Attach", callback, 'toolbar/attach',
        Gnome::App::PIXMAP_STOCK, Gnome::Stock::ATTACH, 0, 0, nil],
      Gnome::UIInfo::separator,
      Gnome::UIInfo::radiolist(radio_toolbar)
    ]

    menu_info = self.create_menus(main_menu)
    bar.install_menu_hints(menu_info)
    self.create_toolbar(main_toolbar)
  end