public CombinedDesignView (IViewContent content) { this.content = content; if (content is IEditableTextBuffer) { ((IEditableTextBuffer)content).CaretPositionSet += delegate { ShowPage (0); }; } content.ContentChanged += new EventHandler (OnTextContentChanged); content.DirtyChanged += new EventHandler (OnTextDirtyChanged); notebook = new Gtk.Notebook (); // Main notebook notebook.TabPos = Gtk.PositionType.Bottom; notebook.ShowTabs = false; notebook.ShowBorder = false; notebook.Show (); box = new VBox (); // Bottom toolbar toolbar = new Toolbar (); toolbar.IconSize = IconSize.SmallToolbar; toolbar.ToolbarStyle = ToolbarStyle.BothHoriz; toolbar.ShowArrow = false; CommandRouterContainer crc = new CommandRouterContainer (content.Control, content, true); crc.Show (); AddButton (GettextCatalog.GetString ("Source Code"), crc).Active = true; toolbar.ShowAll (); box.PackStart (notebook, true, true, 0); box.PackStart (toolbar, false, false, 0); box.Show (); IdeApp.Workbench.ActiveDocumentChanged += new EventHandler (OnActiveDocumentChanged); content.Control.Realized += delegate { if (content != null && content.WorkbenchWindow != null) content.WorkbenchWindow.ActiveViewContent = notebook.CurrentPageWidget == content.Control ? content : this; }; notebook.SwitchPage += delegate { if (content != null && content.WorkbenchWindow != null) content.WorkbenchWindow.ActiveViewContent = notebook.CurrentPageWidget == content.Control ? content : this; }; }
private void BuildToolbars(IWorkspace workspace) { _toolBarBox.Remove(_toolBar); _toolBar.Destroy(); // make sure the old one is cleaned up! _toolBar = new Toolbar(); _toolBar.ToolbarStyle = ToolbarStyle.Icons; _toolBarBox.PackStart(_toolBar, true, true, 0); _tooltips = new Tooltips(); ActionModelRoot model = new ActionModelRoot(""); //model.Merge(WorkstationModel.ToolManager.ToolbarModel); model.Merge(DesktopApplication.ToolSet.ToolbarModel); if(workspace != null) { //model.Merge(workspace.ToolManager.ToolbarModel); model.Merge(workspace.ToolSet.ToolbarModel); } GtkToolbarBuilder.BuildToolbar(_toolBar, _tooltips, model); _toolBar.ShowAll(); }
void FillToolbar() { Toolbar toolbar = new Toolbar (); toolbar.Orientation = Orientation.Vertical; toolbar.ToolbarStyle = ToolbarStyle.Icons; editimage = new Gtk.Image (Helpers.Misc.LoadIcon ("longomatch-dash-edit_active", 22)); editbutton = new ToggleToolButton (); editbutton.IconWidget = editimage; editbutton.Toggled += HandleEditToggled; editbutton.TooltipText = Catalog.GetString ("Edit dashboard"); toolbar.Add (editbutton); toolbar.Add (new SeparatorToolItem ()); linksimage = new Gtk.Image (Helpers.Misc.LoadIcon ("longomatch-link-disabled", 22)); linksbutton = new ToggleToolButton (); linksbutton.IconWidget = linksimage; linksbutton.Toggled += HandleLinksToggled; linksbutton.TooltipText = Catalog.GetString ("Edit action links"); toolbar.Add (linksbutton); toolbar.Add (new SeparatorToolItem ()); popupbutton = new ToggleToolButton (); popupbutton.IconWidget = new Gtk.Image (Helpers.Misc.LoadIcon ("longomatch-popup", 22)); popupbutton.Active = true; popupbutton.Toggled += HandlePopupToggled; popupbutton.TooltipText = Catalog.GetString ("Disable popup window"); toolbar.Add (popupbutton); toolbar.Add (new SeparatorToolItem ()); fitbutton = new RadioToolButton ((GLib.SList)null); fitbutton.IconWidget = new Gtk.Image (Helpers.Misc.LoadIcon ("longomatch-dash-fit", 22)); fitbutton.Toggled += HandleFitModeToggled; fitbutton.TooltipText = Catalog.GetString ("Fit dashboard"); toolbar.Add (fitbutton); fillbutton = new RadioToolButton (fitbutton); fillbutton.IconWidget = new Gtk.Image (Helpers.Misc.LoadIcon ("longomatch-dash-fill", 22)); fillbutton.Toggled += HandleFitModeToggled; fillbutton.TooltipText = Catalog.GetString ("Fill dashboard"); toolbar.Add (fillbutton); d11button = new RadioToolButton (fitbutton); d11button.IconWidget = new Gtk.Image (Helpers.Misc.LoadIcon ("longomatch-dash-11", 22)); d11button.Toggled += HandleFitModeToggled; d11button.TooltipText = Catalog.GetString ("1:1 dashboard"); toolbar.Add (d11button); toolbar.ShowAll (); hbox2.PackEnd (toolbar, false, false, 0); editbutton.Active = true; linksbutton.Active = false; }
public hashgen() { self = Assembly.GetExecutingAssembly (); Stream ico = self.GetManifestResourceStream ("HashGenerator.icon.png"); icon = new Pixbuf (ico); // Window Gtk.Window window = new Gtk.Window ((self.GetCustomAttributes (typeof(AssemblyTitleAttribute), false) [0] as AssemblyTitleAttribute).Title); window.SetDefaultSize (600, 500); window.DeleteEvent += OnDelete; window.Icon = icon; #region [Widgets] Box topBox = new VBox (); topBox.Homogeneous = false; // Toolbar Toolbar tb = new Toolbar (); // Toolbar New Button ToolButton tb_New = new ToolButton (Stock.New); tb_New.Clicked += OnToolbarNew_Clicked; tb.Add (tb_New); // Toolbar Open Button ToolButton tb_Open = new ToolButton (Stock.Open); tb_Open.Clicked += OnToolbarOpen_Clicked; tb.Add (tb_Open); // Toolbar Save Button ToolButton tb_Save = new ToolButton (Stock.Save); tb_Save.Clicked += OnToolbarSave_Clicked; tb.Add (tb_Save); tb.Add (new SeparatorToolItem ()); // Toolbar About Button ToolButton tb_About = new ToolButton (Stock.About); tb_About.Clicked += new EventHandler (OnToolbarAbout_Clicked); tb.Add (tb_About); tb.ShowAll (); topBox.PackStart (tb, false, true, 0); Box mbox = new VBox (); topBox.PackStart (mbox, false, true, 0); Box mhbx = new HBox (); mbox.PackStart (mhbx, false, true, 0); entry = new Entry (); mhbx.PackStart (entry, true, true, 0); Button btnFile = new Button (); btnFile.Image = Gtk.Image.NewFromIconName (Stock.File, IconSize.Button); btnFile.Clicked += OnBtnFile_Clicked; mhbx.PackStart (btnFile, false, true, 0); string[] htype = { "MD5", "SHA128", "SHA256", "SHA512", "CRC32" }; cboType = new ComboBox (htype); cboType.Active = 0; mhbx.PackStart (cboType, false, false, 0); Button btnHash = new Button ("Generate"); btnHash.Clicked += OnBtnHash_Clicked; mhbx.PackStart (btnHash, false, false, 0); // Tree ScrolledWindow sw = new ScrolledWindow (); topBox.PackStart (sw, true, true, 0); TreeView tree = new TreeView (); sw.Add (tree); TreeViewColumn inColu = new TreeViewColumn (); inColu.Title = "Input"; CellRendererText inCell = new CellRendererText (); inColu.PackStart (inCell, true); TreeViewColumn typeColu = new TreeViewColumn (); typeColu.Title = "Type"; CellRendererText typeCell = new CellRendererText (); typeColu.PackStart (typeCell, true); TreeViewColumn hashColu = new TreeViewColumn (); hashColu.Title = "Hash"; CellRendererText hashCell = new CellRendererText (); hashCell.Editable = true; hashColu.PackStart (hashCell, true); tree.AppendColumn (inColu); tree.AppendColumn (typeColu); tree.AppendColumn (hashColu); inColu.AddAttribute (inCell, "text", 0); typeColu.AddAttribute (typeCell, "text", 1); hashColu.AddAttribute (hashCell, "text", 2); hashStore = new ListStore (typeof(string), typeof(string), typeof(string)); // Search Filter filter = new TreeModelFilter (hashStore, null); filter.VisibleFunc = SearchTree; tree.Model = filter; // StatusBar Statusbar sb = new Statusbar (); topBox.PackStart (sb, false, true, 0); sb.Add (new Label ("Search:")); search = new Entry (); search.Changed += OnSearch; sb.Add (search); #endregion window.Add (topBox); window.ShowAll (); }
static void GetFeed(string ticket) { nv = new NameValueCollection (); nv.Add ("ticket", ticket); XmlNodeList nl = Request ( "http://live.nicovideo.jp/api/getalertstatus", @"//communities|//addr|//port|//thread", nv); if (nl.Count == 0) { Console.WriteLine ("チケットの値が不正です"); LoginRequest (); return; } Server sv = new Server (); Notebook nb = new Notebook (); nb.AppendPage(sv.Page_all (), new MultiTab("最新の放送",nb)); nb.AppendPage(sv.Page_mylist (), new MultiTab("お気に入り",nb)); nb.AppendPage(Page_tab ("common"), new MultiTab("タブ(一般)",nb)); nb.AppendPage(Page_tab ("live"), new MultiTab("タブ(ゲーム)",nb)); nb.AppendPage(Page_tab ("face"), new MultiTab("タブ(顔出し)",nb)); nb.AppendPage(Page_tab ("totu"), new MultiTab("タブ(凸待ち)",nb)); nb.AppendPage(Page_tab ("req"), new MultiTab("タブ(動画紹介)",nb)); nb.AppendPage(Page_tab ("try"), new MultiTab("タブ(やってみた)",nb)); nb.AppendPage(Page_tab ("r18"), new MultiTab("タブ(R―18)",nb)); //nb.SwitchPage += (sender, e) => PageChangedEvent(sender, e); Gtk.Window window = new Gtk.Window ("ニコ生フィーダー v1.0"); window.DeleteEvent += new DeleteEventHandler (OnQuit); window.SetSizeRequest (300, 550); window.KeepAbove = true; Toolbar bar = new Toolbar (); ToggleToolButton sendBackBtn = new ToggleToolButton (); sendBackBtn.Toggled += (sender, e) => SendBack(sender, e, ref window); sendBackBtn.TooltipText = "最前面での固定を解除"; ToggleToolButton logoutBtn = new ToggleToolButton (); logoutBtn.TooltipText = "ログアウト"; logoutBtn.Clicked += (sender, e) => Logout(sender, e, ref window); bar.HeightRequest = 25; Gtk.Image img = new Gtk.Image(); img.Pixbuf = new Gdk.Pixbuf("go_back.png",12,12); sendBackBtn.IconWidget = img; Gtk.Image img2 = new Gtk.Image(); img2.Pixbuf = new Gdk.Pixbuf("logout.png",16,16); logoutBtn.IconWidget = img2; logoutBtn.HeightRequest = 25; sendBackBtn.HeightRequest = 25; bar.Add (logoutBtn); bar.Add (sendBackBtn); bar.ShowAll (); VBox vbox = new VBox(false, 0); vbox.PackStart (bar, false, true, 0); vbox.PackStart (nb, true, true, 0); window.Add (vbox); window.ShowAll (); window.Focus = nb; MainClass.communities = nl [0].InnerText; sv.receiveFromServer (nl [1].InnerText, nl [2].InnerText, nl [3].InnerText); }
public FullScreenView(IBrowsableCollection collection, Gtk.Window parent) : base("Full Screen Mode") { //going fullscreen on the same screen the parent window Gdk.Screen screen = Screen; int monitor = screen.GetMonitorAtWindow (parent.GdkWindow); Gdk.Rectangle bounds = screen.GetMonitorGeometry (monitor); Move (bounds.X, bounds.Y); string style = "style \"test\" {\n" + "GtkToolbar::shadow_type = GTK_SHADOW_NONE\n" + "}\n" + "class \"GtkToolbar\" style \"test\""; Gtk.Rc.ParseString (style); Name = "FullscreenContainer"; try { //scroll = new Gtk.ScrolledWindow (null, null); actions = new ActionGroup ("joe"); actions.Add (new ActionEntry [] { new ActionEntry (HideToolbar, Stock.Close, Catalog.GetString ("Hide"), null, Catalog.GetString ("Hide toolbar"), HideToolbarAction)}); actions.Add (new ToggleActionEntry [] { new ToggleActionEntry (Info, Stock.Info, Catalog.GetString ("Info"), null, Catalog.GetString ("Image information"), InfoAction, false)}); Gtk.Action exit_full_screen = new Gtk.Action (ExitFullScreen, Catalog.GetString ("Exit fullscreen"), null, null); exit_full_screen.IconName = "view-restore"; exit_full_screen.Activated += ExitAction; actions.Add (exit_full_screen); Gtk.Action slide_show = new Gtk.Action (SlideShow, Catalog.GetString ("Slideshow"), Catalog.GetString ("Start slideshow"), null); slide_show.IconName = "media-playback-start"; slide_show.Activated += SlideShowAction; actions.Add (slide_show); new WindowOpacityFader (this, 1.0, 600); notebook = new Notebook (); notebook.ShowBorder = false; notebook.ShowTabs = false; notebook.Show (); scroll = new ScrolledView (); scroll.ScrolledWindow.SetPolicy (PolicyType.Never, PolicyType.Never); view = new PhotoImageView (collection); // FIXME this should be handled by the new style setting code view.ModifyBg (Gtk.StateType.Normal, this.Style.Black); this.Add (notebook); view.Show (); view.MotionNotifyEvent += HandleViewMotion; view.PointerMode = PointerMode.Scroll; scroll.ScrolledWindow.Add (view); Toolbar tbar = new Toolbar (); tbar.ToolbarStyle = Gtk.ToolbarStyle.BothHoriz; tbar.ShowArrow = false; tbar.BorderWidth = 15; ToolItem t_item = (actions [ExitFullScreen]).CreateToolItem () as ToolItem; t_item.IsImportant = true; tbar.Insert (t_item, -1); Gtk.Action action = new PreviousPictureAction (view.Item); actions.Add (action); tbar.Insert (action.CreateToolItem () as ToolItem, -1); play_pause_button = (actions [SlideShow]).CreateToolItem () as ToolButton; tbar.Insert (play_pause_button, -1); action = new NextPictureAction (view.Item); actions.Add (action); tbar.Insert (action.CreateToolItem () as ToolItem, -1); t_item = new ToolItem (); t_item.Child = new Label (Catalog.GetString ("Slide transition:")); tbar.Insert (t_item, -1); display = new SlideShow (view.Item); display.AddEvents ((int) (Gdk.EventMask.PointerMotionMask)); display.ModifyBg (Gtk.StateType.Normal, this.Style.Black); display.MotionNotifyEvent += HandleViewMotion; display.Show (); t_item = new ToolItem (); ComboBox combo = ComboBox.NewText (); foreach (var transition in display.Transitions) combo.AppendText (transition.Name); combo.Active = 0; combo.Changed += HandleTransitionChanged; t_item.Child = combo; tbar.Insert (t_item, -1); action = new RotateLeftAction (view.Item); actions.Add (action); tbar.Insert (action.CreateToolItem () as ToolItem, -1); action = new RotateRightAction (view.Item); actions.Add (action); tbar.Insert (action.CreateToolItem () as ToolItem, -1); info_button = (ToggleToolButton) ((actions [Info]).CreateToolItem () as ToolItem); tbar.Insert (info_button, -1); tbar.Insert ((actions [HideToolbar]).CreateToolItem () as ToolItem, -1); notebook.AppendPage (scroll, null); notebook.AppendPage (display, null); tbar.ShowAll (); scroll.Show (); this.Decorated = false; this.Fullscreen (); this.ButtonPressEvent += HandleButtonPressEvent; view.Item.Changed += HandleItemChanged; view.GrabFocus (); hide_cursor_delay = new DelayedOperation (3000, new GLib.IdleHandler (HideCursor)); hide_cursor_delay.Start (); controls = new ControlOverlay (this); controls.Add (tbar); controls.Dismiss (); notebook.CurrentPage = 0; } catch (System.Exception e) { Log.Exception (e); } }
public FileBrowser() { messageService = (IMessageService) ServiceManager.GetService (typeof (IMessageService)); scrolledwindow = new ScrolledWindow (); scrolledwindow.VscrollbarPolicy = PolicyType.Automatic; scrolledwindow.HscrollbarPolicy = PolicyType.Automatic; scrolledwindow.ShadowType = ShadowType.In; Toolbar toolbar = new Toolbar (); toolbar.IconSize = IconSize.SmallToolbar; goUp = new ToolButton (Stock.GoUp); goUp.Clicked += new EventHandler (OnGoUpClicked); goUp.SetTooltip (tips, GettextCatalog.GetString ("Go up one level"), "Go up one level"); toolbar.Insert (goUp, -1); goHome = new ToolButton (Stock.Home); goHome.Clicked += new EventHandler (OnGoHomeClicked); goHome.SetTooltip (tips, GettextCatalog.GetString ("Home"), "Home"); toolbar.Insert (goHome, -1); entry = new ToolbarEntry (); entry.Activated += new EventHandler (OnEntryActivated); entry.SetTooltip (tips, GettextCatalog.GetString ("Location"), ""); toolbar.Insert (entry, -1); toolbar.ShowAll (); this.PackStart (toolbar, false, true, 0); IProperties p = (IProperties) PropertyService.GetProperty ("SharpDevelop.UI.SelectStyleOptions", new DefaultProperties ()); ignoreHidden = !p.GetProperty ("MonoDevelop.Gui.FileScout.ShowHidden", false); tv = new Gtk.TreeView (); tv.RulesHint = true; TreeViewColumn directorycolumn = new TreeViewColumn (); directorycolumn.Title = "Directories"; CellRendererPixbuf pix_render = new CellRendererPixbuf (); directorycolumn.PackStart (pix_render, false); directorycolumn.AddAttribute (pix_render, "pixbuf", 0); text_render = new CellRendererText (); text_render.Edited += new EditedHandler (OnDirEdited); directorycolumn.PackStart (text_render, false); directorycolumn.AddAttribute (text_render, "text", 1); tv.AppendColumn (directorycolumn); store = new ListStore (typeof (Gdk.Pixbuf), typeof (string)); CurrentDir = Environment.GetFolderPath (Environment.SpecialFolder.Personal); tv.Model = store; tv.RowActivated += new RowActivatedHandler (OnRowActivated); tv.ButtonReleaseEvent += new ButtonReleaseEventHandler (OnButtonRelease); tv.PopupMenu += new PopupMenuHandler (OnPopupMenu); scrolledwindow.Add (tv); this.Homogeneous = false; this.PackEnd (scrolledwindow); this.ShowAll (); init = true; }
public void CreateGui () { win = new Gtk.Window (ApplicationName); win.DeleteEvent += new Gtk.DeleteEventHandler (OnWindow_Delete); win.BorderWidth = 4; win.SetDefaultSize (600, 500); VBox vbox = new VBox (false, 4); win.Add (vbox); // Menu Bar MenuBar mb = CreateMenuBar (); vbox.PackStart (mb, false, false, 0); // Tool Bar toolbar = CreateToolbar (); toolbar.ShowAll(); vbox.PackStart (toolbar, false, false, 0); // Panels tree = new DataTree (); // meta data tree view (left pane) tree.View.ButtonReleaseEvent += new Gtk.ButtonReleaseEventHandler (OnDataTreeButtonRelease); tree.View.RowExpanded += new Gtk.RowExpandedHandler (OnDataTreeRowExpanded); // SQL Editor amd Results (right pane) outputResults = OutputResults.DataGrid; sourceFileNotebook = new Notebook(); sourceFileNotebook.Scrollable = true; NewEditorTab(); sourceFileNotebook.SwitchPage += new Gtk.SwitchPageHandler(OnEditorTabSwitched); HPaned hpaned = new HPaned (); vbox.PackStart (hpaned, true, true, 0); hpaned.Add1 (tree); hpaned.Add2 (sourceFileNotebook); statusBar = new Statusbar (); statusBar.HasResizeGrip = false; SetStatusBarText ("Ready!"); vbox.PackEnd (statusBar, false, false, 0); queryMode = QueryMode.Query; }
// // Toolbar // // Add Link button, Font menu, Delete button to the window's // toolbar. // Gtk.Toolbar MakeToolbar () { Gtk.Toolbar tb = new Gtk.Toolbar (); tb.Tooltips = true; toolbar_tips = new Gtk.Tooltips (); Gtk.ToolButton search = new Gtk.ToolButton ( new Gtk.Image (Gtk.Stock.Find, tb.IconSize), Catalog.GetString ("Search")); search.IsImportant = true; search.Clicked += SearchActivate; // TODO: If we ever add a way to customize internal keybindings, this will need to change toolbar_tips.SetTip (search, Catalog.GetString ("Search your notes") + " (Ctrl-Shift-F)", null); search.AddAccelerator ("clicked", accel_group, (uint) Gdk.Key.f, (Gdk.ModifierType.ControlMask | Gdk.ModifierType.ShiftMask), Gtk.AccelFlags.Visible); search.ShowAll (); tb.Insert (search, -1); link_button = new Gtk.ToolButton ( new Gtk.Image (Gtk.Stock.JumpTo, tb.IconSize), Catalog.GetString ("Link")); link_button.IsImportant = true; link_button.Sensitive = (note.Buffer.Selection != null); link_button.Clicked += LinkToNoteActivate; // TODO: If we ever add a way to customize internal keybindings, this will need to change toolbar_tips.SetTip ( link_button, Catalog.GetString ("Link selected text to a new note") + " (Ctrl-L)", null); link_button.AddAccelerator ("clicked", accel_group, (uint) Gdk.Key.l, Gdk.ModifierType.ControlMask, Gtk.AccelFlags.Visible); link_button.ShowAll (); tb.Insert (link_button, -1); ToolMenuButton text_button = new ToolMenuButton (tb, Gtk.Stock.SelectFont, Catalog.GetString ("_Text"), text_menu); text_button.IsImportant = true; text_button.ShowAll (); tb.Insert (text_button, -1); toolbar_tips.SetTip (text_button, Catalog.GetString ("Set properties of text"), null); ToolMenuButton plugin_button = new ToolMenuButton (tb, Gtk.Stock.Execute, Catalog.GetString ("T_ools"), plugin_menu); plugin_button.ShowAll (); tb.Insert (plugin_button, -1); toolbar_tips.SetTip (plugin_button, Catalog.GetString ("Use tools on this note"), null); tb.Insert (new Gtk.SeparatorToolItem (), -1); delete = new Gtk.ToolButton (Gtk.Stock.Delete); delete.Clicked += OnDeleteButtonClicked; delete.ShowAll (); tb.Insert (delete, -1); toolbar_tips.SetTip (delete, Catalog.GetString ("Delete this note"), null); // Don't allow deleting the "Start Here" note... if (note.IsSpecial) delete.Sensitive = false; tb.Insert (new Gtk.SeparatorToolItem (), -1); sync_menu_item = new Gtk.ImageMenuItem (Catalog.GetString ("Synchronize Notes")); sync_menu_item.Image = new Gtk.Image (Gtk.Stock.Convert, Gtk.IconSize.Menu); sync_menu_item.Activated += SyncItemSelected; sync_menu_item.Show (); PluginMenu.Add (sync_menu_item); // We might want to know when various settings are altered. Preferences.SettingChanged += Preferences_SettingChanged; // Update items based on configuration. UpdateMenuItems (); tb.ShowAll (); return tb; }
public SearchResultsPage(FileSearch search) { VPaned paned; TreeViewColumn column; ToolItem spacerItem; ToolItem filterItem; Alignment filterAlignment; ToolButton searchAgainToolButton; this.search = search; downloadToolButton = new ToolButton(new Image("gtk-save", IconSize.LargeToolbar), "Download"); downloadToolButton.IsImportant = true; downloadToolButton.Sensitive = false; downloadToolButton.Clicked += DownloadToolButtonClicked; searchAgainToolButton = new ToolButton(new Image("gtk-refresh", IconSize.LargeToolbar), "Search Again"); searchAgainToolButton.IsImportant = true; searchAgainToolButton.Clicked += SearchAgainToolButtonClicked; spacerItem = new ToolItem(); spacerItem.Expand = true; filterButton = new ToggleButton("Filter Results"); filterButton.Image = new Image(Gui.LoadIcon(16, "application-x-executable")); filterButton.Toggled += delegate (object o, EventArgs args) { this.ShowFilter = filterButton.Active; }; filterAlignment = new Alignment(0.5f, 0.5f, 0, 0); filterAlignment.Add(filterButton); filterItem = new ToolItem(); filterItem.Add(filterAlignment); browseToolButton = new ToolButton(new Image("gtk-open", IconSize.LargeToolbar), "Browse"); browseToolButton.IsImportant = true; browseToolButton.Sensitive = false; browseToolButton.Clicked += BrowseToolButtonClicked; toolbar = new Toolbar(); toolbar.ToolbarStyle = ToolbarStyle.BothHoriz; toolbar.Insert(downloadToolButton, -1); toolbar.Insert(browseToolButton, -1); toolbar.Insert(spacerItem, -1); toolbar.Insert(filterItem, -1); toolbar.Insert(new SeparatorToolItem(), -1); toolbar.Insert(searchAgainToolButton, -1); toolbar.ShowAll(); this.PackStart(toolbar, false, false, 0); resultCountByTypeCache = new Dictionary<FilterType, int>(); Gdk.Pixbuf audioPixbuf = Gui.LoadIcon(16, "audio-x-generic"); Gdk.Pixbuf videoPixbuf = Gui.LoadIcon(16, "video-x-generic"); Gdk.Pixbuf imagePixbuf = Gui.LoadIcon(16, "image-x-generic"); Gdk.Pixbuf docPixbuf = Gui.LoadIcon(16, "x-office-document"); unknownPixbuf = Gui.LoadIcon(16, "text-x-generic"); folderPixbuf = Gui.LoadIcon(16, "folder"); typeStore = new ListStore(typeof(Gdk.Pixbuf), typeof(string), typeof(FilterType)); typeStore.AppendValues(null, "All Results", FilterType.All); typeStore.AppendValues(null, "-"); typeStore.AppendValues(audioPixbuf, "Audio", FilterType.Audio); typeStore.AppendValues(videoPixbuf, "Video", FilterType.Video); typeStore.AppendValues(imagePixbuf, "Images", FilterType.Image); typeStore.AppendValues(docPixbuf, "Documents", FilterType.Document); typeStore.AppendValues(folderPixbuf, "Folders", FilterType.Folder); typeStore.AppendValues(unknownPixbuf, "Other", FilterType.Other); typeTree = new TreeView(); typeTree.HeadersVisible = false; typeTree.RowSeparatorFunc = delegate (TreeModel m, TreeIter i) { string text = (string)m.GetValue(i, 1); return (text == "-"); }; typeTree.Selection.Changed += TypeSelectionChanged; typeTree.Model = typeStore; CellRendererPixbuf pixbufCell = new CellRendererPixbuf(); CellRendererText textCell = new CellRendererText(); CellRendererText countTextCell = new CellRendererText(); countTextCell.Sensitive = false; countTextCell.Alignment = Pango.Alignment.Right; countTextCell.Xalign = 1; column = new TreeViewColumn(); column.PackStart(pixbufCell, false); column.PackStart(textCell, true); column.PackStart(countTextCell, false); column.AddAttribute(pixbufCell, "pixbuf", 0); column.AddAttribute(textCell, "text", 1); column.SetCellDataFunc(countTextCell, new TreeCellDataFunc(TypeCountCellFunc)); typeTree.AppendColumn(column); TreeView artistTree = new TreeView(); artistTree.HeadersVisible = false; TreeView albumTree = new TreeView(); albumTree.HeadersVisible = false; HBox topBox = new HBox(); topBox.PackStart(Gui.AddScrolledWindow(typeTree), true, true, 0); topBox.PackStart(Gui.AddScrolledWindow(artistTree), true, true, 1); topBox.PackStart(Gui.AddScrolledWindow(albumTree), true, true, 0); topBox.Homogeneous = true; resultsStore = new ListStore(typeof(SearchResult)); resultsStore.RowInserted += delegate { Refilter(); }; resultsStore.RowDeleted += delegate { Refilter(); }; resultsTree = new TreeView(); resultsTree.RowActivated += resultsTree_RowActivated; resultsTree.ButtonPressEvent += resultsTree_ButtonPressEvent; resultsTree.Selection.Changed += ResultsTreeSelectionChanged; imageColumns = new List<TreeViewColumn>(); audioColumns = new List<TreeViewColumn>(); videoColumns = new List<TreeViewColumn>(); fileOnlyColumns = new List<TreeViewColumn>(); folderOnlyColumns = new List<TreeViewColumn>(); column = new TreeViewColumn(); column.Title = "File Name"; column.Clickable = true; column.Sizing = TreeViewColumnSizing.Autosize; column.Resizable = true; column.SortColumnId = 0; //resultsTree.ExpanderColumn = column; CellRenderer cell = new CellRendererPixbuf(); column.PackStart(cell, false); column.SetCellDataFunc(cell, new TreeCellDataFunc(IconFunc)); cell = new CellRendererText(); column.PackStart(cell, true); column.SetCellDataFunc(cell, new TreeCellDataFunc(FileNameFunc)); resultsTree.AppendColumn(column); column = resultsTree.AppendColumn("Codec", new CellRendererText(), new TreeCellDataFunc(CodecFunc)); column.Clickable = true; column.Sizing = TreeViewColumnSizing.Fixed; column.FixedWidth = 120; column.Resizable = true; column.SortColumnId = 1; videoColumns.Add(column); column = resultsTree.AppendColumn("Format", new CellRendererText(), new TreeCellDataFunc(FormatFunc)); column.Clickable = true; column.Sizing = TreeViewColumnSizing.Fixed; column.FixedWidth = 90; column.Resizable = true; column.SortColumnId = 2; imageColumns.Add(column); column = resultsTree.AppendColumn("Resolution", new CellRendererText(), new TreeCellDataFunc(ResolutionFunc)); column.Clickable = true; column.Sizing = TreeViewColumnSizing.Fixed; column.FixedWidth = 90; column.Resizable = true; column.SortColumnId = 3; videoColumns.Add(column); imageColumns.Add(column); column = resultsTree.AppendColumn("Artist", new CellRendererText(), new TreeCellDataFunc(ArtistFunc)); column.Clickable = true; column.Sizing = TreeViewColumnSizing.Fixed; column.FixedWidth = 110; column.Resizable = true; column.SortColumnId = 4; audioColumns.Add(column); column = resultsTree.AppendColumn("Album", new CellRendererText(), new TreeCellDataFunc(AlbumFunc)); column.Clickable = true; column.Sizing = TreeViewColumnSizing.Fixed; column.FixedWidth = 110; column.Resizable = true; column.SortColumnId = 5; audioColumns.Add(column); column = resultsTree.AppendColumn("Bitrate", new CellRendererText(), new TreeCellDataFunc(BitrateFunc)); column.Clickable = true; column.Sizing = TreeViewColumnSizing.Fixed; column.FixedWidth = 70; column.Resizable = true; column.SortColumnId = 6; audioColumns.Add(column); column = resultsTree.AppendColumn("Size", new CellRendererText(), new TreeCellDataFunc(SizeFunc)); column.Clickable = true; column.Sizing = TreeViewColumnSizing.Fixed; column.FixedWidth = 70; column.SortColumnId = 7; column.Resizable = true; fileOnlyColumns.Add(column); column = resultsTree.AppendColumn("Sources", new CellRendererText(), new TreeCellDataFunc(SourcesFunc)); column.Clickable = true; column.Sizing = TreeViewColumnSizing.Fixed; column.FixedWidth = 85; column.SortColumnId = 8; column.Resizable = true; fileOnlyColumns.Add(column); column = resultsTree.AppendColumn("User", new CellRendererText(), new TreeCellDataFunc(UserFunc)); column.Clickable = true; column.Sizing = TreeViewColumnSizing.Fixed; column.FixedWidth = 85; column.SortColumnId = 8; column.Resizable = true; folderOnlyColumns.Add(column); column = resultsTree.AppendColumn("Full Path", new CellRendererText(), new TreeCellDataFunc(FullPathFunc)); column.Clickable = true; column.Resizable = true; column.SortColumnId = 9; column = resultsTree.AppendColumn("Info Hash", new CellRendererText(), new TreeCellDataFunc(InfoHashFunc)); column.Clickable = true; column.Resizable = true; column.SortColumnId = 10; fileOnlyColumns.Add(column); resultsFilter = new TreeModelFilter(resultsStore, null); resultsFilter.VisibleFunc = resultsFilterFunc; resultsSort = new TreeModelSort(resultsFilter); for (int x = 0; x < resultsTree.Columns.Length; x++) { resultsSort.SetSortFunc(x, resultsSortFunc); } resultsTree.Model = resultsSort; ScrolledWindow resultsTreeSW = new ScrolledWindow(); resultsTreeSW.Add(resultsTree); paned = new VPaned(); paned.Add1(topBox); paned.Add2(resultsTreeSW); paned.Position = 160; paned.ShowAll(); filterWidget = new FilterWidget(search); filterWidget.FiltersChanged += filterWidget_FiltersChanged; filterWidget.Hidden += filterWidget_Hidden; this.PackStart(filterWidget, false, false, 0); this.PackStart(paned, true, true, 0); TypeSelectionChanged(typeTree, EventArgs.Empty); search.NewResults += (NewResultsEventHandler)DispatchService.GuiDispatch(new NewResultsEventHandler(search_NewResults)); search.ClearedResults += (EventHandler)DispatchService.GuiDispatch(new EventHandler(search_ClearedResults)); resultPopupMenu = new Menu(); browseResultMenuItem = new ImageMenuItem("Browse"); browseResultMenuItem.Image = new Image(Gui.LoadIcon(16, "document-open")); browseResultMenuItem.Activated += BrowseToolButtonClicked; resultPopupMenu.Append(browseResultMenuItem); downloadResultMenuItem = new ImageMenuItem("Download"); downloadResultMenuItem.Image = new Image(Gui.LoadIcon(16, "go-down")); downloadResultMenuItem.Activated += DownloadToolButtonClicked; resultPopupMenu.Append(downloadResultMenuItem); resultPropertiesMenuItem = new ImageMenuItem(Gtk.Stock.Properties, null); resultPropertiesMenuItem.Activated += FilePropertiesButtonClicked; resultPopupMenu.Append(resultPropertiesMenuItem); }
public DirectoryView(VBox parent, ChangeDirectoryEventHandler ev, string directory) { parent.Spacing = 2; scrolledwindow = new ScrolledWindow (); scrolledwindow.VscrollbarPolicy = PolicyType.Automatic; scrolledwindow.HscrollbarPolicy = PolicyType.Automatic; dir_icon = Gtk.IconTheme.Default.LoadIcon ("gtk-directory", 16, (Gtk.IconLookupFlags) 0); Toolbar toolbar = new Toolbar (); toolbar.IconSize = IconSize.Menu; toolbar.ToolbarStyle = Gtk.ToolbarStyle.Icons; goUp = new ToolButton (Gtk.Stock.GoUp); goUp.Clicked += new EventHandler (OnGoUpClicked); goUp.TooltipText = Catalog.GetString ("Go up one level"); toolbar.Insert (goUp, -1); goHome = new ToolButton (Gtk.Stock.Home); goHome.Clicked += new EventHandler (OnGoHomeClicked); goHome.TooltipText = Catalog.GetString ("Home"); toolbar.Insert (goHome, -1); entry = new ToolbarEntry (); entry.Expand = true; entry.Activated += new EventHandler (OnEntryActivated); entry.TooltipText = Catalog.GetString ("Location"); toolbar.Insert (entry, -1); toolbar.ShowAll (); parent.PackStart (toolbar, false, true, 0); tv = new Gtk.TreeView (); tv.RulesHint = true; TreeViewColumn directorycolumn = new TreeViewColumn (); directorycolumn.Title = Catalog.GetString ("Directories"); CellRendererPixbuf pix_render = new CellRendererPixbuf (); directorycolumn.PackStart (pix_render, false); directorycolumn.AddAttribute (pix_render, "pixbuf", COL_PIXBUF); text_render = new CellRendererText (); directorycolumn.PackStart (text_render, false); directorycolumn.AddAttribute (text_render, "text", COL_DISPLAY_NAME); tv.AppendColumn (directorycolumn); scrolledwindow.Add (tv); parent.Homogeneous = false; parent.PackEnd (new HSeparator (), false, false, 0); parent.PackEnd (scrolledwindow); parent.ShowAll (); tv.Model = tree_store = CreateTreeStore (); DirectoryChanged = ev; tv.RowActivated += OnRowActivate; current = new DirectoryInfo (directory); ProcessNewDirectory (current.FullName); }