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; }
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(); }
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; }
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; }
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; }
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); }