private void SetupTableData() { var itemBarcodeCol = new TreeViewColumn(); var itemNameCol = new TreeViewColumn(); var itemPriceCol = new TreeViewColumn(); itemBarcodeCol.Title = "Barcode"; itemNameCol.Title = "Name"; itemPriceCol.Title = "Price"; var itemNameText = new CellRendererText(); var itemBarcodeText = new CellRendererText(); var itemPriceText = new CellRendererText(); itemBarcodeCol.PackEnd(itemBarcodeText, true); itemNameCol.PackEnd(itemNameText, true); itemPriceCol.PackEnd(itemPriceText, true); itemBarcodeCol.AddAttribute(itemBarcodeText, "text", 0); itemNameCol.AddAttribute(itemNameText, "text", 1); itemPriceCol.AddAttribute(itemPriceText, "text", 2); this.ScannedItemTable.AppendColumn(itemBarcodeCol); this.ScannedItemTable.AppendColumn(itemNameCol); this.ScannedItemTable.AppendColumn(itemPriceCol); ScannedItemTable.Model = items; }
private void Build() { _container.PackStart(_menu, false, false, 0); _container.Add(_pane); _container.PackEnd(Statusbar, false, false, 0); Add(_container); // Menubar _fileMenu.Add(_sync); _sync.Activated += OnSync; _fileMenu.Add(_settings); _settings.Activated += OnSettings; _fileMenu.Add(_close); _close.Activated += delegate { Visible = false; }; _fileMenu.Add(new SeparatorMenuItem()); _fileMenu.Add(_quit); _quit.Activated += delegate { Application.Quit(); }; _menu.Add(_file); _file.Submenu = _fileMenu; _helpMenu.Add(_updates); _helpMenu.Add(_about); _about.Activated += OnAbout; _menu.Add(_help); _help.Submenu = _helpMenu; // Sidebar _pane.Add1(_sidebar); _sidebar.CursorChanged += OnSidebarActivated; var crp = new CellRendererPixbuf(); var crt = new CellRendererText(); _column.PackStart(crp, true); _column.PackEnd(crt, true); _column.AddAttribute(crp, "pixbuf", 0); _column.AddAttribute(crt, "text", 1); _sidebar.AppendColumn(_column); _sidebar.HeadersVisible = false; //TODO find icons _store.AppendValues(Pixbuf.LoadFromResource("Trackr.Gui.Gtk.Resources.icons.anime.png"), "Anime"); _store.AppendValues(Pixbuf.LoadFromResource("Trackr.Gui.Gtk.Resources.icons.manga.png"), "Manga"); var i = _store.AppendValues(Pixbuf.LoadFromResource("Trackr.Gui.Gtk.Resources.icons.find.png"), "Search"); _store.AppendValues(i, Pixbuf.LoadFromResource("Trackr.Gui.Gtk.Resources.icons.search.png"), "Anime "); // the extra space means search! _store.AppendValues(i, Pixbuf.LoadFromResource("Trackr.Gui.Gtk.Resources.icons.search.png"), "Manga "); // Notebook _pane.Add2(_nb); _nb.ShowTabs = false; _nb.Add(AnimeBox); _nb.Add(_mangaBox); _nb.Add(_nullAccountBox); _nb.Add(_defaultSearch); _nb.Add(AnimeSearch); _nb.Add(_mangaSearch); // toolbar buttons AnimeBox.SettingsItem.Clicked += OnSettings; AnimeBox.SyncItem.Clicked += OnSync; }
/// <summary>Default constructor for ExplorerView</summary> public ExplorerView(ViewBase owner) : base(owner) { Builder builder = BuilderFromResource("ApsimNG.Resources.Glade.ExplorerView.glade"); vbox1 = (VBox)builder.GetObject("vbox1"); toolStrip = (Toolbar)builder.GetObject("toolStrip"); treeview1 = (TreeView)builder.GetObject("treeview1"); RightHandView = (Viewport)builder.GetObject("RightHandView"); _mainWidget = vbox1; RightHandView.ShadowType = ShadowType.EtchedOut; treeview1.Model = treemodel; TreeViewColumn column = new TreeViewColumn(); CellRendererPixbuf iconRender = new Gtk.CellRendererPixbuf(); column.PackStart(iconRender, false); textRender = new Gtk.CellRendererText(); textRender.Editable = false; textRender.EditingStarted += OnBeforeLabelEdit; textRender.Edited += OnAfterLabelEdit; column.PackStart(textRender, true); column.SetCellDataFunc(textRender, OnSetCellData); CellRendererText tickCell = new CellRendererText(); tickCell.Editable = false; column.PackEnd(tickCell, false); column.SetAttributes(iconRender, "pixbuf", 1); column.SetAttributes(textRender, "text", 0); column.SetAttributes(tickCell, "text", 3); // column.SetCellDataFunc(textRender, treecelldatafunc); treeview1.AppendColumn(column); treeview1.TooltipColumn = 2; treeview1.CursorChanged += OnAfterSelect; treeview1.ButtonReleaseEvent += OnButtonUp; treeview1.ButtonPressEvent += OnButtonPress; treeview1.RowActivated += OnRowActivated; TargetEntry[] target_table = new TargetEntry[] { new TargetEntry(modelMime, TargetFlags.App, 0) }; Gdk.DragAction actions = Gdk.DragAction.Copy | Gdk.DragAction.Link | Gdk.DragAction.Move; // treeview1.EnableModelDragDest(target_table, actions); // treeview1.EnableModelDragSource(Gdk.ModifierType.Button1Mask, target_table, actions); Drag.SourceSet(treeview1, Gdk.ModifierType.Button1Mask, target_table, actions); Drag.DestSet(treeview1, 0, target_table, actions); treeview1.DragMotion += OnDragOver; treeview1.DragDrop += OnDragDrop; treeview1.DragBegin += OnDragBegin; treeview1.DragDataGet += OnDragDataGet; treeview1.DragDataReceived += OnDragDataReceived; treeview1.DragEnd += OnDragEnd; treeview1.FocusInEvent += Treeview1_FocusInEvent; treeview1.FocusOutEvent += Treeview1_FocusOutEvent; timer.Elapsed += Timer_Elapsed; _mainWidget.Destroyed += _mainWidget_Destroyed; }
protected override void Initialise(ViewBase ownerView, GLib.Object gtkControl) { treeview1 = (Gtk.TreeView)gtkControl; mainWidget = treeview1; treeview1.Model = treemodel; TreeViewColumn column = new TreeViewColumn(); CellRendererPixbuf iconRender = new Gtk.CellRendererPixbuf(); iconRender.SetPadding(2, 1); column.PackStart(iconRender, false); textRender = new Gtk.CellRendererText(); textRender.Editable = false; textRender.EditingStarted += OnBeforeLabelEdit; textRender.Edited += OnAfterLabelEdit; column.PackStart(textRender, true); column.SetCellDataFunc(textRender, OnSetCellData); CellRendererText tickCell = new CellRendererText(); tickCell.Editable = false; column.PackEnd(tickCell, false); column.SetAttributes(iconRender, "pixbuf", 1); column.SetAttributes(textRender, "text", 0); column.SetAttributes(tickCell, "text", 3); treeview1.AppendColumn(column); treeview1.TooltipColumn = 2; treeview1.CursorChanged += OnAfterSelect; treeview1.ButtonReleaseEvent += OnButtonUp; treeview1.ButtonPressEvent += OnButtonPress; treeview1.RowActivated += OnRowActivated; treeview1.FocusInEvent += OnTreeGainFocus; treeview1.FocusOutEvent += OnTreeLoseFocus; TargetEntry[] target_table = new TargetEntry[] { new TargetEntry(modelMime, TargetFlags.App, 0) }; Gdk.DragAction actions = Gdk.DragAction.Copy | Gdk.DragAction.Link | Gdk.DragAction.Move; Drag.SourceSet(treeview1, Gdk.ModifierType.Button1Mask, target_table, actions); Drag.DestSet(treeview1, 0, target_table, actions); treeview1.DragMotion += OnDragOver; treeview1.DragDrop += OnDragDrop; treeview1.DragBegin += OnDragBegin; treeview1.DragDataGet += OnDragDataGet; treeview1.DragDataReceived += OnDragDataReceived; treeview1.DragEnd += OnDragEnd; timer.Elapsed += OnTimerElapsed; mainWidget.Destroyed += OnDestroyed; }
/// <summary>Constructor</summary> public TreeView(ViewBase owner, Gtk.TreeView treeView) : base(owner) { treeview1 = treeView; treeview1.Model = treemodel; TreeViewColumn column = new TreeViewColumn(); CellRendererPixbuf iconRender = new Gtk.CellRendererPixbuf(); column.PackStart(iconRender, false); textRender = new Gtk.CellRendererText(); textRender.Editable = false; textRender.EditingStarted += OnBeforeLabelEdit; textRender.Edited += OnAfterLabelEdit; column.PackStart(textRender, true); column.SetCellDataFunc(textRender, OnSetCellData); CellRendererText tickCell = new CellRendererText(); tickCell.Editable = false; column.PackEnd(tickCell, false); column.SetAttributes(iconRender, "pixbuf", 1); column.SetAttributes(textRender, "text", 0); column.SetAttributes(tickCell, "text", 3); // column.SetCellDataFunc(textRender, treecelldatafunc); treeview1.AppendColumn(column); treeview1.TooltipColumn = 2; treeview1.CursorChanged += OnAfterSelect; treeview1.ButtonReleaseEvent += OnButtonUp; treeview1.ButtonPressEvent += OnButtonPress; treeview1.RowActivated += OnRowActivated; treeview1.FocusInEvent += OnTreeGainFocus; treeview1.FocusOutEvent += OnTreeLoseFocus; TargetEntry[] target_table = new TargetEntry[] { new TargetEntry(modelMime, TargetFlags.App, 0) }; Gdk.DragAction actions = Gdk.DragAction.Copy | Gdk.DragAction.Link | Gdk.DragAction.Move; // treeview1.EnableModelDragDest(target_table, actions); // treeview1.EnableModelDragSource(Gdk.ModifierType.Button1Mask, target_table, actions); Drag.SourceSet(treeview1, Gdk.ModifierType.Button1Mask, target_table, actions); Drag.DestSet(treeview1, 0, target_table, actions); treeview1.DragMotion += OnDragOver; treeview1.DragDrop += OnDragDrop; treeview1.DragBegin += OnDragBegin; treeview1.DragDataGet += OnDragDataGet; treeview1.DragDataReceived += OnDragDataReceived; treeview1.DragEnd += OnDragEnd; timer.Elapsed += OnTimerElapsed; }
public HighlightingPanel() { this.Build(); var col = new TreeViewColumn(); var crpixbuf = new CellRendererPixbuf(); col.PackStart(crpixbuf, false); col.SetCellDataFunc(crpixbuf, ImageDataFunc); var crtext = new CellRendererText(); col.PackEnd(crtext, true); col.SetAttributes(crtext, "markup", 0); styleTreeview.AppendColumn(col); styleTreeview.Model = styleStore; schemeName = DefaultSourceEditorOptions.Instance.ColorScheme; MonoDevelop.Ide.Gui.Styles.Changed += HandleThemeChanged; }
public TextMateBundleOptionsPanelWidget() { this.Build(); textview1.SetMarkup(textview1.Buffer.Text); this.addButton.Clicked += AddLanguageBundle; this.removeButton.Clicked += RemoveLanguageBundle; var col = new TreeViewColumn(); var crtext = new CellRendererText(); col.PackEnd(crtext, true); col.SetAttributes(crtext, "markup", 0); bundleTreeview.AppendColumn(col); bundleTreeview.Model = styleStore; FillBundles(); }
public HighlightingPanel() { this.Build(); var col = new TreeViewColumn(); var crpixbuf = new CellRendererPixbuf(); col.PackStart(crpixbuf, false); col.SetCellDataFunc(crpixbuf, (TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) => { var isError = (bool)styleStore.GetValue(iter, 2); crpixbuf.Visible = isError; crpixbuf.Pixbuf = isError ? errorPixbuf.Value : null; }); var crtext = new CellRendererText(); col.PackEnd(crtext, true); col.SetAttributes(crtext, "markup", 0); styleTreeview.AppendColumn(col); styleTreeview.Model = styleStore; schemeName = DefaultSourceEditorOptions.Instance.ColorScheme; }
private Gtk.Widget CreateWorkspaceView() { ScrolledWindow sw = new ScrolledWindow(); m_treeView = new Gtk.TreeView(); //first column has workspaceUnit but presents its friendly name, 2nd column displays type and 3rd displays value m_workspaceStore = new Gtk.ListStore(typeof(WorkspaceUnit), typeof(WorkspaceUnit), typeof(WorkspaceUnit)); m_treeView.Model = m_workspaceStore; //create columns with associated cell renderings CellRendererText nameRenderer = new CellRendererText(); TreeViewColumn nameColumn = m_treeView.AppendColumn("Name", nameRenderer); nameColumn.SetCellDataFunc(nameRenderer, new TreeCellDataFunc(RenderName)); CellRendererText typeRenderer = new CellRendererText(); TreeViewColumn typeColumn = m_treeView.AppendColumn("Type", typeRenderer); typeColumn.SetCellDataFunc(typeRenderer, new TreeCellDataFunc(RenderType)); TreeViewColumn valueColumn = new TreeViewColumn(); valueColumn.Title = "Value"; CellRendererPixbuf valueViewerIconCellRenderer = new CellRendererPixbuf(); CellRendererText valueTextRenderer = new CellRendererText(); valueViewerIconCellRenderer.Xalign = 0.0f; valueColumn.PackEnd(valueTextRenderer, true); valueColumn.PackStart(valueViewerIconCellRenderer, false); valueColumn.SetCellDataFunc(valueViewerIconCellRenderer, new TreeCellDataFunc(RenderViewerIcon)); valueColumn.SetCellDataFunc(valueTextRenderer, new TreeCellDataFunc(RenderValue)); m_treeView.AppendColumn(valueColumn); m_treeView.RowActivated += HandleRowActivated; sw.Add(m_treeView); sw.ShowAll(); return(sw); }
TreeViewColumn CreateTemplateListTreeViewColumn() { var column = new TreeViewColumn(); templateTextRenderer = new GtkTemplateCellRenderer(); templateTextRenderer.Xpad = 14; templateTextRenderer.Ypad = 0; templateTextRenderer.Ellipsize = Pango.EllipsizeMode.End; templateTextRenderer.CellBackgroundGdk = templateListBackgroundColor; column.PackStart(templateTextRenderer, true); column.AddAttribute(templateTextRenderer, "markup", column: 0); column.SetCellDataFunc(templateTextRenderer, SetTemplateTextCellData); languageCellRenderer = new LanguageCellRenderer(); languageCellRenderer.CellBackgroundGdk = templateListBackgroundColor; column.PackEnd(languageCellRenderer, false); column.SetCellDataFunc(languageCellRenderer, SetLanguageCellData); return(column); }
public CustomPropertiesWidget(PListScheme scheme) { Scheme = scheme ?? PListScheme.Empty; CurrentTree = new Dictionary <PObject, PListScheme.SchemaItem> (); treeview = new PopupTreeView(this) { DoubleBuffered = true }; treeview.HeadersClickable = true; RefreshKeyStore(); PackStart(treeview, true, true, 0); FindOrAddNewEntry(TreeIter.Zero); ShowAll(); var keyRenderer = new CellRendererCombo(); keyRenderer.Editable = true; keyRenderer.Model = keyStore; keyRenderer.Mode = CellRendererMode.Editable; keyRenderer.TextColumn = 0; keyRenderer.EditingStarted += KeyRendererEditingStarted; keyRenderer.Edited += KeyRendererEditingFinished; var col = new TreeViewColumn(); col.Resizable = true; col.Title = GettextCatalog.GetString("Property"); col.PackStart(keyRenderer, true); col.SetCellDataFunc(keyRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) { var renderer = (CellRendererCombo)cell; string id = (string)tree_model.GetValue(iter, 0) ?? ""; var obj = (PObject)tree_model.GetValue(iter, 1); if (obj == null) { renderer.Text = id; renderer.Editable = false; renderer.Sensitive = false; return; } var key = (PListScheme.SchemaItem)tree_model.GetValue(iter, 2); var parentPArray = obj.Parent is PArray; renderer.Editable = !parentPArray; renderer.Sensitive = !parentPArray; if (parentPArray) { renderer.Text = ""; } else { renderer.Text = key != null && ShowDescriptions ? key.Description : id; } }); treeview.AppendColumn(col); col = new TreeViewColumn { MinWidth = 25, Resizable = false, Sizing = Gtk.TreeViewColumnSizing.Fixed }; var removeRenderer = new CellRendererButton(ImageService.GetPixbuf("gtk-remove", IconSize.Menu)); removeRenderer.Clicked += RemoveElement; col.PackEnd(removeRenderer, false); col.SetCellDataFunc(removeRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) { removeRenderer.Visible = treeview.Selection.IterIsSelected(iter) && !AddKeyNode.Equals(treeStore.GetValue(iter, 0)); }); var addRenderer = new CellRendererButton(ImageService.GetPixbuf("gtk-add", IconSize.Menu)); addRenderer.Clicked += AddElement; col.PackEnd(addRenderer, false); col.SetCellDataFunc(addRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) { addRenderer.Visible = treeview.Selection.IterIsSelected(iter) && AddKeyNode.Equals(treeStore.GetValue(iter, 0)); }); treeview.AppendColumn(col); treeview.RowActivated += delegate(object o, RowActivatedArgs args) { TreeIter iter; if (treeStore.GetIter(out iter, args.Path) && AddKeyNode.Equals(treeStore.GetValue(iter, 0))) { AddElement(o, EventArgs.Empty); } }; var comboRenderer = new CellRendererCombo(); var typeModel = new ListStore(typeof(string)); typeModel.AppendValues(PArray.Type); typeModel.AppendValues(PDictionary.Type); typeModel.AppendValues(PBoolean.Type); typeModel.AppendValues(PData.Type); typeModel.AppendValues(PData.Type); typeModel.AppendValues(PNumber.Type); typeModel.AppendValues(PString.Type); comboRenderer.Model = typeModel; comboRenderer.Mode = CellRendererMode.Editable; comboRenderer.HasEntry = false; comboRenderer.TextColumn = 0; comboRenderer.Edited += delegate(object o, EditedArgs args) { TreeIter selIter; if (!treeStore.GetIterFromString(out selIter, args.Path)) { return; } PObject oldObj = (PObject)treeStore.GetValue(selIter, 1); if (oldObj != null && oldObj.TypeString != args.NewText) { oldObj.Replace(PObject.Create(args.NewText)); } }; treeview.AppendColumn(GettextCatalog.GetString("Type"), comboRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) { var renderer = (CellRendererCombo)cell; var value = (string)tree_model.GetValue(iter, 0); var obj = (PObject)tree_model.GetValue(iter, 1); var key = (PListScheme.SchemaItem)tree_model.GetValue(iter, 2); renderer.Editable = key == null && !AddKeyNode.Equals(value); renderer.ForegroundGdk = Style.Text(renderer.Editable ? StateType.Normal : StateType.Insensitive); renderer.Text = obj == null ? "" : obj.TypeString; }); var propRenderer = new CellRendererCombo(); propRenderer.Model = valueStore; propRenderer.Mode = CellRendererMode.Editable; propRenderer.TextColumn = 0; propRenderer.EditingStarted += PropRendererEditingStarted; propRenderer.Edited += PropRendererEditingFinished; treeview.AppendColumn(GettextCatalog.GetString("Value"), propRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) { var renderer = (CellRendererCombo)cell; var obj = (PObject)tree_model.GetValue(iter, 1); renderer.Sensitive = obj != null && !(obj is PDictionary || obj is PArray || obj is PData); renderer.Editable = renderer.Sensitive; if (!renderer.Sensitive) { renderer.Text = ""; return; } if (ShowDescriptions) { var identifier = (string)tree_model.GetValue(iter, 0); var values = PListScheme.AvailableValues(obj, CurrentTree); var item = values == null ? null : values.FirstOrDefault(v => v.Identifier == identifier); if (item != null) { renderer.Text = item.Description ?? item.Identifier; return; } } switch (obj.TypeString) { case PDictionary.Type: renderer.Text = string.Format(GettextCatalog.GetPluralString("({0} item)", "({0} items)", ((PDictionary)obj).Count), ((PDictionary)obj).Count); break; case PArray.Type: renderer.Text = string.Format(GettextCatalog.GetPluralString("({0} item)", "({0} items)", ((PArray)obj).Count, ((PArray)obj).Count)); break; case PBoolean.Type: renderer.Text = ((PBoolean)obj).Value ? GettextCatalog.GetString("Yes") : GettextCatalog.GetString("No"); break; case PData.Type: renderer.Text = string.Format("byte[{0}]", ((PData)obj).Value.Length); break; default: if (obj is IPValueObject) { renderer.Text = (((IPValueObject)obj).Value ?? "").ToString(); } else { renderer.Sensitive = false; renderer.Text = GettextCatalog.GetString("Could not render {0}.", obj.GetType().Name); } break; } }); treeview.EnableGridLines = TreeViewGridLines.Horizontal; treeview.Model = treeStore; }
private Gtk.Widget CreateWorkspaceView() { ScrolledWindow sw = new ScrolledWindow(); m_treeView = new Gtk.TreeView(); //first column has workspaceUnit but presents its friendly name, 2nd column displays type and 3rd displays value m_workspaceStore = new Gtk.ListStore(typeof(WorkspaceUnit), typeof(WorkspaceUnit), typeof(WorkspaceUnit)); m_treeView.Model = m_workspaceStore; //create columns with associated cell renderings CellRendererText nameRenderer = new CellRendererText(); TreeViewColumn nameColumn = m_treeView.AppendColumn("Name", nameRenderer); nameColumn.SetCellDataFunc(nameRenderer, new TreeCellDataFunc(RenderName)); CellRendererText typeRenderer = new CellRendererText(); TreeViewColumn typeColumn = m_treeView.AppendColumn("Type", typeRenderer); typeColumn.SetCellDataFunc(typeRenderer, new TreeCellDataFunc(RenderType)); TreeViewColumn valueColumn = new TreeViewColumn(); valueColumn.Title = "Value"; CellRendererPixbuf valueViewerIconCellRenderer = new CellRendererPixbuf(); CellRendererText valueTextRenderer = new CellRendererText(); valueViewerIconCellRenderer.Xalign = 0.0f; valueColumn.PackEnd(valueTextRenderer, true); valueColumn.PackStart(valueViewerIconCellRenderer, false); valueColumn.SetCellDataFunc(valueViewerIconCellRenderer, new TreeCellDataFunc(RenderViewerIcon)); valueColumn.SetCellDataFunc(valueTextRenderer, new TreeCellDataFunc(RenderValue)); m_treeView.AppendColumn(valueColumn); m_treeView.RowActivated += HandleRowActivated; // HERZUM SPRINT 3: TLAB-86 VBox vbox1 = new VBox(); sw.Add(m_treeView); vbox1.Add(sw); Box.BoxChild w1 = ((Box.BoxChild)(vbox1 [sw])); w1.Position = 0; baseline.CanFocus = false; Box.BoxChild w2 = ((Box.BoxChild)(vbox1 [baseline])); vbox1.Add(baseline); w2.Position = 2; w2.Expand = false; w2.Fill = false; vbox1.ShowAll(); return(vbox1); //sw.Add(m_treeView); //sw.ShowAll(); //return sw; // END HERZUM SPRINT 3: TLAB-86 }
public CustomPropertiesWidget(PListScheme scheme) { this.scheme = scheme = scheme ?? PListScheme.Empty; treeview = new PopupTreeView(this); treeview.HeadersClickable = true; this.PackStart(treeview, true, true, 0); ShowAll(); var keyRenderer = new CellRendererCombo(); keyRenderer.Editable = true; keyRenderer.Model = keyStore; keyRenderer.Mode = CellRendererMode.Editable; keyRenderer.TextColumn = 0; keyRenderer.Edited += delegate(object o, EditedArgs args) { TreeIter selIter; if (!treeStore.GetIterFromString(out selIter, args.Path)) { return; } if (args.NewText == (string)treeStore.GetValue(selIter, 0)) { return; } var obj = (PObject)treeStore.GetValue(selIter, 1); var dict = obj.Parent as PDictionary; if (dict == null) { return; } var key = scheme.Keys.FirstOrDefault(k => k.Identifier == args.NewText || k.Description == args.NewText); var newKey = key != null ? key.Identifier : args.NewText; dict.ChangeKey(obj, newKey, key == null || obj.TypeString == key.Type ? null : CreateNewObject(key.Type)); }; var col = new TreeViewColumn(); col.Resizable = true; col.Title = GettextCatalog.GetString("Property"); col.PackStart(keyRenderer, true); col.SetCellDataFunc(keyRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) { var renderer = (CellRendererCombo)cell; string id = (string)tree_model.GetValue(iter, 0) ?? ""; var obj = (PObject)tree_model.GetValue(iter, 1); if (obj == null) { renderer.Text = id; renderer.Editable = false; renderer.Sensitive = false; return; } var key = scheme.GetKey(id); renderer.Editable = !(obj.Parent is PArray); renderer.Sensitive = true; renderer.Text = key != null && ShowDescriptions ? GettextCatalog.GetString(key.Description) : id; }); treeview.AppendColumn(col); var iconSize = IconSize.Menu; col = new TreeViewColumn { MinWidth = 25, Resizable = true, Sizing = Gtk.TreeViewColumnSizing.Autosize }; var removeRenderer = new CellRendererButton(ImageService.GetPixbuf("gtk-remove", IconSize.Menu)); removeRenderer.Clicked += delegate { TreeIter iter; bool hasSelection = treeview.Selection.GetSelected(out iter); PObject obj = null; if (hasSelection) { obj = (PObject)treeStore.GetValue(iter, 1); obj.Remove(); } }; col.PackEnd(removeRenderer, false); col.SetCellDataFunc(removeRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) { removeRenderer.Visible = treeview.Selection.IterIsSelected(iter) && !AddKeyNode.Equals(treeStore.GetValue(iter, 0)); }); var addRenderer = new CellRendererButton(ImageService.GetPixbuf("gtk-add", IconSize.Menu)); addRenderer.Clicked += delegate { Gtk.TreeIter iter = Gtk.TreeIter.Zero; if (!treeview.Selection.GetSelected(out iter)) { return; } PObject obj = null; if (treeStore.IterParent(out iter, iter)) { obj = (PObject)treeStore.GetValue(iter, 1); } obj = obj ?? nsDictionary; var newObj = new PString(""); if (obj is PArray) { var arr = (PArray)obj; arr.Add(newObj); } else if (obj is PDictionary) { string name = "newNode"; var dict = (PDictionary)obj; while (dict.ContainsKey(name)) { name += "_"; } dict.Add(name, newObj); } else { return; } }; col.PackEnd(addRenderer, false); col.SetCellDataFunc(addRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) { addRenderer.Visible = treeview.Selection.IterIsSelected(iter) && AddKeyNode.Equals(treeStore.GetValue(iter, 0)); }); treeview.AppendColumn(col); treeview.RowExpanded += delegate(object o, RowExpandedArgs args) { var obj = (PObject)treeStore.GetValue(args.Iter, 1); expandedObjects.Add(obj); }; treeview.RowCollapsed += delegate(object o, RowCollapsedArgs args) { var obj = (PObject)treeStore.GetValue(args.Iter, 1); expandedObjects.Remove(obj); }; var comboRenderer = new CellRendererCombo(); var typeModel = new ListStore(typeof(string)); typeModel.AppendValues("Array"); typeModel.AppendValues("Dictionary"); typeModel.AppendValues("Boolean"); typeModel.AppendValues("Data"); typeModel.AppendValues("Date"); typeModel.AppendValues("Number"); typeModel.AppendValues("String"); comboRenderer.Model = typeModel; comboRenderer.Mode = CellRendererMode.Editable; comboRenderer.HasEntry = false; comboRenderer.TextColumn = 0; comboRenderer.Edited += delegate(object o, EditedArgs args) { TreeIter selIter; if (!treeStore.GetIterFromString(out selIter, args.Path)) { return; } PObject oldObj = (PObject)treeStore.GetValue(selIter, 1); if (oldObj != null && oldObj.TypeString != args.NewText) { oldObj.Replace(CreateNewObject(args.NewText)); } }; treeview.AppendColumn(GettextCatalog.GetString("Type"), comboRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) { var renderer = (CellRendererCombo)cell; string id = (string)tree_model.GetValue(iter, 0) ?? ""; var key = scheme.GetKey(id); var obj = (PObject)tree_model.GetValue(iter, 1); if (obj == null) { renderer.Editable = false; renderer.Text = ""; return; } renderer.Editable = key == null; renderer.ForegroundGdk = Style.Text(renderer.Editable ? StateType.Normal : StateType.Insensitive); renderer.Text = obj.TypeString; }); var propRenderer = new CellRendererCombo(); propRenderer.Model = valueStore; propRenderer.Mode = CellRendererMode.Editable; propRenderer.TextColumn = 0; propRenderer.EditingStarted += delegate(object o, EditingStartedArgs args) { valueStore.Clear(); if (Scheme == null) { return; } TreeIter iter; if (!treeStore.GetIterFromString(out iter, args.Path)) { return; } var pObject = (PObject)treeStore.GetValue(iter, 1); if (pObject == null) { return; } var key = Parent != null?Scheme.GetKey(pObject.Parent.Key) : null; if (key != null) { var descr = new List <string> (key.Values.Select(v => v.Description)); descr.Sort(); foreach (var val in descr) { valueStore.AppendValues(val); } } }; propRenderer.Edited += delegate(object o, EditedArgs args) { TreeIter iter; if (!treeStore.GetIterFromString(out iter, args.Path)) { return; } var pObject = (PObject)treeStore.GetValue(iter, 1); if (pObject == null) { return; } string newText = args.NewText; var key = Parent != null?Scheme.GetKey(pObject.Parent.Key) : null; if (key != null) { foreach (var val in key.Values) { if (newText == val.Description) { newText = val.Identifier; break; } } } pObject.SetValue(newText); }; /* propRenderer.EditingStarted += delegate(object o, EditingStartedArgs args) { * TreeIter iter; * if (!treeStore.GetIterFromString (out iter, args.Path)) * return; * PObject obj = (PObject)treeStore.GetValue (iter, 1); * if (obj is PBoolean) { * ((PBoolean)obj).Value = !((PBoolean)obj).Value; * propRenderer.StopEditing (false); * } * };*/ treeview.AppendColumn(GettextCatalog.GetString("Value"), propRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) { var renderer = (CellRendererCombo)cell; var obj = (PObject)tree_model.GetValue(iter, 1); if (obj == null) { renderer.Editable = false; renderer.Text = ""; return; } renderer.Editable = !(obj is PArray || obj is PDictionary || obj is PData); obj.RenderValue(this, renderer); }); treeview.EnableGridLines = TreeViewGridLines.Horizontal; treeview.Model = treeStore; }
public Toolbox(ServiceContainer parentServices) { this.parentServices = parentServices; //we need this service, so create it if not present toolboxService = parentServices.GetService(typeof(IToolboxService)) as ToolboxService; if (toolboxService == null) { toolboxService = new ToolboxService(); parentServices.AddService(typeof(IToolboxService), toolboxService); } #region Toolbar toolbar = new Toolbar(); toolbar.ToolbarStyle = ToolbarStyle.Icons; toolbar.IconSize = IconSize.SmallToolbar; base.PackStart(toolbar, false, false, 0); filterToggleButton = new ToggleToolButton(); filterToggleButton.IconWidget = new Image(Stock.MissingImage, IconSize.SmallToolbar); filterToggleButton.Toggled += new EventHandler(toggleFiltering); toolbar.Insert(filterToggleButton, 0); catToggleButton = new ToggleToolButton(); catToggleButton.IconWidget = new Image(Stock.MissingImage, IconSize.SmallToolbar); catToggleButton.Toggled += new EventHandler(toggleCategorisation); toolbar.Insert(catToggleButton, 1); SeparatorToolItem sep = new SeparatorToolItem(); toolbar.Insert(sep, 2); filterEntry = new Entry(); filterEntry.WidthRequest = 150; filterEntry.Changed += new EventHandler(filterTextChanged); #endregion scrolledWindow = new ScrolledWindow(); base.PackEnd(scrolledWindow, true, true, 0); //Initialise model store = new ToolboxStore(); //initialise view nodeView = new NodeView(store); nodeView.Selection.Mode = SelectionMode.Single; nodeView.HeadersVisible = false; //cell renderers CellRendererPixbuf pixbufRenderer = new CellRendererPixbuf(); CellRendererText textRenderer = new CellRendererText(); textRenderer.Ellipsize = Pango.EllipsizeMode.End; //Main column with text, icons TreeViewColumn col = new TreeViewColumn(); col.PackStart(pixbufRenderer, false); col.SetAttributes(pixbufRenderer, "pixbuf", ToolboxStore.Columns.Icon, "visible", ToolboxStore.Columns.IconVisible, "cell-background-gdk", ToolboxStore.Columns.BackgroundColour); col.PackEnd(textRenderer, true); col.SetAttributes(textRenderer, "text", ToolboxStore.Columns.Label, "weight", ToolboxStore.Columns.FontWeight, "cell-background-gdk", ToolboxStore.Columns.BackgroundColour); nodeView.AppendColumn(col); //Initialise self scrolledWindow.VscrollbarPolicy = PolicyType.Automatic; scrolledWindow.HscrollbarPolicy = PolicyType.Never; scrolledWindow.WidthRequest = 150; scrolledWindow.AddWithViewport(nodeView); //selection events nodeView.NodeSelection.Changed += OnSelectionChanged; nodeView.RowActivated += OnRowActivated; //update view when toolbox service updated toolboxService.ToolboxChanged += new EventHandler(tbsChanged); Refresh(); //track expanded state of nodes nodeView.RowCollapsed += new RowCollapsedHandler(whenRowCollapsed); nodeView.RowExpanded += new RowExpandedHandler(whenRowExpanded); //set initial state filterToggleButton.Active = false; catToggleButton.Active = true; }
public SettingsWindow(ArrayList p, DamageControlTrayIcon i) { Glade.XML gxml = new Glade.XML(null, "gui.glade", "settingsWindow", null); gxml.Autoconnect(this); this.projects = p; this.icon = i; GConf.PropertyEditors.EditorShell shell = new GConf.PropertyEditors.EditorShell(gxml); shell.Add(SettingKeys.NotificationMessages, "unm", typeof(bool)); shell.Add(SettingKeys.PlayWhenFailing, "failedCheckbox", typeof(bool)); shell.Add(SettingKeys.PlayWhenStillFailing, "stillfailingCheckbox", typeof(bool)); shell.Add(SettingKeys.PlayWhenStillSuccessful, "stillsuccessfulCheckbox", typeof(bool)); shell.Add(SettingKeys.PlayWhenSuccessful, "successfulCheckbox", typeof(bool)); shell.Add(SettingKeys.SuccessfulSound, "successfulEntry", typeof(string)); shell.Add(SettingKeys.StillSuccessfulSound, "stillsuccessfulEntry", typeof(string)); shell.Add(SettingKeys.FailingSound, "failedEntry", typeof(string)); shell.Add(SettingKeys.StillFailingSound, "stillfailingEntry", typeof(string)); this.closeSettingsButton.Clicked += closeSettings; this.newButton.Clicked += newProject; this.deleteButton.Clicked += deleteProject; this.propertiesButton.Clicked += editProperties; this.testButton.Clicked += testConnection; //TreeView TreeViewColumn NameCol = new TreeViewColumn(); CellRenderer NameRenderer = new CellRendererText(); NameCol.Title = "Project Name"; NameCol.PackStart(NameRenderer, true); NameCol.AddAttribute(NameRenderer, "text", 0); TreeViewColumn StatusCol = new TreeViewColumn(); CellRenderer StatusRenderer = new CellRendererPixbuf(); StatusRenderer.Xalign = 1.0F; StatusCol.Title = "Status"; StatusCol.PackEnd(StatusRenderer, true); StatusCol.AddAttribute(StatusRenderer, "pixbuf", 1); NameCol.PackStart(StatusRenderer, true); NameCol.AddAttribute(StatusRenderer, "pixbuf", 1); projectsTreeview.AppendColumn(NameCol); //projectsTreeview.AppendColumn (StatusCol); projectsTreeview.HeadersVisible = true; store = new TreeStore(new GLib.GType[] { GLib.GType.String, GLib.GType.Object, GLib.GType.Int }); iter = new TreeIter(); this.projectsTreeview.Model = store; UpdateProjectList(); foreach (Project proj in this.projects) { proj.OnPolled += new PolledEventHandler(ProjectPolled); } }