14 private Builder _builder;
16#pragma warning disable 649
18 private Gtk.SearchEntry searchBox;
20 private Gtk.TreeView treeView;
21#pragma warning restore 649
25 #region Constructors / Destructors
32 Builder builder =
new Builder(
new FileStream(System.IO.Path.GetDirectoryName(Environment.ProcessPath) +
"/" +
"Glade/Search.glade", FileMode.Open));
33 return new Search(builder, builder.GetObject(
"search").Handle);
37 protected Search(Builder builder, IntPtr handle) : base(handle)
40 builder.Autoconnect(
this);
41 App.ApplyStyles(
this);
43 Gtk.TreeViewColumn coordCol =
new Gtk.TreeViewColumn();
44 coordCol.Title =
"Command";
45 Gtk.CellRendererText coordCell =
new Gtk.CellRendererText();
46 coordCol.PackStart(coordCell,
false);
47 treeView.AppendColumn(coordCol);
48 coordCol.AddAttribute(coordCell,
"text", 0);
50 Gtk.TreeStore store =
new Gtk.TreeStore(typeof(
string));
51 foreach (Fiji.Macro.Command s in Fiji.Macro.Commands.Values)
53 Gtk.TreeIter iter = store.AppendValues(s.Name);
57 Gtk.TreeIter iter = store.AppendValues(s.name);
59 treeView.Model = store;
60 treeView.RowActivated += TreeView_RowActivated;
61 searchBox.Changed += SearchBox_Changed;
64 private void TreeView_RowActivated(
object o, RowActivatedArgs args)
67 if (treeView.Model.GetIter(out iter, args.Path))
69 string itemName = (string)treeView.Model.GetValue(iter, 0);
70 if(!itemName.EndsWith(
".txt") || !itemName.EndsWith(
".ijm") && !itemName.EndsWith(
".cs"))
72 Fiji.RunOnImage(ImageView.SelectedImage,
"run(\"" + itemName +
"\")",BioConsole.headless,BioConsole.onTab,BioConsole.useBioformats,BioConsole.resultInNewTab);
75 Scripting.RunByName(itemName);
78 private void SearchBox_Changed(
object sender, EventArgs e)
80 ScrollToItem(treeView, treeView.Model, searchBox.Buffer.Text);
82 static void ScrollToItem(TreeView listView, ITreeModel listStore,
string itemName)
85 if (listStore.GetIterFirst(out iter))
89 if (((
string)listStore.GetValue(iter, 0)).StartsWith(itemName))
91 TreePath path = listStore.GetPath(iter);
92 listView.ScrollToCell(path,
null,
true, 0, 0);
96 while (listStore.IterNext(ref iter));