Esempio n. 1
0
            public InternalBrowseItem CloneBrowseMenu()
            {
                InternalBrowseItem ret = new InternalBrowseItem();

                ret.BarBreak      = BarBreak;
                ret.Break         = Break;
                ret.BrowseType    = BrowseType;
                ret.DriveInfo     = DriveInfo;
                ret.Enabled       = Enabled;
                ret.OwnerDraw     = OwnerDraw;
                ret.Shortcut      = Shortcut;
                ret.ShowShortcut  = ShowShortcut;
                ret.Text          = Text;
                ret.Visible       = Visible;
                ret.SpecialFolder = SpecialFolder;

                if (MenuItems.Count > 0)
                {
                    foreach (MenuItem child in MenuItems)
                    {
                        ret.MenuItems.Add(((InternalBrowseItem)child).CloneBrowseMenu());
                    }
                }

                //ret.Events.AddHandlers(this.Events);

                return(ret);
            }
Esempio n. 2
0
        private static void map_shortcut(DriveInfo drive_info, InternalBrowseItem menu_item)
        {
            string drive_letter = drive_info.Name.ToLower(System.Globalization.CultureInfo.InvariantCulture);

            for (int i = 0; i < drive_letters.Length; i++)
            {
                if (drive_letters[i] != drive_letter)
                {
                    continue;
                }

                menu_item.Shortcut = drive_shortcuts[i];
                break;
            }
        }
Esempio n. 3
0
        void browse_menu_Click(object sender, EventArgs e)
        {
            if (BrowseMenuClick == null)
            {
                return;
            }

            InternalBrowseItem menu = (InternalBrowseItem)sender;

            ContextMenu cont_menu = menu.GetContextMenu();

            BrowseMenuClick
                (this,
                new BrowseMenuClickEventArgs
                    (menu.BrowseType,
                    cont_menu == null ? null : (mFilePanel)cont_menu.SourceControl,
                    menu.DriveInfo,
                    menu.SpecialFolder));
        }
Esempio n. 4
0
        private void intern_build()
        {
            //clear
            parent_main_menu_item.MenuItems.Clear();
            if (menu_items == null)
            {
                menu_items = new List <InternalBrowseItem>();
            }
            menu_items.Clear();

            //add drive refs
            DriveInfo[] dis = DriveInfo.GetDrives();

            foreach (DriveInfo di in dis)
            {
                InternalBrowseItem drive_menu = new InternalBrowseItem(di);
                drive_menu.Click += new EventHandler(browse_menu_Click);
                menu_items.Add(drive_menu);
            }

            //add line
            InternalBrowseItem menu_break_1 = new InternalBrowseItem(BrowseTypes.Break);

            menu_items.Add(menu_break_1);


            //add special folders
            string[] spec_folder_enum_names = Enum.GetNames(typeof(Environment.SpecialFolder));
            SortedList <string, object> spec_folder_enum_names_sorted =
                new SortedList <string, object>(StringComparer.InvariantCulture);

            foreach (string one_spec_folder_name in spec_folder_enum_names)
            {
                spec_folder_enum_names_sorted.Add(one_spec_folder_name, null);
            }
            InternalBrowseItem spec_folder_header_menu =
                new InternalBrowseItem(Options.GetLiteral(Options.LANG_SPECIAL_FOLDERS));

            foreach (KeyValuePair <string, object> kvp in spec_folder_enum_names_sorted)
            {
                InternalBrowseItem spec_folder_menu = new InternalBrowseItem
                                                          ((Environment.SpecialFolder)Enum.Parse(typeof(Environment.SpecialFolder), kvp.Key),
                                                          kvp.Key);
                spec_folder_header_menu.MenuItems.Add(spec_folder_menu);
                spec_folder_menu.Click += new EventHandler(browse_menu_Click);
            }
            menu_items.Add(spec_folder_header_menu);

            //add some browse items
            InternalBrowseItem find_menu = new InternalBrowseItem(BrowseTypes.Find);

            menu_items.Add(find_menu);
            find_menu.Click += new EventHandler(browse_menu_Click);

            InternalBrowseItem network_menu = new InternalBrowseItem(BrowseTypes.Network);

            menu_items.Add(network_menu);
            network_menu.Click += new EventHandler(browse_menu_Click);

            InternalBrowseItem jump_menu = new InternalBrowseItem(BrowseTypes.Jump);

            menu_items.Add(jump_menu);
            jump_menu.Click += new EventHandler(browse_menu_Click);

            InternalBrowseItem ftp_menu = new InternalBrowseItem(BrowseTypes.Ftp);

            menu_items.Add(ftp_menu);
            ftp_menu.Click += new EventHandler(browse_menu_Click);

            InternalBrowseItem processes_menu = new InternalBrowseItem(BrowseTypes.Processes);

            menu_items.Add(processes_menu);
            processes_menu.Click += new EventHandler(browse_menu_Click);

            //add to main menu
            parent_main_menu_item.MenuItems.AddRange(menu_items.ToArray());

            //add to context menu
            if (context_menu == null)
            {
                context_menu = new ContextMenu();
            }
            context_menu.MenuItems.Clear();
            int added_ind = 0;

            foreach (InternalBrowseItem main_item in menu_items)
            {
                added_ind = context_menu.MenuItems.Add(main_item.CloneBrowseMenu());
                context_menu.MenuItems[added_ind].Click += new EventHandler(browse_menu_Click);
                if (context_menu.MenuItems[added_ind].MenuItems.Count > 0)
                {
                    foreach (InternalBrowseItem child_item in context_menu.MenuItems[added_ind].MenuItems)
                    {
                        child_item.Click += new EventHandler(browse_menu_Click);
                    }
                }
            }

            //add line (only main menu)
            InternalBrowseItem menu_break_2 = new InternalBrowseItem(BrowseTypes.Break);

            parent_main_menu_item.MenuItems.Add(menu_break_2);

            //add refresh (only main menu)
            MenuItem refresh_menu = new MenuItem(Options.GetLiteral(Options.LANG_REFRESH));

            parent_main_menu_item.MenuItems.Add(refresh_menu);
            refresh_menu.Click += new EventHandler(refresh_menu_Click);
        }