private void SetupTree() { tree = new TreeView (); this.store = new ListStore (typeof (object)); tree.Model = store; TreeViewColumn col = new TreeViewColumn (); col.Sizing = TreeViewColumnSizing.Fixed; col.Spacing = 4; CellRendererText text_renderer = new CellRendererText (); text_renderer.WrapMode = Pango.WrapMode.Word; col.PackStart (text_renderer, true); col.SetCellDataFunc (text_renderer, new TreeCellDataFunc (PluginInfoCellDataFunc)); CellRendererToggle loaded_renderer = new CellRendererToggle (); loaded_renderer.Activatable = false; col.PackStart (loaded_renderer, false); col.SetCellDataFunc (loaded_renderer, new TreeCellDataFunc (LoadedStatusCellDataFunc)); col.Title = Catalog.GetString("Plugins Details"); tree.AppendColumn (col); }
public CompleteWithTimerColumn() { TreeViewColumn = new TreeViewColumn { Title = Catalog.GetString ("Completed"), Sizing = TreeViewColumnSizing.Autosize, Resizable = false, Clickable = true }; var renderer = new CellRendererToggle (); renderer.Toggled += OnTaskToggled; TreeViewColumn.PackStart (renderer, false); TreeViewColumn.SetCellDataFunc (renderer, TaskToggleCellDataFunc); }
public TimerColumn() { timeoutTargets = new ConcurrentDictionary<ITask, TaskCompleteTimer> (); TreeViewColumn = new TreeViewColumn { Title = Catalog.GetString ("Timer"), Sizing = TreeViewColumnSizing.Fixed, FixedWidth = 20, Resizable = false }; var renderer = new CellRendererPixbuf { Xalign = 0.5f }; TreeViewColumn.PackStart (renderer, false); TreeViewColumn.SetCellDataFunc (renderer, TaskTimerCellDataFunc); }
private void PluginInfoCellDataFunc(TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) { CellRendererText r = (CellRendererText) cell; PluginInfo info = (PluginInfo) model.GetValue (iter, 0); r.Markup = String.Format ("<b>{0}</b>\n{1}", info.Plugin.Name, info.Plugin. Description); }
public CodeIssuePanelWidget(string mimeType) { this.mimeType = mimeType; // ReSharper disable once DoNotCallOverridableMethodsInConstructor Build(); // ensure selected row remains visible treeviewInspections.SizeAllocated += (o, args) => { TreeIter iter; if (treeviewInspections.Selection.GetSelected(out iter)) { var path = treeviewInspections.Model.GetPath(iter); treeviewInspections.ScrollToCell(path, treeviewInspections.Columns[0], false, 0f, 0f); } }; treeviewInspections.TooltipColumn = 3; treeviewInspections.HasTooltip = true; toggleRenderer.Toggled += OnTitleToggled; var titleCol = new TreeViewColumn(); treeviewInspections.AppendColumn(titleCol); titleCol.PackStart(toggleRenderer, false); titleCol.Sizing = TreeViewColumnSizing.Autosize; titleCol.SetCellDataFunc(toggleRenderer, TitleColDataFunc); var cellRendererText = new CellRendererText { Ellipsize = Pango.EllipsizeMode.End }; titleCol.PackStart(cellRendererText, true); titleCol.AddAttribute(cellRendererText, "markup", 0); titleCol.Expand = true; searchentryFilter.ForceFilterButtonVisible = true; searchentryFilter.RoundedShape = true; searchentryFilter.HasFrame = true; searchentryFilter.Ready = true; searchentryFilter.Visible = true; searchentryFilter.Entry.Changed += ApplyFilter; var col = treeviewInspections.AppendColumn("Severity", comboRenderer); col.Sizing = TreeViewColumnSizing.GrowOnly; col.MinWidth = 100; col.Expand = false; var comboBoxStore = new ListStore(typeof(string), typeof(DiagnosticSeverity)); comboBoxStore.AppendValues(GetDescription(DiagnosticSeverity.Hidden), DiagnosticSeverity.Hidden); comboBoxStore.AppendValues(GetDescription(DiagnosticSeverity.Error), DiagnosticSeverity.Error); comboBoxStore.AppendValues(GetDescription(DiagnosticSeverity.Warning), DiagnosticSeverity.Warning); comboBoxStore.AppendValues(GetDescription(DiagnosticSeverity.Info), DiagnosticSeverity.Info); comboRenderer.Model = comboBoxStore; comboRenderer.Mode = CellRendererMode.Activatable; comboRenderer.TextColumn = 0; comboRenderer.Editable = true; comboRenderer.HasEntry = false; comboRenderer.Edited += OnComboEdited; col.SetCellDataFunc(comboRenderer, ComboDataFunc); treeviewInspections.HeadersVisible = false; treeviewInspections.RulesHint = true; treeviewInspections.Model = treeStore; treeviewInspections.SearchColumn = -1; // disable the interactive search GetAllSeverities(); FillInspectors(null); }
/// <summary> /// Set up the UI inside the Window /// </summary> private void InitializeWidgets() { this.SetDefaultSize(600, 480); this.Icon = new Gdk.Pixbuf(Util.ImagesPath("ifolder-warning16.png")); VBox vbox = new VBox(); vbox.Spacing = 10; vbox.BorderWidth = 10; this.VBox.PackStart(vbox, true, true, 0); HBox topbox = new HBox(); topbox.Spacing = 10; Gdk.Pixbuf bigConflict = new Gdk.Pixbuf(Util.ImagesPath("ifolder-warning48.png")); Image conflictImage = new Image(bigConflict); conflictImage.Yalign = 0; topbox.PackStart(conflictImage, false, false, 0); VBox textbox = new VBox(); textbox.Spacing = 10; Label l = new Label("<span weight=\"bold\" size=\"larger\">" + Util.GS("This iFolder contains conflicts") + "</span>"); l.LineWrap = false; l.UseMarkup = true; l.Selectable = false; l.Xalign = 0; l.Yalign = 0; textbox.PackStart(l, true, true, 0); Table ifTable = new Table(2, 2, false); ifTable.ColumnSpacing = 10; ifTable.Homogeneous = false; Label nameLabel = new Label(Util.GS("Name:")); nameLabel.Xalign = 1; ifTable.Attach(nameLabel, 0, 1, 0, 1, Gtk.AttachOptions.Fill, Gtk.AttachOptions.Fill, 0, 0); Label nameValue = new Label(ifolder.Name); nameValue.UseUnderline = false; nameValue.Xalign = 0; ifTable.Attach(nameValue, 1, 2, 0, 1); Label pathLabel = new Label(Util.GS("Location:")); pathLabel.Xalign = 1; ifTable.Attach(pathLabel, 0, 1, 1, 2, Gtk.AttachOptions.Fill, Gtk.AttachOptions.Fill, 0, 0); Label pathValue = new Label(ifolder.UnManagedPath); pathValue.UseUnderline = false; pathValue.Xalign = 0; ifTable.Attach(pathValue, 1, 2, 1, 2); textbox.PackStart(ifTable, false, true, 0); topbox.PackStart(textbox, true, true, 0); vbox.PackStart(topbox, false, true, 0); // Create the main TreeView and add it to a scrolled // window, then add it to the main vbox widget ConflictTreeView = new TreeView(); ScrolledWindow sw = new ScrolledWindow(); sw.Add(ConflictTreeView); sw.ShadowType = Gtk.ShadowType.EtchedIn; vbox.PackStart(sw, true, true, 0); // // File Conflict Box // fileConflictBox = new HBox(); fileConflictBox.Spacing = 10; LocalFrame = new Frame(Util.GS("Local Version")); fileConflictBox.PackStart(LocalFrame, true, true, 0); Table localTable = new Table(2, 4, false); localTable.BorderWidth = 10; localTable.ColumnSpacing = 10; LocalNameLabel = new Label(Util.GS("Name:")); LocalNameLabel.Xalign = 0; localTable.Attach(LocalNameLabel, 0, 1, 0, 1, Gtk.AttachOptions.Fill, Gtk.AttachOptions.Fill, 0, 0); LocalNameValue = new Label(""); LocalNameValue.UseUnderline = false; LocalNameValue.Xalign = 0; localTable.Attach(LocalNameValue, 1, 2, 0, 1); LocalDateLabel = new Label(Util.GS("Date:")); LocalDateLabel.Xalign = 0; localTable.Attach(LocalDateLabel, 0, 1, 1, 2, Gtk.AttachOptions.Fill, Gtk.AttachOptions.Fill, 0, 0); LocalDateValue = new Label(""); LocalDateValue.Xalign = 0; localTable.Attach(LocalDateValue, 1, 2, 1, 2); LocalSizeLabel = new Label(Util.GS("Size:")); LocalSizeLabel.Xalign = 0; localTable.Attach(LocalSizeLabel, 0, 1, 2, 3, Gtk.AttachOptions.Fill, Gtk.AttachOptions.Fill, 0, 0); LocalSizeValue = new Label(""); LocalSizeValue.Xalign = 0; localTable.Attach(LocalSizeValue, 1, 2, 2, 3); LocalSaveButton = new Button(Stock.Open); localTable.Attach(LocalSaveButton, 0, 1, 3, 4, Gtk.AttachOptions.Shrink, Gtk.AttachOptions.Shrink, 0, 5); LocalSaveButton.Clicked += new EventHandler(LocalOpenHandler); LocalFrame.Add(localTable); ServerFrame = new Frame(Util.GS("Server Version")); fileConflictBox.PackStart(ServerFrame, true, true, 0); Table serverTable = new Table(2, 4, false); serverTable.BorderWidth = 10; serverTable.ColumnSpacing = 10; ServerNameLabel = new Label(Util.GS("Name:")); ServerNameLabel.Xalign = 0; serverTable.Attach(ServerNameLabel, 0, 1, 0, 1, Gtk.AttachOptions.Fill, Gtk.AttachOptions.Fill, 0, 0); ServerNameValue = new Label(""); ServerNameValue.UseUnderline = false; ServerNameValue.Xalign = 0; serverTable.Attach(ServerNameValue, 1, 2, 0, 1); ServerDateLabel = new Label(Util.GS("Date:")); ServerDateLabel.Xalign = 0; serverTable.Attach(ServerDateLabel, 0, 1, 1, 2, Gtk.AttachOptions.Fill, Gtk.AttachOptions.Fill, 0, 0); ServerDateValue = new Label(""); ServerDateValue.Xalign = 0; serverTable.Attach(ServerDateValue, 1, 2, 1, 2); ServerSizeLabel = new Label(Util.GS("Size:")); ServerSizeLabel.Xalign = 0; serverTable.Attach(ServerSizeLabel, 0, 1, 2, 3, Gtk.AttachOptions.Fill, Gtk.AttachOptions.Fill, 0, 0); ServerSizeValue = new Label(""); ServerSizeValue.Xalign = 0; serverTable.Attach(ServerSizeValue, 1, 2, 2, 3); ServerSaveButton = new Button(Stock.Open); serverTable.Attach(ServerSaveButton, 0, 1, 3, 4, Gtk.AttachOptions.Shrink, Gtk.AttachOptions.Shrink, 0, 5); ServerSaveButton.Clicked += new EventHandler(ServerOpenHandler); ServerFrame.Add(serverTable); // // action box starts here // vbox.PackStart(fileConflictBox, false, false, 0); ActionFrame = new Frame(Util.GS("Action")); this.VBox.PackStart(ActionFrame, true, true, 0); Table actionTable = new Table(3, 5, false); actionTable.BorderWidth = 5; actionTable.ColumnSpacing = 10; Label lable = new Label(Util.GS("Save to iFolder") + Util.GS(":")); lable.Xalign = 0; actionTable.Attach(lable, 0, 1, 0, 1, AttachOptions.Shrink | AttachOptions.Fill, 0, 0, 0); LocalVersion = new RadioButton(Util.GS("Local Version")); actionTable.Attach(LocalVersion, 3, 4, 0, 1, Gtk.AttachOptions.Shrink, Gtk.AttachOptions.Fill, 0, 5); ServerVersion = new RadioButton(LocalVersion, Util.GS("Server Version")); actionTable.Attach(ServerVersion, 4, 5, 0, 1, Gtk.AttachOptions.Shrink, Gtk.AttachOptions.Fill, 0, 5); lable = new Label(Util.GS("Save to Conflict Bin") + Util.GS(":")); lable.Xalign = 0; actionTable.Attach(lable, 0, 1, 1, 2, AttachOptions.Shrink | AttachOptions.Fill, 0, 0, 0); CbinLocalVersion = new RadioButton(Util.GS("Local Version")); actionTable.Attach(CbinLocalVersion, 3, 4, 1, 2, Gtk.AttachOptions.Shrink, Gtk.AttachOptions.Fill, 0, 5); CbinServerVersion = new RadioButton(CbinLocalVersion, Util.GS("Server Version")); actionTable.Attach(CbinServerVersion, 4, 5, 1, 2, Gtk.AttachOptions.Shrink, Gtk.AttachOptions.Fill, 0, 5); EnableConflictBin = new CheckButton(Util.GS("Enable")); actionTable.Attach(EnableConflictBin, 1, 2, 1, 2, Gtk.AttachOptions.Shrink, Gtk.AttachOptions.Fill, 0, 5); LocalVersion.Toggled += new EventHandler(OnSaveToiFolderSelected); ServerVersion.Toggled += new EventHandler(OnSaveToiFolderSelected); CbinLocalVersion.Toggled += new EventHandler(OnSaveToCBinSelected); CbinServerVersion.Toggled += new EventHandler(OnSaveToCBinSelected); EnableConflictBin.Toggled += new EventHandler(OnEnableCBinChecked); DirectoryPath = new Entry(); this.DirectoryPath.Changed += new EventHandler(OnDirectoryPathChanged); actionTable.Attach(DirectoryPath, 1, 3, 2, 3, AttachOptions.Expand | AttachOptions.Fill, 0, 0, 0); lable = new Label(Util.GS("Conflict Bin Path") + Util.GS(":")); actionTable.Attach(lable, 0, 1, 2, 3, AttachOptions.Fill | AttachOptions.Expand, 0, 0, 0); lable.LineWrap = true; lable.Xalign = 0.0F; lable.MnemonicWidget = DirectoryPath; BrowseButton = new Button(Util.GS("_Browse")); actionTable.Attach(BrowseButton, 3, 4, 2, 3, AttachOptions.Fill, 0, 0, 0); BrowseButton.Clicked += new EventHandler(OnBrowseButtonClicked); SaveButton = new Button(Stock.Save); actionTable.Attach(SaveButton, 4, 5, 2, 3, Gtk.AttachOptions.Shrink, Gtk.AttachOptions.Shrink, 0, 8); SaveButton.Clicked += new EventHandler(SaveHandler); ActionFrame.Add(actionTable); // // Name Conflict Box // nameConflictBox = new VBox(); nameConflictBox.Spacing = 10; VBox nameConflictInternalBox = new VBox(); nameConflictInternalBox.Spacing = 10; nameConflictInternalBox.BorderWidth = 10; renameFileFrame = new Frame(Util.GS("Rename")); nameConflictBox.PackStart(renameFileFrame, true, true, 0); nameConflictSummary = new Label(Util.GS("Enter a new name and click Rename to resolve the conflict.")); nameConflictSummary.Xalign = 0; // nameConflictSummary.ColumnSpacing = 10; nameConflictInternalBox.PackStart(nameConflictSummary, false, false, 0); HBox nameConflictHBox = new HBox(); nameConflictHBox.Spacing = 10; nameConflictFileNameLabel = new Label(Util.GS("Name:")); nameConflictHBox.PackStart(nameConflictFileNameLabel, false, false, 0); nameConflictEntry = new Entry(); nameConflictEntry.CanFocus = true; nameConflictEntry.Changed += new EventHandler(OnNameEntryChanged); nameConflictEntry.ActivatesDefault = true; nameConflictHBox.PackStart(nameConflictEntry, true, true, 0); nameConflictInternalBox.PackStart(nameConflictHBox, false, false, 0); HBox saveButtonBox = new HBox(); nameEntrySaveButton = new Button(Util.GS("Rename")); nameEntrySaveButton.Clicked += new EventHandler(RenameFileHandler); saveButtonBox.PackStart(nameEntrySaveButton, false, false, 0); nameConflictInternalBox.PackEnd(saveButtonBox, false, false, 0); renameFileFrame.Add(nameConflictInternalBox); vbox.PackStart(nameConflictBox, false, false, 0); nameConflictBox.Visible = false; // Set up the iFolder TreeView ConflictTreeStore = new ListStore(typeof(ConflictHolder)); ConflictTreeView.Model = ConflictTreeStore; // File Name Column TreeViewColumn fileNameColumn = new TreeViewColumn(); fileNameColumn.Title = Util.GS("Name"); CellRendererText fileNameCR = new CellRendererText(); fileNameCR.Xpad = 5; fileNameColumn.PackStart(fileNameCR, false); fileNameColumn.SetCellDataFunc(fileNameCR, new TreeCellDataFunc(FileNameCellTextDataFunc)); fileNameColumn.Resizable = true; fileNameColumn.MinWidth = 150; ConflictTreeView.AppendColumn(fileNameColumn); // Path Column TreeViewColumn pathColumn = new TreeViewColumn(); pathColumn.Title = Util.GS("Folder"); CellRendererText pathCR = new CellRendererText(); pathCR.Xpad = 5; pathColumn.PackStart(pathCR, false); pathColumn.SetCellDataFunc(pathCR, new TreeCellDataFunc(PathCellTextDataFunc)); pathColumn.Resizable = true; pathColumn.MinWidth = 300; pathColumn.Sizing = TreeViewColumnSizing.Autosize; ConflictTreeView.AppendColumn(pathColumn); // Conflict Type Column TreeViewColumn conflictTypeColumn = new TreeViewColumn(); conflictTypeColumn.Title = Util.GS("Conflict Type"); CellRendererText conflictTypeCR = new CellRendererText(); conflictTypeCR.Xpad = 5; conflictTypeColumn.PackStart(conflictTypeCR, false); conflictTypeColumn.SetCellDataFunc(conflictTypeCR, new TreeCellDataFunc(ConflictTypeCellTextDataFunc)); conflictTypeColumn.Resizable = false; conflictTypeColumn.FixedWidth = 100; ConflictTreeView.AppendColumn(conflictTypeColumn); // Set up Pixbuf and Text Rendering for "iFolder Conflicts" column // CellRendererPixbuf mcrp = new CellRendererPixbuf(); // TreeViewColumn memberColumn = new TreeViewColumn(); // memberColumn.PackStart(mcrp, false); // memberColumn.SetCellDataFunc(mcrp, new TreeCellDataFunc( // ConflictCellPixbufDataFunc)); // CellRendererText mcrt = new CellRendererText(); // memberColumn.PackStart(mcrt, false); // memberColumn.SetCellDataFunc(mcrt, new TreeCellDataFunc( // ConflictCellTextDataFunc)); // memberColumn.Title = Util.GS("iFolder Conflicts"); // memberColumn.Resizable = true; // ConflictTreeView.AppendColumn(memberColumn); ConflictTreeView.Selection.Mode = SelectionMode.Multiple; ConflictTreeView.Selection.Changed += new EventHandler( OnEnhancedConflictSelectionChanged); // ConflictPixBuf = // new Gdk.Pixbuf(Util.ImagesPath("conflict24.png")); this.AddButton(Stock.Close, ResponseType.Ok); this.AddButton(Stock.Help, ResponseType.Help); RefreshConflictList(); }
void RenderEvents(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) { IViewModel viewModel = model.GetValue(iter, COL_DATA) as IViewModel; SetCellViewModel(cell, iter, viewModel); }
public SearchResultWidget() { var vbox = new VBox(); var toolbar = new Toolbar() { Orientation = Orientation.Vertical, IconSize = IconSize.Menu, ToolbarStyle = ToolbarStyle.Icons, }; this.PackStart(vbox, true, true, 0); this.PackStart(toolbar, false, false, 0); labelStatus = new Label() { Xalign = 0, Justify = Justification.Left, }; var hpaned = new HPaned(); vbox.PackStart(hpaned, true, true, 0); vbox.PackStart(labelStatus, false, false, 0); var resultsScroll = new CompactScrolledWindow(); hpaned.Pack1(resultsScroll, true, true); scrolledwindowLogView = new CompactScrolledWindow(); hpaned.Pack2(scrolledwindowLogView, true, true); textviewLog = new TextView() { Editable = false, }; scrolledwindowLogView.Add(textviewLog); store = new ListStore(typeof(SearchResult), typeof(bool) // didRead ); treeviewSearchResults = new PadTreeView() { Model = store, HeadersClickable = true, RulesHint = true, }; treeviewSearchResults.Selection.Mode = Gtk.SelectionMode.Multiple; resultsScroll.Add(treeviewSearchResults); this.ShowAll(); var fileNameColumn = new TreeViewColumn { Resizable = true, SortColumnId = 0, Title = GettextCatalog.GetString("File") }; fileNameColumn.FixedWidth = 200; var fileNamePixbufRenderer = new CellRendererPixbuf(); fileNameColumn.PackStart(fileNamePixbufRenderer, false); fileNameColumn.SetCellDataFunc(fileNamePixbufRenderer, FileIconDataFunc); fileNameColumn.PackStart(treeviewSearchResults.TextRenderer, true); fileNameColumn.SetCellDataFunc(treeviewSearchResults.TextRenderer, FileNameDataFunc); treeviewSearchResults.AppendColumn(fileNameColumn); // TreeViewColumn lineColumn = treeviewSearchResults.AppendColumn (GettextCatalog.GetString ("Line"), new CellRendererText (), ResultLineDataFunc); // lineColumn.SortColumnId = 1; // lineColumn.FixedWidth = 50; // TreeViewColumn textColumn = treeviewSearchResults.AppendColumn(GettextCatalog.GetString("Text"), treeviewSearchResults.TextRenderer, ResultTextDataFunc); textColumn.SortColumnId = 2; textColumn.Resizable = true; textColumn.FixedWidth = 300; TreeViewColumn pathColumn = treeviewSearchResults.AppendColumn(GettextCatalog.GetString("Path"), treeviewSearchResults.TextRenderer, ResultPathDataFunc); pathColumn.SortColumnId = 3; pathColumn.Resizable = true; pathColumn.FixedWidth = 500; store.SetSortFunc(0, CompareFileNames); // store.SetSortFunc (1, CompareLineNumbers); store.SetSortFunc(3, CompareFilePaths); treeviewSearchResults.RowActivated += TreeviewSearchResultsRowActivated; buttonStop = new ToolButton(Stock.Stop) { Sensitive = false }; buttonStop.Clicked += ButtonStopClicked; buttonStop.TooltipText = GettextCatalog.GetString("Stop"); toolbar.Insert(buttonStop, -1); var buttonClear = new ToolButton(Gtk.Stock.Clear); buttonClear.Clicked += ButtonClearClicked; buttonClear.TooltipText = GettextCatalog.GetString("Clear results"); toolbar.Insert(buttonClear, -1); var buttonOutput = new ToggleToolButton(Gui.Stock.OutputIcon); buttonOutput.Clicked += ButtonOutputClicked; buttonOutput.TooltipText = GettextCatalog.GetString("Show output"); toolbar.Insert(buttonOutput, -1); buttonPin = new ToggleToolButton(Gui.Stock.PinUp); buttonPin.Clicked += ButtonPinClicked; buttonPin.TooltipText = GettextCatalog.GetString("Pin results pad"); toolbar.Insert(buttonPin, -1); store.SetSortColumnId(3, SortType.Ascending); ShowAll(); scrolledwindowLogView.Hide(); }
void TaskToggleCellDataFunc(TreeViewColumn treeColumn, CellRenderer cell, TreeModel treeModel, TreeIter iter) { var crt = cell as CellRendererToggle; var task = model.GetValue (iter, 0) as ITask; if (task == null) crt.Active = false; else { var timerCol = (TimerColumn) view.GetColumn (typeof (TimerColumn)); crt.Active = !(task.State == TaskState.Active && timerCol.GetTimer (task) == null); } }
protected void BlackMoveCellDataFunc(TreeViewColumn column, CellRenderer r, TreeModel model, TreeIter iter) { CellRendererText renderer = (CellRendererText) r; ChessMove move = (ChessMove) model.GetValue (iter, 0); if (!highlightWhite && (move.moveIdx - 1 == highlightMoveIndex)) renderer.Underline = Pango.Underline.Single; else renderer.Underline = Pango.Underline.None; renderer.Text = move.blackmove == null ? "" : move.blackmove; }
public StatusView(string filepath, Repository vc) : base(Path.GetFileName(filepath) + " Status") { this.vc = vc; this.filepath = filepath; changeSet = vc.CreateChangeSet(filepath); main = new VBox(false, 6); widget = main; commandbar = new Toolbar(); commandbar.ToolbarStyle = Gtk.ToolbarStyle.BothHoriz; commandbar.IconSize = Gtk.IconSize.Menu; main.PackStart(commandbar, false, false, 0); buttonCommit = new Gtk.ToolButton(new Gtk.Image("vc-commit", Gtk.IconSize.Menu), GettextCatalog.GetString("Commit...")); buttonCommit.IsImportant = true; buttonCommit.Clicked += new EventHandler(OnCommitClicked); commandbar.Insert(buttonCommit, -1); Gtk.ToolButton btnRefresh = new Gtk.ToolButton(new Gtk.Image(Gtk.Stock.Refresh, IconSize.Menu), GettextCatalog.GetString("Refresh")); btnRefresh.IsImportant = true; btnRefresh.Clicked += new EventHandler(OnRefresh); commandbar.Insert(btnRefresh, -1); buttonRevert = new Gtk.ToolButton(new Gtk.Image("vc-revert-command", Gtk.IconSize.Menu), GettextCatalog.GetString("Revert")); buttonRevert.IsImportant = true; buttonRevert.Clicked += new EventHandler(OnRevert); commandbar.Insert(buttonRevert, -1); showRemoteStatus = new Gtk.ToolButton(new Gtk.Image("vc-remote-status", Gtk.IconSize.Menu), GettextCatalog.GetString("Show Remote Status")); showRemoteStatus.IsImportant = true; showRemoteStatus.Clicked += new EventHandler(OnShowRemoteStatusClicked); commandbar.Insert(showRemoteStatus, -1); Gtk.ToolButton btnCreatePatch = new Gtk.ToolButton(new Gtk.Image("vc-diff", Gtk.IconSize.Menu), GettextCatalog.GetString("Create Patch")); btnCreatePatch.IsImportant = true; btnCreatePatch.Clicked += new EventHandler(OnCreatePatch); commandbar.Insert(btnCreatePatch, -1); commandbar.Insert(new Gtk.SeparatorToolItem(), -1); Gtk.ToolButton btnOpen = new Gtk.ToolButton(new Gtk.Image(Gtk.Stock.Open, IconSize.Menu), GettextCatalog.GetString("Open")); btnOpen.IsImportant = true; btnOpen.Clicked += new EventHandler(OnOpen); commandbar.Insert(btnOpen, -1); commandbar.Insert(new Gtk.SeparatorToolItem(), -1); Gtk.ToolButton btnExpand = new Gtk.ToolButton(null, GettextCatalog.GetString("Expand All")); btnExpand.IsImportant = true; btnExpand.Clicked += new EventHandler(OnExpandAll); commandbar.Insert(btnExpand, -1); Gtk.ToolButton btnCollapse = new Gtk.ToolButton(null, GettextCatalog.GetString("Collapse All")); btnCollapse.IsImportant = true; btnCollapse.Clicked += new EventHandler(OnCollapseAll); commandbar.Insert(btnCollapse, -1); commandbar.Insert(new Gtk.SeparatorToolItem(), -1); Gtk.ToolButton btnSelectAll = new Gtk.ToolButton(null, GettextCatalog.GetString("Select All")); btnSelectAll.IsImportant = true; btnSelectAll.Clicked += new EventHandler(OnSelectAll); commandbar.Insert(btnSelectAll, -1); Gtk.ToolButton btnSelectNone = new Gtk.ToolButton(null, GettextCatalog.GetString("Select None")); btnSelectNone.IsImportant = true; btnSelectNone.Clicked += new EventHandler(OnSelectNone); commandbar.Insert(btnSelectNone, -1); status = new Label(""); main.PackStart(status, false, false, 0); scroller = new ScrolledWindow(); scroller.ShadowType = Gtk.ShadowType.In; filelist = new FileTreeView(); filelist.Selection.Mode = Gtk.SelectionMode.Multiple; scroller.Add(filelist); scroller.HscrollbarPolicy = PolicyType.Automatic; scroller.VscrollbarPolicy = PolicyType.Automatic; filelist.RowActivated += OnRowActivated; filelist.DiffLineActivated += OnDiffLineActivated; CellRendererToggle cellToggle = new CellRendererToggle(); cellToggle.Toggled += new ToggledHandler(OnCommitToggledHandler); var crc = new CellRendererIcon(); crc.StockId = "vc-comment"; colCommit = new TreeViewColumn(); colCommit.Spacing = 2; colCommit.Widget = new Gtk.Image("vc-commit", Gtk.IconSize.Menu); colCommit.Widget.Show(); colCommit.PackStart(cellToggle, false); colCommit.PackStart(crc, false); colCommit.AddAttribute(cellToggle, "active", ColCommit); colCommit.AddAttribute(cellToggle, "visible", ColShowToggle); colCommit.AddAttribute(crc, "visible", ColShowComment); CellRendererText crt = new CellRendererText(); var crp = new CellRendererPixbuf(); TreeViewColumn colStatus = new TreeViewColumn(); colStatus.Title = GettextCatalog.GetString("Status"); colStatus.PackStart(crp, false); colStatus.PackStart(crt, true); colStatus.AddAttribute(crp, "pixbuf", ColIcon); colStatus.AddAttribute(crp, "visible", ColShowStatus); colStatus.AddAttribute(crt, "text", ColStatus); colStatus.AddAttribute(crt, "foreground", ColStatusColor); TreeViewColumn colFile = new TreeViewColumn(); colFile.Title = GettextCatalog.GetString("File"); colFile.Spacing = 2; crp = new CellRendererPixbuf(); diffRenderer = new CellRendererDiff(); colFile.PackStart(crp, false); colFile.PackStart(diffRenderer, true); colFile.AddAttribute(crp, "pixbuf", ColIconFile); colFile.AddAttribute(crp, "visible", ColShowStatus); colFile.SetCellDataFunc(diffRenderer, new TreeCellDataFunc(SetDiffCellData)); crt = new CellRendererText(); crp = new CellRendererPixbuf(); colRemote = new TreeViewColumn(); colRemote.Title = GettextCatalog.GetString("Remote Status"); colRemote.PackStart(crp, false); colRemote.PackStart(crt, true); colRemote.AddAttribute(crp, "pixbuf", ColRemoteIcon); colRemote.AddAttribute(crt, "text", ColRemoteStatus); colRemote.AddAttribute(crt, "foreground", ColStatusColor); filelist.AppendColumn(colStatus); filelist.AppendColumn(colRemote); filelist.AppendColumn(colCommit); filelist.AppendColumn(colFile); colRemote.Visible = false; filestore = new TreeStore(typeof(Gdk.Pixbuf), typeof(string), typeof(string[]), typeof(string), typeof(bool), typeof(bool), typeof(string), typeof(bool), typeof(bool), typeof(Gdk.Pixbuf), typeof(bool), typeof(Gdk.Pixbuf), typeof(string), typeof(bool), typeof(bool)); filelist.Model = filestore; filelist.TestExpandRow += new Gtk.TestExpandRowHandler(OnTestExpandRow); commitBox = new VBox(); HBox labBox = new HBox(); labelCommit = new Gtk.Label(GettextCatalog.GetString("Commit message:")); labelCommit.Xalign = 0; labBox.PackStart(new Gtk.Image("vc-comment", Gtk.IconSize.Menu), false, false, 0); labBox.PackStart(labelCommit, true, true, 3); commitBox.PackStart(labBox, false, false, 0); Gtk.ScrolledWindow frame = new Gtk.ScrolledWindow(); frame.ShadowType = ShadowType.In; commitText = new TextView(); commitText.WrapMode = WrapMode.WordChar; commitText.Buffer.Changed += OnCommitTextChanged; frame.Add(commitText); commitBox.PackStart(frame, true, true, 6); VPaned paned = new VPaned(); paned.Pack1(scroller, true, true); paned.Pack2(commitBox, false, false); main.PackStart(paned, true, true, 0); main.ShowAll(); status.Visible = false; filelist.Selection.Changed += new EventHandler(OnCursorChanged); VersionControlService.FileStatusChanged += OnFileStatusChanged; filelist.HeadersClickable = true; filestore.SetSortFunc(0, CompareNodes); colStatus.SortColumnId = 0; filestore.SetSortFunc(1, CompareNodes); colRemote.SortColumnId = 1; filestore.SetSortFunc(2, CompareNodes); colCommit.SortColumnId = 2; filestore.SetSortFunc(3, CompareNodes); colFile.SortColumnId = 3; filestore.SetSortColumnId(3, Gtk.SortType.Ascending); filelist.DoPopupMenu = DoPopupMenu; StartUpdate(); }
public StackTracePadWidget() { this.ShadowType = ShadowType.None; store = new ListStore(typeof(bool), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string), typeof(Pango.Style), typeof(object), typeof(int), typeof(bool)); tree = new PadTreeView(store); tree.RulesHint = true; tree.HeadersVisible = true; tree.Selection.Mode = SelectionMode.Multiple; tree.SearchEqualFunc = Search; tree.EnableSearch = true; tree.SearchColumn = 1; tree.DoPopupMenu = ShowPopup; var col = new TreeViewColumn(); var crp = new CellRendererImage(); col.PackStart(crp, false); crp.Image = pointerImage; col.AddAttribute(crp, "visible", IconColumn); tree.AppendColumn(col); col = new TreeViewColumn(); col.Title = GettextCatalog.GetString("Name"); col.PackStart(tree.TextRenderer, true); col.AddAttribute(tree.TextRenderer, "text", MethodColumn); col.AddAttribute(tree.TextRenderer, "foreground", ForegroundColumn); col.AddAttribute(tree.TextRenderer, "style", StyleColumn); col.Resizable = true; col.Alignment = 0.0f; tree.AppendColumn(col); col = new TreeViewColumn(); col.Title = GettextCatalog.GetString("File"); col.PackStart(tree.TextRenderer, false); col.AddAttribute(tree.TextRenderer, "text", FileColumn); col.AddAttribute(tree.TextRenderer, "foreground", ForegroundColumn); tree.AppendColumn(col); col = new TreeViewColumn(); col.Title = GettextCatalog.GetString("Language"); col.PackStart(tree.TextRenderer, false); col.AddAttribute(tree.TextRenderer, "text", LangColumn); col.AddAttribute(tree.TextRenderer, "foreground", ForegroundColumn); col.Visible = false; //By default Language column is hidden tree.AppendColumn(col); col = new TreeViewColumn(); col.Title = GettextCatalog.GetString("Address"); col.PackStart(tree.TextRenderer, false); col.AddAttribute(tree.TextRenderer, "text", AddrColumn); col.AddAttribute(tree.TextRenderer, "foreground", ForegroundColumn); col.Visible = false; //By default Address column is hidden tree.AppendColumn(col); Add(tree); LoadColumnsVisibility(); LoadSettings(); ShowAll(); UpdateDisplay(); DebuggingService.CallStackChanged += OnClassStackChanged; DebuggingService.CurrentFrameChanged += OnFrameChanged; DebuggingService.StoppedEvent += OnDebuggingServiceStopped; tree.RowActivated += OnRowActivated; }
private EncapsulateFieldDialog(MonoDevelop.Ide.Gui.Document editor, IType declaringType, IField field) { this.editor = editor; this.declaringType = declaringType; this.Build(); Title = GettextCatalog.GetString("Encapsulate Fields"); buttonOk.Sensitive = true; store = new ListStore(typeof(bool), typeof(string), typeof(string), typeof(string), typeof(bool), typeof(IField)); visibilityStore = new ListStore(typeof(string)); // Column #1 CellRendererToggle cbRenderer = new CellRendererToggle(); cbRenderer.Activatable = true; cbRenderer.Toggled += OnSelectedToggled; TreeViewColumn cbCol = new TreeViewColumn(); cbCol.Title = ""; cbCol.PackStart(cbRenderer, false); cbCol.AddAttribute(cbRenderer, "active", colCheckedIndex); treeview.AppendColumn(cbCol); // Column #2 CellRendererText fieldRenderer = new CellRendererText(); fieldRenderer.Weight = (int)Pango.Weight.Bold; TreeViewColumn fieldCol = new TreeViewColumn(); fieldCol.Title = GettextCatalog.GetString("Field"); fieldCol.Expand = true; fieldCol.PackStart(fieldRenderer, true); fieldCol.AddAttribute(fieldRenderer, "text", colFieldNameIndex); treeview.AppendColumn(fieldCol); // Column #3 CellRendererText propertyRenderer = new CellRendererText(); propertyRenderer.Editable = true; propertyRenderer.Edited += new EditedHandler(OnPropertyEdited); TreeViewColumn propertyCol = new TreeViewColumn(); propertyCol.Title = GettextCatalog.GetString("Property"); propertyCol.Expand = true; propertyCol.PackStart(propertyRenderer, true); propertyCol.AddAttribute(propertyRenderer, "text", colPropertyNameIndex); propertyCol.SetCellDataFunc(propertyRenderer, new TreeCellDataFunc(RenderPropertyName)); treeview.AppendColumn(propertyCol); // Column #4 CellRendererCombo visiComboRenderer = new CellRendererCombo(); visiComboRenderer.Model = visibilityStore; visiComboRenderer.Editable = true; visiComboRenderer.Edited += new EditedHandler(OnVisibilityEdited); visiComboRenderer.HasEntry = false; visiComboRenderer.TextColumn = 0; TreeViewColumn visiCol = new TreeViewColumn(); visiCol.Title = GettextCatalog.GetString("Visibility"); visiCol.PackStart(visiComboRenderer, false); visiCol.AddAttribute(visiComboRenderer, "text", colVisibilityIndex); treeview.AppendColumn(visiCol); // Column #5 CellRendererToggle roRenderer = new CellRendererToggle(); roRenderer.Activatable = true; roRenderer.Xalign = 0.0f; roRenderer.Toggled += new ToggledHandler(OnReadOnlyToggled); TreeViewColumn roCol = new TreeViewColumn(); roCol.Title = GettextCatalog.GetString("Read only"); roCol.PackStart(roRenderer, false); roCol.AddAttribute(roRenderer, "active", colReadOnlyIndex); treeview.AppendColumn(roCol); visibilityStore.AppendValues("Public"); visibilityStore.AppendValues("Private"); visibilityStore.AppendValues("Protected"); visibilityStore.AppendValues("Internal"); treeview.Model = store; foreach (IField ifield in declaringType.Fields) { bool enabled = field != null && (field.Name == ifield.Name); string propertyName = GeneratePropertyName(ifield.Name); store.AppendValues(enabled, ifield.Name, propertyName, "Public", ifield.IsReadonly || ifield.IsLiteral, ifield); if (enabled) { CheckAndUpdateConflictMessage(propertyName, false); } } store.SetSortColumnId(colFieldNameIndex, SortType.Ascending); buttonSelectAll.Clicked += OnSelectAllClicked; buttonUnselectAll.Clicked += OnUnselectAllClicked; buttonOk.Clicked += OnOKClicked; buttonCancel.Clicked += OnCancelClicked; UpdateOKButton(); }
private void BuildColumns() { // Hidden expander column TreeViewColumn col = new TreeViewColumn(); col.Visible = false; AppendColumn(col); ExpanderColumn = col; source_column = new TreeViewColumn(); source_column.Sizing = TreeViewColumnSizing.Autosize; uint xpad = 2; // Special renderer for header rows; hidden for normal source rows header_renderer = new CellRendererText() { Xpad = xpad, Ypad = 4, Ellipsize = Pango.EllipsizeMode.End, Weight = (int)Pango.Weight.Bold, Variant = Pango.Variant.SmallCaps }; // Renderer for source rows; hidden for header rows source_renderer = new SourceRowRenderer(); source_renderer.Xpad = xpad; source_column.PackStart(header_renderer, true); source_column.SetCellDataFunc(header_renderer, new Gtk.CellLayoutDataFunc((layout, cell, model, iter) => { if (model == null) { throw new ArgumentNullException("model"); } // be paranoid about the values returned from model.GetValue(), they may be null or have unexpected types, see bgo#683359 var obj_type = model.GetValue(iter, (int)SourceModel.Columns.Type); if (obj_type == null || !(obj_type is SourceModel.EntryType)) { var source = model.GetValue(iter, (int)SourceModel.Columns.Source) as Source; var source_name = source == null ? "some source" : String.Format("source {0}", source.Name); Log.ErrorFormat( "SourceView of {0} could not render its source column because its type value returned {1} from the iter", source_name, obj_type == null ? "null" : String.Format("an instance of {0}", obj_type.GetType().FullName)); header_renderer.Visible = false; source_renderer.Visible = false; return; } var type = (SourceModel.EntryType)obj_type; header_renderer.Visible = type == SourceModel.EntryType.Group; source_renderer.Visible = type == SourceModel.EntryType.Source; if (type == SourceModel.EntryType.Group) { var source = (Source)model.GetValue(iter, (int)SourceModel.Columns.Source); header_renderer.Visible = true; header_renderer.Text = source.Name; } else { header_renderer.Visible = false; } })); int width, height; Gtk.Icon.SizeLookup(IconSize.Menu, out width, out height); source_renderer.RowHeight = RowHeight.Get(); source_renderer.RowHeight = height; source_renderer.Ypad = (uint)RowPadding.Get(); source_renderer.Ypad = 2; source_column.PackStart(source_renderer, true); source_column.SetCellDataFunc(source_renderer, new CellLayoutDataFunc(SourceRowRenderer.CellDataHandler)); AppendColumn(source_column); HeadersVisible = false; }
public PriorityColumn() { TreeViewColumn = new TreeViewColumn { Title = Catalog.GetString ("Priority"), Sizing = TreeViewColumnSizing.Fixed, Alignment = 0.5f, FixedWidth = 30, Resizable = false, Clickable = true }; var priorityStore = new ListStore (typeof (string)); priorityStore.AppendValues (Catalog.GetString ("1")); // High priorityStore.AppendValues (Catalog.GetString ("2")); // Medium priorityStore.AppendValues (Catalog.GetString ("3")); // Low priorityStore.AppendValues (Catalog.GetString ("-")); // None var renderer = new CellRendererCombo { Editable = true, HasEntry = false, Model = priorityStore, TextColumn = 0, Xalign = 0.5f }; renderer.EditingStarted += (o, args) => { TreeIter iter; var path = new TreePath (args.Path); if (!model.GetIter (out iter, path)) return; var task = model.GetValue (iter, 0) as ITask; if (task == null) return; taskBeingEdited = new TaskBeingEdited (task, iter, path); if (CellEditingStarted != null) CellEditingStarted (this, new TaskRowEditingEventArgs (task, iter, path)); }; renderer.EditingCanceled += delegate { EndCellEditing (); }; renderer.Edited += (o, args) => { TreeIter iter; var path = new TreePath (args.Path); if (model.GetIter (out iter, path)) { TaskPriority newPriority; var newText = args.NewText; if (newText == Catalog.GetString ("3")) newPriority = TaskPriority.Low; else if (newText == Catalog.GetString ("2")) newPriority = TaskPriority.Medium; else if (newText == Catalog.GetString ("1")) newPriority = TaskPriority.High; else newPriority = TaskPriority.None; // Update the priority if it's different var task = model.GetValue (iter, 0) as ITask; if (task.Priority != newPriority) task.Priority = newPriority; } EndCellEditing (); }; TreeViewColumn.PackStart (renderer, true); TreeViewColumn.SetCellDataFunc (renderer, TaskPriorityCellDataFunc); }
void TaskPriorityCellDataFunc(TreeViewColumn treeColumn, CellRenderer cell, TreeModel treeModel, TreeIter iter) { // TODO: Add bold (for high), light (for None), and also colors to priority? var crc = cell as CellRendererCombo; var task = model.GetValue (iter, 0) as ITask; if (task == null) return; switch (task.Priority) { case TaskPriority.Low: crc.Text = Catalog.GetString ("3"); break; case TaskPriority.Medium: crc.Text = Catalog.GetString ("2"); break; case TaskPriority.High: crc.Text = Catalog.GetString ("1"); break; default: crc.Text = Catalog.GetString ("-"); break; } }
void TaskTimerCellDataFunc(TreeViewColumn treeColumn, CellRenderer cell, TreeModel treeModel, TreeIter iter) { var task = treeModel.GetValue (iter, 0) as ITask; TaskCompleteTimer timer; var crp = cell as CellRendererPixbuf; if (task == null || !timeoutTargets.TryGetValue (task, out timer)) { crp.Pixbuf = null; return; } crp.Pixbuf = timer.CurrentAnimPixbuf; }
private void SetupMovesTree() { TreeViewColumn col = new TreeViewColumn (); CellRendererText moveno_renderer = new CellRendererText (); CellRendererText whitemove_renderer = new CellRendererText (); CellRendererText blackmove_renderer = new CellRendererText (); moveno_renderer.Xalign = 1; col.PackStart (moveno_renderer, false); col.SetCellDataFunc (moveno_renderer, new TreeCellDataFunc (MoveNumCellDataFunc)); col.Title = Catalog.GetString("No"); gameView.AppendColumn (col); col = new TreeViewColumn (); col.PackStart (whitemove_renderer, true); col.SetCellDataFunc (whitemove_renderer, new TreeCellDataFunc (WhiteMoveCellDataFunc)); col.Title = Catalog.GetString("White"); col.Resizable = true; col.Expand = true; gameView.AppendColumn (col); whitecol = col; whitecol.Spacing = 5; col = new TreeViewColumn (); col.PackStart (blackmove_renderer, false); col.SetCellDataFunc (blackmove_renderer, new TreeCellDataFunc (BlackMoveCellDataFunc)); col.Expand = true; col.Title = Catalog.GetString("Black"); gameView.AppendColumn (col); blackcol = col; gameView.HeadersVisible = true; }
// void ResultLineDataFunc (TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) // { // if (TreeIter.Zero.Equals (iter)) // return; // var lineRenderer = (CellRendererText)cell; // var searchResult = (SearchResult)store.GetValue (iter, SearchResultColumn); // if (searchResult == null) // return; // // Document doc = GetDocument (searchResult); // int lineNr = doc.OffsetToLineNumber (searchResult.Offset) + 1; // bool didRead = (bool)store.GetValue (iter, DidReadColumn); // lineRenderer.Markup = MarkupText (lineNr.ToString (), didRead); // } // void ResultTextDataFunc(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) { if (TreeIter.Zero.Equals(iter)) { return; } var textRenderer = (CellRendererText)cell; var searchResult = (SearchResult)store.GetValue(iter, SearchResultColumn); if (searchResult == null || searchResult.Offset < 0) { textRenderer.Markup = "Invalid search result"; return; } Document doc = GetDocument(searchResult); if (doc == null) { textRenderer.Markup = "Can't create document for:" + searchResult.FileName; return; } int lineNr = doc.OffsetToLineNumber(searchResult.Offset); LineSegment line = doc.GetLine(lineNr); if (line == null) { textRenderer.Markup = "Invalid line number " + lineNr + " from offset: " + searchResult.Offset; return; } bool isSelected = treeviewSearchResults.Selection.IterIsSelected(iter); int indent = line.GetIndentation(doc).Length; string markup = doc.SyntaxMode != null? doc.SyntaxMode.GetMarkup(doc, new TextEditorOptions(), highlightStyle, line.Offset + indent, line.EditableLength - indent, true, !isSelected, false) : GLib.Markup.EscapeText(doc.GetTextAt(line.Offset, line.EditableLength)); if (!isSelected) { int col = searchResult.Offset - line.Offset - indent; string tag; int pos1 = FindPosition(markup, col, out tag); int pos2 = FindPosition(markup, col + searchResult.Length, out tag); if (pos1 >= 0 && pos2 >= 0) { markup = tag.StartsWith("span") ? markup.Insert(pos2, "</span></span><" + tag + ">") : markup.Insert(pos2, "</span>"); Color searchColor = Mono.TextEditor.Highlighting.Style.ToGdkColor(highlightStyle.SearchTextBg); double b1 = HslColor.Brightness(searchColor); double b2 = HslColor.Brightness(AdjustColor(Style.Base(StateType.Normal), highlightStyle.Default.Color)); double delta = Math.Abs(b1 - b2); if (delta < 0.1) { HslColor color1 = highlightStyle.SearchTextBg; if (color1.L + 0.5 > 1.0) { color1.L -= 0.5; } else { color1.L += 0.5; } searchColor = color1; } markup = markup.Insert(pos1, "<span background=\"" + SyntaxMode.ColorToPangoMarkup(searchColor) + "\">"); } } string markupText = AdjustColors(markup.Replace("\t", new string (' ', TextEditorOptions.DefaultOptions.TabSize))); try { textRenderer.Markup = markupText; } catch (Exception e) { LoggingService.LogError("Error whil setting the text renderer markup to: " + markup, e); } }
protected void InfoCellDataFunc(TreeViewColumn col, CellRenderer r, TreeModel model, TreeIter iter) { CellRendererText renderer = (CellRendererText) r; PGNChessGame game = (PGNChessGame) model.GetValue (iter, 0); string markup = String.Format (Catalog. GetString ("<b>{0} vs {1}</b>\n") + Catalog. GetString ("<small><i>Result</i>: <b>{2}</b> ({3} moves)</small>"), game.White, game.Black, game.Result, game.Moves.Count); string eventvalue = game.GetTagValue ("Event", null); if (eventvalue != null) { markup += String. Format (Catalog. GetString ("\n<small><i>Event</i>: {0}, <i>Date</i>: {1}</small>"), eventvalue, game.GetTagValue ("Date", "?")); } renderer.Markup = markup; }
public SearchResultWidget() { Build(); store = new ListStore(typeof(SearchResult), typeof(bool) // didRead ); treeviewSearchResults.Model = store; treeviewSearchResults.Selection.Mode = Gtk.SelectionMode.Multiple; treeviewSearchResults.HeadersClickable = true; treeviewSearchResults.PopupMenu += OnPopupMenu; treeviewSearchResults.ButtonPressEvent += HandleButtonPressEvent; treeviewSearchResults.RulesHint = true; var fileNameColumn = new TreeViewColumn { Resizable = false, SortColumnId = 0, Title = GettextCatalog.GetString("File") }; fileNameColumn.FixedWidth = 200; var fileNamePixbufRenderer = new CellRendererPixbuf(); fileNameColumn.PackStart(fileNamePixbufRenderer, false); fileNameColumn.SetCellDataFunc(fileNamePixbufRenderer, FileIconDataFunc); var fileNameRenderer = new CellRendererText(); fileNameColumn.PackStart(fileNameRenderer, true); fileNameColumn.SetCellDataFunc(fileNameRenderer, FileNameDataFunc); treeviewSearchResults.AppendColumn(fileNameColumn); // TreeViewColumn lineColumn = treeviewSearchResults.AppendColumn (GettextCatalog.GetString ("Line"), new CellRendererText (), ResultLineDataFunc); // lineColumn.SortColumnId = 1; // lineColumn.FixedWidth = 50; // TreeViewColumn textColumn = treeviewSearchResults.AppendColumn(GettextCatalog.GetString("Text"), new CellRendererText(), ResultTextDataFunc); textColumn.SortColumnId = 2; textColumn.Resizable = false; textColumn.FixedWidth = 300; TreeViewColumn pathColumn = treeviewSearchResults.AppendColumn(GettextCatalog.GetString("Path"), new CellRendererText(), ResultPathDataFunc); pathColumn.SortColumnId = 3; pathColumn.Resizable = false; pathColumn.FixedWidth = 500; store.SetSortFunc(0, CompareFileNames); // store.SetSortFunc (1, CompareLineNumbers); store.SetSortFunc(3, CompareFilePaths); treeviewSearchResults.RowActivated += TreeviewSearchResultsRowActivated; buttonStop = new ToolButton(Stock.Stop) { Sensitive = false }; buttonStop.Clicked += ButtonStopClicked; buttonStop.TooltipText = GettextCatalog.GetString("Stop"); toolbar.Insert(buttonStop, -1); var buttonClear = new ToolButton(Gtk.Stock.Clear); buttonClear.Clicked += ButtonClearClicked; buttonClear.TooltipText = GettextCatalog.GetString("Clear results"); toolbar.Insert(buttonClear, -1); var buttonOutput = new ToggleToolButton(Gui.Stock.OutputIcon); buttonOutput.Clicked += ButtonOutputClicked; buttonOutput.TooltipText = GettextCatalog.GetString("Show output"); toolbar.Insert(buttonOutput, -1); buttonPin = new ToggleToolButton(Gui.Stock.PinUp); buttonPin.Clicked += ButtonPinClicked; buttonPin.TooltipText = GettextCatalog.GetString("Pin results pad"); toolbar.Insert(buttonPin, -1); store.SetSortColumnId(3, SortType.Ascending); ShowAll(); scrolledwindowLogView.Hide(); }
//TODO: difference between columns and reference columns + combo events public ForeignKeyConstraintEditorWidget(ISchemaProvider schemaProvider, SchemaActions action, ForeignKeyConstraintEditorSettings settings) { if (schemaProvider == null) { throw new ArgumentNullException("schemaProvider"); } if (settings == null) { throw new ArgumentNullException("settings"); } this.schemaProvider = schemaProvider; this.action = action; this.settings = settings; this.Build(); store = new ListStore(typeof(string), typeof(string), typeof(bool), typeof(string), typeof(string), typeof(string), typeof(string), typeof(object)); listFK.Model = store; storeActions = new ListStore(typeof(string), typeof(int)); storeTables = new ListStore(typeof(string), typeof(TableSchema)); if (settings.SupportsCascade) { storeActions.AppendValues("Cascade", (int)ForeignKeyAction.Cascade); } if (settings.SupportsRestrict) { storeActions.AppendValues("Restrict", (int)ForeignKeyAction.Restrict); } if (settings.SupportsNoAction) { storeActions.AppendValues("No Action", (int)ForeignKeyAction.NoAction); } if (settings.SupportsSetNull) { storeActions.AppendValues("Set Null", (int)ForeignKeyAction.SetNull); } if (settings.SupportsSetDefault) { storeActions.AppendValues("Set Default", (int)ForeignKeyAction.SetDefault); } TreeViewColumn colName = new TreeViewColumn(); TreeViewColumn colRefTable = new TreeViewColumn(); TreeViewColumn colIsColumnConstraint = new TreeViewColumn(); TreeViewColumn colDeleteAction = new TreeViewColumn(); TreeViewColumn colUpdateAction = new TreeViewColumn(); colName.Title = AddinCatalog.GetString("Name"); colRefTable.Title = AddinCatalog.GetString("Reference Table"); colIsColumnConstraint.Title = AddinCatalog.GetString("Column Constraint"); colDeleteAction.Title = AddinCatalog.GetString("Delete Action"); colUpdateAction.Title = AddinCatalog.GetString("Update Action"); colRefTable.MinWidth = 120; CellRendererText nameRenderer = new CellRendererText(); CellRendererCombo refTableRenderer = new CellRendererCombo(); CellRendererToggle isColumnConstraintRenderer = new CellRendererToggle(); CellRendererCombo deleteActionRenderer = new CellRendererCombo(); CellRendererCombo updateActionRenderer = new CellRendererCombo(); nameRenderer.Editable = true; nameRenderer.Edited += new EditedHandler(NameEdited); refTableRenderer.Model = storeTables; refTableRenderer.TextColumn = 0; refTableRenderer.Editable = true; refTableRenderer.Edited += new EditedHandler(RefTableEdited); deleteActionRenderer.Model = storeActions; deleteActionRenderer.TextColumn = 0; deleteActionRenderer.Editable = true; deleteActionRenderer.Edited += new EditedHandler(DeleteActionEdited); updateActionRenderer.Model = storeActions; updateActionRenderer.TextColumn = 0; updateActionRenderer.Editable = true; updateActionRenderer.Edited += new EditedHandler(UpdateActionEdited); colName.PackStart(nameRenderer, true); colRefTable.PackStart(refTableRenderer, true); colIsColumnConstraint.PackStart(isColumnConstraintRenderer, true); colDeleteAction.PackStart(deleteActionRenderer, true); colUpdateAction.PackStart(updateActionRenderer, true); colName.AddAttribute(nameRenderer, "text", colNameIndex); colRefTable.AddAttribute(refTableRenderer, "text", colReferenceTableIndex); colIsColumnConstraint.AddAttribute(isColumnConstraintRenderer, "active", colIsColumnConstraintIndex); colDeleteAction.AddAttribute(deleteActionRenderer, "text", colDeleteActionIndex); colUpdateAction.AddAttribute(updateActionRenderer, "text", colUpdateActionIndex); colIsColumnConstraint.Visible = false; listFK.AppendColumn(colName); listFK.AppendColumn(colRefTable); listFK.AppendColumn(colIsColumnConstraint); listFK.AppendColumn(colDeleteAction); listFK.AppendColumn(colUpdateAction); columnSelecter.ColumnToggled += new EventHandler(ColumnToggled); referenceColumnSelecter.ColumnToggled += new EventHandler(ReferenceColumnToggled); listFK.Selection.Changed += new EventHandler(SelectionChanged); ShowAll(); }
private void NameFunc(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) { TrustedNodeInfo friend = (TrustedNodeInfo)model.GetValue(iter, 0); (cell as CellRendererText).Text = friend.Identifier; }
void DueDateCellDataFunc(TreeViewColumn treeColumn, CellRenderer cell, TreeModel treeModel, TreeIter iter) { var crc = cell as CellRendererCombo; var task = model.GetValue (iter, 0) as ITask; if (task == null) return; var date = task.State == TaskState.Completed ? task.CompletionDate : task.DueDate; if (date == DateTime.MinValue || date == DateTime.MaxValue) { crc.Text = "-"; return; } if (date.Year == DateTime.Today.Year) crc.Text = date.ToString (Catalog.GetString ("M/d - ddd")); else crc.Text = date.ToString (Catalog.GetString ("M/d/yy - ddd")); }
public bool IsSelected(TreeViewColumn col) { return(SelectedColumns.Contains(col)); }
private void _initNodeStore() { nodestore = new NodeStore(typeof(ElementExportSettings)); CellRendererText optionsRenderer = new CellRendererText(); optionsRenderer.Editable = true; optionsRenderer.Edited += (object o, EditedArgs args) => { ElementExportSettings vf = (ElementExportSettings)(NodeFileList.NodeStore.GetNode(new TreePath(args.Path))); vf.Options = args.NewText; }; CellRendererText nameRenderer = new CellRendererText(); nameRenderer.Editable = true; nameRenderer.Edited += (object o, EditedArgs args) => { ElementExportSettings vf = (ElementExportSettings)(NodeFileList.NodeStore.GetNode(new TreePath(args.Path))); vf.Name = args.NewText; }; NodeFileList.AppendColumn("Path", new Gtk.CellRendererText(), "text", 0); TreeViewColumn nameCol = NodeFileList.AppendColumn("Name", nameRenderer, "text", 1); nameCol.Resizable = true; CellRendererCombo cropRenderer = new CellRendererCombo(); ListStore model = new ListStore(typeof(string), typeof(ElementExportSettings.CropSetting)); foreach (object enumVal in Enum.GetValues(typeof(ElementExportSettings.CropSetting))) { model.AppendValues(enumVal.ToString(), enumVal); } cropRenderer.HasEntry = false; cropRenderer.Editable = true; cropRenderer.Model = model; cropRenderer.TextColumn = 0; cropRenderer.Edited += (o, args) => { ElementExportSettings vf = (ElementExportSettings)(NodeFileList.NodeStore.GetNode(new TreePath(args.Path))); vf.CropMode = (ElementExportSettings.CropSetting)Enum.Parse(typeof(ElementExportSettings.CropSetting), args.NewText); }; TreeViewColumn cropCol = NodeFileList.AppendColumn("Crop Mode", cropRenderer, "text", 4); TreeViewColumn optionsCol = NodeFileList.AppendColumn("Options", optionsRenderer, "text", 2); optionsCol.Resizable = true; CellRendererPixbuf pixbufRenderer = new CellRendererPixbuf(); TreeViewColumn pixCol = NodeFileList.AppendColumn("Export", pixbufRenderer, "stock-id", 5); NodeFileList.RowActivated += (o, args) => { if (args.Column == pixCol) { ElementExportSettings tvg = ((ElementExportSettings)NodeFileList.NodeStore.GetNode(args.Path)); ExportResultDialog dialog = new ExportResultDialog(tvg.ExportLog); dialog.Run(); dialog.Destroy(); } }; pixCol.Clicked += (sender, e) => { }; NodeFileList.AppendColumn("", new CellRendererText()); NodeFileList.Selection.Mode = SelectionMode.Multiple; NodeFileList.NodeStore = nodestore; }
public bool IsSelected(TreeIter row, TreeViewColumn col) { return(IsSelected(new CellLocation(row, col))); }
public void ShowPage(PageType type, string [] warnings) { if (type == PageType.Setup) { Header = "Welcome to SparkleShare!"; Description = "First off, what’s your name and email?\n(visible only to team members)"; Table table = new Table(2, 3, true) { RowSpacing = 6, ColumnSpacing = 6 }; Label name_label = new Label("<b>" + "Full Name:" + "</b>") { UseMarkup = true, Xalign = 1 }; Entry name_entry = new Entry() { Xalign = 0, ActivatesDefault = true }; try { UnixUserInfo user_info = UnixUserInfo.GetRealUser(); if (user_info != null && user_info.RealName != null) { // Some systems append a series of "," for some reason name_entry.Text = user_info.RealName.TrimEnd(",".ToCharArray()); } } catch (ArgumentException) { // No username, not a big deal } Entry email_entry = new Entry() { Xalign = 0, ActivatesDefault = true }; Label email_label = new Label("<b>" + "Email:" + "</b>") { UseMarkup = true, Xalign = 1 }; table.Attach(name_label, 0, 1, 0, 1); table.Attach(name_entry, 1, 2, 0, 1); table.Attach(email_label, 0, 1, 1, 2); table.Attach(email_entry, 1, 2, 1, 2); VBox wrapper = new VBox(false, 9); wrapper.PackStart(table, true, false, 0); Button cancel_button = new Button("Cancel"); Button continue_button = new Button("Continue") { Sensitive = false }; Controller.UpdateSetupContinueButtonEvent += delegate(bool button_enabled) { Application.Invoke(delegate { continue_button.Sensitive = button_enabled; }); }; name_entry.Changed += delegate { Controller.CheckSetupPage(name_entry.Text, email_entry.Text); }; email_entry.Changed += delegate { Controller.CheckSetupPage(name_entry.Text, email_entry.Text); }; cancel_button.Clicked += delegate { Controller.SetupPageCancelled(); }; continue_button.Clicked += delegate { Controller.SetupPageCompleted(name_entry.Text, email_entry.Text); }; AddButton(cancel_button); AddButton(continue_button); Add(wrapper); Controller.CheckSetupPage(name_entry.Text, email_entry.Text); if (name_entry.Text.Equals("")) { name_entry.GrabFocus(); } else { email_entry.GrabFocus(); } } if (type == PageType.Add) { Header = "Where’s your project hosted?"; VBox layout_vertical = new VBox(false, 16); HBox layout_fields = new HBox(true, 32); VBox layout_address = new VBox(true, 0); VBox layout_path = new VBox(true, 0); ListStore store = new ListStore(typeof(string), typeof(Gdk.Pixbuf), typeof(string), typeof(SparklePlugin)); SparkleTreeView tree_view = new SparkleTreeView(store) { HeadersVisible = false }; ScrolledWindow scrolled_window = new ScrolledWindow() { ShadowType = ShadowType.In }; scrolled_window.SetPolicy(PolicyType.Never, PolicyType.Automatic); // Padding column tree_view.AppendColumn("Padding", new Gtk.CellRendererText(), "text", 0); tree_view.Columns [0].Cells [0].Xpad = 4; // Icon column tree_view.AppendColumn("Icon", new Gtk.CellRendererPixbuf(), "pixbuf", 1); tree_view.Columns [1].Cells [0].Xpad = 4; // Service column TreeViewColumn service_column = new TreeViewColumn() { Title = "Service" }; CellRendererText service_cell = new CellRendererText() { Ypad = 8 }; service_column.PackStart(service_cell, true); service_column.SetCellDataFunc(service_cell, new TreeCellDataFunc(RenderServiceColumn)); foreach (SparklePlugin plugin in Controller.Plugins) { store.AppendValues("", new Gdk.Pixbuf(plugin.ImagePath), "<span size=\"small\"><b>" + plugin.Name + "</b>\n" + "<span fgcolor=\"" + SecondaryTextColor + "\">" + plugin.Description + "</span>" + "</span>", plugin); } tree_view.AppendColumn(service_column); scrolled_window.Add(tree_view); Entry address_entry = new Entry() { Text = Controller.PreviousAddress, Sensitive = (Controller.SelectedPlugin.Address == null), ActivatesDefault = true }; Entry path_entry = new Entry() { Text = Controller.PreviousPath, Sensitive = (Controller.SelectedPlugin.Path == null), ActivatesDefault = true }; Label address_example = new Label() { Xalign = 0, UseMarkup = true, Markup = "<span size=\"small\" fgcolor=\"" + SecondaryTextColor + "\">" + Controller.SelectedPlugin.AddressExample + "</span>" }; Label path_example = new Label() { Xalign = 0, UseMarkup = true, Markup = "<span size=\"small\" fgcolor=\"" + SecondaryTextColor + "\">" + Controller.SelectedPlugin.PathExample + "</span>" }; TreeSelection default_selection = tree_view.Selection; TreePath default_path = new TreePath("" + Controller.SelectedPluginIndex); default_selection.SelectPath(default_path); tree_view.Model.Foreach(new TreeModelForeachFunc( delegate(ITreeModel model, TreePath path, TreeIter iter) { string address; try { address = (model.GetValue(iter, 2) as SparklePlugin).Address; } catch (NullReferenceException) { address = ""; } if (!string.IsNullOrEmpty(address) && address.Equals(Controller.PreviousAddress)) { tree_view.SetCursor(path, service_column, false); SparklePlugin plugin = (SparklePlugin)model.GetValue(iter, 2); if (plugin.Address != null) { address_entry.Sensitive = false; } if (plugin.Path != null) { path_entry.Sensitive = false; } return(true); } else { return(false); } } )); layout_address.PackStart(new Label() { Markup = "<b>" + "Address" + "</b>", Xalign = 0 }, true, true, 0); layout_address.PackStart(address_entry, false, false, 0); layout_address.PackStart(address_example, false, false, 0); path_entry.Changed += delegate { Controller.CheckAddPage(address_entry.Text, path_entry.Text, tree_view.SelectedRow); }; layout_path.PackStart(new Label() { Markup = "<b>" + "Remote Path" + "</b>", Xalign = 0 }, true, true, 0); layout_path.PackStart(path_entry, false, false, 0); layout_path.PackStart(path_example, false, false, 0); layout_fields.PackStart(layout_address, true, true, 0); layout_fields.PackStart(layout_path, true, true, 0); layout_vertical.PackStart(new Label(""), false, false, 0); layout_vertical.PackStart(scrolled_window, true, true, 0); layout_vertical.PackStart(layout_fields, false, false, 0); tree_view.ScrollToCell(new TreePath("" + Controller.SelectedPluginIndex), null, true, 0, 0); Add(layout_vertical); if (string.IsNullOrEmpty(path_entry.Text)) { address_entry.GrabFocus(); address_entry.Position = -1; } else { path_entry.GrabFocus(); path_entry.Position = -1; } Button cancel_button = new Button("Cancel"); Button add_button = new Button("Add") { Sensitive = false }; Controller.ChangeAddressFieldEvent += delegate(string text, string example_text, FieldState state) { Application.Invoke(delegate { address_entry.Text = text; address_entry.Sensitive = (state == FieldState.Enabled); address_example.Markup = "<span size=\"small\" fgcolor=\"" + SecondaryTextColor + "\">" + example_text + "</span>"; }); }; Controller.ChangePathFieldEvent += delegate(string text, string example_text, FieldState state) { Application.Invoke(delegate { path_entry.Text = text; path_entry.Sensitive = (state == FieldState.Enabled); path_example.Markup = "<span size=\"small\" fgcolor=\"" + SecondaryTextColor + "\">" + example_text + "</span>"; }); }; Controller.UpdateAddProjectButtonEvent += delegate(bool button_enabled) { Application.Invoke(delegate { add_button.Sensitive = button_enabled; }); }; tree_view.CursorChanged += delegate(object sender, EventArgs e) { Controller.SelectedPluginChanged(tree_view.SelectedRow); }; address_entry.Changed += delegate { Controller.CheckAddPage(address_entry.Text, path_entry.Text, tree_view.SelectedRow); }; cancel_button.Clicked += delegate { Controller.PageCancelled(); }; add_button.Clicked += delegate { Controller.AddPageCompleted(address_entry.Text, path_entry.Text); }; CheckButton check_button = new CheckButton("Fetch prior history") { Active = true }; check_button.Toggled += delegate { Controller.HistoryItemChanged(check_button.Active); }; AddOption(check_button); AddButton(cancel_button); AddButton(add_button); Controller.HistoryItemChanged(check_button.Active); Controller.CheckAddPage(address_entry.Text, path_entry.Text, 1); } if (type == PageType.Invite) { Header = "You’ve received an invite!"; Description = "Do you want to add this project to SparkleShare?"; Table table = new Table(2, 3, true) { RowSpacing = 6, ColumnSpacing = 6 }; Label address_label = new Label("Address:") { Xalign = 1 }; Label path_label = new Label("Remote Path:") { Xalign = 1 }; Label address_value = new Label("<b>" + Controller.PendingInvite.Address + "</b>") { UseMarkup = true, Xalign = 0 }; Label path_value = new Label("<b>" + Controller.PendingInvite.RemotePath + "</b>") { UseMarkup = true, Xalign = 0 }; table.Attach(address_label, 0, 1, 0, 1); table.Attach(address_value, 1, 2, 0, 1); table.Attach(path_label, 0, 1, 1, 2); table.Attach(path_value, 1, 2, 1, 2); VBox wrapper = new VBox(false, 9); wrapper.PackStart(table, true, false, 0); Button cancel_button = new Button("Cancel"); Button add_button = new Button("Add"); cancel_button.Clicked += delegate { Controller.PageCancelled(); }; add_button.Clicked += delegate { Controller.InvitePageCompleted(); }; AddButton(cancel_button); AddButton(add_button); Add(wrapper); } if (type == PageType.Syncing) { Header = String.Format("Adding project ‘{0}’…", Controller.SyncingFolder); Description = "This may take a while for large projects.\nIsn’t it coffee-o’clock?"; ProgressBar progress_bar = new ProgressBar(); progress_bar.Fraction = Controller.ProgressBarPercentage / 100; Button cancel_button = new Button() { Label = "Cancel" }; Button finish_button = new Button("Finish") { Sensitive = false }; Label progress_label = new Label("Preparing to fetch files…") { Justify = Justification.Right, Xalign = 1 }; Controller.UpdateProgressBarEvent += delegate(double percentage, string speed) { Application.Invoke(delegate { progress_bar.Fraction = percentage / 100; progress_label.Text = speed; }); }; cancel_button.Clicked += delegate { Controller.SyncingCancelled(); }; VBox bar_wrapper = new VBox(false, 0); bar_wrapper.PackStart(progress_bar, false, false, 21); bar_wrapper.PackStart(progress_label, false, true, 0); Add(bar_wrapper); AddButton(cancel_button); AddButton(finish_button); } if (type == PageType.Error) { Header = "Oops! Something went wrong" + "…"; VBox points = new VBox(false, 0); Image list_point_one = new Image(SparkleUIHelpers.GetIcon("list-point", 16)); Image list_point_two = new Image(SparkleUIHelpers.GetIcon("list-point", 16)); Image list_point_three = new Image(SparkleUIHelpers.GetIcon("list-point", 16)); Label label_one = new Label() { Markup = "<b>" + Controller.PreviousUrl + "</b> is the address we’ve compiled. " + "Does this look alright?", Wrap = true, Xalign = 0 }; Label label_two = new Label() { Text = "Is this computer’s Client ID known by the host?", Wrap = true, Xalign = 0 }; points.PackStart(new Label("Please check the following:") { Xalign = 0 }, false, false, 6); HBox point_one = new HBox(false, 0); point_one.PackStart(list_point_one, false, false, 0); point_one.PackStart(label_one, true, true, 12); points.PackStart(point_one, false, false, 12); HBox point_two = new HBox(false, 0); point_two.PackStart(list_point_two, false, false, 0); point_two.PackStart(label_two, true, true, 12); points.PackStart(point_two, false, false, 12); if (warnings.Length > 0) { string warnings_markup = ""; foreach (string warning in warnings) { warnings_markup += "\n<b>" + warning + "</b>"; } Label label_three = new Label() { Markup = "Here’s the raw error message:" + warnings_markup, Wrap = true, Xalign = 0 }; HBox point_three = new HBox(false, 0); point_three.PackStart(list_point_three, false, false, 0); point_three.PackStart(label_three, true, true, 12); points.PackStart(point_three, false, false, 12); } points.PackStart(new Label(""), true, true, 0); Button cancel_button = new Button("Cancel"); Button try_again_button = new Button("Try Again…") { Sensitive = true }; cancel_button.Clicked += delegate { Controller.PageCancelled(); }; try_again_button.Clicked += delegate { Controller.ErrorPageCompleted(); }; AddButton(cancel_button); AddButton(try_again_button); Add(points); } if (type == PageType.CryptoSetup || type == PageType.CryptoPassword) { if (type == PageType.CryptoSetup) { Header = "Set up file encryption"; Description = "Please a provide a strong password that you don’t use elsewhere."; } else { Header = "This project contains encrypted files"; Description = "Please enter the password to see their contents."; } Label password_label = new Label("<b>" + "Password" + "</b>") { UseMarkup = true, Xalign = 1 }; Entry password_entry = new Entry() { Xalign = 0, Visibility = false, ActivatesDefault = true }; CheckButton show_password_check_button = new CheckButton("Show password") { Active = false, Xalign = 0, }; Table table = new Table(2, 3, true) { RowSpacing = 6, ColumnSpacing = 6 }; table.Attach(password_label, 0, 1, 0, 1); table.Attach(password_entry, 1, 2, 0, 1); table.Attach(show_password_check_button, 1, 2, 1, 2); VBox wrapper = new VBox(false, 9); wrapper.PackStart(table, true, false, 0); Image warning_image = new Image( SparkleUIHelpers.GetIcon("dialog-information", 24)); Label warning_label = new Label() { Xalign = 0, Wrap = true, Text = "This password can’t be changed later, and your files can’t be recovered if it’s forgotten." }; HBox warning_layout = new HBox(false, 0); warning_layout.PackStart(warning_image, false, false, 15); warning_layout.PackStart(warning_label, true, true, 0); VBox warning_wrapper = new VBox(false, 0); warning_wrapper.PackStart(warning_layout, false, false, 15); if (type == PageType.CryptoSetup) { wrapper.PackStart(warning_wrapper, false, false, 0); } Button cancel_button = new Button("Cancel"); Button continue_button = new Button("Continue") { Sensitive = false }; Controller.UpdateCryptoSetupContinueButtonEvent += delegate(bool button_enabled) { Application.Invoke(delegate { continue_button.Sensitive = button_enabled; }); }; Controller.UpdateCryptoPasswordContinueButtonEvent += delegate(bool button_enabled) { Application.Invoke(delegate { continue_button.Sensitive = button_enabled; }); }; show_password_check_button.Toggled += delegate { password_entry.Visibility = !password_entry.Visibility; }; password_entry.Changed += delegate { if (type == PageType.CryptoSetup) { Controller.CheckCryptoSetupPage(password_entry.Text); } else { Controller.CheckCryptoPasswordPage(password_entry.Text); } }; cancel_button.Clicked += delegate { Controller.CryptoPageCancelled(); }; continue_button.Clicked += delegate { if (type == PageType.CryptoSetup) { Controller.CryptoSetupPageCompleted(password_entry.Text); } else { Controller.CryptoPasswordPageCompleted(password_entry.Text); } }; Add(wrapper); AddButton(cancel_button); AddButton(continue_button); password_entry.GrabFocus(); } if (type == PageType.Finished) { Header = "Your shared project is ready!"; Description = "You can find the files in your SparkleShare folder."; UrgencyHint = true; Button show_files_button = new Button("Show Files…"); Button finish_button = new Button("Finish"); show_files_button.Clicked += delegate { Controller.ShowFilesClicked(); }; finish_button.Clicked += delegate { Controller.FinishPageCompleted(); }; if (warnings.Length > 0) { Image warning_image = new Image(SparkleUIHelpers.GetIcon("dialog-information", 24)); Label warning_label = new Label(warnings [0]) { Xalign = 0, Wrap = true }; HBox warning_layout = new HBox(false, 0); warning_layout.PackStart(warning_image, false, false, 15); warning_layout.PackStart(warning_label, true, true, 0); VBox warning_wrapper = new VBox(false, 0); warning_wrapper.PackStart(warning_layout, false, false, 0); Add(warning_wrapper); } else { Add(null); } AddButton(show_files_button); AddButton(finish_button); } if (type == PageType.Tutorial) { switch (Controller.TutorialPageNumber) { case 1: { Header = "What’s happening next?"; Description = "SparkleShare creates a special folder on your computer " + "that will keep track of your projects."; Button skip_tutorial_button = new Button("Skip Tutorial"); Button continue_button = new Button("Continue"); skip_tutorial_button.Clicked += delegate { Controller.TutorialSkipped(); }; continue_button.Clicked += delegate { Controller.TutorialPageCompleted(); }; AddButton(skip_tutorial_button); AddButton(continue_button); break; } case 2: { Header = "Sharing files with others"; Description = "All files added to your project folders are synced automatically with " + "the host and your team members."; Button continue_button = new Button("Continue"); continue_button.Clicked += delegate { Controller.TutorialPageCompleted(); }; AddButton(continue_button); break; } case 3: { Header = "The status icon helps you"; Description = "It shows the syncing progress, provides easy access to " + "your projects, and lets you view recent changes."; Button continue_button = new Button("Continue"); continue_button.Clicked += delegate { Controller.TutorialPageCompleted(); }; AddButton(continue_button); break; } case 4: { Header = "Here’s your unique Client ID"; Description = "You’ll need it whenever you want to link this computer to a host. " + "You can also find it in the status icon menu."; Button finish_button = new Button("Finish"); VBox layout_vertical = new VBox(false, 0) { BorderWidth = 48 }; HBox layout_horizontal = new HBox(false, 6); Entry link_code_entry = new Entry() { Text = Program.Controller.CurrentUser.PublicKey, Sensitive = false }; Button copy_button = new Button(" Copy "); CheckButton check_button = new CheckButton("Add SparkleShare to startup items"); check_button.Active = true; copy_button.Clicked += delegate { Controller.CopyToClipboardClicked(); }; check_button.Toggled += delegate { Controller.StartupItemChanged(check_button.Active); }; finish_button.Clicked += delegate { Controller.TutorialPageCompleted(); }; layout_horizontal.PackStart(link_code_entry, true, true, 0); layout_horizontal.PackStart(copy_button, false, false, 0); layout_vertical.PackStart(new Label(""), true, true, 0); layout_vertical.PackStart(layout_horizontal, false, false, 0); layout_vertical.PackStart(new Label(""), true, true, 18); Add(layout_vertical); AddOption(check_button); AddButton(finish_button); break; } } if (Controller.TutorialPageNumber < 4) { Image slide = SparkleUIHelpers.GetImage("tutorial-slide-" + Controller.TutorialPageNumber + ".png"); Add(slide); } } }
public void Select(TreeIter row, TreeViewColumn col, bool addToCurrentCellSelection, bool notify = true) { Select(new CellLocation(row, col), addToCurrentCellSelection, notify); }
public ColumnMapping(FluentColumnsConfig <TNode> parentConfig, string title) { TreeViewColumn = new TreeViewColumn(); this.myConfig = parentConfig; TreeViewColumn.Title = title; }
/// <summary> /// Default constructor. Initialises intellisense popup, but doesn't display anything. /// </summary> public IntellisenseView() { completionForm = new Window(WindowType.Toplevel) { HeightRequest = 300, WidthRequest = 750, Decorated = false, SkipPagerHint = true, SkipTaskbarHint = true, }; Frame completionFrame = new Frame(); completionForm.Add(completionFrame); ScrolledWindow completionScroller = new ScrolledWindow(); completionFrame.Add(completionScroller); completionModel = new ListStore(typeof(Gdk.Pixbuf), typeof(string), typeof(string), typeof(string), typeof(string), typeof(string)); completionView = new TreeView(completionModel); completionScroller.Add(completionView); TreeViewColumn column = new TreeViewColumn() { Title = "Item", Resizable = true, }; CellRendererPixbuf iconRender = new CellRendererPixbuf(); column.PackStart(iconRender, false); CellRendererText textRender = new CellRendererText() { Editable = false, WidthChars = 25, Ellipsize = Pango.EllipsizeMode.End }; column.PackStart(textRender, true); column.SetAttributes(iconRender, "pixbuf", 0); column.SetAttributes(textRender, "text", 1); completionView.AppendColumn(column); textRender = new CellRendererText() { Editable = false, WidthChars = 10, Ellipsize = Pango.EllipsizeMode.End }; column = new TreeViewColumn("Units", textRender, "text", 2) { Resizable = true }; completionView.AppendColumn(column); textRender = new CellRendererText() { Editable = false, WidthChars = 15, Ellipsize = Pango.EllipsizeMode.End }; column = new TreeViewColumn("Type", textRender, "text", 3) { Resizable = true }; completionView.AppendColumn(column); textRender = new CellRendererText() { Editable = false, }; column = new TreeViewColumn("Descr", textRender, "text", 4) { Resizable = true }; completionView.AppendColumn(column); completionView.HasTooltip = true; completionView.TooltipColumn = 5; completionForm.FocusOutEvent += OnLeaveCompletion; completionView.ButtonPressEvent += OnButtonPress; completionView.KeyPressEvent += OnContextListKeyDown; completionView.KeyReleaseEvent += OnKeyRelease; }
void TaskToggleCellDataFunc(TreeViewColumn treeColumn, CellRenderer cell, TreeModel treeModel, TreeIter iter) { var crt = cell as CellRendererToggle; var task = model.GetValue (iter, 0) as ITask; crt.Active = task != null && task.State != TaskState.Active; }
public CodeIssuePanelWidget(string mimeType) { this.mimeType = mimeType; // ReSharper disable once DoNotCallOverridableMethodsInConstructor Build(); // ensure selected row remains visible treeviewInspections.SizeAllocated += (o, args) => { TreeIter iter; if (treeviewInspections.Selection.GetSelected(out iter)) { var path = treeviewInspections.Model.GetPath(iter); treeviewInspections.ScrollToCell(path, treeviewInspections.Columns[0], false, 0f, 0f); } }; treeviewInspections.TooltipColumn = 3; treeviewInspections.HasTooltip = true; var toggleRenderer = new CellRendererToggle(); toggleRenderer.Toggled += delegate(object o, ToggledArgs args) { TreeIter iter; if (treeStore.GetIterFromString(out iter, args.Path)) { var provider = (Tuple <CodeDiagnosticDescriptor, DiagnosticDescriptor>)treeStore.GetValue(iter, 1); enableState[provider] = !enableState[provider]; } }; var titleCol = new TreeViewColumn(); treeviewInspections.AppendColumn(titleCol); titleCol.PackStart(toggleRenderer, false); titleCol.Sizing = TreeViewColumnSizing.Autosize; titleCol.SetCellDataFunc(toggleRenderer, TitleColDataFunc); var cellRendererText = new CellRendererText { Ellipsize = Pango.EllipsizeMode.End }; titleCol.PackStart(cellRendererText, true); titleCol.AddAttribute(cellRendererText, "markup", 0); titleCol.Expand = true; searchentryFilter.ForceFilterButtonVisible = true; searchentryFilter.RoundedShape = true; searchentryFilter.HasFrame = true; searchentryFilter.Ready = true; searchentryFilter.Visible = true; searchentryFilter.Entry.Changed += ApplyFilter; var comboRenderer = new CustomCellRenderer { Alignment = Pango.Alignment.Center }; var col = treeviewInspections.AppendColumn("Severity", comboRenderer); col.Sizing = TreeViewColumnSizing.GrowOnly; col.MinWidth = 100; col.Expand = false; var comboBoxStore = new ListStore(typeof(string), typeof(DiagnosticSeverity)); comboBoxStore.AppendValues(GetDescription(DiagnosticSeverity.Hidden), DiagnosticSeverity.Hidden); comboBoxStore.AppendValues(GetDescription(DiagnosticSeverity.Error), DiagnosticSeverity.Error); comboBoxStore.AppendValues(GetDescription(DiagnosticSeverity.Warning), DiagnosticSeverity.Warning); comboBoxStore.AppendValues(GetDescription(DiagnosticSeverity.Info), DiagnosticSeverity.Info); comboRenderer.Model = comboBoxStore; comboRenderer.Mode = CellRendererMode.Activatable; comboRenderer.TextColumn = 0; comboRenderer.Editable = true; comboRenderer.HasEntry = false; comboRenderer.Edited += delegate(object o, EditedArgs args) { TreeIter iter; if (!treeStore.GetIterFromString(out iter, args.Path)) { return; } TreeIter storeIter; if (!comboBoxStore.GetIterFirst(out storeIter)) { return; } do { if ((string)comboBoxStore.GetValue(storeIter, 0) == args.NewText) { var provider = (Tuple <CodeDiagnosticDescriptor, DiagnosticDescriptor>)treeStore.GetValue(iter, 1); var severity = (DiagnosticSeverity)comboBoxStore.GetValue(storeIter, 1); severities[provider] = severity; return; } } while (comboBoxStore.IterNext(ref storeIter)); }; col.SetCellDataFunc(comboRenderer, ComboDataFunc); treeviewInspections.HeadersVisible = false; treeviewInspections.Model = treeStore; treeviewInspections.SearchColumn = -1; // disable the interactive search GetAllSeverities(); FillInspectors(null); }
public InputDocs() : base(Gtk.WindowType.Toplevel) { this.Build(); FieldLables = new Dictionary <int, Label>(); FieldWidgets = new Dictionary <int, object>(); FieldIcons = new Dictionary <int, Gtk.Image>(); ComboWorks.ComboFillReference(comboType, "doc_types", ComboWorks.ListMode.OnlyItems, false); ImageList = new ImageTreeStore(typeof(int), //0 - id typeof(string), //1 - Image Name typeof(string), //2 - full path typeof(Document), //3 - document typeof(Pixbuf), //4 - thumbnails typeof(Pixbuf), //5 - full image typeof(bool), //6 - IsImage typeof(string), //7 - Doc name typeof(string) //8 - Doc Icon Name ); TreeViewColumn ImageColumn = new TreeViewColumn(); var ImageCell = new ImageListCellRenderer(Pango.FontDescription.FromString("Tahoma 10"), IconSize.Menu); ImageCell.Xalign = 0; ImageColumn.PackStart(ImageCell, true); ImageColumn.AddAttribute(ImageCell, "pixbuf", 4); ImageColumn.AddAttribute(ImageCell, "text", 7); ImageColumn.AddAttribute(ImageCell, "IsImageRow", 6); ImageColumn.AddAttribute(ImageCell, "IconName", 8); treeviewImages.AppendColumn(ImageColumn); treeviewImages.Model = ImageList; treeviewImages.Reorderable = true; treeviewImages.TooltipColumn = 1; treeviewImages.ShowAll(); treeviewImages.Selection.Changed += OnTreeviewImagesSelectionChanged; NextDocNumber = 1; //Настраиваем сканирование logger.Debug("Initialaze scan"); //scan = new ScanAuxWorks(); try { scan = new ScanWorks(); scan.ScanerSetup = ScanerSetup.Native; scan.Pulse += OnScanWorksPulse; scan.ImageTransfer += OnScanWorksImageTransfer; var scanners = scan.GetScannerList(); if (scanners.Length > 0) { comboScaner.ItemsList = scanners; comboScaner.Active = scan.CurrentScanner; } else { comboScaner.Sensitive = ScanAction.Sensitive = false; } } catch (Exception ex) { logger.Error(ex, "Не удалось инициализировать подсистему сканирования."); comboScaner.Sensitive = ScanAction.Sensitive = false; } }
public LoadBankTransferDocumentDlg() { this.Build(); _uow = UnitOfWorkFactory.CreateWithoutRoot(); TabName = "Загрузка из банк-клиента"; var txtFilter = new FileFilter(); txtFilter.AddPattern("*.txt"); txtFilter.Name = "Текстовые файлы (*.txt)"; var allFilter = new FileFilter(); allFilter.AddPattern("*"); allFilter.Name = "Все файлы"; filechooser.AddFilter(txtFilter); filechooser.AddFilter(allFilter); labelDescription1.Markup = String.Format("<span background=\"{0}\"> </span> - объект будет создан", NeedToAdd); foreach (var category in _categoryRepository.ExpenseCategories(_uow)) { expenseCategories.AppendValues(category.Name, category); } foreach (var category in _categoryRepository.IncomeCategories(_uow)) { incomeCategories.AppendValues(category.Name, category); } TreeViewColumn checkColumn = new TreeViewColumn(); checkColumn.Title = ""; CellRendererToggle checkCell = new CellRendererToggle(); checkCell.Activatable = true; checkCell.Toggled += CheckCell_Toggled; checkColumn.PackStart(checkCell, true); checkColumn.AddAttribute(checkCell, "active", (int)Columns.CheckCol); TreeViewColumn numberColumn = new TreeViewColumn(); numberColumn.Title = "№"; CellRendererText numberCell = new CellRendererText(); numberCell.Background = EvenRowColor; numberColumn.PackStart(numberCell, true); numberColumn.AddAttribute(numberCell, "text", (int)Columns.NumberCol); TreeViewColumn dateColumn = new TreeViewColumn(); dateColumn.Title = "Дата"; CellRendererText dateCell = new CellRendererText(); dateColumn.PackStart(dateCell, true); dateColumn.AddAttribute(dateCell, "text", (int)Columns.DateCol); TreeViewColumn totalColumn = new TreeViewColumn(); totalColumn.Title = "Сумма"; CellRendererText totalCell = new CellRendererText(); totalCell.Background = EvenRowColor; totalColumn.PackStart(totalCell, true); totalColumn.AddAttribute(totalCell, "text", (int)Columns.TotalCol); TreeViewColumn payerColumn = new TreeViewColumn(); payerColumn.Title = "Плательщик"; CellRendererText payerCell = new CellRendererText(); payerCell.WidthChars = 40; payerColumn.PackStart(payerCell, true); payerColumn.AddAttribute(payerCell, "text", (int)Columns.PayerNameCol); payerColumn.AddAttribute(payerCell, "background", (int)Columns.PayerNameColorCol); payerColumn.Resizable = true; TreeViewColumn payerAccountColumn = new TreeViewColumn(); payerAccountColumn.Title = "Счет плательщика"; CellRendererText payerAccountCell = new CellRendererText(); payerAccountColumn.PackStart(payerAccountCell, true); payerAccountColumn.AddAttribute(payerAccountCell, "text", (int)Columns.PayerAccountCol); payerAccountColumn.AddAttribute(payerAccountCell, "background", (int)Columns.PayerAccountColorCol); payerAccountColumn.Visible = false; TreeViewColumn payerBankColumn = new TreeViewColumn(); payerBankColumn.Title = "Банк плательщика"; CellRendererText payerBankCell = new CellRendererText(); payerBankCell.WidthChars = 40; payerBankColumn.PackStart(payerBankCell, true); payerBankColumn.AddAttribute(payerBankCell, "text", (int)Columns.PayerBankCol); payerBankColumn.AddAttribute(payerBankCell, "background", (int)Columns.PayerBankColorCol); payerBankColumn.Resizable = true; payerBankColumn.Visible = false; TreeViewColumn recipientColumn = new TreeViewColumn(); recipientColumn.Title = "Получатель"; CellRendererText recipientCell = new CellRendererText(); recipientCell.WidthChars = 40; recipientColumn.PackStart(recipientCell, true); recipientColumn.AddAttribute(recipientCell, "text", (int)Columns.RecipientNameCol); recipientColumn.AddAttribute(recipientCell, "background", (int)Columns.RecipientNameColorCol); recipientColumn.Resizable = true; TreeViewColumn recipientAccountColumn = new TreeViewColumn(); recipientAccountColumn.Title = "Счет получателя"; CellRendererText recipientAccountCell = new CellRendererText(); recipientAccountColumn.PackStart(recipientAccountCell, true); recipientAccountColumn.AddAttribute(recipientAccountCell, "text", (int)Columns.RecipientAccountCol); recipientAccountColumn.AddAttribute(recipientAccountCell, "background", (int)Columns.RecipientAccountColorCol); recipientAccountColumn.Visible = false; TreeViewColumn recipientBankColumn = new TreeViewColumn(); recipientBankColumn.Title = "Банк получателя"; CellRendererText recipientBankCell = new CellRendererText(); recipientBankCell.WidthChars = 40; recipientBankColumn.PackStart(recipientBankCell, true); recipientBankColumn.AddAttribute(recipientBankCell, "text", (int)Columns.RecipientBankCol); recipientBankColumn.AddAttribute(recipientBankCell, "background", (int)Columns.RecipientBankColorCol); recipientBankColumn.Resizable = true; recipientBankColumn.Visible = false; TreeViewColumn paymentReasonColumn = new TreeViewColumn(); paymentReasonColumn.Title = "Назначение платежа"; CellRendererText paymentReasonCell = new CellRendererText(); paymentReasonCell.WidthChars = 40; paymentReasonColumn.PackStart(paymentReasonCell, true); paymentReasonColumn.AddAttribute(paymentReasonCell, "text", (int)Columns.PaymentReasonCol); paymentReasonColumn.Resizable = true; TreeViewColumn categoryColumn = new TreeViewColumn(); categoryColumn.Title = "Категория дохода/расхода"; CellRendererCombo categoryCombo = new CellRendererCombo(); categoryCombo.TextColumn = 0; categoryCombo.Editable = true; categoryCombo.HasEntry = false; categoryCombo.Edited += CategoryCombo_Edited; categoryColumn.PackStart(categoryCombo, true); categoryColumn.AddAttribute(categoryCombo, "model", (int)Columns.CategoryComboModel); categoryColumn.AddAttribute(categoryCombo, "text", (int)Columns.CategoryName); treeDocuments.AppendColumn(checkColumn); treeDocuments.AppendColumn(numberColumn); treeDocuments.AppendColumn(dateColumn); treeDocuments.AppendColumn(totalColumn); treeDocuments.AppendColumn(categoryColumn); treeDocuments.AppendColumn(payerColumn); treeDocuments.AppendColumn(payerAccountColumn); treeDocuments.AppendColumn(payerBankColumn); treeDocuments.AppendColumn(recipientColumn); treeDocuments.AppendColumn(recipientAccountColumn); treeDocuments.AppendColumn(recipientBankColumn); treeDocuments.AppendColumn(paymentReasonColumn); treeDocuments.Model = documents; treeDocuments.TooltipColumn = (int)Columns.PaymentReasonCol; buttonUpload.Sensitive = buttonReadFile.Sensitive = false; checkButtonAll.Sensitive = false; }
protected void MoveNumCellDataFunc(TreeViewColumn column, CellRenderer r, TreeModel model, TreeIter iter) { CellRendererText renderer = (CellRendererText) r; ChessMove move = (ChessMove) model.GetValue (iter, 0); renderer.Text = "" + move.moveIdx; }
void InitializeComponents() { iconView = new TemplateView(); iconView.ShowAll(); boxTemplates.PackStart(iconView, true, true, 0); catStore = new TreeStore(typeof(string), typeof(List <Category>), typeof(List <TemplateItem>)); TreeViewColumn treeViewColumn = new TreeViewColumn(); treeViewColumn.Title = "categories"; CellRenderer cellRenderer = new CellRendererText(); treeViewColumn.PackStart(cellRenderer, true); treeViewColumn.AddAttribute(cellRenderer, "text", 0); catView.AppendColumn(treeViewColumn); catStore.SetSortColumnId(0, SortType.Ascending); catView.Model = catStore; catView.SearchColumn = -1; // disable the interactive search okButton.Clicked += new EventHandler(OpenEvent); cancelButton.Clicked += new EventHandler(cancelClicked); nameEntry.Changed += new EventHandler(NameChanged); nameEntry.Activated += new EventHandler(OpenEvent); infoLabel.Text = string.Empty; labelTemplateTitle.Text = string.Empty; Project[] projects = null; if (parentProject == null) { projects = IdeApp.Workspace.GetAllProjects().ToArray(); } if (projects != null && projects.Length > 0) { Project curProject = IdeApp.ProjectOperations.CurrentSelectedProject; boxProject.Visible = true; projectAddCheckbox.Active = curProject != null; projectAddCheckbox.Toggled += new EventHandler(AddToProjectToggled); projectNames = new string[projects.Length]; projectRefs = new Project[projects.Length]; int i = 0; bool singleSolution = IdeApp.Workspace.Items.Count == 1 && IdeApp.Workspace.Items[0] is Solution; foreach (Project project in projects) { projectRefs[i] = project; if (singleSolution) { projectNames[i++] = project.Name; } else { projectNames[i++] = project.ParentSolution.Name + "/" + project.Name; } } Array.Sort(projectNames, projectRefs); i = Array.IndexOf(projectRefs, curProject); foreach (string pn in projectNames) { projectAddCombo.AppendText(pn); } projectAddCombo.Active = i != -1 ? i : 0; projectAddCombo.Sensitive = projectAddCheckbox.Active; projectAddCombo.Changed += new EventHandler(AddToProjectComboChanged); projectPathLabel.Sensitive = projectAddCheckbox.Active; projectFolderEntry.Sensitive = projectAddCheckbox.Active; if (curProject != null) { projectFolderEntry.Path = curProject.BaseDirectory; } projectFolderEntry.PathChanged += new EventHandler(AddToProjectPathChanged); if (curProject != null) { basePath = curProject.BaseDirectory; parentProject = curProject; } } else { boxProject.Visible = false; } catView.Selection.Changed += new EventHandler(CategoryChange); catView.RowActivated += new RowActivatedHandler(CategoryActivated); iconView.SelectionChanged += new EventHandler(SelectedTemplateChanged); iconView.DoubleClicked += new EventHandler(OpenEvent); InitializeDialog(false); InitializeView(); UpdateOkStatus(); }
protected void IdxCellDataFunc(TreeViewColumn col, CellRenderer r, TreeModel model, TreeIter iter) { CellRendererText renderer = (CellRendererText) r; TreePath path = model.GetPath (iter); renderer.Markup = "<b>" + (path.Indices[0] + 1) + ".</b>"; }
void TaskNameTextCellDataFunc(TreeViewColumn treeColumn, CellRenderer cell, TreeModel treeModel, TreeIter iter) { var crt = cell as CellRendererText; crt.Ellipsize = Pango.EllipsizeMode.End; var task = model.GetValue (iter, 0) as ITask; if (task == null) { crt.Text = string.Empty; return; } var formatString = "{0}"; var todayTasksColor = preferences.Get (PreferencesKeys.TodayTaskTextColor); var overdueTaskColor = preferences.Get (PreferencesKeys.OverdueTaskTextColor); if (!task.IsComplete && task.DueDate.Date == DateTime.Today.Date) crt.Foreground = todayTasksColor; // Overdue and the task has a date assigned to it. else if (!task.IsComplete && task.DueDate < DateTime.Today && task.DueDate != DateTime.MinValue) crt.Foreground = overdueTaskColor; switch (task.State) { // TODO: Reimplement the feature below // case TaskState.Active: // // Strikeout the text // var timer = timerCol.GetTimer (task); // if (timer != null && timer.State == TaskCompleteTimerState.Running) // formatString = "<span strikethrough=\"true\">{0}</span>"; // break; case TaskState.Discarded: case TaskState.Completed: // Gray out the text and add strikeout // TODO: Determine the grayed-out text color appropriate for the current theme formatString = "<span strikethrough=\"true\">{0}</span>"; crt.Foreground = "#AAAAAA"; break; } crt.Markup = string.Format (formatString, Markup.EscapeText (task.Text)); }
private void SetupTree() { gamesStore = new ListStore (typeof (object)); tree.Model = gamesStore; tree.HeadersVisible = false; filter = new TreeModelFilter (gamesStore, null); filter.VisibleFunc = SearchFilterFunc; TreeViewColumn col; col = new TreeViewColumn (); idx_renderer = new CellRendererText (); idx_renderer.Yalign = 0; info_renderer = new CellRendererText (); col.Title = Catalog.GetString ("Games"); col.PackStart (idx_renderer, false); col.SetCellDataFunc (idx_renderer, new TreeCellDataFunc (IdxCellDataFunc)); col.PackStart (info_renderer, true); col.SetCellDataFunc (info_renderer, new TreeCellDataFunc (InfoCellDataFunc)); col.Resizable = false; col.Expand = true; tree.AppendColumn (col); }
private void create_tree() { tree = new TreeView (); tree.Model = store; tree.HeadersVisible = false; //tree.HeadersClickable = true; CellRendererText renderer = new CellRendererText (); renderer.Yalign = 0; TreeViewColumn col = new TreeViewColumn (); //col.Title = Catalog.GetString ("Tournament"); col.PackStart (renderer, false); col.SetAttributes (renderer, "markup", 1); CellRendererText resultRenderer = new CellRendererText (); resultRenderer.Xpad = 5; resultRenderer.Yalign = 0; col.PackStart (resultRenderer, false); col.SetAttributes (resultRenderer, "markup", 2); tree.AppendColumn (col); tree.RowActivated += OnRowActivated; }
protected override void Initialize(IPadWindow window) { Id = "MonoDevelop.Debugger.BreakpointPad"; // Toolbar and menu definitions ActionCommand gotoCmd = new ActionCommand(LocalCommands.GoToFile, GettextCatalog.GetString("Go to File")); ActionCommand propertiesCmd = new ActionCommand(LocalCommands.Properties, GettextCatalog.GetString("Properties"), Gtk.Stock.Properties); menuSet = new CommandEntrySet(); menuSet.Add(gotoCmd); menuSet.AddSeparator(); menuSet.AddItem(DebugCommands.EnableDisableBreakpoint); menuSet.AddItem(DebugCommands.ClearAllBreakpoints); menuSet.AddItem(DebugCommands.DisableAllBreakpoints); menuSet.AddItem(EditCommands.DeleteKey); menuSet.AddSeparator(); menuSet.Add(propertiesCmd); CommandEntrySet toolbarSet = new CommandEntrySet(); toolbarSet.AddItem(DebugCommands.EnableDisableBreakpoint); toolbarSet.AddItem(DebugCommands.ClearAllBreakpoints); toolbarSet.AddItem(DebugCommands.DisableAllBreakpoints); toolbarSet.AddItem(EditCommands.Delete); toolbarSet.AddSeparator(); toolbarSet.Add(propertiesCmd); toolbarSet.AddSeparator(); toolbarSet.Add(new CommandEntry(DebugCommands.NewFunctionBreakpoint) { DisplayType = CommandEntryDisplayType.IconAndText }); toolbarSet.Add(new CommandEntry(DebugCommands.NewCatchpoint) { DisplayType = CommandEntryDisplayType.IconAndText }); // The breakpoint list store = new TreeStore(typeof(string), typeof(bool), typeof(string), typeof(object), typeof(string), typeof(string), typeof(string), typeof(string)); tree = new PadTreeView(); tree.Model = store; tree.RulesHint = true; tree.HeadersVisible = true; tree.DoPopupMenu = ShowPopup; tree.KeyPressEvent += OnKeyPressEvent; tree.Selection.Mode = SelectionMode.Multiple; treeState = new TreeViewState(tree, (int)Columns.Breakpoint); TreeViewColumn col = new TreeViewColumn(); CellRenderer crp = new CellRendererImage(); col.PackStart(crp, false); col.AddAttribute(crp, "stock_id", (int)Columns.Icon); tree.AppendColumn(col); Gtk.CellRendererToggle toggleRender = new Gtk.CellRendererToggle(); toggleRender.Toggled += new ToggledHandler(ItemToggled); col = new TreeViewColumn(); col.PackStart(toggleRender, false); col.AddAttribute(toggleRender, "active", (int)Columns.Selected); tree.AppendColumn(col); TreeViewColumn FrameCol = new TreeViewColumn(); CellRenderer crt = tree.TextRenderer; FrameCol.Title = GettextCatalog.GetString("Name"); FrameCol.PackStart(crt, true); FrameCol.AddAttribute(crt, "text", (int)Columns.FileName); FrameCol.Resizable = true; FrameCol.Alignment = 0.0f; tree.AppendColumn(FrameCol); col = tree.AppendColumn(GettextCatalog.GetString("Condition"), crt, "text", (int)Columns.Condition); col.Resizable = true; col = tree.AppendColumn(GettextCatalog.GetString("Trace Expression"), crt, "text", (int)Columns.TraceExp); col.Resizable = true; col = tree.AppendColumn(GettextCatalog.GetString("Hit Count"), crt, "text", (int)Columns.HitCount); col.Resizable = true; col = tree.AppendColumn(GettextCatalog.GetString("Last Trace"), crt, "text", (int)Columns.LastTrace); col.Resizable = true; sw = new Gtk.ScrolledWindow(); sw.ShadowType = ShadowType.None; sw.Add(tree); control = sw; control.ShowAll(); breakpoints = DebuggingService.Breakpoints; UpdateDisplay(); breakpoints.BreakpointAdded += OnBreakpointAdded; breakpoints.BreakpointRemoved += OnBreakpointRemoved; breakpoints.Changed += OnBreakpointChanged; breakpoints.BreakpointUpdated += OnBreakpointUpdated; DebuggingService.PausedEvent += OnDebuggerStatusCheck; DebuggingService.ResumedEvent += OnDebuggerStatusCheck; DebuggingService.StoppedEvent += OnDebuggerStatusCheck; tree.RowActivated += OnRowActivated; DockItemToolbar toolbar = window.GetToolbar(DockPositionType.Top); toolbar.Add(toolbarSet, sw); toolbar.ShowAll(); }
public StringListWidget() { treeview = new Gtk.TreeView(); treeview.HeadersVisible = false; PackStart(treeview, true, true, 0); ShowAll(); var col = new TreeViewColumn { MinWidth = CellRendererAddRemove.MinWidth, Resizable = true, Sizing = Gtk.TreeViewColumnSizing.Autosize }; var addRemoveRenderer = new CellRendererAddRemove(); col.PackStart(addRemoveRenderer, false); col.SetCellDataFunc(addRemoveRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) { if (treeStore.GetValue(iter, (int)ListColumn.Object) != null) { addRemoveRenderer.Action = CellRendererAddRemove.AddRemoveAction.Remove; } else { addRemoveRenderer.Action = CellRendererAddRemove.AddRemoveAction.Add; } }); addRemoveRenderer.RemoveClicked += delegate { TreeIter iter; bool hasSelection = treeview.Selection.GetSelected(out iter); PObject obj = null; if (hasSelection) { obj = (PObject)treeStore.GetValue(iter, (int)ListColumn.Object); treeStore.Remove(ref iter); editing = true; obj.Remove(); editing = false; } }; addRemoveRenderer.AddClicked += delegate { PObject obj = new PString(string.Empty); TreeIter iter; bool hasSelection = treeview.Selection.GetSelected(out iter); if (hasSelection) { treeStore.SetValues(iter, string.Empty, obj); AppendCreateNewEntry(); editing = true; array.Add(obj); editing = false; } }; treeview.AppendColumn(col); var valueRenderer = new CellRendererCombo(); valueRenderer.Mode = CellRendererMode.Editable; valueRenderer.TextColumn = (int)ListColumn.DisplayValue; valueRenderer.Edited += delegate(object o, EditedArgs args) { TreeIter iter; if (!treeStore.GetIterFromString(out iter, args.Path)) { return; } var pObject = (PObject)treeStore.GetValue(iter, (int)ListColumn.Object); if (pObject == null) { return; } string newValue = !string.IsNullOrEmpty(ValuePrefix) ? ValuePrefix + args.NewText : args.NewText; pObject.SetValue(newValue); }; treeview.AppendColumn(GettextCatalog.GetString("Value"), valueRenderer, delegate(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) { var text = (string)tree_model.GetValue(iter, (int)ListColumn.DisplayValue); var obj = (PObject)tree_model.GetValue(iter, (int)ListColumn.Object); var renderer = (CellRendererCombo)cell; renderer.Sensitive = obj != null; renderer.Editable = obj != null; renderer.Text = text; }); treeview.EnableGridLines = TreeViewGridLines.Horizontal; treeview.Model = treeStore; }
public TaskNameColumn() { TreeViewColumn = new TreeViewColumn { Title = Catalog.GetString ("Task Name"), Sizing = TreeViewColumnSizing.Autosize, Expand = true, Resizable = true }; // TODO: Add in code to determine how wide we should make the name // column. // TODO: Add in code to readjust the size of the name column if the // user resizes the Task Window. //column.FixedWidth = 250; var renderer = new CellRendererText { Editable = true }; renderer.EditingStarted += (o, args) => { TreeIter iter; var path = new TreePath (args.Path); if (!model.GetIter (out iter, path)) return; var task = model.GetValue (iter, 0) as ITask; if (task == null) return; taskBeingEdited = new TaskBeingEdited (task, iter, path); if (CellEditingStarted != null) CellEditingStarted (this, new TaskRowEditingEventArgs (task, iter, path)); }; renderer.EditingCanceled += delegate { EndCellEditing (); }; renderer.Edited += (o, args) => { TreeIter iter; var path = new TreePath (args.Path); if (model.GetIter (out iter, path)) { var task = model.GetValue (iter, 0) as ITask; if (task == null) return; var newText = args.NewText; // Attempt to derive due date information from text. if (preferences.GetBool (PreferencesKeys.ParseDateEnabledKey) && task.State == TaskState.Active && task.DueDate == DateTime.MinValue) { string parsedTaskText; DateTime parsedDueDate; TaskParser.Instance.TryParse (newText, out parsedTaskText, out parsedDueDate); if (parsedDueDate != DateTime.MinValue) task.DueDate = parsedDueDate; newText = parsedTaskText; } task.Text = newText; } EndCellEditing (); }; TreeViewColumn.PackStart (renderer, true); TreeViewColumn.SetCellDataFunc (renderer, TaskNameTextCellDataFunc); }
public ColumnMappingWidget(bool showCheckBoxes) { store = new ListStore(typeof(bool), typeof(ColumnContainer)); list = new TreeView(store); TreeViewColumn colName = new TreeViewColumn(); colName.Title = GettextCatalog.GetString("Name"); CellRendererToggle toggleRenderer = new CellRendererToggle(); toggleRenderer.Activatable = true; toggleRenderer.Toggled += new ToggledHandler(SelectToggled); colName.PackStart(toggleRenderer, false); CellRendererText nameRenderer = new CellRendererText(); colName.PackStart(nameRenderer, true); TreeViewColumn colType = new TreeViewColumn(); colType.Title = GettextCatalog.GetString("Type"); CellRendererText typeRenderer = new CellRendererText(); colType.PackStart(typeRenderer, true); TreeViewColumn colPropName = new TreeViewColumn(); colPropName.Title = GettextCatalog.GetString("Property Name"); CellRendererText propNameRenderer = new CellRendererText(); propNameRenderer.Editable = true; propNameRenderer.Edited += new EditedHandler(PropNameEdited); colPropName.PackStart(propNameRenderer, true); TreeViewColumn colPropType = new TreeViewColumn(); colPropType.Title = GettextCatalog.GetString("Property Type"); CellRendererTypeCombo propTypeRenderer = new CellRendererTypeCombo(); colPropType.PackStart(propTypeRenderer, true); TreeViewColumn colNullable = new TreeViewColumn(); colNullable.Title = GettextCatalog.GetString("Nullable"); CellRendererToggle nullableRenderer = new CellRendererToggle(); colNullable.PackStart(nullableRenderer, false); TreeViewColumn colSetter = new TreeViewColumn(); colSetter.Title = GettextCatalog.GetString("Create Setter"); CellRendererToggle setterRenderer = new CellRendererToggle(); setterRenderer.Activatable = true; setterRenderer.Toggled += new ToggledHandler(SetterToggled); colSetter.PackStart(setterRenderer, false); TreeViewColumn colCtor = new TreeViewColumn(); colCtor.Title = GettextCatalog.GetString("Ctor Parameter"); CellRendererToggle ctorParamRenderer = new CellRendererToggle(); ctorParamRenderer.Activatable = true; ctorParamRenderer.Toggled += new ToggledHandler(CtorParamToggled); colCtor.PackStart(ctorParamRenderer, false); colName.SetCellDataFunc(nameRenderer, new CellLayoutDataFunc(NameDataFunc)); colType.SetCellDataFunc(typeRenderer, new CellLayoutDataFunc(TypeDataFunc)); colPropName.SetCellDataFunc(propNameRenderer, new CellLayoutDataFunc(PropNameDataFunc)); colPropType.SetCellDataFunc(propTypeRenderer, new CellLayoutDataFunc(PropTypeDataFunc)); colNullable.SetCellDataFunc(nullableRenderer, new CellLayoutDataFunc(NullableDataFunc)); colSetter.SetCellDataFunc(setterRenderer, new CellLayoutDataFunc(SetterDataFunc)); colCtor.SetCellDataFunc(ctorParamRenderer, new CellLayoutDataFunc(CtorDataFunc)); list.AppendColumn(colName); list.AppendColumn(colType); list.AppendColumn(colPropName); list.AppendColumn(colPropType); list.AppendColumn(colNullable); list.AppendColumn(colSetter); list.AppendColumn(colCtor); list.HeadersVisible = true; this.Add(list); }
protected override void OnRowActivated(TreePath path, TreeViewColumn column) { var text = ClipboardItemStore.GetText(Model, path); RaiseItemsActivatedEvent(text); }
public CommitDialog(ChangeSet changeSet) { Build(); store = new ListStore(typeof(Gdk.Pixbuf), typeof(string), typeof(string), typeof(bool), typeof(object)); fileList.Model = store; this.changeSet = changeSet; oldMessage = changeSet.GlobalComment; CellRendererText crt = new CellRendererText(); var crp = new CellRendererPixbuf(); TreeViewColumn colStatus = new TreeViewColumn(); colStatus.Title = GettextCatalog.GetString("Status"); colStatus.PackStart(crp, false); colStatus.PackStart(crt, true); colStatus.Spacing = 2; colStatus.AddAttribute(crp, "pixbuf", 0); colStatus.AddAttribute(crt, "text", 1); CellRendererToggle cellToggle = new CellRendererToggle(); cellToggle.Toggled += new ToggledHandler(OnCommitToggledHandler); TreeViewColumn colCommit = new TreeViewColumn("", cellToggle, "active", 3); TreeViewColumn colFile = new TreeViewColumn(GettextCatalog.GetString("File"), new CellRendererText(), "text", 2); fileList.AppendColumn(colCommit); fileList.AppendColumn(colStatus); fileList.AppendColumn(colFile); colCommit.Visible = false; object[] exts = AddinManager.GetExtensionObjects("/MonoDevelop/VersionControl/CommitDialogExtensions", false); bool separatorRequired = false; foreach (object ob in exts) { CommitDialogExtension ext = ob as CommitDialogExtension; if (ext == null) { MessageService.ShowError("Commit extension type " + ob.GetType() + " must be a subclass of CommitDialogExtension"); continue; } if (ext.Initialize(changeSet)) { if (separatorRequired) { HSeparator sep = new HSeparator(); sep.Show(); vboxExtensions.PackEnd(sep, false, false, 0); } vboxExtensions.PackEnd(ext, false, false, 0); extensions.Add(ext); ext.AllowCommitChanged += HandleAllowCommitChanged; separatorRequired = true; } else { ext.Destroy(); } } HandleAllowCommitChanged(null, null); foreach (ChangeSetItem info in changeSet.Items) { Gdk.Pixbuf statusicon = VersionControlService.LoadIconForStatus(info.Status); string lstatus = VersionControlService.GetStatusLabel(info.Status); string localpath = (!info.LocalPath.IsChildPathOf(changeSet.BaseLocalPath)? ".": (string)info.LocalPath.ToRelative(changeSet.BaseLocalPath)); if (localpath.Length > 0 && localpath[0] == System.IO.Path.DirectorySeparatorChar) { localpath = localpath.Substring(1); } if (localpath == "") { localpath = "."; // not sure if this happens } store.AppendValues(statusicon, lstatus, localpath, true, info); selected.Add(info.LocalPath); } if (string.IsNullOrEmpty(changeSet.GlobalComment)) { AuthorInformation aInfo; CommitMessageFormat fmt = VersionControlService.GetCommitMessageFormat(changeSet, out aInfo); Message = changeSet.GenerateGlobalComment(fmt, aInfo); } else { Message = changeSet.GlobalComment; } textview.Buffer.Changed += OnTextChanged; // Focus the text view and move the insert point to the begining. Makes it easier to insert // a comment header. textview.Buffer.MoveMark(textview.Buffer.InsertMark, textview.Buffer.StartIter); textview.Buffer.MoveMark(textview.Buffer.SelectionBound, textview.Buffer.StartIter); textview.GrabFocus(); }
private void LoadedStatusCellDataFunc(TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) { CellRendererToggle r = (CellRendererToggle) cell; PluginInfo info = (PluginInfo) model.GetValue (iter, 0); r.Active = info.Loaded; }
public SparkleSetup() : base() { SecondaryTextColor = SparkleUIHelpers.GdkColorToHex(Style.Foreground(StateType.Insensitive)); SecondaryTextColorSelected = SparkleUIHelpers.GdkColorToHex( MixColors( new TreeView().Style.Foreground(StateType.Selected), new TreeView().Style.Background(StateType.Selected), 0.15 ) ); Controller.ChangePageEvent += delegate(PageType type, string [] warnings) { Application.Invoke(delegate { Reset(); switch (type) { case PageType.Setup: { Header = _("Welcome to SparkleShare!"); Description = "We'll need some info to mark your changes in the event log. " + "Don't worry, this stays between you and your peers."; Table = new Table(4, 2, true) { RowSpacing = 6 }; Label name_label = new Label("<b>" + _("Full Name:") + "</b>") { UseMarkup = true, Xalign = 0 }; NameEntry = new Entry(Controller.GuessedUserName); NameEntry.Changed += delegate { Controller.CheckSetupPage(NameEntry.Text, EmailEntry.Text); }; EmailEntry = new Entry(Controller.GuessedUserEmail); EmailEntry.Changed += delegate { Controller.CheckSetupPage(NameEntry.Text, EmailEntry.Text); }; Label email_label = new Label("<b>" + _("Email:") + "</b>") { UseMarkup = true, Xalign = 0 }; Table.Attach(name_label, 0, 1, 0, 1); Table.Attach(NameEntry, 1, 2, 0, 1); Table.Attach(email_label, 0, 1, 1, 2); Table.Attach(EmailEntry, 1, 2, 1, 2); NextButton = new Button(_("Next")) { Sensitive = false }; NextButton.Clicked += delegate(object o, EventArgs args) { string full_name = NameEntry.Text; string email = EmailEntry.Text; Controller.SetupPageCompleted(full_name, email); }; AddButton(NextButton); Add(Table); Controller.UpdateSetupContinueButtonEvent += delegate(bool button_enabled) { Application.Invoke(delegate { NextButton.Sensitive = button_enabled; }); }; Controller.CheckSetupPage(NameEntry.Text, EmailEntry.Text); break; } case PageType.Add: { Header = _("Where's your project hosted?"); VBox layout_vertical = new VBox(false, 12); HBox layout_fields = new HBox(true, 12); VBox layout_address = new VBox(true, 0); VBox layout_path = new VBox(true, 0); ListStore store = new ListStore(typeof(Gdk.Pixbuf), typeof(string), typeof(SparklePlugin)); SparkleTreeView tree = new SparkleTreeView(store) { HeadersVisible = false }; ScrolledWindow scrolled_window = new ScrolledWindow(); scrolled_window.AddWithViewport(tree); // Icon column tree.AppendColumn("Icon", new Gtk.CellRendererPixbuf(), "pixbuf", 0); tree.Columns [0].Cells [0].Xpad = 6; // Service column TreeViewColumn service_column = new TreeViewColumn() { Title = "Service" }; CellRendererText service_cell = new CellRendererText() { Ypad = 4 }; service_column.PackStart(service_cell, true); service_column.SetCellDataFunc(service_cell, new TreeCellDataFunc(RenderServiceColumn)); foreach (SparklePlugin plugin in Controller.Plugins) { store.AppendValues( new Gdk.Pixbuf(plugin.ImagePath), "<span size=\"small\"><b>" + plugin.Name + "</b>\n" + "<span fgcolor=\"" + SecondaryTextColorSelected + "\">" + plugin.Description + "</span>" + "</span>", plugin); } tree.AppendColumn(service_column); PathEntry = new SparkleEntry(); AddressEntry = new SparkleEntry(); // Select the first plugin by default TreeSelection default_selection = tree.Selection; TreePath default_path = new TreePath("0"); default_selection.SelectPath(default_path); Controller.SelectedPluginChanged(0); Controller.ChangeAddressFieldEvent += delegate(string text, string example_text, FieldState state) { Console.WriteLine("> " + text); Application.Invoke(delegate { AddressEntry.Text = text; AddressEntry.Sensitive = (state == FieldState.Enabled); if (string.IsNullOrEmpty(example_text)) { AddressEntry.ExampleText = null; } else { AddressEntry.ExampleText = example_text; } if (string.IsNullOrEmpty(text)) { AddressEntry.ExampleTextActive = true; } else { AddressEntry.ExampleTextActive = false; } }); }; Controller.ChangePathFieldEvent += delegate(string text, string example_text, FieldState state) { Application.Invoke(delegate { PathEntry.Text = text; PathEntry.Sensitive = (state == FieldState.Enabled); if (string.IsNullOrEmpty(example_text)) { PathEntry.ExampleText = null; } else { PathEntry.ExampleText = example_text; } if (string.IsNullOrEmpty(text)) { PathEntry.ExampleTextActive = true; } else { PathEntry.ExampleTextActive = false; } }); }; // Update the address field text when the selection changes tree.CursorChanged += delegate(object sender, EventArgs e) { Controller.SelectedPluginChanged(tree.SelectedRow); // TODO: Scroll to selected row when using arrow keys }; tree.Model.Foreach(new TreeModelForeachFunc(delegate(TreeModel model, TreePath path, TreeIter iter) { string address; try { address = (model.GetValue(iter, 2) as SparklePlugin).Address; } catch (NullReferenceException) { address = ""; } if (!string.IsNullOrEmpty(address) && address.Equals(Controller.PreviousAddress)) { tree.SetCursor(path, service_column, false); SparklePlugin plugin = (SparklePlugin)model.GetValue(iter, 2); if (plugin.Address != null) { AddressEntry.Sensitive = false; } if (plugin.Path != null) { PathEntry.Sensitive = false; } // TODO: Scroll to the selection return(true); } else { return(false); } })); AddressEntry.Completion = new EntryCompletion(); ListStore server_store = new ListStore(typeof(string)); foreach (string host in Program.Controller.PreviousHosts) { server_store.AppendValues(host); } AddressEntry.Completion.Model = server_store; AddressEntry.Completion.TextColumn = 0; AddressEntry.Changed += delegate { Controller.CheckAddPage(AddressEntry.Text, PathEntry.Text, tree.SelectedRow); }; layout_address.PackStart(new Label() { Markup = "<b>" + _("Address") + "</b>", Xalign = 0 }, true, true, 0); layout_address.PackStart(AddressEntry, true, true, 0); PathEntry.Completion = new EntryCompletion(); ListStore folder_store = new ListStore(typeof(string)); //foreach (string host in Program.Controller.FolderPaths) // folder_store.AppendValues (host); PathEntry.Completion.Model = folder_store; PathEntry.Completion.TextColumn = 0; PathEntry.Changed += delegate { Controller.CheckAddPage(AddressEntry.Text, PathEntry.Text, tree.SelectedRow); }; layout_path.PackStart(new Label() { Markup = "<b>" + _("Remote Path") + "</b>", Xalign = 0 }, true, true, 0); layout_path.PackStart(PathEntry, true, true, 0); layout_fields.PackStart(layout_address); layout_fields.PackStart(layout_path); layout_vertical.PackStart(new Label(""), false, false, 0); layout_vertical.PackStart(scrolled_window, true, true, 0); layout_vertical.PackStart(layout_fields, false, false, 0); Add(layout_vertical); // Cancel button Button cancel_button = new Button(_("Cancel")); cancel_button.Clicked += delegate { Close(); }; // Sync button SyncButton = new Button(_("Add")); SyncButton.Clicked += delegate { string server = AddressEntry.Text; string folder_name = PathEntry.Text; Controller.AddPageCompleted(server, folder_name); }; AddButton(cancel_button); AddButton(SyncButton); Controller.CheckAddPage(AddressEntry.Text, PathEntry.Text, tree.SelectedRow); break; } case PageType.Syncing: { Header = String.Format(_("Adding project ‘{0}’…"), Controller.SyncingFolder); Description = _("This may take a while.") + Environment.NewLine + _("Are you sure it’s not coffee o'clock?"); Button finish_button = new Button() { Sensitive = false, Label = _("Finish") }; Button cancel_button = new Button() { Label = _("Cancel") }; cancel_button.Clicked += delegate { Controller.SyncingCancelled(); }; AddButton(cancel_button); AddButton(finish_button); Controller.UpdateProgressBarEvent += delegate(double percentage) { Application.Invoke(delegate { this.progress_bar.Fraction = percentage / 100; }); }; if (this.progress_bar.Parent != null) { (this.progress_bar.Parent as Container).Remove(this.progress_bar); } VBox bar_wrapper = new VBox(false, 0); bar_wrapper.PackStart(this.progress_bar, false, false, 0); Add(bar_wrapper); break; } case PageType.Error: { Header = _("Something went wrong") + "…"; VBox points = new VBox(false, 0); Image list_point_one = new Image(SparkleUIHelpers.GetIcon("list-point", 16)) { }; Image list_point_two = new Image(SparkleUIHelpers.GetIcon("list-point", 16)) { }; Image list_point_three = new Image(SparkleUIHelpers.GetIcon("list-point", 16)) { }; Label label_one = new Label() { Text = "First, have you tried turning it off and on again?", Wrap = true, Xalign = 0 }; Label label_two = new Label() { Markup = "<b>" + Controller.PreviousUrl + "</b> is the address we've compiled. " + "Does this look alright?", Wrap = true, Xalign = 0 }; Label label_three = new Label() { Text = "The host needs to know who you are. Did you upload the key that's in " + "your SparkleShare folder?", Wrap = true, Xalign = 0 }; points.PackStart(new Label("Please check the following:") { Xalign = 0 }, false, false, 6); HBox point_one = new HBox(false, 0); point_one.PackStart(list_point_one, false, false, 0); point_one.PackStart(label_one, true, true, 12); points.PackStart(point_one, false, false, 12); HBox point_two = new HBox(false, 0); point_two.PackStart(list_point_two, false, false, 0); point_two.PackStart(label_two, true, true, 12); points.PackStart(point_two, false, false, 12); HBox point_three = new HBox(false, 0); point_three.PackStart(list_point_three, false, false, 0); point_three.PackStart(label_three, true, true, 12); points.PackStart(point_three, false, false, 12); points.PackStart(new Label(""), true, true, 0); Button try_again_button = new Button(_("Try Again…")) { Sensitive = true }; try_again_button.Clicked += delegate { Controller.ErrorPageCompleted(); }; AddButton(try_again_button); Add(points); break; } case PageType.Finished: { UrgencyHint = true; if (!HasToplevelFocus) { string title = String.Format(_("‘{0}’ has been successfully added"), Controller.SyncingFolder); string subtext = ""; SparkleUI.Bubbles.Controller.ShowBubble(title, subtext, null); } Header = _("Project successfully added!"); Description = _("Access the files from your SparkleShare folder."); // A button that opens the synced folder Button open_folder_button = new Button(_("Open Folder")); open_folder_button.Clicked += delegate { Program.Controller.OpenSparkleShareFolder(Controller.SyncingFolder); }; Button finish_button = new Button(_("Finish")); finish_button.Clicked += delegate { Controller.FinishedPageCompleted(); Close(); }; if (warnings != null) { Image warning_image = new Image(SparkleUIHelpers.GetIcon("dialog-warning", 24)); Label warning_label = new Label(warnings [0]) { Xalign = 0 }; HBox warning_layout = new HBox(false, 0); warning_layout.PackStart(warning_image, false, false, 0); warning_layout.PackStart(warning_label, true, true, 0); Add(warning_layout); } else { Add(null); } AddButton(open_folder_button); AddButton(finish_button); break; } case PageType.Tutorial: { switch (Controller.TutorialPageNumber) { case 1: { Header = _("What's happening next?"); Description = _("SparkleShare creates a special folder in your personal folder " + "that will keep track of your projects."); Button skip_tutorial_button = new Button(_("Skip Tutorial")); skip_tutorial_button.Clicked += delegate { Controller.TutorialSkipped(); }; Button continue_button = new Button(_("Continue")); continue_button.Clicked += delegate { Controller.TutorialPageCompleted(); }; Image slide = SparkleUIHelpers.GetImage("tutorial-slide-1.png"); Add(slide); AddButton(skip_tutorial_button); AddButton(continue_button); break; } case 2: { Header = _("Sharing files with others"); Description = _("All files added to your project folders are synced with the host " + "automatically, as well as with your collaborators."); Button continue_button = new Button(_("Continue")); continue_button.Clicked += delegate { Controller.TutorialPageCompleted(); }; Image slide = SparkleUIHelpers.GetImage("tutorial-slide-2.png"); Add(slide); AddButton(continue_button); break; } case 3: { Header = _("The status icon is here to help"); Description = _("It shows the syncing process status, " + "and contains links to your projects and the event log."); Button continue_button = new Button(_("Continue")); continue_button.Clicked += delegate { Controller.TutorialPageCompleted(); }; Image slide = SparkleUIHelpers.GetImage("tutorial-slide-3.png"); Add(slide); AddButton(continue_button); break; } case 4: { Header = _("Adding projects to SparkleShare"); Description = _("Just click this button when you see it on the web, and " + "the project will be automatically added:"); Label label = new Label(_("…or select <b>‘Add Hosted Project…’</b> from the status icon menu " + "to add one by hand.")) { Wrap = true, Xalign = 0, UseMarkup = true }; Image slide = SparkleUIHelpers.GetImage("tutorial-slide-4.png"); Button finish_button = new Button(_("Finish")); finish_button.Clicked += delegate { Close(); }; VBox box = new VBox(false, 0); box.Add(slide); box.Add(label); Add(box); AddButton(finish_button); break; } } break; } } ShowAll(); }); }; }
public DueDateColumn() { TreeViewColumn = new TreeViewColumn { Title = Catalog.GetString ("Due Date"), Sizing = TreeViewColumnSizing.Fixed, Alignment = 0f, FixedWidth = 90, Resizable = false, Clickable = true }; var dueDateStore = new ListStore (typeof (string)); var today = DateTime.Now; dueDateStore.AppendValues ( today.ToString (Catalog.GetString ("M/d - ")) + Catalog.GetString ("Today")); dueDateStore.AppendValues ( today.AddDays (1).ToString (Catalog.GetString ("M/d - ")) + Catalog.GetString ("Tomorrow")); dueDateStore.AppendValues ( today.AddDays (2).ToString (Catalog.GetString ("M/d - ddd"))); dueDateStore.AppendValues ( today.AddDays (3).ToString (Catalog.GetString ("M/d - ddd"))); dueDateStore.AppendValues ( today.AddDays (4).ToString (Catalog.GetString ("M/d - ddd"))); dueDateStore.AppendValues ( today.AddDays (5).ToString (Catalog.GetString ("M/d - ddd"))); dueDateStore.AppendValues ( today.AddDays (6).ToString (Catalog.GetString ("M/d - ddd"))); dueDateStore.AppendValues ( today.AddDays (7).ToString (Catalog.GetString ("M/d - ")) + Catalog.GetString ("In 1 Week")); dueDateStore.AppendValues (Catalog.GetString ("No Date")); dueDateStore.AppendValues (Catalog.GetString ("Choose Date...")); var renderer = new CellRendererCombo { Editable = true, HasEntry = false, Model = dueDateStore, TextColumn = 0, Xalign = 0.0f }; renderer.EditingStarted += (o, args) => { TreeIter iter; var path = new TreePath (args.Path); if (!model.GetIter (out iter, path)) return; var task = model.GetValue (iter, 0) as ITask; if (task == null) return; taskBeingEdited = new TaskBeingEdited (task, iter, path); if (CellEditingStarted != null) CellEditingStarted (this, new TaskRowEditingEventArgs (task, iter, path)); }; renderer.EditingCanceled += delegate { EndCellEditing (); }; renderer.Edited += (o, args) => { TreeIter iter; var path = new TreePath (args.Path); var newText = args.NewText; if (newText != null && model.GetIter (out iter, path)) { // 2/11 - Today // 2/12 - Tomorrow // 2/13 - Wed // 2/14 - Thu // 2/15 - Fri // 2/16 - Sat // 2/17 - Sun // -------------- // 2/18 - In 1 Week // -------------- // No Date // --------------- // Choose Date... var newDate = DateTime.MinValue; var tday = DateTime.Now; var task = model.GetValue (iter, 0) as ITask; if (newText == tday.ToString (Catalog.GetString ("M/d - ")) + Catalog.GetString ("Today")) newDate = tday; else if (newText == tday.AddDays (1).ToString (Catalog.GetString ("M/d - ")) + Catalog.GetString ("Tomorrow")) newDate = tday.AddDays (1); else if (newText == Catalog.GetString ("No Date")) newDate = DateTime.MinValue; else if (newText == tday.AddDays (7).ToString (Catalog.GetString ("M/d - ")) + Catalog.GetString ("In 1 Week")) newDate = tday.AddDays (7); else if (newText == Catalog.GetString ("Choose Date...")) { var tc = new TaskCalendar (task, view.TreeView.Parent); tc.ShowCalendar (); return; } else { for (int i = 2; i <= 6; i++) { DateTime testDate = tday.AddDays (i); if (testDate.ToString (Catalog.GetString ("M/d - ddd")) == newText) { newDate = testDate; break; } } } Logger.Debug ("task.State {0}", task.State); if (task.State != TaskState.Completed) { // Modify the due date task.DueDate = newDate; } } EndCellEditing (); }; TreeViewColumn.PackStart (renderer, true); TreeViewColumn.SetCellDataFunc (renderer, DueDateCellDataFunc); }
// void ResultLineDataFunc (TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) // { // if (TreeIter.Zero.Equals (iter)) // return; // var lineRenderer = (CellRendererText)cell; // var searchResult = (SearchResult)store.GetValue (iter, SearchResultColumn); // if (searchResult == null) // return; // // Document doc = GetDocument (searchResult); // int lineNr = doc.OffsetToLineNumber (searchResult.Offset) + 1; // bool didRead = (bool)store.GetValue (iter, DidReadColumn); // lineRenderer.Markup = MarkupText (lineNr.ToString (), didRead); // } // void ResultTextDataFunc(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) { if (TreeIter.Zero.Equals(iter)) { return; } var textRenderer = (CellRendererText)cell; var searchResult = (SearchResult)store.GetValue(iter, SearchResultColumn); if (searchResult == null || searchResult.Offset < 0) { textRenderer.Markup = "Invalid search result"; return; } var doc = GetDocument(searchResult); if (doc == null) { textRenderer.Markup = "Can't create document for:" + searchResult.FileName; return; } bool isSelected = treeviewSearchResults.Selection.IterIsSelected(iter); if (searchResult.Markup == null) { if (searchResult.LineNumber <= 0) { searchResult.LineNumber = doc.OffsetToLineNumber(searchResult.Offset); } DocumentLine line = doc.GetLine(searchResult.LineNumber); if (line == null) { textRenderer.Markup = "Invalid line number " + searchResult.LineNumber + " from offset: " + searchResult.Offset; return; } int indent = line.GetIndentation(doc).Length; var data = new Mono.TextEditor.TextEditorData(doc); data.ColorStyle = highlightStyle; var lineText = doc.GetTextAt(line.Offset + indent, line.Length - indent); int col = searchResult.Offset - line.Offset - indent; // search result contained part of the indent. if (col + searchResult.Length < lineText.Length) { lineText = doc.GetTextAt(line.Offset, line.Length); } var markup = doc.SyntaxMode != null? data.GetMarkup(line.Offset + indent, line.Length - indent, true, !isSelected, false) : GLib.Markup.EscapeText(lineText); searchResult.Markup = AdjustColors(markup.Replace("\t", new string (' ', TextEditorOptions.DefaultOptions.TabSize))); if (col >= 0) { uint start; uint end; try { start = (uint)TextViewMargin.TranslateIndexToUTF8(lineText, col); end = (uint)TextViewMargin.TranslateIndexToUTF8(lineText, Math.Min(lineText.Length, col + searchResult.Length)); } catch (Exception e) { LoggingService.LogError("Exception while translating index to utf8 (column was:" + col + " search result length:" + searchResult.Length + " line text:" + lineText + ")", e); return; } searchResult.StartIndex = start; searchResult.EndIndex = end; } } try { textRenderer.Markup = searchResult.Markup; if (!isSelected) { var searchColor = searchResult.GetBackgroundMarkerColor(highlightStyle).Color; double b1 = Mono.TextEditor.HslColor.Brightness(searchColor); double b2 = Mono.TextEditor.HslColor.Brightness(AdjustColor(Style.Base(StateType.Normal), (Mono.TextEditor.HslColor)highlightStyle.PlainText.Foreground)); double delta = Math.Abs(b1 - b2); if (delta < 0.1) { Mono.TextEditor.HslColor color1 = highlightStyle.SearchResult.Color; if (color1.L + 0.5 > 1.0) { color1.L -= 0.5; } else { color1.L += 0.5; } searchColor = color1; } if (searchResult.StartIndex != searchResult.EndIndex) { var attr = new Pango.AttrBackground((ushort)(searchColor.R * ushort.MaxValue), (ushort)(searchColor.G * ushort.MaxValue), (ushort)(searchColor.B * ushort.MaxValue)); attr.StartIndex = searchResult.StartIndex; attr.EndIndex = searchResult.EndIndex; using (var list = textRenderer.Attributes.Copy()) { list.Insert(attr); textRenderer.Attributes = list; } } } } catch (Exception e) { LoggingService.LogError("Error whil setting the text renderer markup to: " + searchResult.Markup, e); } }