public FileExplorer() { navigBar = new NavigationBar(NavigationBar.NavigationType.favorites); navigBar.OnChangePath += NavigateBarChange; Toolbar toolbar = new Toolbar(); //WinMenuBar toolbar = new WinMenuBar (); this.PackStart(toolbar, false, false, 0); refreshButton = new ToolButton("refresh.png"); //Stock.Home); refreshButton.IsImportant = true; refreshButton.Label = MainClass.Languages.Translate("menu_refresh"); refreshButton.BorderWidth = 1; refreshButton.Clicked += delegate { FillStore(true); }; toolbar.Insert(refreshButton, -1); upButton = new ToolButton("go-up.png"); //Stock.GoUp upButton.Sensitive = false; upButton.Label = "Up"; upButton.BorderWidth = 1; toolbar.Insert(upButton, -1); Gtk.Menu menu = new Gtk.Menu(); MenuItem mi = new MenuItem("Workspace"); mi.Activated += OnWorkspaceClicked; menu.Insert(mi, -1); mi = new MenuItem("Project"); mi.Activated += OnProjectClicked; menu.Insert(mi, -1); menu.ShowAll(); mi = new MenuItem("User home folder"); mi.Activated += OnHomeClicked; menu.Insert(mi, -1); menu.ShowAll(); mi = new MenuItem("Output folder"); mi.Activated += OnOutputClicked; menu.Insert(mi, -1); menu.ShowAll(); mi = new MenuItem("Disk root"); mi.Activated += OnOutputClicked; menu.Insert(mi, -1); menu.ShowAll(); if (MainClass.Platform.IsWindows) { SeparatorMenuItem smi = new SeparatorMenuItem(); menu.Insert(smi, -1); string[] drives = Environment.GetLogicalDrives(); foreach (string strDrive in drives) { mi = new MenuItem(strDrive); mi.TooltipText = strDrive; mi.Activated += delegate(object sender, EventArgs e) { string drive = (sender as MenuItem).TooltipText; parent = new DirectoryInfo(drive); FillStore(true); upButton.Sensitive = false; }; menu.Insert(mi, -1); menu.ShowAll(); } ; } MenusToolButton gotoButton = new MenusToolButton(menu, "workspace.png"); gotoButton.IsImportant = true; gotoButton.Label = "Go To"; toolbar.Insert(gotoButton, -1); Gtk.Menu menuAdd = new Gtk.Menu(); mi = new MenuItem(MainClass.Languages.Translate("menu_create_file")); mi.Activated += OnCreateFileClicked; menuAdd.Insert(mi, -1); mi = new MenuItem(MainClass.Languages.Translate("menu_create_dir")); mi.Activated += OnCreateDirectoryClicked; menuAdd.Insert(mi, -1); menuAdd.ShowAll(); MenusToolButton mtbCreate = new MenusToolButton(menuAdd, "file-new.png"); mtbCreate.IsImportant = true; mtbCreate.Label = "Create"; toolbar.Insert(mtbCreate, -1); fileIcon = GetIcon("file.png"); //Stock.File); dirIcon = GetIcon("folder.png"); //Stock.Open); upIcon = GetIcon("go-up.png"); ScrolledWindow sw = new ScrolledWindow(); sw.ShadowType = ShadowType.EtchedIn; sw.SetPolicy(PolicyType.Automatic, PolicyType.Automatic); this.PackStart(sw, true, true, 0); // Create the store and fill it with the contents of '/' store = CreateStore(); iconView = new IconView(store); iconView.ButtonReleaseEvent += OnButtonRelease; iconView.SelectionMode = SelectionMode.Single; iconView.Columns = 1; iconView.Orientation = Orientation.Horizontal; upButton.Clicked += new EventHandler(OnUpClicked); iconView.TextColumn = COL_DISPLAY_NAME; iconView.PixbufColumn = COL_PIXBUF; iconView.TooltipColumn = COL_PATH; iconView.RowSpacing = -6; iconView.Spacing = -1; iconView.ColumnSpacing = 0; iconView.Margin = -5; iconView.ItemActivated += new ItemActivatedHandler(OnItemActivated); sw.Add(iconView); iconView.SelectionChanged += delegate(object sender, EventArgs e) { Gtk.TreePath[] selRow = iconView.SelectedItems; if (selRow.Length < 1) { return; } Gtk.TreePath tp = selRow[0]; TreeIter ti = new TreeIter(); store.GetIter(out ti, tp); if (tp.Equals(TreeIter.Zero)) { return; } string name = store.GetValue(ti, 1).ToString(); if (name == "..") { selectedItem = null; } else { selectedItem = store.GetValue(ti, 0).ToString(); isDir = (bool)store.GetValue(ti, 3); } }; this.PackEnd(navigBar, false, false, 0); }
// Icon,Show Name, Full Path, TypFile public WorkspaceTree() { treeView = new TreeView(); treeView.ButtonReleaseEvent += new ButtonReleaseEventHandler(OnButtonRelease); treeView.KeyReleaseEvent += delegate(object o, KeyReleaseEventArgs args) { if (args.Event.Key == Gdk.Key.Delete) { MainClass.MainWindow.DeleteFile(); } }; //treeView.Model = modelStore = store; filter = new Gtk.TreeModelFilter(store, null); filter.VisibleFunc = new Gtk.TreeModelFilterVisibleFunc(FilterTree); treeView.Model = filter; treeView.HeadersVisible = true; //this.ExpandAll(); treeView.Selection.Mode = Gtk.SelectionMode.Single; treeView.RowActivated += OnRowActivate; treeView.Selection.Changed += OnRowSelection; treeView.ShowExpanders = true; // TreeViewColumn display_column.PackStart (text_render, true); CellRendererPixbuf crp = new CellRendererPixbuf(); crp.Ypad = 0; crp.Yalign = 0; Gtk.CellRendererText fileNameRenderer = new Gtk.CellRendererText(); fileNameRenderer.Ypad = 0; TreeViewColumn icon_column = new TreeViewColumn(); //("Icon", crp, "pixbuf", ICO_ROW); icon_column.PackStart(crp, false); icon_column.AddAttribute(crp, "pixbuf", ICO_ROW); icon_column.PackStart(fileNameRenderer, true); icon_column.AddAttribute(fileNameRenderer, "markup", NAME_ROW); treeView.AppendColumn(icon_column); //treeView.AppendColumn("Icon", crp, "pixbuf", ICO_ROW); treeView.AppendColumn("Name", fileNameRenderer, "text", NAME_ROW); treeView.Columns[NAME_ROW].Visible = false; CellRendererText textRenderer = new CellRendererText(); textRenderer.Ypad = 0; treeView.AppendColumn("FullPath", textRenderer, "text", PATH_ROW); treeView.Columns[PATH_ROW].Visible = false; treeView.HeadersVisible = false; treeView.EnableTreeLines = true; treeView.HoverExpand = false; treeView.HoverSelection = false; treeView.Columns[NAME_ROW].SetCellDataFunc(fileNameRenderer, new Gtk.TreeCellDataFunc(RenderFileNme)); sw.ShadowType = ShadowType.Out; sw.Add(treeView); this.PackEnd(sw, true, true, 0); Toolbar toolbar = new Toolbar(); refreshButton = new ToolButton("refresh.png"); //Stock.Home); refreshButton.IsImportant = true; refreshButton.Label = MainClass.Languages.Translate("menu_refresh"); refreshButton.BorderWidth = 1; refreshButton.Clicked += delegate { MainClass.MainWindow.RefreshProject(); }; toolbar.Insert(refreshButton, -1); Gtk.Menu menuAdd = new Gtk.Menu(); MenuItem mi = new MenuItem(MainClass.Languages.Translate("menu_create_file")); mi.Activated += delegate(object sender, EventArgs e) { NewAction nw = new NewAction(); nw.Activate(); }; menuAdd.Insert(mi, -1); mi = new MenuItem(MainClass.Languages.Translate("menu_create_dir")); mi.Activated += delegate(object sender, EventArgs e) { NewDirectoryAction nw = new NewDirectoryAction(); nw.Activate(); }; menuAdd.Insert(mi, -1); menuAdd.ShowAll(); mtbCreate = new MenusToolButton(menuAdd, "file-new.png"); mtbCreate.IsImportant = true; mtbCreate.Label = "Create"; toolbar.Insert(mtbCreate, -1); if (MainClass.Settings.LogicalSort == null) { MainClass.Settings.LogicalSort = LogicalSystem.GetDefaultLogicalSystem(); } Gtk.Menu menuFilter = new Gtk.Menu(); MenuItem menuItemFilter = new MenuItem(MainClass.Languages.Translate("all_files")); menuItemFilter.Activated += delegate(object sender, EventArgs e) { activetFilter = null; filter.Refilter(); treeView.QueueDraw(); }; menuFilter.Insert(menuItemFilter, -1); foreach (LogicalSystem ls in MainClass.Settings.LogicalSort) { LogicalSystem lsTemp = ls; menuItemFilter = new MenuItem(lsTemp.Display); menuItemFilter.Activated += delegate(object sender, EventArgs e) { if (lsTemp != null) { activetFilter = lsTemp; } else { activetFilter = null; } filter.Refilter(); treeView.QueueDraw(); }; menuFilter.Insert(menuItemFilter, -1); //filterModel.AppendValues(ls.Display, "", ls); } menuFilter.ShowAll(); MenusToolButton mtbFilter = new MenusToolButton(menuFilter, "filter.png"); mtbFilter.IsImportant = true; mtbFilter.Label = "Filter"; toolbar.Insert(mtbFilter, -1); this.PackStart(toolbar, false, false, 0); //this.PackStart(ComboFilter, false, false, 0); //ComboFilter.Active = 0; }