# File lib/vimmatelib/files_menu.rb, line 36
    def initialize(parent_window)
      @parent_window = parent_window
      @open_signals = Set.new
      @refresh_signals = Set.new

      # The last path is the path of the file that was used when
      # the menu was opened
      @last_path = nil

      # Build the menu items
      @gtk_menu = Gtk::Menu.new
     
      @gtk_menu.append(open = Gtk::ImageMenuItem.new(Gtk::Stock::OPEN))
      open.signal_connect("activate") do
        menu_open
      end

      @gtk_menu.append(split_open = Gtk::MenuItem.new("_Split Open"))
      split_open.signal_connect("activate") do
        menu_split_open
      end

      @gtk_menu.append(tab_open = Gtk::MenuItem.new("_Tab Open"))
      tab_open.signal_connect("activate") do
        menu_tab_open
      end
      
      @gtk_menu.append(Gtk::SeparatorMenuItem.new)
      
      @gtk_menu.append(new = Gtk::ImageMenuItem.new(Gtk::Stock::NEW))
      new.signal_connect("activate") do
        menu_new
      end
      
      @gtk_menu.append(new_folder = Gtk::MenuItem.new("New _Folder"))
      new_folder.signal_connect("activate") do
        menu_new_folder
      end
      
      @gtk_menu.append(Gtk::SeparatorMenuItem.new)
      
      @gtk_menu.append(rename = Gtk::MenuItem.new("R_ename"))
      rename.signal_connect("activate") do
        menu_rename
      end

      @gtk_menu.append(delete = Gtk::ImageMenuItem.new(Gtk::Stock::DELETE))
      delete.signal_connect("activate") do
        menu_delete
      end

      @gtk_menu.append(Gtk::SeparatorMenuItem.new)

      Requirer.require_if('vimmatelib/subversion') do
        svn_sub_menu = Gtk::Menu.new

        svn_sub_menu.append(svn_add = Gtk::ImageMenuItem.new(Gtk::Stock::ADD))
        svn_add.signal_connect("activate") do
          menu_svn_add
        end

        svn_sub_menu.append(svn_rename = Gtk::MenuItem.new("R_ename"))
        svn_rename.signal_connect("activate") do
          menu_svn_rename
        end

        svn_sub_menu.append(svn_delete = Gtk::ImageMenuItem.new(Gtk::Stock::DELETE))
        svn_delete.signal_connect("activate") do
          menu_svn_delete
        end

        svn_sub_menu.append(svn_revert = Gtk::ImageMenuItem.new(Gtk::Stock::REVERT_TO_SAVED))
        svn_revert.signal_connect("activate") do
          menu_svn_revert
        end

        @gtk_menu.append(subversion = Gtk::MenuItem.new("S_ubversion"))
        subversion.submenu = svn_sub_menu
      end
      
      @gtk_menu.append(refresh = Gtk::ImageMenuItem.new(Gtk::Stock::REFRESH))
      refresh.signal_connect("activate") do
        menu_refresh
      end

      @gtk_menu.show_all
    end