Gtk.TreeView BuildTreeViewDest() { var toret = new Gtk.TreeView(); var artistColumn = new Gtk.TreeViewColumn { Title = "Selected artist" }; var songColumn = new Gtk.TreeViewColumn { Title = "Selected song title" }; // Add the columns to the TreeView toret.AppendColumn(artistColumn); toret.AppendColumn(songColumn); // Create a model that will hold two strings - Artist Name and Song Title var musicListStore = new Gtk.ListStore(typeof(string), typeof(string)); var artistNameCell = new Gtk.CellRendererText(); var songTitleCell = new Gtk.CellRendererText(); artistColumn.PackStart(artistNameCell, true); songColumn.PackStart(songTitleCell, true); artistColumn.AddAttribute(artistNameCell, "text", 0); songColumn.AddAttribute(songTitleCell, "text", 1); toret.Selection.Mode = Gtk.SelectionMode.None; toret.Model = musicListStore; toret.Selection.Mode = Gtk.SelectionMode.Multiple; return(toret); }
public SignalsEditorBackend (SignalsEditorFrontend frontend) { this.frontend = frontend; tree = new Gtk.TreeView (); store = new Gtk.TreeStore (typeof(string), typeof(string), typeof(bool), typeof(bool), typeof(bool), typeof(int)); tree.Model = store; tree.RowActivated += new Gtk.RowActivatedHandler (OnRowActivated); Gtk.CellRendererText crtSignal = new Gtk.CellRendererText (); Gtk.CellRendererText crtHandler = new Gtk.CellRendererText (); crtHandler.Editable = true; crtHandler.Edited += new Gtk.EditedHandler (OnHandlerEdited); Gtk.CellRendererToggle crtogAfter = new Gtk.CellRendererToggle (); crtogAfter.Activatable = true; crtogAfter.Toggled += new Gtk.ToggledHandler (OnAfterToggled); tree.AppendColumn (Catalog.GetString ("Signal"), crtSignal, "text", ColSignal, "weight", ColSignalTextWeight); tree.AppendColumn (Catalog.GetString ("Handler"), crtHandler, "markup", ColHandler, "visible", ColIsSignal); tree.AppendColumn (Catalog.GetString ("After"), crtogAfter, "active", ColAfter, "visible", ColHasHandler); tree.Columns[0].Resizable = true; tree.Columns[1].Resizable = true; tree.Columns[2].Resizable = true; Add (tree); ShowAll (); }
public TreeViewExample() { Gtk.Window window = new Gtk.Window("TreeView Example"); window.SetSizeRequest(500, 200); Gtk.TreeView tree = new Gtk.TreeView(); window.Add(tree); Gtk.TreeViewColumn Parent = new Gtk.TreeViewColumn(); Parent.Title = "Parent"; Gtk.CellRendererText Parent1 = new Gtk.CellRendererText(); Parent.PackStart(Parent1, true); Gtk.TreeViewColumn ChildColoumn1 = new Gtk.TreeViewColumn(); ChildColoumn1.Title = "Column 1"; Gtk.CellRendererText Child1 = new Gtk.CellRendererText(); ChildColoumn1.PackStart(Child1, true); Gtk.TreeViewColumn ChildColumn2 = new Gtk.TreeViewColumn(); ChildColumn2.Title = "Column 2"; Gtk.CellRendererText Child2 = new Gtk.CellRendererText(); ChildColumn2.PackStart(Child2, true); tree.AppendColumn(Parent); tree.AppendColumn(ChildColoumn1); tree.AppendColumn(ChildColumn2); Parent.AddAttribute(Parent1, "text", 0); ChildColoumn1.AddAttribute(Child1, "text", 1); ChildColumn2.AddAttribute(Child2, "text", 2); Gtk.TreeStore Tree = new Gtk.TreeStore(typeof(string), typeof(string), typeof(string)); Gtk.TreeIter iter = Tree.AppendValues("Parent1"); Tree.AppendValues(iter, "Child1", "Node 1"); iter = Tree.AppendValues("Parent2"); Tree.AppendValues(iter, "Child1", "Node 1", "Node 2"); tree.Model = Tree; window.ShowAll(); }
public SignalsEditorBackend(SignalsEditorFrontend frontend) { this.frontend = frontend; tree = new Gtk.TreeView(); store = new Gtk.TreeStore(typeof(string), typeof(string), typeof(bool), typeof(bool), typeof(bool), typeof(SignalDescriptor), typeof(Signal), typeof(int)); tree.Model = store; tree.RowActivated += new Gtk.RowActivatedHandler(OnRowActivated); Gtk.CellRendererText crtSignal = new Gtk.CellRendererText(); Gtk.CellRendererText crtHandler = new Gtk.CellRendererText(); crtHandler.Editable = true; crtHandler.Edited += new Gtk.EditedHandler(OnHandlerEdited); Gtk.CellRendererToggle crtogAfter = new Gtk.CellRendererToggle(); crtogAfter.Activatable = true; crtogAfter.Toggled += new Gtk.ToggledHandler(OnAfterToggled); tree.AppendColumn(Catalog.GetString("Signal"), crtSignal, "text", ColSignal, "weight", ColSignalTextWeight); tree.AppendColumn(Catalog.GetString("Handler"), crtHandler, "markup", ColHandler, "visible", ColIsSignal); tree.AppendColumn(Catalog.GetString("After"), crtogAfter, "active", ColAfter, "visible", ColHasHandler); tree.Columns[0].Resizable = true; tree.Columns[1].Resizable = true; tree.Columns[2].Resizable = true; Add(tree); ShowAll(); }
public ServerListView(Gtk.Window parent, Glade.XML gladeXml) { Trace.Call(parent, gladeXml); if (parent == null) { throw new ArgumentNullException("parent"); } _Parent = parent; _Controller = new ServerListController(Frontend.UserConfig); gladeXml.BindFields(this); _AddButton.Clicked += new EventHandler(OnAddButtonClicked); _EditButton.Clicked += new EventHandler(OnEditButtonClicked); _RemoveButton.Clicked += new EventHandler(OnRemoveButtonClicked); _TreeView.AppendColumn(_("Protocol"), new Gtk.CellRendererText(), "text", 1); _TreeView.AppendColumn(_("Hostname"), new Gtk.CellRendererText(), "text", 2); _TreeStore = new Gtk.TreeStore(typeof(ServerModel), typeof(string), // protocol typeof(string) // hostname ); _TreeView.RowActivated += OnTreeViewRowActivated; _TreeView.Selection.Changed += OnTreeViewSelectionChanged; _TreeView.Model = _TreeStore; }
protected virtual void AddTreeViewColumns() { crtName = MakeEditableCellRenderer(); crtValue = MakeEditableCellRenderer(); crtComment = MakeEditableCellRenderer(); treeView.AppendColumn("", crt, new Gtk.TreeCellDataFunc(CountDataFunc)); treeView.AppendColumn("Name", crtName, new Gtk.TreeCellDataFunc(NameDataFunc)); treeView.AppendColumn("Value", crtValue, new Gtk.TreeCellDataFunc(ValueDataFunc)); treeView.AppendColumn("Comment", crtComment, new Gtk.TreeCellDataFunc(CommentDataFunc)); }
private void InitKeysPane(Gtk.TreeView treeView, bool?used = null, bool?isChange = null) { _Store = new Gtk.ListStore(typeof(Key), typeof(string), typeof(string), typeof(string), typeof(string)); treeView.Selection.Mode = Gtk.SelectionMode.Single; treeView.Model = _Store; treeView.AppendColumn("Public", new Gtk.CellRendererText(), "text", 1); treeView.AppendColumn("Private", new Gtk.CellRendererText(), "text", 2); treeView.AppendColumn("Used?", new Gtk.CellRendererText(), "text", 3); treeView.AppendColumn("Change?", new Gtk.CellRendererText(), "text", 4); Populate(treeView, used, isChange); }
public TreeViewExample() { // Create a Window Gtk.Window window = new Gtk.Window("TreeView Example"); window.SetSizeRequest(500, 200); // Create our TreeView Gtk.TreeView tree = new Gtk.TreeView(); // Add our tree to the window window.Add(tree); // Create a column for the artist name Gtk.TreeViewColumn artistColumn = new Gtk.TreeViewColumn(); artistColumn.Title = "Artist"; // Create the text cell that will display the artist name Gtk.CellRendererText artistNameCell = new Gtk.CellRendererText(); // Add the cell to the column artistColumn.PackStart(artistNameCell, true); // Create a column for the song title Gtk.TreeViewColumn songColumn = new Gtk.TreeViewColumn(); songColumn.Title = "Song Title"; // Do the same for the song title column Gtk.CellRendererText songTitleCell = new Gtk.CellRendererText(); songColumn.PackStart(songTitleCell, true); // Add the columns to the TreeView tree.AppendColumn(artistColumn); tree.AppendColumn(songColumn); // Tell the Cell Renderers which items in the model to display artistColumn.AddAttribute(artistNameCell, "text", 0); songColumn.AddAttribute(songTitleCell, "text", 1); // Create a model that will hold two strings - Artist Name and Song Title Gtk.ListStore musicListStore = new Gtk.ListStore(typeof(string), typeof(string)); // Add some data to the store musicListStore.AppendValues("Garbage", "Dog New Tricks"); // Assign the model to the TreeView tree.Model = musicListStore; // Show the window and everything on it window.ShowAll(); }
public SendMessagesOverviewWindow() { // Create window Gtk.Window window = new Gtk.Window ( "Verzonden Berichten" ); window.SetSizeRequest (700, 200); // Add tree to window Gtk.TreeView tree = new Gtk.TreeView (); window.Add (tree); // Create the column for displaying the telephone number. Gtk.TreeViewColumn numberReceiverColumn = new Gtk.TreeViewColumn (); numberReceiverColumn.Title = "Telefoon nummer"; numberReceiverColumn.MinWidth = 200; // Create the text cell that will display the telephone number. Gtk.CellRendererText numberReceiverCell = new Gtk.CellRendererText (); // Add the cell to the column. numberReceiverColumn.PackStart (numberReceiverCell, true); // Create the column for displaing the message. Gtk.TreeViewColumn messageColumn = new Gtk.TreeViewColumn (); messageColumn.Title = "Bericht"; messageColumn.MinWidth = 300; // Create the text cell that will display the message. Gtk.CellRendererText messageCell = new Gtk.CellRendererText (); messageColumn.PackStart (messageCell, true); // Create the column for displaying the date send. Gtk.TreeViewColumn sendAtColumn = new Gtk.TreeViewColumn (); sendAtColumn.Title = "Verstuurd op"; sendAtColumn.MinWidth = 200; // Create the text cell that will display the date send. Gtk.CellRendererText sendAtCell = new Gtk.CellRendererText (); sendAtColumn.PackStart (sendAtCell, true); tree.AppendColumn (numberReceiverColumn); tree.AppendColumn (messageColumn); tree.AppendColumn (sendAtColumn); // Tell the cell renderers which items in the model to display numberReceiverColumn.AddAttribute (numberReceiverCell, "text", 0); messageColumn.AddAttribute (messageCell, "text", 1); sendAtColumn.AddAttribute (sendAtCell, "text", 2); // Assign the model to the TreeView tree.Model = this.getMessageList (); // Show the window and everythin on it. window.ShowAll (); }
private void InitializePortsList(Gtk.TreeView portsList) { var viewModel = DataContext as SerialPortSelectorViewModel; var column = new Gtk.TreeViewColumn() { Title = SerialPortSelectorViewModel.PortColumnTitle }; var cellRenderer = new Gtk.CellRendererText(); column.PackStart(cellRenderer, true); column.SetCellDataFunc(cellRenderer, (l, c, m, i) => VisualHelpers.CellTextColumnRenderer <SerialPortViewModel>(l, c, m, i, p => p.PortName)); ////column.Sizing = Gtk.TreeViewColumnSizing.Fixed; ////column.FixedWidth = Properties.Settings.Default.MenuLayoutLongNameColWidth; ////column.Resizable = true; portsList.AppendColumn(column); portsList.Selection.Changed += HandleSelectedPortChanged; portsList.Selection.SelectFunction = ShouldSelectPort; var serialPortsModel = new Gtk.ListStore(typeof(SerialPortViewModel)); serialPortsModel.SynchronizeCollection(viewModel.AvailableSerialPorts); // TODO: Disable ports appropriately -- see ShouldSelect // TODO: Customize renderer somehow for disabled items to draw differently -- // Tinkering with CellRendererText.Foreground does not work as desired. portsList.Model = serialPortsModel; viewModel.AvailableSerialPorts.CollectionChanged += HandleAvailablePortsChanged; }
public FlagsSelectorDialog(Gtk.Window parent, EnumDescriptor enumDesc, uint flags, string title) { this.flags = flags; this.parent = parent; Glade.XML xml = new Glade.XML(null, "stetic.glade", "FlagsSelectorDialog", null); xml.Autoconnect(this); store = new Gtk.ListStore(typeof(bool), typeof(string), typeof(uint)); treeView.Model = store; Gtk.TreeViewColumn col = new Gtk.TreeViewColumn(); Gtk.CellRendererToggle tog = new Gtk.CellRendererToggle(); tog.Toggled += new Gtk.ToggledHandler(OnToggled); col.PackStart(tog, false); col.AddAttribute(tog, "active", 0); Gtk.CellRendererText crt = new Gtk.CellRendererText(); col.PackStart(crt, true); col.AddAttribute(crt, "text", 1); treeView.AppendColumn(col); foreach (Enum value in enumDesc.Values) { EnumValue eval = enumDesc[value]; if (eval.Label == "") { continue; } uint val = (uint)Convert.ToInt32(eval.Value); store.AppendValues(((flags & val) != 0), eval.Label, val); } }
public TreeViewHandler() { tree = new Gtk.TreeView(); UpdateModel(); tree.HeadersVisible = false; var col = new Gtk.TreeViewColumn(); var pbcell = new Gtk.CellRendererPixbuf(); col.PackStart(pbcell, false); col.SetAttributes(pbcell, "pixbuf", 1); textCell = new Gtk.CellRendererText(); col.PackStart(textCell, true); col.SetAttributes(textCell, "text", 0); tree.AppendColumn(col); tree.ShowExpanders = true; Control = new Gtk.ScrolledWindow(); Control.ShadowType = Gtk.ShadowType.In; Control.Add(tree); tree.Events |= Gdk.EventMask.ButtonPressMask; tree.ButtonPressEvent += HandleTreeButtonPressEvent; }
/// <summary> /// Calcula la vista que mostrará la lista de ejercicios (<see cref="ExerciseTreeView"></see>). /// </summary> /// <returns>La vista en la que se muestra una lista de los ejercicios (<see cref="ExerciseTreeView"></see>).</returns> private Gtk.VBox ExercisesListView() { var ViewBox = new Gtk.VBox(false, 5); // ------------------INICIALIZACION--------------------- // Tree. ExercisesTreeview = new Gtk.TreeView(); ExercisesTreeview.HeightRequest = 150; // Tree model. ExercisesTreeview.Model = new Gtk.ListStore(typeof(string), typeof(string), typeof(string)); // Tree events ExercisesTreeview.ButtonPressEvent += new Gtk.ButtonPressEventHandler(OnRightExercise); // Tree columns. var DistRender = new Gtk.CellRendererText(); DistRender.Editable = true; DistRender.Edited += ExercisesDistEdit; var MinsRender = new Gtk.CellRendererText(); MinsRender.Editable = true; MinsRender.Edited += ExercisesMinsEdit; // Boxes Creation. var TreeScroll = new Gtk.ScrolledWindow(); var TreeSpace = new Gtk.HBox(false, 5); // -------------------COMPOSICION------------------------ // Tree Columns Append. ExercisesTreeview.AppendColumn("Dist", DistRender, "text", 0); ExercisesTreeview.AppendColumn("Mins", MinsRender, "text", 1); ExercisesTreeview.AppendColumn("Date", new Gtk.CellRendererText(), "text", 2); // Fill Boxes. TreeScroll.Add(ExercisesTreeview); TreeSpace.Add(TreeScroll); ViewBox.Add(TreeSpace); return(ViewBox); }
public LogWindow() : base("Log Model") { this.Move(0,0); this.SetSizeRequest(600, 500); Gtk.TreeView treeviewLog = new Gtk.TreeView(); Gtk.TreeViewColumn idColumn = new Gtk.TreeViewColumn (); idColumn.Title = "Id"; Gtk.TreeViewColumn typeColumn = new Gtk.TreeViewColumn (); typeColumn.Title = "Type"; Gtk.TreeViewColumn descriptionColumn = new Gtk.TreeViewColumn (); descriptionColumn.Title = "Description"; logListStore = new Gtk.ListStore (typeof (string), typeof (string), typeof (string)); treeviewLog.AppendColumn(idColumn); treeviewLog.AppendColumn(typeColumn); treeviewLog.AppendColumn(descriptionColumn); treeviewLog.Model = logListStore; Gtk.CellRendererText idCell = new Gtk.CellRendererText (); idColumn.PackStart(idCell, true); Gtk.CellRendererText typeCell = new Gtk.CellRendererText (); typeColumn.PackStart(typeCell, true); Gtk.CellRendererText descriptionCell = new Gtk.CellRendererText (); descriptionColumn.PackStart(descriptionCell, true); idColumn.AddAttribute(idCell, "text", 0); typeColumn.AddAttribute(typeCell, "text", 1); descriptionColumn.AddAttribute(descriptionCell, "text", 2); Gtk.ScrolledWindow scWindow = new Gtk.ScrolledWindow(); scWindow.Add(treeviewLog); this.Add(scWindow); }
void Init() { _Controller = new ServerListController(Frontend.UserConfig); _TreeView.AppendColumn(_("Protocol"), new Gtk.CellRendererText(), "text", 1); _TreeView.AppendColumn(_("Hostname"), new Gtk.CellRendererText(), "text", 2); _TreeStore = new Gtk.TreeStore(typeof(ServerModel), typeof(string), // protocol typeof(string) // hostname ); _TreeStore.SetSortColumnId(0, Gtk.SortType.Ascending); _TreeStore.SetSortFunc(0, SortTreeStore); _TreeView.RowActivated += OnTreeViewRowActivated; _TreeView.Selection.Changed += OnTreeViewSelectionChanged; _TreeView.Model = _TreeStore; }
public LogWindow() : base("Log Model") { this.Move(0, 0); this.SetSizeRequest(600, 500); Gtk.TreeView treeviewLog = new Gtk.TreeView(); Gtk.TreeViewColumn idColumn = new Gtk.TreeViewColumn(); idColumn.Title = "Id"; Gtk.TreeViewColumn typeColumn = new Gtk.TreeViewColumn(); typeColumn.Title = "Type"; Gtk.TreeViewColumn descriptionColumn = new Gtk.TreeViewColumn(); descriptionColumn.Title = "Description"; logListStore = new Gtk.ListStore(typeof(string), typeof(string), typeof(string)); treeviewLog.AppendColumn(idColumn); treeviewLog.AppendColumn(typeColumn); treeviewLog.AppendColumn(descriptionColumn); treeviewLog.Model = logListStore; Gtk.CellRendererText idCell = new Gtk.CellRendererText(); idColumn.PackStart(idCell, true); Gtk.CellRendererText typeCell = new Gtk.CellRendererText(); typeColumn.PackStart(typeCell, true); Gtk.CellRendererText descriptionCell = new Gtk.CellRendererText(); descriptionColumn.PackStart(descriptionCell, true); idColumn.AddAttribute(idCell, "text", 0); typeColumn.AddAttribute(typeCell, "text", 1); descriptionColumn.AddAttribute(descriptionCell, "text", 2); Gtk.ScrolledWindow scWindow = new Gtk.ScrolledWindow(); scWindow.Add(treeviewLog); this.Add(scWindow); }
public MainWindow() : base(Gtk.WindowType.Toplevel) { this.Build(); UserView = new Gtk.TreeView(); Gtk.TreeViewColumn user = new Gtk.TreeViewColumn(); user.Title = "TestUser"; UserView.AppendColumn(user); frame1.Add(UserView); }
Gtk.TreeView BuildTreeView() { var toret = new Gtk.TreeView(); // Index column var columnIndex = new Gtk.TreeViewColumn { Title = "#" }; var indexRenderer = new Gtk.CellRendererText(); columnIndex.PackStart(indexRenderer, expand: true); columnIndex.AddAttribute(indexRenderer, "text", 0); // Data column var columnData = new Gtk.TreeViewColumn { Title = "Mixed column" }; var dataRenderer1 = new Gtk.CellRendererPixbuf(); columnData.PackStart(dataRenderer1, expand: false); columnData.AddAttribute(dataRenderer1, "pixbuf", 1); var dataRenderer2 = new Gtk.CellRendererText(); columnData.PackStart(dataRenderer2, expand: true); columnData.AddAttribute(dataRenderer2, "text", 2); toret.AppendColumn(columnIndex); toret.AppendColumn(columnData); // Model var store = new Gtk.ListStore(typeof(string), typeof(Gdk.Pixbuf), typeof(string)); toret.Model = store; store.AppendValues("1", this.IconYes, "works"); store.AppendValues("2", this.IconNo, "does not work"); return(toret); }
void IPlugin.Init(object context) { solidIDE = context as ISolidIDE; mainWindow = solidIDE.GetMainWindow(); // Dock with Tree Gtk.ScrolledWindow treeViewScrollWindow = new Gtk.ScrolledWindow(); Gtk.Viewport treeViewViewport = new Gtk.Viewport(); treeViewScrollWindow.Add(treeViewViewport); treeView = new Gtk.TreeView(); treeViewViewport.Add(treeView); treeViewScrollWindow.ShowAll(); Gtk.TreeViewColumn col = new Gtk.TreeViewColumn(); Gtk.CellRendererText colAssemblyCell = new Gtk.CellRendererText(); col.PackStart(colAssemblyCell, true); col.AddAttribute(colAssemblyCell, "text", 0); treeView.AppendColumn(col); treeView.Model = new Gtk.TreeStore(typeof(string), typeof(Tool <Gdk.Event, Cairo.Context, Model>), typeof(Shape)); treeView.RowActivated += HandleRowActivated; treeView.CursorChanged += HandleCursorChanged; Gtk.Drag.SourceSet( treeView, Gdk.ModifierType.Button1Mask, new Gtk.TargetEntry[] { new Gtk.TargetEntry("application/x-solidide.shape", Gtk.TargetFlags.App, 0) }, Gdk.DragAction.Copy ); /*treeView.EnableModelDragSource( * Gdk.ModifierType.None, * new Gtk.TargetEntry[] { new TargetEntry("application/SolidIDE", 0, 0) }, * Gdk.DragAction.Default);*/ treeView.DragBegin += HandleTreeViewDragBegin; treeView.DragDataGet += HandleTreeViewDragDataGet; //treeView.DragDrop += HandleTreeViewDragDrop; toolboxDockItem = mainWindow.DockFrame.AddItem("Toolbox"); toolboxDockItem.Behavior = DockItemBehavior.Normal; toolboxDockItem.Expand = true; toolboxDockItem.DrawFrame = true; toolboxDockItem.Label = "Toolbox"; toolboxDockItem.Content = treeViewScrollWindow; toolboxDockItem.DefaultVisible = true; toolboxDockItem.Visible = true; UpdateToolbox(); // Menu var viewMenuItem = solidIDE.GetMenuItem <Gtk.ImageMenuItem>("View"); solidIDE.GetMenuItem <Gtk.TearoffMenuItem>("View", "TearoffView"); var toolboxMenuItem = solidIDE.GetMenuItem <Gtk.ImageMenuItem>("View", "Toolbox"); toolboxMenuItem.Activated += HandleShowToolboxActivated; }
public TreeViewExample() { Gtk.Window window = new Gtk.Window("TreeView Example"); window.SetSizeRequest(500, 200); Gtk.TreeView tree = new Gtk.TreeView(); Gtk.ListStore musicListStore = new Gtk.ListStore(typeof(Gdk.Pixbuf), typeof(string), typeof(string)); tree.AppendColumn("Icon", new Gtk.CellRendererPixbuf(), "pixbuf", 0); tree.AppendColumn("Artist", new Gtk.CellRendererText(), "text", 1); tree.AppendColumn("Title", new Gtk.CellRendererText(), "text", 2); musicListStore.AppendValues(new Gdk.Pixbuf("TreeViewRupertIcon.png"), "Rupert", "Yellow bananas"); tree.Model = musicListStore; window.Add(tree); window.ShowAll(); }
public TreeViewExample() { Gtk.Window window = new Gtk.Window("TreeView Example"); window.SetSizeRequest(500, 200); Gtk.TreeView tree = new Gtk.TreeView(); window.Add(tree); Gtk.TreeViewColumn artistColumn = new Gtk.TreeViewColumn(); artistColumn.Title = "Artist"; Gtk.CellRendererText artistNameCell = new Gtk.CellRendererText(); artistColumn.PackStart(artistNameCell, true); Gtk.TreeViewColumn songColumn = new Gtk.TreeViewColumn(); songColumn.Title = "Song Title"; Gtk.CellRendererText songTitleCell = new Gtk.CellRendererText(); songColumn.PackStart(songTitleCell, true); tree.AppendColumn(artistColumn); tree.AppendColumn(songColumn); artistColumn.AddAttribute(artistNameCell, "text", 0); songColumn.AddAttribute(songTitleCell, "text", 1); Gtk.TreeStore musicListStore = new Gtk.TreeStore(typeof(string), typeof(string)); Gtk.TreeIter iter = musicListStore.AppendValues("Dance"); musicListStore.AppendValues(iter, "Fannypack", "Nu Nu (Yeah Yeah) (double j and haze radio edit)"); iter = musicListStore.AppendValues("Hip-hop"); musicListStore.AppendValues(iter, "Nelly", "Country Grammer"); tree.Model = musicListStore; window.ShowAll(); }
public static Gtk.Window CreateTreeWindow() { Gtk.Window window = new Gtk.Window("Sortable TreeView"); Gtk.TreeIter iter; Gtk.TreeViewColumn col; Gtk.CellRendererText cell; Gtk.TreeView tree = new Gtk.TreeView(); cell = new Gtk.CellRendererText(); col = new Gtk.TreeViewColumn(); col.Title = "Column 1"; col.PackStart(cell, true); col.AddAttribute(cell, "text", 0); col.SortColumnId = 0; tree.AppendColumn(col); cell = new Gtk.CellRendererText(); col = new Gtk.TreeViewColumn(); col.Title = "Column 2"; col.PackStart(cell, true); col.AddAttribute(cell, "text", 1); tree.AppendColumn(col); Gtk.TreeStore store = new Gtk.TreeStore(typeof(string), typeof(string)); iter = store.AppendValues("BBB"); store.AppendValues(iter, "AAA", "Zzz"); store.AppendValues(iter, "DDD", "Ttt"); store.AppendValues(iter, "CCC", "Ggg"); iter = store.AppendValues("AAA"); store.AppendValues(iter, "ZZZ", "Zzz"); store.AppendValues(iter, "GGG", "Ggg"); store.AppendValues(iter, "TTT", "Ttt"); Gtk.TreeModelSort sortable = new Gtk.TreeModelSort(store); sortable.SetSortFunc(0, delegate(TreeModel model, TreeIter a, TreeIter b) { string s1 = (string)model.GetValue(a, 0); string s2 = (string)model.GetValue(b, 0); return(String.Compare(s1, s2)); }); tree.Model = sortable; window.Add(tree); return(window); }
public TreeViewExample() { // Create a Window Gtk.Window window = new Gtk.Window("TreeView Example"); window.SetSizeRequest(500, 200); // Create our TreeView Gtk.TreeView tree = new Gtk.TreeView(); // Add our tree to the window window.Add(tree); // Create a column for the artist name Gtk.TreeViewColumn artistColumn = new Gtk.TreeViewColumn(); artistColumn.Title = "Artist"; // Create a column for the song title Gtk.TreeViewColumn songColumn = new Gtk.TreeViewColumn(); songColumn.Title = "Song Title"; // Add the columns to the TreeView tree.AppendColumn(artistColumn); tree.AppendColumn(songColumn); // Create a model that will hold two strings - Artist Name and Song Title Gtk.ListStore musicListStore = new Gtk.ListStore(typeof(string), typeof(string)); // Assign the model to the TreeView tree.Model = musicListStore; // Show the window and everything on it window.ShowAll(); }
public void Apply(Gtk.Widget widget) { Gtk.TreeView treeView = widget as Gtk.TreeView; if (treeView == null) { Console.WriteLine("TreeViewTemplate.Apply: Invalid widget type for this template"); return; } foreach (var col in Columns) { treeView.AppendColumn(col.Item1, col.Item2, ValuePropertyDataFunc); } }
internal GtkListView( List <Gtk.TreeViewColumn> columns, Dictionary <int, Gtk.TreeIterCompareFunc> sortFunctionsByColumn, Gtk.TreeModelFilterVisibleFunc visibleFunc) { View = TreeBuilder.CreateTreeView(); mSortFunctionByColumn = sortFunctionsByColumn; mVisibleFunc = visibleFunc; foreach (Gtk.TreeViewColumn column in columns) { View.AppendColumn(column); } }
public FlagsSelectorDialog(Gtk.Window parent, Type enumDesc, ulong flags, string title) { this.flags = flags; this.parent = parent; Gtk.ScrolledWindow sc = new Gtk.ScrolledWindow(); sc.HscrollbarPolicy = Gtk.PolicyType.Automatic; sc.VscrollbarPolicy = Gtk.PolicyType.Automatic; sc.ShadowType = Gtk.ShadowType.In; sc.BorderWidth = 6; treeView = new Gtk.TreeView(); sc.Add(treeView); dialog = new Gtk.Dialog(); IdeTheme.ApplyTheme(dialog); dialog.VBox.Add(sc); dialog.AddButton(Gtk.Stock.Cancel, Gtk.ResponseType.Cancel); dialog.AddButton(Gtk.Stock.Ok, Gtk.ResponseType.Ok); store = new Gtk.ListStore(typeof(bool), typeof(string), typeof(ulong)); treeView.Model = store; treeView.HeadersVisible = false; Gtk.TreeViewColumn col = new Gtk.TreeViewColumn(); Gtk.CellRendererToggle tog = new Gtk.CellRendererToggle(); tog.Toggled += new Gtk.ToggledHandler(OnToggled); col.PackStart(tog, false); col.AddAttribute(tog, "active", 0); Gtk.CellRendererText crt = new Gtk.CellRendererText(); col.PackStart(crt, true); col.AddAttribute(crt, "text", 1); treeView.AppendColumn(col); values = System.Enum.GetValues(enumDesc); foreach (object value in values) { ulong val = Convert.ToUInt64(value); store.AppendValues((flags == 0 && val == 0) || ((flags & val) != 0), value.ToString(), val); } }
public FlagsSelectorDialog (Gtk.Window parent, Type enumDesc, ulong flags, string title) { this.flags = flags; this.parent = parent; Gtk.ScrolledWindow sc = new Gtk.ScrolledWindow (); sc.HscrollbarPolicy = Gtk.PolicyType.Automatic; sc.VscrollbarPolicy = Gtk.PolicyType.Automatic; sc.ShadowType = Gtk.ShadowType.In; sc.BorderWidth = 6; treeView = new Gtk.TreeView (); sc.Add (treeView); dialog = new Gtk.Dialog (); IdeTheme.ApplyTheme (dialog); dialog.VBox.Add (sc); dialog.AddButton (Gtk.Stock.Cancel, Gtk.ResponseType.Cancel); dialog.AddButton (Gtk.Stock.Ok, Gtk.ResponseType.Ok); store = new Gtk.ListStore (typeof(bool), typeof(string), typeof(ulong)); treeView.Model = store; treeView.HeadersVisible = false; Gtk.TreeViewColumn col = new Gtk.TreeViewColumn (); Gtk.CellRendererToggle tog = new Gtk.CellRendererToggle (); tog.Toggled += new Gtk.ToggledHandler (OnToggled); col.PackStart (tog, false); col.AddAttribute (tog, "active", 0); Gtk.CellRendererText crt = new Gtk.CellRendererText (); col.PackStart (crt, true); col.AddAttribute (crt, "text", 1); treeView.AppendColumn (col); values = System.Enum.GetValues (enumDesc); foreach (object value in values) { ulong val = Convert.ToUInt64 (value); store.AppendValues ((flags == 0 && val == 0) || ((flags & val) != 0), value.ToString (), val); } }
/// <summary> /// Loads the files in the Assemblies.env into the TreeView. /// </summary> /// <param name='files'> /// Files. /// </param> /// private void LoadFilesInTreeView(string [] files) { Gtk.TreeViewColumn col = new Gtk.TreeViewColumn(); Gtk.CellRendererText colAssemblyCell = new Gtk.CellRendererText(); col.PackStart(colAssemblyCell, true); col.AddAttribute(colAssemblyCell, "text", 0); if (assemblyTree.GetColumn(0) != null) { assemblyTree.Columns[0] = col; } else { assemblyTree.AppendColumn(col); } store = assemblyTree.Model as Gtk.TreeStore; if (store == null) { store = new Gtk.TreeStore(typeof(object)); } foreach (string file in files) { if (File.Exists(file)) { store.AppendValues(AssemblyDefinition.ReadAssembly(file)); } else { ShowMessageGtk(String.Format("File {0} doesn't exits.", file)); } } // Add functions managinig the visualization of those assembly definitions col.SetCellDataFunc(colAssemblyCell, new Gtk.TreeCellDataFunc(RenderAssemblyDefinition)); assemblyTree.Model = store; assemblyTree.ShowAll(); }
public static void Load() { Style.Add <FormHandler>("MainWindow", h => { if (!Global.UseHeaderBar) { return; } h.Menu = null; h.ToolBar = null; var builder = new Gtk.Builder(null, "MainWindow.glade", null); var headerBar = new Gtk.Widget(builder.GetObject("headerbar").Handle); var separator = new Gtk.Widget(builder.GetObject("separator1").Handle); popovermenu1 = new Gtk.Widget(builder.GetObject("popovermenu1").Handle); popovermenu2 = new Gtk.Widget(builder.GetObject("popovermenu2").Handle); Gtk3Wrapper.gtk_window_set_titlebar(h.Control.Handle, headerBar.Handle); Gtk3Wrapper.gtk_header_bar_set_show_close_button(headerBar.Handle, true); Connect(builder.GetObject("new_button").Handle, MainWindow.Instance.cmdNew); Connect(builder.GetObject("save_button").Handle, MainWindow.Instance.cmdSave); Connect(builder.GetObject("build_button").Handle, MainWindow.Instance.cmdBuild, false); Connect(builder.GetObject("rebuild_button").Handle, MainWindow.Instance.cmdRebuild, false); Connect(builder.GetObject("cancel_button").Handle, MainWindow.Instance.cmdCancelBuild, false); Connect(builder.GetObject("open_other_button").Handle, MainWindow.Instance.cmdOpen); Connect(builder.GetObject("import_button").Handle, MainWindow.Instance.cmdImport); Connect(builder.GetObject("saveas_button").Handle, MainWindow.Instance.cmdSaveAs); Connect(builder.GetObject("undo_button").Handle, MainWindow.Instance.cmdUndo); Connect(builder.GetObject("redo_button").Handle, MainWindow.Instance.cmdRedo); Connect(builder.GetObject("close_button").Handle, MainWindow.Instance.cmdClose); Connect(builder.GetObject("clean_button").Handle, MainWindow.Instance.cmdClean); Connect(builder.GetObject("help_button").Handle, MainWindow.Instance.cmdHelp); Connect(builder.GetObject("about_button").Handle, MainWindow.Instance.cmdAbout); Connect(builder.GetObject("exit_button").Handle, MainWindow.Instance.cmdExit); Connect(builder.GetObject("debugmode_button").Handle, MainWindow.Instance.cmdDebugMode); MainWindow.Instance.cmdBuild.EnabledChanged += (sender, e) => separator.Visible = MainWindow.Instance.cmdBuild.Enabled || MainWindow.Instance.cmdCancelBuild.Enabled; MainWindow.Instance.cmdCancelBuild.EnabledChanged += (sender, e) => separator.Visible = MainWindow.Instance.cmdBuild.Enabled || MainWindow.Instance.cmdCancelBuild.Enabled; MainWindow.Instance.TitleChanged += delegate { var title = MainWindow.TitleBase; var subtitle = ""; if (PipelineController.Instance.ProjectOpen) { title = (PipelineController.Instance.ProjectDirty) ? "*" : ""; title += Path.GetFileName(PipelineController.Instance.ProjectItem.OriginalPath); subtitle = Path.GetDirectoryName(PipelineController.Instance.ProjectItem.OriginalPath); } h.Control.Title = title; Gtk3Wrapper.gtk_header_bar_set_subtitle(headerBar.Handle, subtitle); }; var treeview1 = new Gtk.TreeView(builder.GetObject("treeview1").Handle); var store = new Gtk.TreeStore(typeof(string), typeof(string)); var column = new Gtk.TreeViewColumn(); var textCell = new Gtk.CellRendererText(); var dataCell = new Gtk.CellRendererText(); dataCell.Visible = false; column.PackStart(textCell, false); column.PackStart(dataCell, false); treeview1.AppendColumn(column); column.AddAttribute(textCell, "markup", 0); column.AddAttribute(dataCell, "text", 1); treeview1.Model = store; MainWindow.Instance.RecentChanged += (sender, e) => { store.Clear(); var recentList = sender as List <string>; foreach (var project in recentList) { store.InsertWithValues(0, "<b>" + Path.GetFileName(project) + "</b>\n" + Path.GetDirectoryName(project), project); } }; treeview1.RowActivated += (o, args) => { popovermenu2.Hide(); Gtk.TreeIter iter; if (!store.GetIter(out iter, args.Path)) { return; } var project = store.GetValue(iter, 1).ToString(); PipelineController.Instance.OpenProject(project); }; h.Control.ShowAll(); }); Style.Add <DialogHandler>("HeaderBar", h => { var title = h.Title; var headerBar = Gtk3Wrapper.gtk_header_bar_new(); Gtk3Wrapper.gtk_window_set_titlebar(h.Control.Handle, headerBar); h.Title = title; if (h.AbortButton.Text == "Close") { Gtk3Wrapper.gtk_header_bar_set_show_close_button(headerBar, true); return; } var defButton = (Gtk.Button)h.DefaultButton.ControlObject; defButton.StyleContext.AddClass("suggested-action"); Gtk3Wrapper.gtk_header_bar_pack_end(headerBar, defButton.Handle); Gtk3Wrapper.gtk_header_bar_pack_start(headerBar, ((Gtk.Button)h.AbortButton.ControlObject).Handle); }); Style.Add <LabelHandler>("Wrap", h => h.Control.MaxWidthChars = 55); Style.Add <ToolBarHandler>("ToolBar", h => { h.Control.ToolbarStyle = Gtk.ToolbarStyle.Icons; h.Control.IconSize = Gtk.IconSize.SmallToolbar; }); Style.Add <TreeViewHandler>("Scroll", h => { var treeView = h.Control.Child as Gtk.TreeView; Gtk.TreeIter lastIter, iter; if (treeView.Model.GetIterFirst(out iter)) { do { lastIter = iter; }while (treeView.Model.IterNext(ref iter)); var path = treeView.Model.GetPath(lastIter); treeView.ScrollToCell(path, null, false, 0, 0); } }); Style.Add <DrawableHandler>("Stretch", h => { var parent = h.Control.Parent.Parent.Parent.Parent.Parent.Parent; parent.SizeAllocated += delegate { var al = h.Control.Allocation; al.Width = parent.AllocatedWidth - 2; h.Control.SetAllocation(al); }; }); Style.Add <PixelLayoutHandler>("Stretch", h => { var parent = h.Control.Parent.Parent.Parent.Parent.Parent; parent.SizeAllocated += delegate { var al = h.Control.Allocation; al.Width = parent.AllocatedWidth; h.Control.SetAllocation(al); }; }); Style.Add <TextBoxHandler>("OverrideSize", h => { h.Control.WidthChars = 0; }); Style.Add <ScrollableHandler>("BuildOutput", h => { var child = ((((h.Control.Child as Gtk.Viewport).Child as Gtk.VBox).Children[0] as Gtk.HBox).Children[0] as Gtk.Alignment).Child; var ok = false; h.Control.SizeAllocated += delegate { // Set Width of the Drawable var al = child.Allocation; al.Width = h.Control.AllocatedWidth - 2; if (BuildOutput.ReqWidth > al.Width) { al.Width = BuildOutput.ReqWidth; } child.SetAllocation(al); if (PipelineSettings.Default.AutoScrollBuildOutput) { // Scroll to bottom if (BuildOutput.Count == -1) { ok = false; } if (!ok) { var adj = h.Control.Vadjustment; adj.Value = adj.Upper - adj.PageSize; if (adj.Upper >= BuildOutput.Count && BuildOutput.Count != -1) { ok = true; } } } }; }); }
public BugzillaPreferences() : base(false, 12) { last_opened_dir = Environment.GetEnvironmentVariable("HOME"); Gtk.Label l = new Gtk.Label(Catalog.GetString( "You can use any bugzilla just by dragging links " + "into notes. If you want a special icon for " + "certain hosts, add them here.")); l.Wrap = true; l.Xalign = 0; PackStart(l, false, false, 0); icon_store = CreateIconStore(); icon_tree = new Gtk.TreeView(icon_store); icon_tree.HeadersVisible = true; icon_tree.Selection.Mode = Gtk.SelectionMode.Single; icon_tree.Selection.Changed += SelectionChanged; Gtk.CellRenderer renderer; Gtk.TreeViewColumn host_col = new Gtk.TreeViewColumn(); host_col.Title = Catalog.GetString("Host Name"); host_col.Sizing = Gtk.TreeViewColumnSizing.Autosize; host_col.Resizable = true; host_col.Expand = true; host_col.MinWidth = 200; renderer = new Gtk.CellRendererText(); host_col.PackStart(renderer, true); host_col.AddAttribute(renderer, "text", 1 /* host name */); host_col.SortColumnId = 1; /* host name */ host_col.SortIndicator = false; host_col.Reorderable = false; host_col.SortOrder = Gtk.SortType.Ascending; icon_tree.AppendColumn(host_col); Gtk.TreeViewColumn icon_col = new Gtk.TreeViewColumn(); icon_col.Title = Catalog.GetString("Icon"); icon_col.Sizing = Gtk.TreeViewColumnSizing.Fixed; icon_col.MaxWidth = 50; icon_col.MinWidth = 50; icon_col.Resizable = false; renderer = new Gtk.CellRendererPixbuf(); icon_col.PackStart(renderer, false); icon_col.AddAttribute(renderer, "pixbuf", 0 /* icon */); icon_tree.AppendColumn(icon_col); Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow(); sw.ShadowType = Gtk.ShadowType.In; sw.HeightRequest = 200; sw.WidthRequest = 300; sw.SetPolicy(Gtk.PolicyType.Automatic, Gtk.PolicyType.Automatic); sw.Add(icon_tree); PackStart(sw, true, true, 0); add_button = new Gtk.Button(Gtk.Stock.Add); add_button.Clicked += AddClicked; remove_button = new Gtk.Button(Gtk.Stock.Remove); remove_button.Sensitive = false; remove_button.Clicked += RemoveClicked; Gtk.HButtonBox hbutton_box = new Gtk.HButtonBox(); hbutton_box.Layout = Gtk.ButtonBoxStyle.Start; hbutton_box.Spacing = 6; hbutton_box.PackStart(add_button); hbutton_box.PackStart(remove_button); PackStart(hbutton_box, false, false, 0); ShowAll(); }
private void SetColumns() { _TreeView.AppendColumn("Icon", new Gtk.CellRendererPixbuf(), "pixbuf", 0); _ObjectColumn = _TreeView.AppendColumn("Document", _ObjectRenderer, "text", 1); }
public GroupChatView(GroupChatModel groupChat) : base(groupChat) { Trace.Call(groupChat); _GroupChatModel = groupChat; // person list Participants = new List<PersonModel>(); _OutputHPaned = new Gtk.HPaned(); Gtk.TreeView tv = new Gtk.TreeView(); _PersonTreeView = tv; Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow(); PersonScrolledWindow = sw; sw.ShadowType = Gtk.ShadowType.None; sw.HscrollbarPolicy = Gtk.PolicyType.Never; //tv.CanFocus = false; tv.BorderWidth = 0; tv.Selection.Mode = Gtk.SelectionMode.Multiple; sw.Add(tv); Gtk.TreeViewColumn column; var cellr = new Gtk.CellRendererText() { Ellipsize = Pango.EllipsizeMode.End }; IdentityNameCellRenderer = cellr; column = new Gtk.TreeViewColumn(String.Empty, cellr); column.SortColumnId = 0; column.Spacing = 0; column.SortIndicator = false; column.Expand = true; column.Sizing = Gtk.TreeViewColumnSizing.Autosize; // FIXME: this callback leaks memory column.SetCellDataFunc(cellr, new Gtk.TreeCellDataFunc(RenderPersonIdentityName)); tv.AppendColumn(column); _IdentityNameColumn = column; Gtk.ListStore liststore = new Gtk.ListStore(typeof(PersonModel)); liststore.SetSortColumnId(0, Gtk.SortType.Ascending); liststore.SetSortFunc(0, new Gtk.TreeIterCompareFunc(SortPersonListStore)); _PersonListStore = liststore; tv.Model = liststore; tv.SearchColumn = 0; tv.SearchEqualFunc = (model, col, key, iter) => { var person = (PersonModel) model.GetValue(iter, col); // Ladies and gentlemen welcome to C // 0 means it matched but 0 as bool is false. So if it matches // we have to return false. Still not clear? true is false and // false is true, weirdo! If you think this is retarded, // yes it is. return !person.IdentityName.StartsWith(key, StringComparison.InvariantCultureIgnoreCase); }; tv.EnableSearch = true; tv.HeadersVisible = false; tv.RowActivated += new Gtk.RowActivatedHandler(OnPersonsRowActivated); tv.FocusOutEvent += OnPersonTreeViewFocusOutEvent; // popup menu _PersonMenu = new Gtk.Menu(); // don't loose the focus else we lose the selection too! // see OnPersonTreeViewFocusOutEvent() _PersonMenu.TakeFocus = false; _PersonMenu.Shown += OnPersonMenuShown; _PersonTreeView.ButtonPressEvent += _OnPersonTreeViewButtonPressEvent; _PersonTreeView.KeyPressEvent += OnPersonTreeViewKeyPressEvent; // frame needed for events when selecting something in the treeview _PersonTreeViewFrame = new Gtk.Frame() { ShadowType = Gtk.ShadowType.In }; _PersonTreeViewFrame.ButtonReleaseEvent += new Gtk.ButtonReleaseEventHandler(_OnUserListButtonReleaseEvent); _PersonTreeViewFrame.Add(sw); // topic // don't worry, ApplyConfig() will add us to the OutputVBox! _OutputVBox = new Gtk.VBox() { Spacing = 1 }; _TopicTextView = new MessageTextView(); _TopicTextView.Editable = false; _TopicTextView.WrapMode = Gtk.WrapMode.WordChar; _TopicScrolledWindow = new Gtk.ScrolledWindow(); _TopicScrolledWindow.ShadowType = Gtk.ShadowType.In; _TopicScrolledWindow.HscrollbarPolicy = Gtk.PolicyType.Never; _TopicScrolledWindow.Add(_TopicTextView); // make sure the topic is invisible and remains by default and // visible when a topic gets set _TopicScrolledWindow.ShowAll(); _TopicScrolledWindow.Visible = false; _TopicScrolledWindow.NoShowAll = true; _TopicScrolledWindow.SizeRequested += delegate(object o, Gtk.SizeRequestedArgs args) { // predict and set useful topic heigth int lineWidth, lineHeight; using (var layout = _TopicTextView.CreatePangoLayout("Test Topic")) { layout.GetPixelSize(out lineWidth, out lineHeight); } var lineSpacing = _TopicTextView.PixelsAboveLines + _TopicTextView.PixelsBelowLines; var it = _TopicTextView.Buffer.StartIter; int newLines = 1; // move to end of next visual line while (_TopicTextView.ForwardDisplayLineEnd(ref it)) { newLines++; // calling ForwardDisplayLineEnd repeatedly stays on the same position // therefor we move one cursor position further it.ForwardCursorPosition(); } newLines = Math.Min(newLines, 3); var bestSize = new Gtk.Requisition() { Height = ((lineHeight + lineSpacing) * newLines) + 4 }; args.Requisition = bestSize; }; Add(_OutputHPaned); //ApplyConfig(Frontend.UserConfig); ShowAll(); }
public static void Load() { Style.Add <ApplicationHandler>("PipelineTool", h => { Global.Application = h.Control; if (Gtk.Global.MajorVersion >= 3 && Gtk.Global.MinorVersion >= 16) { Global.UseHeaderBar = Global.Application.PrefersAppMenu(); } if (Global.UseHeaderBar) { Global.Application.AppMenu = new GLib.MenuModel((new Gtk.Builder("AppMenu.glade")).GetObject("appmenu").Handle); } }); Style.Add <FormHandler>("MainWindow", h => { if (!Global.UseHeaderBar) { return; } var builder = new Gtk.Builder("MainWindow.glade"); var headerBar = new Gtk.HeaderBar(builder.GetObject("headerbar").Handle); h.Menu = null; h.ToolBar = null; Connect("new", MainWindow.Instance.cmdNew); Connect("open", MainWindow.Instance.cmdOpen); Connect("save", MainWindow.Instance.cmdSave); Connect("saveas", MainWindow.Instance.cmdSaveAs); Connect("import", MainWindow.Instance.cmdImport); Connect("close", MainWindow.Instance.cmdClose); Connect("help", MainWindow.Instance.cmdHelp); Connect("about", MainWindow.Instance.cmdAbout); Connect("quit", MainWindow.Instance.cmdExit); Connect("undo", MainWindow.Instance.cmdUndo); Connect("redo", MainWindow.Instance.cmdRedo); Connect("build", MainWindow.Instance.cmdBuild); Connect("rebuild", MainWindow.Instance.cmdRebuild); Connect("clean", MainWindow.Instance.cmdClean); Connect("cancel", MainWindow.Instance.cmdCancelBuild); var widget = new Gtk.ModelButton(builder.GetObject("button_debug").Handle); widget.Active = MainWindow.Instance.cmdDebugMode.Checked; widget.Clicked += (e, sender) => { var newstate = !PipelineSettings.Default.DebugMode; widget.Active = newstate; PipelineSettings.Default.DebugMode = newstate; }; _accelGroup = new Gtk.AccelGroup(); Connect(MainWindow.Instance.cmdNew, Gdk.Key.N, Gdk.ModifierType.ControlMask); Connect(MainWindow.Instance.cmdOpen, Gdk.Key.O, Gdk.ModifierType.ControlMask); Connect(MainWindow.Instance.cmdSave, Gdk.Key.S, Gdk.ModifierType.ControlMask); Connect(MainWindow.Instance.cmdExit, Gdk.Key.Q, Gdk.ModifierType.ControlMask); Connect(MainWindow.Instance.cmdUndo, Gdk.Key.Z, Gdk.ModifierType.ControlMask); Connect(MainWindow.Instance.cmdRedo, Gdk.Key.Y, Gdk.ModifierType.ControlMask); Connect(MainWindow.Instance.cmdBuild, Gdk.Key.F6); Connect(MainWindow.Instance.cmdHelp, Gdk.Key.F1); h.Control.AddAccelGroup(_accelGroup); _popovermenu1 = new Gtk.Widget(builder.GetObject("popovermenu1").Handle); _popovermenu2 = new Gtk.Widget(builder.GetObject("popovermenu2").Handle); h.Control.Titlebar = headerBar; headerBar.ShowCloseButton = true; _buttonbox = new Gtk.Widget(builder.GetObject("build_buttonbox").Handle); _cancelbox = new Gtk.Widget(builder.GetObject("cancel_button").Handle); _separator = new Gtk.Widget(builder.GetObject("separator1").Handle); MainWindow.Instance.cmdBuild.EnabledChanged += (sender, e) => ReloadBuildbox(); MainWindow.Instance.cmdCancelBuild.EnabledChanged += (sender, e) => ReloadBuildbox(); MainWindow.Instance.TitleChanged += delegate { var title = MainWindow.TitleBase; var subtitle = ""; if (PipelineController.Instance.ProjectOpen) { title = (PipelineController.Instance.ProjectDirty) ? "*" : ""; title += Path.GetFileName(PipelineController.Instance.ProjectItem.OriginalPath); subtitle = Path.GetDirectoryName(PipelineController.Instance.ProjectItem.OriginalPath); } h.Control.Title = title; headerBar.Subtitle = subtitle; }; var treeview1 = new Gtk.TreeView(builder.GetObject("treeview1").Handle); var store = new Gtk.TreeStore(typeof(string), typeof(string)); var column = new Gtk.TreeViewColumn(); var textCell = new Gtk.CellRendererText(); var dataCell = new Gtk.CellRendererText(); dataCell.Visible = false; column.PackStart(textCell, false); column.PackStart(dataCell, false); treeview1.AppendColumn(column); column.AddAttribute(textCell, "markup", 0); column.AddAttribute(dataCell, "text", 1); treeview1.Model = store; MainWindow.Instance.RecentChanged += (sender, e) => { store.Clear(); var recentList = sender as List <string>; foreach (var project in recentList) { store.InsertWithValues(0, "<b>" + Path.GetFileName(project) + "</b>\n" + Path.GetDirectoryName(project), project); } }; treeview1.RowActivated += (o, args) => { _popovermenu2.Hide(); Gtk.TreeIter iter; if (!store.GetIter(out iter, args.Path)) { return; } var project = store.GetValue(iter, 1).ToString(); PipelineController.Instance.OpenProject(project); }; headerBar.Show(); }); Style.Add <ButtonHandler>("Destuctive", h => h.Control.StyleContext.AddClass("destructive-action")); Style.Add <LabelHandler>("Wrap", h => h.Control.MaxWidthChars = 55); Style.Add <ToolBarHandler>("ToolBar", h => { h.Control.ToolbarStyle = Gtk.ToolbarStyle.Icons; h.Control.IconSize = Gtk.IconSize.SmallToolbar; }); Style.Add <DrawableHandler>("Stretch", h => { var parent = h.Control.Parent.Parent.Parent.Parent.Parent.Parent; parent.SizeAllocated += delegate { var al = h.Control.Allocation; al.Width = parent.AllocatedWidth - 2; h.Control.SetAllocation(al); }; }); Style.Add <PixelLayoutHandler>("Stretch", h => { var parent = h.Control.Parent.Parent.Parent.Parent.Parent; parent.SizeAllocated += delegate { var al = h.Control.Allocation; al.Width = parent.AllocatedWidth; h.Control.SetAllocation(al); }; }); }
public GroupChatView(GroupChatModel groupChat) : base(groupChat) { Trace.Call(groupChat); _GroupChatModel = groupChat; // person list _OutputHPaned = new Gtk.HPaned(); Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow(); _PersonScrolledWindow = sw; //sw.WidthRequest = 150; sw.HscrollbarPolicy = Gtk.PolicyType.Never; Gtk.TreeView tv = new Gtk.TreeView(); _PersonTreeView = tv; //tv.CanFocus = false; tv.BorderWidth = 0; tv.Selection.Mode = Gtk.SelectionMode.Multiple; sw.Add(tv); Gtk.TreeViewColumn column; Gtk.CellRendererText cellr = new Gtk.CellRendererText(); cellr.WidthChars = 12; column = new Gtk.TreeViewColumn(String.Empty, cellr); column.SortColumnId = 0; column.Spacing = 0; column.SortIndicator = false; column.Sizing = Gtk.TreeViewColumnSizing.Autosize; column.SetCellDataFunc(cellr, new Gtk.TreeCellDataFunc(RenderPersonIdentityName)); tv.AppendColumn(column); _IdentityNameColumn = column; Gtk.ListStore liststore = new Gtk.ListStore(typeof(PersonModel)); liststore.SetSortColumnId(0, Gtk.SortType.Ascending); liststore.SetSortFunc(0, new Gtk.TreeIterCompareFunc(SortPersonListStore)); _PersonListStore = liststore; tv.Model = liststore; tv.RowActivated += new Gtk.RowActivatedHandler(OnPersonsRowActivated); tv.FocusOutEvent += OnPersonTreeViewFocusOutEvent; // popup menu _PersonMenu = new Gtk.Menu(); // don't loose the focus else we lose the selection too! // see OnPersonTreeViewFocusOutEvent() _PersonMenu.TakeFocus = false; _PersonMenu.Shown += OnPersonMenuShown; _PersonTreeView.ButtonPressEvent += _OnPersonTreeViewButtonPressEvent; _PersonTreeView.KeyPressEvent += OnPersonTreeViewKeyPressEvent; // frame needed for events when selecting something in the treeview _PersonTreeViewFrame = new Gtk.Frame(); _PersonTreeViewFrame.ButtonReleaseEvent += new Gtk.ButtonReleaseEventHandler(_OnUserListButtonReleaseEvent); _PersonTreeViewFrame.Add(sw); // topic // don't worry, ApplyConfig() will add us to the OutputVBox! _OutputVBox = new Gtk.VBox(); _TopicTextView = new MessageTextView(); _TopicTextView.Editable = false; _TopicTextView.WrapMode = Gtk.WrapMode.WordChar; _TopicScrolledWindow = new Gtk.ScrolledWindow(); _TopicScrolledWindow.ShadowType = Gtk.ShadowType.In; // when using PolicyType.Never, it will try to grow but never shrinks! _TopicScrolledWindow.HscrollbarPolicy = Gtk.PolicyType.Automatic; _TopicScrolledWindow.VscrollbarPolicy = Gtk.PolicyType.Automatic; _TopicScrolledWindow.Add(_TopicTextView); // make sure the topic is invisible and remains by default and // visible when a topic gets set _TopicScrolledWindow.ShowAll(); _TopicScrolledWindow.Visible = false; _TopicScrolledWindow.NoShowAll = true; Add(_OutputHPaned); //ApplyConfig(Frontend.UserConfig); ShowAll(); }
public BugzillaPreferences () : base (false, 12) { last_opened_dir = Environment.GetEnvironmentVariable ("HOME"); Gtk.Label l = new Gtk.Label (Catalog.GetString ( "You can use any bugzilla just by dragging links " + "into notes. If you want a special icon for " + "certain hosts, add them here.")); l.Wrap = true; l.Xalign = 0; PackStart (l, false, false, 0); icon_store = CreateIconStore (); icon_tree = new Gtk.TreeView (icon_store); icon_tree.HeadersVisible = true; icon_tree.Selection.Mode = Gtk.SelectionMode.Single; icon_tree.Selection.Changed += SelectionChanged; Gtk.CellRenderer renderer; Gtk.TreeViewColumn host_col = new Gtk.TreeViewColumn (); host_col.Title = Catalog.GetString ("Host Name"); host_col.Sizing = Gtk.TreeViewColumnSizing.Autosize; host_col.Resizable = true; host_col.Expand = true; host_col.MinWidth = 200; renderer = new Gtk.CellRendererText (); host_col.PackStart (renderer, true); host_col.AddAttribute (renderer, "text", 1 /* host name */); host_col.SortColumnId = 1; /* host name */ host_col.SortIndicator = false; host_col.Reorderable = false; host_col.SortOrder = Gtk.SortType.Ascending; icon_tree.AppendColumn (host_col); Gtk.TreeViewColumn icon_col = new Gtk.TreeViewColumn (); icon_col.Title = Catalog.GetString ("Icon"); icon_col.Sizing = Gtk.TreeViewColumnSizing.Fixed; icon_col.MaxWidth = 50; icon_col.MinWidth = 50; icon_col.Resizable = false; renderer = new Gtk.CellRendererPixbuf (); icon_col.PackStart (renderer, false); icon_col.AddAttribute (renderer, "pixbuf", 0 /* icon */); icon_tree.AppendColumn (icon_col); Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow (); sw.ShadowType = Gtk.ShadowType.In; sw.HeightRequest = 200; sw.WidthRequest = 300; sw.SetPolicy (Gtk.PolicyType.Automatic, Gtk.PolicyType.Automatic); sw.Add (icon_tree); PackStart (sw, true, true, 0); add_button = new Gtk.Button (Gtk.Stock.Add); add_button.Clicked += AddClicked; remove_button = new Gtk.Button (Gtk.Stock.Remove); remove_button.Sensitive = false; remove_button.Clicked += RemoveClicked; Gtk.HButtonBox hbutton_box = new Gtk.HButtonBox (); hbutton_box.Layout = Gtk.ButtonBoxStyle.Start; hbutton_box.Spacing = 6; hbutton_box.PackStart (add_button); hbutton_box.PackStart (remove_button); PackStart (hbutton_box, false, false, 0); ShowAll (); }
public BlogPreferences() : base(false, 12) { this.doc = Utils.OpenXmlfile(); Gtk.Label l = new Gtk.Label (Catalog.GetString ( "If your blog supports the Atom Publishing Protocol " + "(APP), you can add it here, and you'll then be able " + "to post notes directly from Tomboy to your blog. " + "You need the URL to either your service document, " + "or your collection document.")); l.Wrap = true; l.Xalign = 0; PackStart (l, false, false, 0); blog_store = CreateBlogStore (); blog_tree = new Gtk.TreeView (blog_store); blog_tree.HeadersVisible = true; blog_tree.Selection.Mode = Gtk.SelectionMode.Single; blog_tree.Selection.Changed += SelectionChanged; Gtk.CellRenderer renderer; Gtk.TreeViewColumn label_col = new Gtk.TreeViewColumn (); label_col.Title = Catalog.GetString ("Label"); label_col.Sizing = Gtk.TreeViewColumnSizing.Autosize; label_col.Resizable = true; label_col.Expand = true; renderer = new Gtk.CellRendererText (); label_col.PackStart (renderer, true); label_col.AddAttribute (renderer, "text", 0 /* label */); label_col.SortColumnId = 1; /* label */ label_col.SortIndicator = false; label_col.Reorderable = false; label_col.SortOrder = Gtk.SortType.Ascending; blog_tree.AppendColumn (label_col); Gtk.TreeViewColumn url_col = new Gtk.TreeViewColumn (); url_col.Title = Catalog.GetString ("Location"); url_col.Sizing = Gtk.TreeViewColumnSizing.Fixed; url_col.Resizable = true; renderer = new Gtk.CellRendererText (); url_col.PackStart (renderer, false); url_col.AddAttribute (renderer, "text", 1 /* url */); blog_tree.AppendColumn (url_col); Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow (); sw.ShadowType = Gtk.ShadowType.In; sw.HeightRequest = 200; sw.WidthRequest = 300; sw.SetPolicy (Gtk.PolicyType.Automatic, Gtk.PolicyType.Automatic); sw.Add (blog_tree); PackStart (sw, true, true, 0); add_button = new Gtk.Button (Gtk.Stock.Add); add_button.Clicked += AddClicked; remove_button = new Gtk.Button (Gtk.Stock.Remove); remove_button.Sensitive = false; remove_button.Clicked += RemoveClicked; edit_button = new Gtk.Button (Gtk.Stock.Edit); edit_button.Sensitive = false; edit_button.Clicked += EditClicked; Gtk.HButtonBox hbutton_box = new Gtk.HButtonBox (); hbutton_box.Layout = Gtk.ButtonBoxStyle.Start; hbutton_box.Spacing = 6; hbutton_box.PackStart (add_button); hbutton_box.PackStart (remove_button); hbutton_box.PackStart (edit_button); PackStart (hbutton_box, false, false, 0); XmlText draft_state; draft_state = (XmlText) this.doc.SelectSingleNode ("preferences/settings/draft/text()"); if (draft_state == null) { XmlNode node = this.doc.DocumentElement; Console.Write ("aa"); if (node.SelectNodes("settings").Count == 0) { XmlElement childelement = this.doc.CreateElement ("settings"); node.AppendChild (childelement); } node = node.SelectSingleNode ("settings"); if (node.SelectNodes("draft").Count == 0) { XmlElement child_element = this.doc.CreateElement ("draft"); node.AppendChild (child_element); } XmlText text = this.doc.CreateTextNode ("yes"); node.SelectSingleNode ("draft").AppendChild (text); draft_state = (XmlText) this.doc.SelectSingleNode ("preferences/settings/draft/text()"); } bool draftbool = (draft_state.Value == "yes" ? true : false); Gtk.CheckButton button = new Gtk.CheckButton ("Create posts as drafts"); button.Active = draftbool; button.Clicked += DraftChanged; PackStart (button, false, false, 0); ShowAll (); }
public void CreateGui() { Gtk.Image icn_reload=new Gtk.Image(Gtk.Stock.Refresh,Gtk.IconSize.Button); _reload=new Gtk.Button(icn_reload); _reload.Clicked+=OnReload; _performer=new Gtk.Entry(200); _title=new Gtk.Entry(200); _title.WidthChars=60; _performer.WidthChars=60; _subtitle=new Gtk.Entry(300); _subtitle.WidthChars=60; _composer=new Gtk.Entry(200); _composer.WidthChars=60; _year=new Gtk.Entry(20); _year.WidthChars=20; _image=new Gtk.Image(); _image.SetSizeRequest (100,100); _imagefile=new Gtk.FileChooserButton("Choose image file",Gtk.FileChooserAction.Open); _imagefile.FileSet+=new EventHandler(EvtImageSet); Gtk.Image icn_add_track=new Gtk.Image(Gtk.Stock.Add,Gtk.IconSize.Button); _add_track=new Gtk.Button(icn_add_track); _add_track.Clicked+=OnAddTrack; Gtk.Image icn_del_track=new Gtk.Image(Gtk.Stock.Delete,Gtk.IconSize.Button); _del_track=new Gtk.Button(icn_del_track); _del_track.Clicked+=OnDelTrack; Gtk.Image icn_save=new Gtk.Image(Gtk.Stock.Save,Gtk.IconSize.Button); _save=new Gtk.Button(icn_save); _save.Clicked+=OnSave; _store=new Gtk.ListStore(typeof(int),typeof(string),typeof(string),typeof(string),typeof(string),typeof(string)); _tracks=new Gtk.TreeView(); { Gtk.CellRendererText cr0=new Gtk.CellRendererText(); cr0.Scale=0.8; _tracks.AppendColumn ("Nr.", cr0, "text", 0); Gtk.CellRendererText cr_title=new Gtk.CellRendererText(); cr_title.Scale=0.8; cr_title.Editable=true; cr_title.Edited+=new Gtk.EditedHandler(delegate(object sender,Gtk.EditedArgs args) { setCell(1,args.NewText,new Gtk.TreePath(args.Path)); }); _tracks.AppendColumn ("Title", cr_title, "text", 1); Gtk.CellRendererText cr_artist=new Gtk.CellRendererText(); cr_artist.Editable=true; cr_artist.Scale=0.8; cr_artist.Edited+=new Gtk.EditedHandler(delegate(object sender,Gtk.EditedArgs args) { setCell(2,args.NewText,new Gtk.TreePath(args.Path)); }); _tracks.AppendColumn ("Artist", cr_artist, "text", 2); Gtk.CellRendererText cr_composer=new Gtk.CellRendererText(); cr_composer.Editable=true; cr_composer.Scale=0.8; cr_composer.Edited+=new Gtk.EditedHandler(delegate(object sender,Gtk.EditedArgs args) { setCell(3,args.NewText,new Gtk.TreePath(args.Path)); }); _tracks.AppendColumn ("Composer", cr_composer, "text", 3); Gtk.CellRendererText cr_piece=new Gtk.CellRendererText(); cr_piece.Editable=true; cr_piece.Scale=0.8; cr_piece.Edited+=new Gtk.EditedHandler(delegate(object sender,Gtk.EditedArgs args) { setCell(4,args.NewText,new Gtk.TreePath(args.Path)); }); _tracks.AppendColumn ("Piece", cr_piece, "text", 4); Gtk.CellRendererText cr_time=new Gtk.CellRendererText(); cr_time.Editable=true; cr_time.Scale=0.8; cr_time.Edited+=new Gtk.EditedHandler(delegate(object sender,Gtk.EditedArgs args) { setCell (5,args.NewText,new Gtk.TreePath(args.Path)); }); _tracks.AppendColumn ("Offset", cr_time, "text", 5); } _tracks.Model = _store; Gtk.Table tbl=new Gtk.Table(2,5,false); tbl.Attach (new Gtk.Label("Album:"),0,1,0,1); tbl.Attach (_title,1,2,0,1); tbl.Attach (new Gtk.Label("Artist:"),0,1,1,2); tbl.Attach (_performer,1,2,1,2); tbl.Attach (new Gtk.Label("Composer:"),0,1,2,3); tbl.Attach (_composer,1,2,2,3); tbl.Attach (new Gtk.Label("Subtitle:"),0,1,3,4); tbl.Attach (_subtitle,1,2,3,4); tbl.Attach (new Gtk.Label("year:"),0,1,4,5); tbl.Attach (_year,1,2,4,5); Gtk.Frame frm=new Gtk.Frame(); frm.Add (tbl); Gtk.HBox hb2=new Gtk.HBox(); hb2.PackEnd (_reload,false,false,1); hb2.PackEnd (_del_track,false,false,1); hb2.PackEnd (_add_track,false,false,1); hb2.PackEnd (_save,false,false,1); Gtk.HBox hb=new Gtk.HBox(); Gtk.VBox vb1=new Gtk.VBox(); vb1.PackStart (frm,false,false,0); vb1.PackStart (hb2,true,true,0); hb.PackStart (vb1,false,false,0); Gtk.Frame frm2=new Gtk.Frame(); frm2.Add (_image); Gtk.VBox vbi=new Gtk.VBox(); Gtk.HBox bb=new Gtk.HBox(); bb.PackStart(new Gtk.VBox(),true,true,0); bb.PackStart(frm2,false,false,0); bb.PackEnd (new Gtk.VBox(),true,true,0); vbi.PackStart (bb,true,true,2); vbi.PackEnd (_imagefile,false,false,2); hb.PackEnd (vbi,true,true,2); Gtk.ScrolledWindow scroll=new Gtk.ScrolledWindow(); scroll.Add (_tracks); scroll.SetSizeRequest (800,300); base.VBox.PackStart(hb,false,false,4); base.VBox.PackStart(scroll,true,true,0); base.VBox.ShowAll (); base.AddButton ("Close",0); }
public GroupChatView(GroupChatModel groupChat) : base(groupChat) { Trace.Call(groupChat); _GroupChatModel = groupChat; // person list _OutputHPaned = new Gtk.HPaned(); Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow(); _PersonScrolledWindow = sw; //sw.WidthRequest = 150; sw.HscrollbarPolicy = Gtk.PolicyType.Never; Gtk.TreeView tv = new Gtk.TreeView(); _PersonTreeView = tv; //tv.CanFocus = false; tv.BorderWidth = 0; tv.Selection.Mode = Gtk.SelectionMode.Multiple; sw.Add(tv); Gtk.TreeViewColumn column; Gtk.CellRendererText cellr = new Gtk.CellRendererText(); cellr.WidthChars = 12; column = new Gtk.TreeViewColumn(String.Empty, cellr); column.SortColumnId = 0; column.Spacing = 0; column.SortIndicator = false; column.Sizing = Gtk.TreeViewColumnSizing.Autosize; column.SetCellDataFunc(cellr, new Gtk.TreeCellDataFunc(RenderPersonIdentityName)); tv.AppendColumn(column); _IdentityNameColumn = column; Gtk.ListStore liststore = new Gtk.ListStore(typeof(PersonModel)); liststore.SetSortColumnId(0, Gtk.SortType.Ascending); liststore.SetSortFunc(0, new Gtk.TreeIterCompareFunc(SortPersonListStore)); _PersonListStore = liststore; tv.Model = liststore; tv.RowActivated += new Gtk.RowActivatedHandler(OnPersonsRowActivated); tv.FocusOutEvent += OnPersonTreeViewFocusOutEvent; // popup menu _PersonMenu = new Gtk.Menu(); // don't loose the focus else we lose the selection too! // see OnPersonTreeViewFocusOutEvent() _PersonMenu.TakeFocus = false; _PersonMenu.Shown += OnPersonMenuShown; _PersonTreeView.ButtonPressEvent += _OnPersonTreeViewButtonPressEvent; _PersonTreeView.KeyPressEvent += OnPersonTreeViewKeyPressEvent; // frame needed for events when selecting something in the treeview _PersonTreeViewFrame = new Gtk.Frame(); _PersonTreeViewFrame.ButtonReleaseEvent += new Gtk.ButtonReleaseEventHandler(_OnUserListButtonReleaseEvent); _PersonTreeViewFrame.Add(sw); // topic // don't worry, ApplyConfig() will add us to the OutputVBox! _OutputVBox = new Gtk.VBox(); _TopicTextView = new MessageTextView(); _TopicTextView.Editable = false; _TopicTextView.WrapMode = Gtk.WrapMode.WordChar; _TopicScrolledWindow = new Gtk.ScrolledWindow(); _TopicScrolledWindow.ShadowType = Gtk.ShadowType.In; // when using PolicyType.Never, it will try to grow but never shrinks! _TopicScrolledWindow.HscrollbarPolicy = Gtk.PolicyType.Automatic; _TopicScrolledWindow.VscrollbarPolicy = Gtk.PolicyType.Automatic; _TopicScrolledWindow.Add(_TopicTextView); // make sure the topic is invisible and remains by default and // visible when a topic gets set _TopicScrolledWindow.ShowAll(); _TopicScrolledWindow.Visible = false; _TopicScrolledWindow.NoShowAll = true; _TopicScrolledWindow.SizeRequested += delegate(object o, Gtk.SizeRequestedArgs args) { // predict and set useful topic heigth Pango.Layout layout = _TopicTextView.CreatePangoLayout("Test Topic"); int lineWidth, lineHeigth; layout.GetPixelSize(out lineWidth, out lineHeigth); var lineSpacing = _TopicTextView.PixelsAboveLines + _TopicTextView.PixelsBelowLines; var text = Topic != null ? Topic.ToString() : String.Empty; // hardcoded to 2 lines for now var newLines = text.Length > 0 ? 2 : 0; var bestSize = new Gtk.Requisition() { Height = ((lineHeigth + lineSpacing) * newLines) + 2 }; args.Requisition = bestSize; }; Add(_OutputHPaned); //ApplyConfig(Frontend.UserConfig); ShowAll(); }
public ObservableGamesWidget(GameObservationManager observer) { obManager = observer; iters = new TreeIter[3, 4]; gamesView = new TreeView (); infoLabel = new Label (); infoLabel.Xalign = 0; infoLabel.Xpad = 4; observer.ObservableGameEvent += OnObservableGameEvent; store = new TreeStore (typeof (string), // used for filtering typeof (int), // gameid typeof (string), // markup typeof (string), // typeof (string)); gamesView.HeadersVisible = true; gamesView.HeadersClickable = true; gamesView.AppendColumn (Catalog. GetString ("Games"), new CellRendererText (), "markup", 2); gamesView.AppendColumn (Catalog. GetString ("Time"), new CellRendererText (), "markup", 3); gamesView.AppendColumn (Catalog. GetString ("Category"), new CellRendererText (), "markup", 4); ScrolledWindow win = new ScrolledWindow (); win.HscrollbarPolicy = win.VscrollbarPolicy = PolicyType.Automatic; win.Add (gamesView); UpdateInfoLabel (); filterEntry = new Entry (); filterEntry.Changed += OnFilter; filter = new TreeModelFilter (store, null); filter.VisibleFunc = FilterFunc; gamesView.Model = filter; AddParentIters (); infoLabel.UseMarkup = true; Button refreshButton = new Button (Stock.Refresh); refreshButton.Clicked += delegate (object o, EventArgs args) { Clear (); obManager.GetGames (); }; Alignment align = new Alignment (0, 1, 0, 0); align.Add (refreshButton); HBox hbox = new HBox (); hbox.PackStart (infoLabel, true, true, 4); hbox.PackStart (align, false, false, 4); PackStart (hbox, false, true, 4); Label tipLabel = new Label (); tipLabel.Xalign = 0; tipLabel.Xpad = 4; tipLabel.Markup = String. Format ("<small><i>{0}</i></small>", Catalog. GetString ("Press the refresh button to get an updated list of games.\nDouble click on a game to observe it.")); PackStart (tipLabel, false, true, 4); PackStart (filterEntry, false, true, 4); PackStart (win, true, true, 4); gamesView.RowActivated += OnRowActivated; SetSizeRequest (600, 400); ShowAll (); }
public virtual void Initialize(string label, string icon, NodeBuilder[] builders, TreePadOption[] options) { // Create default options this.options = options; globalOptions = new TreeOptions (); foreach (TreePadOption op in options) globalOptions [op.Id] = op.DefaultValue; globalOptions.Pad = this; // Check that there is only one node builder per type Hashtable bc = new Hashtable (); foreach (NodeBuilder nb in builders) { TypeNodeBuilder tnb = nb as TypeNodeBuilder; if (tnb != null) { TypeNodeBuilder other = (TypeNodeBuilder) bc [tnb.NodeDataType]; if (other != null) throw new ApplicationException (string.Format ("The type node builder {0} can't be used in this context because the type {1} is already handled by {2}", nb.GetType(), tnb.NodeDataType, other.GetType())); bc [tnb.NodeDataType] = tnb; } else if (!(nb is NodeBuilderExtension)) throw new InvalidOperationException (string.Format ("Invalid NodeBuilder type: {0}. NodeBuilders must inherit either from TypeNodeBuilder or NodeBuilderExtension", nb.GetType())); } NodeBuilders = builders; Title = label; Icon = icon; builderContext = new TreeBuilderContext (this); tree = new Gtk.TreeView (); /* 0 -- Text 1 -- Icon (Open) 2 -- Icon (Closed) 3 -- Node Data 4 -- Builder chain 5 -- Pango weight 6 -- Expanded */ store = new Gtk.TreeStore (typeof (string), typeof (Gdk.Pixbuf), typeof (Gdk.Pixbuf), typeof (object), typeof (object), typeof(int), typeof(bool)); tree.Model = store; tree.EnableModelDragDest (target_table, Gdk.DragAction.Copy | Gdk.DragAction.Move); Gtk.Drag.SourceSet (tree, Gdk.ModifierType.Button1Mask, target_table, Gdk.DragAction.Copy | Gdk.DragAction.Move); store.DefaultSortFunc = new Gtk.TreeIterCompareFunc (CompareNodes); store.SetSortColumnId (/* GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID */ -1, Gtk.SortType.Ascending); tree.HeadersVisible = false; tree.SearchColumn = 0; tree.EnableSearch = true; complete_column = new Gtk.TreeViewColumn (); complete_column.Title = "column"; Gtk.CellRendererPixbuf pix_render = new Gtk.CellRendererPixbuf (); complete_column.PackStart (pix_render, false); complete_column.AddAttribute (pix_render, "pixbuf", OpenIconColumn); complete_column.AddAttribute (pix_render, "pixbuf-expander-open", OpenIconColumn); complete_column.AddAttribute (pix_render, "pixbuf-expander-closed", ClosedIconColumn); text_render = new Gtk.CellRendererText (); text_render.Edited += new Gtk.EditedHandler (HandleOnEdit); complete_column.PackStart (text_render, true); complete_column.AddAttribute (text_render, "text", TextColumn); complete_column.AddAttribute (text_render, "weight", WeightColumn); tree.AppendColumn (complete_column); Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow (); sw.Add(tree); contentPanel = new Gtk.Frame (); contentPanel.Add(sw); tree.TestExpandRow += new Gtk.TestExpandRowHandler (OnTestExpandRow); tree.RowActivated += new Gtk.RowActivatedHandler(OnNodeActivated); contentPanel.ButtonReleaseEvent += new Gtk.ButtonReleaseEventHandler(OnButtonRelease); contentPanel.PopupMenu += new Gtk.PopupMenuHandler (OnPopupMenu); foreach (NodeBuilder nb in builders) nb.SetContext (builderContext); workNode = new TreeNodeNavigator (this); compareNode1 = new TreeNodeNavigator (this); compareNode2 = new TreeNodeNavigator (this); tree.DragBegin += new Gtk.DragBeginHandler (OnDragBegin); tree.DragDataReceived += new Gtk.DragDataReceivedHandler (OnDragDataReceived); tree.DragDrop += new Gtk.DragDropHandler (OnDragDrop); tree.DragEnd += new Gtk.DragEndHandler (OnDragEnd); tree.DragMotion += new Gtk.DragMotionHandler (OnDragMotion); tree.CursorChanged += new EventHandler (OnSelectionChanged); contentPanel.ShowAll (); }
public void CreateGui() { Gtk.Image icn_reload = new Gtk.Image(Gtk.Stock.Refresh, Gtk.IconSize.Button); _reload = new Gtk.Button(icn_reload); _reload.Clicked += OnReload; _performer = new Gtk.Entry(200); _title = new Gtk.Entry(200); _title.WidthChars = 60; _performer.WidthChars = 60; _subtitle = new Gtk.Entry(300); _subtitle.WidthChars = 60; _composer = new Gtk.Entry(200); _composer.WidthChars = 60; _year = new Gtk.Entry(20); _year.WidthChars = 20; _image = new Gtk.Image(); _image.SetSizeRequest(100, 100); _imagefile = new Gtk.FileChooserButton("Choose image file", Gtk.FileChooserAction.Open); _imagefile.FileSet += new EventHandler(EvtImageSet); Gtk.Image icn_add_track = new Gtk.Image(Gtk.Stock.Add, Gtk.IconSize.Button); _add_track = new Gtk.Button(icn_add_track); _add_track.Clicked += OnAddTrack; Gtk.Image icn_del_track = new Gtk.Image(Gtk.Stock.Delete, Gtk.IconSize.Button); _del_track = new Gtk.Button(icn_del_track); _del_track.Clicked += OnDelTrack; Gtk.Image icn_save = new Gtk.Image(Gtk.Stock.Save, Gtk.IconSize.Button); _save = new Gtk.Button(icn_save); _save.Clicked += OnSave; _store = new Gtk.ListStore(typeof(int), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string)); _tracks = new Gtk.TreeView(); { Gtk.CellRendererText cr0 = new Gtk.CellRendererText(); cr0.Scale = 0.8; _tracks.AppendColumn("Nr.", cr0, "text", 0); Gtk.CellRendererText cr_title = new Gtk.CellRendererText(); cr_title.Scale = 0.8; cr_title.Editable = true; cr_title.Edited += new Gtk.EditedHandler(delegate(object sender, Gtk.EditedArgs args) { setCell(1, args.NewText, new Gtk.TreePath(args.Path)); }); _tracks.AppendColumn("Title", cr_title, "text", 1); Gtk.CellRendererText cr_artist = new Gtk.CellRendererText(); cr_artist.Editable = true; cr_artist.Scale = 0.8; cr_artist.Edited += new Gtk.EditedHandler(delegate(object sender, Gtk.EditedArgs args) { setCell(2, args.NewText, new Gtk.TreePath(args.Path)); }); _tracks.AppendColumn("Artist", cr_artist, "text", 2); Gtk.CellRendererText cr_composer = new Gtk.CellRendererText(); cr_composer.Editable = true; cr_composer.Scale = 0.8; cr_composer.Edited += new Gtk.EditedHandler(delegate(object sender, Gtk.EditedArgs args) { setCell(3, args.NewText, new Gtk.TreePath(args.Path)); }); _tracks.AppendColumn("Composer", cr_composer, "text", 3); Gtk.CellRendererText cr_piece = new Gtk.CellRendererText(); cr_piece.Editable = true; cr_piece.Scale = 0.8; cr_piece.Edited += new Gtk.EditedHandler(delegate(object sender, Gtk.EditedArgs args) { setCell(4, args.NewText, new Gtk.TreePath(args.Path)); }); _tracks.AppendColumn("Piece", cr_piece, "text", 4); Gtk.CellRendererText cr_time = new Gtk.CellRendererText(); cr_time.Editable = true; cr_time.Scale = 0.8; cr_time.Edited += new Gtk.EditedHandler(delegate(object sender, Gtk.EditedArgs args) { setCell(5, args.NewText, new Gtk.TreePath(args.Path)); }); _tracks.AppendColumn("Offset", cr_time, "text", 5); } _tracks.Model = _store; Gtk.Table tbl = new Gtk.Table(2, 5, false); tbl.Attach(new Gtk.Label("Album:"), 0, 1, 0, 1); tbl.Attach(_title, 1, 2, 0, 1); tbl.Attach(new Gtk.Label("Artist:"), 0, 1, 1, 2); tbl.Attach(_performer, 1, 2, 1, 2); tbl.Attach(new Gtk.Label("Composer:"), 0, 1, 2, 3); tbl.Attach(_composer, 1, 2, 2, 3); tbl.Attach(new Gtk.Label("Subtitle:"), 0, 1, 3, 4); tbl.Attach(_subtitle, 1, 2, 3, 4); tbl.Attach(new Gtk.Label("year:"), 0, 1, 4, 5); tbl.Attach(_year, 1, 2, 4, 5); Gtk.Frame frm = new Gtk.Frame(); frm.Add(tbl); Gtk.HBox hb2 = new Gtk.HBox(); hb2.PackEnd(_reload, false, false, 1); hb2.PackEnd(_del_track, false, false, 1); hb2.PackEnd(_add_track, false, false, 1); hb2.PackEnd(_save, false, false, 1); Gtk.HBox hb = new Gtk.HBox(); Gtk.VBox vb1 = new Gtk.VBox(); vb1.PackStart(frm, false, false, 0); vb1.PackStart(hb2, true, true, 0); hb.PackStart(vb1, false, false, 0); Gtk.Frame frm2 = new Gtk.Frame(); frm2.Add(_image); Gtk.VBox vbi = new Gtk.VBox(); Gtk.HBox bb = new Gtk.HBox(); bb.PackStart(new Gtk.VBox(), true, true, 0); bb.PackStart(frm2, false, false, 0); bb.PackEnd(new Gtk.VBox(), true, true, 0); vbi.PackStart(bb, true, true, 2); vbi.PackEnd(_imagefile, false, false, 2); hb.PackEnd(vbi, true, true, 2); Gtk.ScrolledWindow scroll = new Gtk.ScrolledWindow(); scroll.Add(_tracks); scroll.SetSizeRequest(800, 300); base.VBox.PackStart(hb, false, false, 4); base.VBox.PackStart(scroll, true, true, 0); base.VBox.ShowAll(); base.AddButton("Close", 0); }
private Atk.Object GetAccessible(BasicWidgetType type, string text, object preWidget, bool real, bool embeddedImage) { Atk.Object accessible = null; Gtk.Widget widget = null; Gtk.Adjustment adj = new Gtk.Adjustment(50, 0, 100, 1, 10, 20); switch (type) { case BasicWidgetType.Label: widget = new Gtk.Label(); if (real) { widget = GailTestApp.MainClass.GiveMeARealLabel(); } ((Gtk.Label)widget).Text = text; break; case BasicWidgetType.NormalButton: widget = new Gtk.Button(); if (real) { widget = GailTestApp.MainClass.GiveMeARealButton(embeddedImage); } ((Gtk.Button)widget).Label = text; break; case BasicWidgetType.Window: widget = new Gtk.Window(text); if (real) { widget = GailTestApp.MainClass.GiveMeARealWindow(); } break; case BasicWidgetType.CheckBox: widget = new Gtk.CheckButton(); if (real) { widget = GailTestApp.MainClass.GiveMeARealCheckBox(embeddedImage); } ((Gtk.CheckButton)widget).Label = text; break; case BasicWidgetType.RadioButton: if (!real) { throw new NotSupportedException("We cannot use non-real radio buttons because of some wierd behaviour"); } widget = GailTestApp.MainClass.GiveMeARealRadioButton(embeddedImage); RunInGuiThread(delegate { ((Gtk.CheckButton)widget).Label = text; }); break; case BasicWidgetType.StatusBar: widget = new Gtk.Statusbar(); if (real) { widget = GailTestApp.MainClass.GiveMeARealStatusbar(); } ((Gtk.Statusbar)widget).Push(0, text); break; case BasicWidgetType.TextBoxEntry: if (!real) { throw new NotSupportedException(); } widget = GailTestApp.MainClass.GiveMeARealEntry(true); RunInGuiThread(delegate { ((Gtk.Entry)widget).Text = text; }); break; case BasicWidgetType.RichTextBox: case BasicWidgetType.TextBoxView: if (!real) { throw new NotSupportedException(); } widget = GailTestApp.MainClass.GiveMeARealTextView(); RunInGuiThread(delegate { ((Gtk.TextView)widget).Buffer.Text = text; }); break; case BasicWidgetType.PasswordCharTextBoxEntry: if (!real) { throw new NotSupportedException(); } widget = GailTestApp.MainClass.GiveMeARealEntry(false); RunInGuiThread(delegate { ((Gtk.Entry)widget).Text = text; }); break; case BasicWidgetType.HScrollBar: widget = new Gtk.HScrollbar(adj); if (real) { widget = GailTestApp.MainClass.GiveMeARealHScrollbar(); } break; case BasicWidgetType.VScrollBar: widget = new Gtk.VScrollbar(adj); if (real) { widget = GailTestApp.MainClass.GiveMeARealVScrollbar(); } break; case BasicWidgetType.ProgressBar: widget = new Gtk.ProgressBar(adj); if (real) { widget = GailTestApp.MainClass.GiveMeARealProgressBar(); } break; case BasicWidgetType.Spinner: widget = new Gtk.SpinButton(adj, 1, 2); if (real) { widget = GailTestApp.MainClass.GiveMeARealSpinButton(); } break; case BasicWidgetType.PictureBox: widget = new Gtk.Image(); if (real) { widget = GailTestApp.MainClass.GiveMeARealImage(embeddedImage); } break; case BasicWidgetType.ListView: case BasicWidgetType.TreeView: Gtk.TreeStore store = null; List <string> columnNames = new List <String> (); XmlDocument xml = new XmlDocument(); xml.LoadXml(text); foreach (XmlElement th in xml.GetElementsByTagName("th")) { foreach (XmlElement td in th.GetElementsByTagName("td")) { columnNames.Add(td.InnerText); } } if (columnNames.Count == 0) { columnNames.Add(string.Empty); } if (columnNames.Count == 1) { store = new Gtk.TreeStore(typeof(string)); } else if (columnNames.Count == 2) { store = new Gtk.TreeStore(typeof(string), typeof(string)); } else if (columnNames.Count == 3) { store = new Gtk.TreeStore(typeof(string), typeof(string), typeof(string)); } else { Assert.Fail("This test only supports 1-3 columns; got " + columnNames.Count); } Gtk.TreeIter[] iters = new Gtk.TreeIter [8]; XmlElement root = xml.DocumentElement; for (XmlNode node = root.FirstChild; node != null; node = node.NextSibling) { if (node.Name == "tr") { AddToTreeStore(store, iters, 0, node); } } widget = new Gtk.TreeView(store); if (real) { widget = GailTestApp.MainClass.GiveMeARealTreeView(); RunInGuiThread(delegate { ((Gtk.TreeView)widget).Model = store; }); } RunInGuiThread(delegate { Gtk.TreeView treeView = (Gtk.TreeView)widget; int i; for (i = treeView.Columns.Length - 1; i >= 0; i--) { treeView.RemoveColumn(treeView.Columns [i]); } i = 0; foreach (string columnName in columnNames) { Gtk.TreeViewColumn col = new Gtk.TreeViewColumn(); col.Title = columnName; treeView.AppendColumn(col); Gtk.CellRendererText cell = new Gtk.CellRendererText(); col.PackStart(cell, true); col.AddAttribute(cell, "text", i++); } ((Gtk.TreeView)widget).HeadersClickable = text.Contains("<th>"); ((Gtk.TreeView)widget).HeadersVisible = ((Gtk.TreeView)widget).HeadersClickable; }); break; case BasicWidgetType.ContainerPanel: widget = new Gtk.Frame(); if (real) { widget = GailTestApp.MainClass.GiveMeARealFrame(); } break; case BasicWidgetType.HSplitContainer: widget = new Gtk.HPaned(); if (real) { widget = GailTestApp.MainClass.GiveMeARealHPaned(); } break; case BasicWidgetType.VTrackBar: widget = new Gtk.VScale(adj); if (real) { widget = GailTestApp.MainClass.GiveMeARealVScale(); } break; case BasicWidgetType.ComboBoxDropDownEntry: case BasicWidgetType.ComboBoxDropDownList: case BasicWidgetType.ComboBoxSimple: throw new NotSupportedException("You have to use the GetObject overload that receives a name array"); default: throw new NotImplementedException("The widget finder backend still hasn't got support for " + type.ToString()); } accessible = widget.Accessible; mappings [accessible] = widget; return(accessible); }
public InsertTimestampPreferences () : base (false, 12) { // Get current values String dateFormat = (string) Preferences.Get ( Preferences.INSERT_TIMESTAMP_FORMAT); DateTime now = DateTime.Now; // Label Gtk.Label label = new Gtk.Label (Catalog.GetString ( "Choose one of the predefined formats " + "or use your own.")); label.Wrap = true; label.Xalign = 0; PackStart (label); // Use Selected Format selected_radio = new Gtk.RadioButton (Catalog.GetString ( "Use _Selected Format")); PackStart (selected_radio); // 1st column (visible): formatted date // 2nd column (not visible): date format store = new Gtk.ListStore (typeof (string), typeof (string)); foreach (String format in formats) store.AppendValues (now.ToString (format), format); scroll = new Gtk.ScrolledWindow(); scroll.ShadowType = Gtk.ShadowType.In; PackStart (scroll); tv = new Gtk.TreeView (store); tv.HeadersVisible = false; tv.AppendColumn ("Format", new Gtk.CellRendererText (), "text", 0); scroll.Add (tv); // Use Custom Format Gtk.HBox customBox = new Gtk.HBox (false, 12); PackStart (customBox); custom_radio = new Gtk.RadioButton ( selected_radio, Catalog.GetString ("_Use Custom Format")); customBox.PackStart (custom_radio); custom_entry = new Gtk.Entry (); customBox.PackStart (custom_entry); IPropertyEditor entryEditor = Services.Factory.CreatePropertyEditorEntry ( Preferences.INSERT_TIMESTAMP_FORMAT, custom_entry); entryEditor.Setup (); // Activate/deactivate widgets bool useCustom = true; Gtk.TreeIter iter; store.GetIterFirst (out iter); foreach (object[] row in store) { if (dateFormat.Equals (row[1])) { // Found format in list useCustom = false; break; } store.IterNext (ref iter); } if (useCustom) { custom_radio.Active = true; scroll.Sensitive = false; } else { selected_radio.Active = true; custom_entry.Sensitive = false; tv.Selection.SelectIter (iter); Gtk.TreePath path = store.GetPath (iter); tv.ScrollToCell (path, null, false, 0, 0); } // Register Toggled event for one radio button only selected_radio.Toggled += OnSelectedRadioToggled; tv.Selection.Changed += OnSelectionChanged; ShowAll (); }
protected MultipleObjectViewer(IBroadcaster hub, string caption) : base(false, 0) { _hub = hub; // --- first line: caption and buttons Gtk.HBox hbxFirstLine = new Gtk.HBox(false, 2); // Caption label Gtk.Alignment labelAlign = new Gtk.Alignment(0F, 0F, 1F, 1F); labelAlign.Add(new Gtk.Label(caption)); hbxFirstLine.PackStart(labelAlign, false, false, 0); hbxFirstLine.PackStart(new Gtk.Label(String.Empty), true, true, 0); // "Add" button Gtk.Image image = new Gtk.Image(); image.Stock = Gtk.Stock.Add; _btnAdd = new Gtk.Button(); _btnAdd.Add(image); _btnAdd.Relief = Gtk.ReliefStyle.None; _btnAdd.Clicked += new EventHandler(OnAddButtonClicked); _btnAdd.Sensitive = false; hbxFirstLine.PackStart(_btnAdd, false, false, 0); // "Edit" button image = new Gtk.Image(); image.Stock = Gtk.Stock.JumpTo; _btnEdit = new Gtk.Button(); _btnEdit.Add(image); _btnEdit.Relief = Gtk.ReliefStyle.None; _btnEdit.Clicked += new EventHandler(OnEditButtonClicked); _btnEdit.Sensitive = false; hbxFirstLine.PackStart(_btnEdit, false, false, 0); // "Delete" button image = new Gtk.Image(); image.Stock = Gtk.Stock.Remove; _btnDelete = new Gtk.Button(); _btnDelete.Add(image); _btnDelete.Relief = Gtk.ReliefStyle.None; _btnDelete.Clicked += new EventHandler(OnDeleteButtonClicked); _btnDelete.Sensitive = false; hbxFirstLine.PackStart(_btnDelete, false, false, 0); base.PackStart(hbxFirstLine, false, false, 0); // --- second line: element list _store = new Gtk.TreeStore(typeof(string)); _tvList = new Gtk.TreeView(); _tvList.HeadersVisible = false; _tvList.AppendColumn("", new Gtk.CellRendererText(), "text", 0); _tvList.Model = _store; _tvList.FocusInEvent += new Gtk.FocusInEventHandler(EnableButtons); _tvList.ButtonPressEvent += new Gtk.ButtonPressEventHandler(ListClickedHandler); Gtk.ScrolledWindow sw = new Gtk.ScrolledWindow(); sw.ShadowType = Gtk.ShadowType.In; sw.Add(_tvList); base.PackStart(sw, true, true, 0); sw.Show(); }