public SearchWindow(ISearch search) : base(WindowType.Toplevel) { this.search = search; base.Title = Catalog.GetString("Desktop Search"); base.Icon = WidgetFu.LoadThemeIcon("system-search", 16); base.DefaultWidth = 700; base.DefaultHeight = 550; base.DeleteEvent += OnWindowDelete; VBox vbox = new VBox(); vbox.Spacing = 3; uim = new UIManager(this); uim.DomainChanged += OnDomainChanged; uim.SortChanged += OnSortChanged; uim.ToggleDetails += OnToggleDetails; uim.ShowQuickTips += OnShowQuickTips; uim.ShowIndexInfo += OnShowIndexInfo; uim.StartDaemon += OnStartDaemon; uim.StopDaemon += OnStopDaemon; vbox.PackStart(uim.MenuBar, false, false, 0); HBox hbox = new HBox(false, 6); Label label = new Label(Catalog.GetString("_Find in:")); hbox.PackStart(label, false, false, 0); scope_list = ComboBox.NewText(); foreach (ScopeMapping mapping in scope_mappings) { scope_list.AppendText(mapping.label); } scope_list.Active = 0; scope_list.Changed += new EventHandler(delegate(object o, EventArgs args) { ComboBox combo = o as ComboBox; if (o == null) { return; } int active = combo.Active; Log.Debug("Scope changed: {0} maps to '{1}'", combo.ActiveText, scope_mappings [active].query_mapping); Query(true); }); hbox.PackStart(scope_list, false, false, 0); entry = new Entry(); entry.Activated += OnEntryActivated; hbox.PackStart(entry, true, true, 0); label.MnemonicWidget = entry; uim.FocusSearchEntry += delegate() { entry.GrabFocus(); }; // The auto search after timeout feauture is now optional // and can be disabled. if (Conf.BeagleSearch.GetOption(Conf.Names.BeagleSearchAutoSearch, true)) { entry.Changed += OnEntryResetTimeout; entry.MoveCursor += OnEntryResetTimeout; } button = new Gtk.Button(); Gtk.HBox button_hbox = new Gtk.HBox(false, 2); Gtk.Image icon = new Gtk.Image(Gtk.Stock.Find, Gtk.IconSize.Button); button_hbox.PackStart(icon, false, false, 0); label = new Gtk.Label(Catalog.GetString("Find Now")); button_hbox.PackStart(label, false, false, 0); button.Add(button_hbox); button.Clicked += OnButtonClicked; Gtk.VBox buttonVBox = new Gtk.VBox(false, 0); buttonVBox.PackStart(button, true, false, 0); hbox.PackStart(buttonVBox, false, false, 0); spinner = new Spinner(); hbox.PackStart(spinner, false, false, 0); HBox padding_hbox = new HBox(); padding_hbox.PackStart(hbox, true, true, 9); vbox.PackStart(padding_hbox, false, true, 6); VBox view_box = new VBox(false, 3); vbox.PackStart(view_box, true, true, 0); HBox na_padding = new HBox(); view_box.PackStart(na_padding, false, true, 0); notification_area = new NotificationArea(); na_padding.PackStart(notification_area, true, true, 3); pages = new Gtk.Notebook(); pages.ShowTabs = false; pages.ShowBorder = false; pages.BorderWidth = 3; view_box.PackStart(pages, true, true, 0); quicktips = new Pages.QuickTips(); quicktips.Show(); pages.Add(quicktips); indexinfo = new Pages.IndexInfo(); indexinfo.Show(); pages.Add(indexinfo); rootuser = new Pages.RootUser(); rootuser.Show(); pages.Add(rootuser); startdaemon = new Pages.StartDaemon(); startdaemon.DaemonStarted += OnDaemonStarted; startdaemon.Show(); pages.Add(startdaemon); panes = new Beagle.Search.Panes(); panes.Show(); pages.Add(panes); view = new GroupView(); view.TileSelected += ShowInformation; panes.MainContents = view; this.statusbar = new Gtk.Statusbar(); vbox.PackEnd(this.statusbar, false, false, 0); Add(vbox); tips = new Gtk.Tooltips(); tips.SetTip(entry, Catalog.GetString("Type in search terms"), ""); tips.SetTip(button, Catalog.GetString("Start searching"), ""); tips.Enable(); if (Environment.UserName == "root" && !Conf.Daemon.GetOption(Conf.Names.AllowRoot, false)) { pages.CurrentPage = pages.PageNum(rootuser); entry.Sensitive = button.Sensitive = uim.Sensitive = false; } else { pages.CurrentPage = pages.PageNum(quicktips); } entry.GrabFocus(); StartCheckingIndexingStatus(); }
public SearchWindow (ISearch search) : base (WindowType.Toplevel) { this.search = search; base.Title = Catalog.GetString ("Desktop Search"); base.Icon = WidgetFu.LoadThemeIcon ("system-search", 16); base.DefaultWidth = 700; base.DefaultHeight = 550; base.DeleteEvent += OnWindowDelete; VBox vbox = new VBox (); vbox.Spacing = 3; uim = new UIManager (this); uim.DomainChanged += OnDomainChanged; uim.SortChanged += OnSortChanged; uim.ToggleDetails += OnToggleDetails; uim.ShowQuickTips += OnShowQuickTips; uim.ShowIndexInfo += OnShowIndexInfo; uim.StartDaemon += OnStartDaemon; uim.StopDaemon += OnStopDaemon; vbox.PackStart (uim.MenuBar, false, false, 0); HBox hbox = new HBox (false, 6); Label label = new Label (Catalog.GetString ("_Find in:")); hbox.PackStart (label, false, false, 0); scope_list = ComboBox.NewText (); foreach (ScopeMapping mapping in scope_mappings) scope_list.AppendText (mapping.label); scope_list.Active = 0; scope_list.Changed += new EventHandler (delegate (object o, EventArgs args) { ComboBox combo = o as ComboBox; if (o == null) return; int active = combo.Active; Log.Debug ("Scope changed: {0} maps to '{1}'", combo.ActiveText, scope_mappings [active].query_mapping); Query (true); }); hbox.PackStart (scope_list, false, false, 0); entry = new Entry (); entry.Activated += OnEntryActivated; hbox.PackStart (entry, true, true, 0); label.MnemonicWidget = entry; uim.FocusSearchEntry += delegate () { entry.GrabFocus (); }; // The auto search after timeout feauture is now optional // and can be disabled. if (Conf.BeagleSearch.GetOption (Conf.Names.BeagleSearchAutoSearch, true)) { entry.Changed += OnEntryResetTimeout; entry.MoveCursor += OnEntryResetTimeout; } button = new Gtk.Button (); Gtk.HBox button_hbox = new Gtk.HBox (false, 2); Gtk.Image icon = new Gtk.Image (Gtk.Stock.Find, Gtk.IconSize.Button); button_hbox.PackStart (icon, false, false, 0); label = new Gtk.Label (Catalog.GetString ("Find Now")); button_hbox.PackStart (label, false, false, 0); button.Add (button_hbox); button.Clicked += OnButtonClicked; Gtk.VBox buttonVBox = new Gtk.VBox (false, 0); buttonVBox.PackStart (button, true, false, 0); hbox.PackStart (buttonVBox, false, false, 0); spinner = new Spinner (); hbox.PackStart (spinner, false, false, 0); HBox padding_hbox = new HBox (); padding_hbox.PackStart (hbox, true, true, 9); vbox.PackStart (padding_hbox, false, true, 6); VBox view_box = new VBox (false, 3); vbox.PackStart (view_box, true, true, 0); HBox na_padding = new HBox (); view_box.PackStart (na_padding, false, true, 0); notification_area = new NotificationArea (); na_padding.PackStart (notification_area, true, true, 3); pages = new Gtk.Notebook (); pages.ShowTabs = false; pages.ShowBorder = false; pages.BorderWidth = 3; view_box.PackStart (pages, true, true, 0); quicktips = new Pages.QuickTips (); quicktips.Show (); pages.Add (quicktips); indexinfo = new Pages.IndexInfo (); indexinfo.Show (); pages.Add (indexinfo); rootuser = new Pages.RootUser (); rootuser.Show (); pages.Add (rootuser); startdaemon = new Pages.StartDaemon (); startdaemon.DaemonStarted += OnDaemonStarted; startdaemon.Show (); pages.Add (startdaemon); panes = new Beagle.Search.Panes (); panes.Show (); pages.Add (panes); view = new GroupView (); view.TileSelected += ShowInformation; panes.MainContents = view; this.statusbar = new Gtk.Statusbar (); vbox.PackEnd (this.statusbar, false, false, 0); Add (vbox); tips = new Gtk.Tooltips (); tips.SetTip (entry, Catalog.GetString ("Type in search terms"), ""); tips.SetTip (button, Catalog.GetString ("Start searching"), ""); tips.Enable (); if (Environment.UserName == "root" && !Conf.Daemon.GetOption (Conf.Names.AllowRoot, false)) { pages.CurrentPage = pages.PageNum (rootuser); entry.Sensitive = button.Sensitive = uim.Sensitive = false; } else { pages.CurrentPage = pages.PageNum (quicktips); } entry.GrabFocus (); StartCheckingIndexingStatus (); }