コード例 #1
0
ファイル: Packer.cs プロジェクト: QuocHuy7a10/Arianrhod
 public void SetParam(Packer Caller, 
                   IntPtr hModule, 
                   SPackFileInfo[] PackInfo, 
                   Delegate PackFiles, 
                   String FullOutput, 
                   String FullInputPath, 
                   String Parameter)
 {
     this.Caller = Caller;
     this.hModule = hModule;
     this.info = PackInfo;
     this.PackFiles = (FPackCallback)PackFiles;
     this.FullOutput = FullOutput;
     this.FullInputPath = FullInputPath;
     this.Parameter = Parameter;
 }
コード例 #2
0
ファイル: MainWindow.cs プロジェクト: yunatoomi/DGLE
        private void InitActions()
        {
            // show about
            AboutAction.Activated += (sender, e) =>
                                     new AboutWindow(this, About.Authors, About.Lines, About.Size).Show();

            // show supported extensions
            SupportedFormatsAction.Activated += (sender, e) =>
                                                new SupportedFormatsWindow(this).Show();

            // create new pack
            MenuItem newMenuItem = this.UIManager.GetWidget(@"/mainMenuBar/FileAction/NewAction") as MenuItem;
            Menu     newSubMenu  = new Menu();

            newMenuItem.Submenu = newSubMenu;

            Packer.SupportedExtensions.ToList().ForEach(ext =>
            {
                Gtk.Action action = new Gtk.Action(String.Format("New{0}Action", ext), ext);
                action.Activated += (sender, e) =>
                {
                    if (fileSystem != null)
                    {
                        fileSystem.Close();
                    }
                    fileSystem = null;

                    if (Packer.Create(ext, out fileSystem))
                    {
                        fileSystem.New();
                        ChangePackActionSensitive(true);
                    }
                };
                MenuItem menuItem = action.CreateMenuItem() as MenuItem;
                menuItem.AddAccelerator(
                    "activate",
                    this.UIManager.AccelGroup,
                    new AccelKey((Gdk.Key)Gdk.Key.Parse(typeof(Gdk.Key), ext[0].ToString().ToLower()),
                                 Gdk.ModifierType.ControlMask, AccelFlags.Visible));

                newSubMenu.Append(menuItem);
            });

            // open pack action
            OpenAction.Activated += (sender, e) => HandleOpenAction();

            // save current pack
            SaveAction.Activated += (sender, e) => HandleSaveAction();

            // close pack and exit
            CloseAction.Activated += (sender, e) =>
            {
                if (fileSystem != null)
                {
                    fileSystem.Close();
                }
                fileSystem = null;
                ChangePackActionSensitive(false);
                currentFolder = TreeIter.Zero;
                folderStore.Clear();
                packStore.Clear();
            };

            // exit app
            ExitAction.Activated += (sender, e) => Program.Stop();

            // add files to current pack
            AddFilesAction.Activated += (sender, e) => HandleAddFilesAction();

            // add folder to current pack
            AddFolderAction.Activated += (sender, e) => HandleAddFolderAction();

            // remove items from current pack
            RemoveAction.Activated += (sender, e) => HandleRemoveAction();

            // extract items from current pack
            ExtractAction.Activated += (sender, e) => HandleExtractAction();

            // extract all items from current pack
            ExtractAllAction.Activated += (sender, e) => HandleExtractAllAction();
        }
コード例 #3
0
ファイル: MainWindow.cs プロジェクト: whztt07/DGLE
        private TreeIter FindInPack(TreeIter parent, Packer.Item item)
        {
            List<TreeIter> childIters = null;
            if (TreeIter.Zero.Equals(parent))
                childIters = packStore.GetTopIters().ToList();
            else
                childIters = packStore.GetChilds(parent).ToList();

            var foundIters = childIters.Where(iter =>
            {
                Packer.Item foundItem = packStore.GetValue(iter, 0) as Packer.Item;
                if (item.FullName.CompareTo(foundItem.FullName) == 0)
                    return true;
                return false;
            });

            if (foundIters.Any())
                return foundIters.First();
            else
                return TreeIter.Zero;
        }
コード例 #4
0
ファイル: MainWindow.cs プロジェクト: whztt07/DGLE
 private TreeIter FindInPack(Packer.Item item)
 {
     // find iter in tree store of current pack
     TreeIter foundIter = TreeIter.Zero;
     packStore.Foreach((model, path, iter) =>
     {
         Packer.Item foundItem = packStore.GetValue(iter, 0) as Packer.Item;
         if (item.FullName.CompareTo(foundItem.FullName) == 0)
         {
             foundIter = iter;
             return true;
         }
         return false;
     });
     return foundIter;
 }
コード例 #5
0
ファイル: MainWindow.cs プロジェクト: whztt07/DGLE
        private TreeIter FindInCurrentFolder(Packer.Item item)
        {
            // find iter in list store of current folder
            TreeIter foundIter = TreeIter.Zero;
            folderStore.Foreach((model, path, iter) =>
            {
                Packer.Item foundItem = folderStore.GetValue(iter, 2) as Packer.Item;
                if (foundItem.FullName.CompareTo(item.FullName) == 0)
                {
                    foundIter = iter;
                    return true;
                }
                return false;
            });

            return foundIter;
        }
コード例 #6
0
ファイル: MainWindow.cs プロジェクト: whztt07/DGLE
        private TreeIter AppendItem(TreeIter parent, Packer.Item item)
        {
            TreeIter existIter = FindInPack(parent, item);
            if (!TreeIter.Zero.Equals(existIter))
                return existIter;

            // add item to list store of current folder
            if (parent.Equals(currentFolder))
                packTreeView.SelectAndFocus(
                    folderStore.AppendValues(item.IsFolder ? folderIcon : fileIcon, item.Name, item));

            // add item to tree store of current pack
            if (TreeIter.Zero.Equals(parent))
                return packStore.AppendValues(item);
            else
                return packStore.AppendValues(parent, item);
        }