public ExtensionEditorWidget() { this.Build(); //FIXME: avoid unnecessary creation of old treeview scrolledwindow6.Remove (tree); tree.Destroy (); tree = new ContextMenuTreeView (); tree.ShowAll (); scrolledwindow6.Add (tree); ((ContextMenuTreeView)tree).DoPopupMenu = ShowPopupMenu; pixAddin = ImageService.GetPixbuf (MonoDevelop.Ide.Gui.Stock.Addin, IconSize.Menu); pixLocalAddin = ImageService.GetPixbuf ("md-addinauthoring-current-addin", IconSize.Menu); pixExtensionPoint = ImageService.GetPixbuf ("md-extension-point", IconSize.Menu); pixExtensionNode = ImageService.GetPixbuf ("md-extension-node", IconSize.Menu); store = new TreeStore (typeof(string), typeof(string), typeof(Extension), typeof(ExtensionNodeDescription), typeof(Gdk.Pixbuf), typeof(bool), typeof(ExtensionPoint)); state = new TreeViewState (tree, 0); TreeViewColumn col = new TreeViewColumn (); CellRendererPixbuf cpix = new CellRendererPixbuf (); col.PackStart (cpix, false); col.AddAttribute (cpix, "pixbuf", ColIcon); col.AddAttribute (cpix, "visible", ColShowIcon); CellRendererExtension crt = new CellRendererExtension (); crt.Yalign = 0; col.PackStart (crt, true); col.AddAttribute (crt, "markup", ColLabel); tree.AppendColumn (col); tree.Model = store; tree.HeadersVisible = false; tree.Selection.Changed += OnSelectionChanged; IdeApp.ProjectOperations.EndBuild += OnEndBuild; }
public POEditorWidget (TranslationProject project) { this.project = project; this.Build (); //FIXME: avoid unnecessary creation of old treeview scrolledwindow1.Remove (treeviewEntries); treeviewEntries.Destroy (); treeviewEntries = new MonoDevelop.Components.ContextMenuTreeView (); treeviewEntries.ShowAll (); scrolledwindow1.Add (treeviewEntries); ((MonoDevelop.Components.ContextMenuTreeView)treeviewEntries).DoPopupMenu = ShowPopup; this.headersEditor = new CatalogHeadersWidget (); this.notebookPages.AppendPage (headersEditor, new Gtk.Label ()); updateTaskThread = new BackgroundWorker (); updateTaskThread.WorkerSupportsCancellation = true; updateTaskThread.DoWork += TaskUpdateWorker; AddButton (GettextCatalog.GetString ("Translation")).Active = true; AddButton (GettextCatalog.GetString ("Headers")).Active = false; // entries tree view store = new ListStore (typeof(CatalogEntry)); this.treeviewEntries.Model = store; TreeViewColumn fuzzyColumn = new TreeViewColumn (); fuzzyColumn.SortIndicator = true; fuzzyColumn.SortColumnId = 0; fuzzyColumn.Title = GettextCatalog.GetString ("Fuzzy"); var iconRenderer = new CellRendererImage (); fuzzyColumn.PackStart (iconRenderer, false); fuzzyColumn.SetCellDataFunc (iconRenderer, CatalogIconDataFunc); CellRendererToggle cellRendFuzzy = new CellRendererToggle (); cellRendFuzzy.Activatable = true; cellRendFuzzy.Toggled += HandleCellRendFuzzyToggled; fuzzyColumn.PackStart (cellRendFuzzy, false); fuzzyColumn.SetCellDataFunc (cellRendFuzzy, FuzzyToggleDataFunc); treeviewEntries.AppendColumn (fuzzyColumn); TreeViewColumn originalColumn = new TreeViewColumn (); originalColumn.Expand = true; originalColumn.SortIndicator = true; originalColumn.SortColumnId = 1; originalColumn.Title = GettextCatalog.GetString ("Original string"); CellRendererText original = new CellRendererText (); original.Ellipsize = Pango.EllipsizeMode.End; originalColumn.PackStart (original, true); originalColumn.SetCellDataFunc (original, OriginalTextDataFunc); treeviewEntries.AppendColumn (originalColumn); TreeViewColumn translatedColumn = new TreeViewColumn (); translatedColumn.Expand = true; translatedColumn.SortIndicator = true; translatedColumn.SortColumnId = 2; translatedColumn.Title = GettextCatalog.GetString ("Translated string"); CellRendererText translation = new CellRendererText (); translation.Ellipsize = Pango.EllipsizeMode.End; translatedColumn.PackStart (translation, true); translatedColumn.SetCellDataFunc (translation, TranslationTextDataFunc); treeviewEntries.AppendColumn (translatedColumn); treeviewEntries.Selection.Changed += OnEntrySelected; // found in tree view foundInStore = new ListStore (typeof(string), typeof(string), typeof(string), typeof(Xwt.Drawing.Image)); this.treeviewFoundIn.Model = foundInStore; TreeViewColumn fileColumn = new TreeViewColumn (); var pixbufRenderer = new CellRendererImage (); fileColumn.PackStart (pixbufRenderer, false); fileColumn.SetAttributes (pixbufRenderer, "image", FoundInColumns.Pixbuf); CellRendererText textRenderer = new CellRendererText (); fileColumn.PackStart (textRenderer, true); fileColumn.SetAttributes (textRenderer, "text", FoundInColumns.File); treeviewFoundIn.AppendColumn (fileColumn); treeviewFoundIn.AppendColumn ("", new CellRendererText (), "text", FoundInColumns.Line); treeviewFoundIn.HeadersVisible = false; treeviewFoundIn.GetColumn (1).FixedWidth = 100; treeviewFoundIn.RowActivated += delegate(object sender, RowActivatedArgs e) { Gtk.TreeIter iter; foundInStore.GetIter (out iter, e.Path); string line = foundInStore.GetValue (iter, (int)FoundInColumns.Line) as string; string file = foundInStore.GetValue (iter, (int)FoundInColumns.FullFileName) as string; int lineNr = 1; try { lineNr = 1 + int.Parse (line); } catch { } IdeApp.Workbench.OpenDocument (file, lineNr, 1); }; this.notebookTranslated.RemovePage (0); this.searchEntryFilter.Entry.Text = ""; searchEntryFilter.Entry.Changed += delegate { UpdateFromCatalog (); }; this.togglebuttonFuzzy.Active = PropertyService.Get ("Gettext.ShowFuzzy", true); this.togglebuttonFuzzy.TooltipText = GettextCatalog.GetString ("Show fuzzy translations"); this.togglebuttonFuzzy.Toggled += delegate { MonoDevelop.Core.PropertyService.Set ("Gettext.ShowFuzzy", this.togglebuttonFuzzy.Active); UpdateFromCatalog (); }; this.togglebuttonMissing.Active = PropertyService.Get ("Gettext.ShowMissing", true); this.togglebuttonMissing.TooltipText = GettextCatalog.GetString ("Show missing translations"); this.togglebuttonMissing.Toggled += delegate { MonoDevelop.Core.PropertyService.Set ("Gettext.ShowMissing", this.togglebuttonMissing.Active); UpdateFromCatalog (); }; this.togglebuttonOk.Active = PropertyService.Get ("Gettext.ShowTranslated", true); this.togglebuttonOk.TooltipText = GettextCatalog.GetString ("Show valid translations"); this.togglebuttonOk.Toggled += delegate { MonoDevelop.Core.PropertyService.Set ("Gettext.ShowTranslated", this.togglebuttonOk.Active); UpdateFromCatalog (); }; this.textviewComments.Buffer.Changed += delegate { if (this.isUpdating) return; if (this.currentEntry != null) { string[] lines = textviewComments.Buffer.Text.Split (CatalogParser.LineSplitStrings, System.StringSplitOptions.None); for (int i = 0; i < lines.Length; i++) { if (!lines[i].StartsWith ("#")) lines[i] = "# " + lines[i]; } this.currentEntry.Comment = string.Join (System.Environment.NewLine, lines); } UpdateProgressBar (); }; searchEntryFilter.Ready = true; searchEntryFilter.Visible = true; searchEntryFilter.ForceFilterButtonVisible = true; searchEntryFilter.RequestMenu += delegate { searchEntryFilter.Menu = CreateOptionsMenu (); }; widgets.Add (this); checkbuttonWhiteSpaces.Toggled += CheckbuttonWhiteSpacesToggled; options.ShowLineNumberMargin = false; options.ShowFoldMargin = false; options.ShowIconMargin = false; options.ColorScheme = IdeApp.Preferences.ColorScheme; options.FontName = PropertyService.Get<string> ("FontName"); this.scrolledwindowOriginal.Child = this.texteditorOriginal; this.scrolledwindowPlural.Child = this.texteditorPlural; this.texteditorOriginal.Show (); this.texteditorPlural.Show (); texteditorOriginal.ModifyBase (Gtk.StateType.Normal, Style.Base (Gtk.StateType.Insensitive)); texteditorPlural.ModifyBase (Gtk.StateType.Normal, Style.Base (Gtk.StateType.Insensitive)); this.texteditorOriginal.Options = options; this.texteditorPlural.Options = options; this.texteditorOriginal.Document.ReadOnly = true; this.texteditorPlural.Document.ReadOnly = true; }
void SetupEntriesTreeView() { entriesScrolledWindow.Remove (entriesTV); entriesTV.Destroy (); entriesTV = new MonoDevelop.Components.ContextMenuTreeView (); entriesTV.ShowAll (); entriesScrolledWindow.Add (entriesTV); ((MonoDevelop.Components.ContextMenuTreeView) entriesTV).DoPopupMenu = ShowPopup; store = new ListStore (typeof (IStringResourceDisplay)); entriesTV.Model = store; // setup columns entriesTV.AppendColumn (GetEntriesTreeViewColumn ("Name", "Name", 0, nameDataFunc, nameEditedHandler)); entriesTV.AppendColumn (GetEntriesTreeViewColumn ("BaseValue", "BaseValue", 1, baseValueDataFunc)); entriesTV.AppendColumn (GetEntriesTreeViewColumn ("Value", "Value", 2, valueDataFunc, valueEditedHandler)); entriesTV.AppendColumn (GetEntriesTreeViewColumn ("Comment", "Comment", 3, commentDataFunc, commentEditedHandler)); entriesTV.Selection.Changed += OnEntrySelected; store.SetSortColumnId (0, SortType.Ascending); entriesTV.HoverSelection = true; }