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); }
private void HistoryRenderText(TreeViewColumn column, CellRenderer cell, ITreeModel model, TreeIter iter) { var item = (BaseHistoryItem)model.GetValue(iter, 0); if (item.State == HistoryItemState.Undo) { ((CellRendererText)cell).Style = Pango.Style.Normal; ((CellRendererText)cell).Foreground = "black"; ((CellRendererText)cell).Text = item.Text; } else if (item.State == HistoryItemState.Redo) { ((CellRendererText)cell).Style = Pango.Style.Oblique; ((CellRendererText)cell).Foreground = "gray"; ((CellRendererText)cell).Text = item.Text; } }
private void ShowAutoConnectToggle(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) { CellRendererToggle toggleCell = (CellRendererToggle)cell; if (((TreeStore)model).IterDepth(iter) > 0) { TrustedNodeInfo node = (TrustedNodeInfo)model.GetValue(iter, 0); toggleCell.Active = node.AllowAutoConnect; toggleCell.Activatable = true; toggleCell.Visible = true; } else { toggleCell.Visible = false; } }
private void ShowAutoConnectName(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) { CellRendererText textCell = (CellRendererText)cell; if (((TreeStore)model).IterDepth(iter) == 0) { NetworkInfo networkInfo = (NetworkInfo)model.GetValue(iter, 0); textCell.Markup = String.Format("<b>{0}</b>", GLib.Markup.EscapeText(networkInfo.NetworkName)); } else { TrustedNodeInfo node = (TrustedNodeInfo)model.GetValue(iter, 0); textCell.Markup = String.Format("{0} <span size=\"small\" foreground=\"#666666\">({1})</span>", node.Identifier, node.NodeID); } }
public void OnSetGridData(TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) { TreePath path = model.GetPath(iter); int row = path.Indices[0]; if (cell is CellRendererText) { if (row == 1 || row == 2) { (cell as CellRendererText).Background = "lightgray"; } else { (cell as CellRendererText).Background = "white"; } } }
private void RenderTradesSide(TreeViewColumn tree_column, CellRenderer cell, TreeModel model, TreeIter iter) { var order = model.GetValue(iter, 0) as Order; if (order != null) { if (order.Side == TradeSide.Buy) { (cell as CellRendererText).ForegroundGdk = bullColor; } else { (cell as CellRendererText).ForegroundGdk = bearColor; } (cell as CellRendererText).Text = order.Side.ToString(); } }
private void ToFromFunc(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) { var info = (MessageInfo)tree_model.GetValue(iter, 0); if (info != null) { /* * Node node = null; * * if (info.Connection.Transport.Network != null) { * if (info is SentMessageInfo) { * node = info.Connection.Transport.Network.Nodes[info.Message.To]; * } else { * node = info.Connection.Transport.Network.Nodes[info.Message.From]; * } * (cell as CellRendererText).Text = node.ToString(); * } else { */ string nodeId = null; if (info is SentMessageInfo) { nodeId = info.Message.To; } else { nodeId = info.Message.From; } if (info.Connection.Transport.Network != null && info.Connection.Transport.Network.Nodes.ContainsKey(nodeId)) { var node = info.Connection.Transport.Network.Nodes[nodeId]; (cell as CellRendererText).Text = node.ToString(); } else if (nodeId == Network.BroadcastNodeID) { (cell as CellRendererText).Text = "(Broadcast)"; } else { (cell as CellRendererText).Text = string.Format("({0})", nodeId); } /*}*/ } }
public GridViewColumn AppendColumnWithHeader(CellRenderer r, GridCellDataFunc f, CellRenderer hr, GridCellDataFunc hf) { GridViewColumn col = new GridViewColumn(r); col.CellDataFunc = f; if (hr != null) { col.SetHeaderRenderer(hr); col.HeaderCellDataFunc = hf; } AppendColumn(col); return(col); }
// feed Date column data to the text cell renderer protected void DateTimeCell(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) { if (backupsStore.GetValue(iter, 1) == null) { return; } DateTime dt = (DateTime)backupsStore.GetValue(iter, 1); CellRendererText crt = cell as CellRendererText; if (crt == null) { return; } crt.Text = dt.ToString(); // it's possible to format the rendered text here... maybe it could show more info that way... }
void TextCellDataFunc(TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) { TreeIter parent; bool toplevel = !model.IterParent(out parent, iter); var crt = (CellRendererText)cell; var section = (OptionsDialogSection)model.GetValue(iter, 0); if (toplevel) { crt.Markup = "<b>" + GLib.Markup.EscapeText(section.Label) + "</b>"; } else { crt.Text = section.Label; } }
private void RenderPrediction(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) { Movie movie = (Movie)model.GetValue(iter, 0); double prediction; if (!predictions.TryGetValue(movie.ID, out prediction)) { // predictions.TryGetValue(movie.ID, out prediction); Console.Error.WriteLine("{0}: {1}", movie.ID, movie.Title); } if (ratings.ContainsKey(movie.ID)) { prediction = ratings[movie.ID]; } string text; if (prediction < rating_predictor.MinRating) { text = ""; } else if (prediction < 1.5) { text = string.Format(CultureInfo.InvariantCulture, "{0,0:0.00} ★", prediction); } else if (prediction < 2.5) { text = string.Format(CultureInfo.InvariantCulture, "{0,0:0.00} ★★", prediction); } else if (prediction < 3.5) { text = string.Format(CultureInfo.InvariantCulture, "{0,0:0.00} ★★★", prediction); } else if (prediction < 4.5) { text = string.Format(CultureInfo.InvariantCulture, "{0,0:0.00} ★★★★", prediction); } else { text = string.Format(CultureInfo.InvariantCulture, "{0,0:0.00} ★★★★★", prediction); } (cell as CellRendererText).Text = text; }
/// <summary> /// Allows for fine control over how each individual cell is rendered. /// </summary> /// <param name="col">Column in which the cell appears.</param> /// <param name="cell"> /// The individual cells. /// Any changes to this cell only affect this cell. /// The other cells in the column are unaffected. /// </param> /// <param name="model"> /// The tree model which holds the data being displayed in the tree. /// </param> /// <param name="iter"> /// TreeIter object associated with this cell in the tree. This object /// can be used for many things, such as retrieving this cell's data. /// </param> public void OnSetCellData(TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) { // This makes a lot of assumptions about how the tree model is structured. if (cell is CellRendererText) { Color colour = (Color)model.GetValue(iter, 4); (cell as CellRendererText).Strikethrough = (bool)model.GetValue(iter, 5); //(cell as CellRendererText).ForegroundGdk = colour; // This is a bit of a hack which we use to convert a System.Drawing.Color // to its hex string equivalent (e.g. #FF0000). string hex = ColorTranslator.ToHtml(Color.FromArgb(colour.ToArgb())); string text = (string)model.GetValue(iter, 0); (cell as CellRendererText).Markup = "<span foreground=\"" + hex + "\">" + text + "</span>"; } }
public static void DebugDrawInteractionCells() { if (Find.CurrentMap != null) { if (DebugViewSettings.drawInteractionCells) { foreach (object obj in Find.Selector.SelectedObjects) { Thing thing = obj as Thing; if (thing != null) { CellRenderer.RenderCell(thing.InteractionCell, 0.5f); } } } } }
void HandleValueCellDataFunc(TreeViewColumn tree_column, CellRenderer cell, TreeModel tree_model, TreeIter iter) { var key = (string)tree_model.GetValue(iter, 0); var value = _textResourcesManager.GetValue(tree_column.Title, key); var cellText = (CellRendererText)cell; if (value == null) { cellText.Background = "red"; } else { cellText.Background = null; } cellText.Text = value; }
/// <summary> /// Sets the contents of a cell being display on a grid /// </summary> /// <param name="col"></param> /// <param name="cell"></param> /// <param name="model"></param> /// <param name="iter"></param> public void OnSetCellData(TreeViewColumn col, CellRenderer cell, TreeModel model, TreeIter iter) { TreePath path = model.GetPath(iter); Gtk.TreeView view = col.TreeView as Gtk.TreeView; int rowNo = path.Indices[0]; int colNo; string text = String.Empty; if (colLookup.TryGetValue(cell, out colNo) && rowNo < this.DataSource.Rows.Count && colNo < this.DataSource.Columns.Count) { object dataVal = this.DataSource.Rows[rowNo][colNo]; text = AsString(dataVal); } cell.Visible = true; (cell as CellRendererText).Text = text; }
static void StackFrameLayout(CellLayout layout, CellRenderer cr, TreeModel model, TreeIter iter) { var frame = (ExceptionStackFrame)model.GetValue(iter, (int)ModelColumn.StackFrame); var renderer = (StackFrameCellRenderer)cr; renderer.Markup = (string)model.GetValue(iter, (int)ModelColumn.Markup); if (!(renderer.IsStackFrame = frame != null)) { renderer.IsUserCode = false; renderer.LineNumber = -1; return; } renderer.IsUserCode = (bool)model.GetValue(iter, (int)ModelColumn.IsUserCode); renderer.LineNumber = !string.IsNullOrEmpty(frame.File) ? frame.Line : -1; }
private void TypeDataFunc(TreeViewColumn tree_column, CellRenderer cell, ITreeNode node) { CellRendererText renderer = cell as CellRendererText; Link link = node as Link; if (renderer == null || link == null) { return; } switch (link.Type) { case LinkType.Stream: renderer.Text = Catalog.GetString("Stream"); break; case LinkType.Info: renderer.Text = Catalog.GetString("Information"); break; } }
void ResultPathDataFunc(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) { if (TreeIter.Zero.Equals(iter)) { return; } var pathRenderer = (CellRendererText)cell; var searchResult = (SearchResult)store.GetValue(iter, SearchResultColumn); if (searchResult == null) { return; } bool didRead = (bool)store.GetValue(iter, DidReadColumn); pathRenderer.Markup = MarkupText(System.IO.Path.GetDirectoryName(searchResult.FileName), didRead); }
private void RenderServiceColumn(TreeViewColumn column, CellRenderer cell, ITreeModel model, TreeIter iter) { string markup = (string)model.GetValue(iter, 2); TreeSelection selection = (column.TreeView as TreeView).Selection; if (selection.IterIsSelected(iter)) { markup = markup.Replace(Program.UI.SecondaryTextColor, Program.UI.SecondaryTextColorSelected); } else { markup = markup.Replace(Program.UI.SecondaryTextColorSelected, Program.UI.SecondaryTextColor); } (cell as CellRendererText).Markup = markup; }
public void DrawDebugPowerNetGrid() { if (DebugViewSettings.drawPowerNetGrid && Current.ProgramState == ProgramState.Playing && map == Find.CurrentMap) { Rand.PushState(); foreach (IntVec3 item in Find.CameraDriver.CurrentViewRect.ClipInsideMap(map)) { PowerNet powerNet = netGrid[map.cellIndices.CellToIndex(item)]; if (powerNet != null) { Rand.Seed = powerNet.GetHashCode(); CellRenderer.RenderCell(item, Rand.Value); } } Rand.PopState(); } }
public static void SelectedUpdate(this Designator_Place @this) { GenDraw.DrawNoBuildEdgeLines(); if (!ArchitectCategoryTab.InfoRect.Contains(UI.MousePositionOnUIInverted)) { IntVec3 intVec = UI.MouseCell(); if (@this.PlacingDef is TerrainDef) { GenUI.RenderMouseoverBracket(); return; } Color ghostCol; if (@this.CanDesignateCell(intVec).Accepted) { ghostCol = new Color(0.5f, 1f, 0.6f, 0.4f); } else { ghostCol = new Color(1f, 0f, 0f, 0.4f); } DrawGhost(@this, ghostCol); if (@this.CanDesignateCell(intVec).Accepted&& @this.PlacingDef.specialDisplayRadius > 0.01f) { GenDraw.DrawRadiusRing(UI.MouseCell(), @this.PlacingDef.specialDisplayRadius); if ((@this.PlacingDef as ThingDef)?.building?.turretGunDef?.Verbs?.FirstOrDefault()?.requireLineOfSight == true) { var map = Find.VisibleMap; float range = ((ThingDef)@this.PlacingDef).building.turretGunDef.Verbs[0].range; foreach (var cell in GenRadial.RadialCellsAround(intVec, range, false)) { if (GenSight.LineOfSight(intVec, cell, map, true) != GenSight.LineOfSight(cell, intVec, map, true)) { CellRenderer.RenderCell(cell, 0f); } if (GenSight.LineOfSight(intVec, cell, map, true)) { CellRenderer.RenderCell(cell, 0.6f); continue; } } } } GenDraw.DrawInteractionCell((ThingDef)@this.PlacingDef, intVec, placingRotGet(@this)); } }
private void RenderToggle(TreeViewColumn column, CellRenderer cell, ITreeModel model, TreeIter iter) { Options temp = (Options)model.GetValue(iter, 0); cell.Visible = temp.ValueType == ValueType.Bool; if (cell.Visible) { CellRendererToggle tog = (CellRendererToggle)cell; if (temp.Value == null) { tog.Active = (bool)temp.DefaultValue; } else { tog.Active = temp.Value == "True"; } } }
private void RenderTradePrice(TreeViewColumn tree_column, CellRenderer cell, TreeModel model, TreeIter iter) { var trade = model.GetValue(iter, 0) as PublicTrade; if (trade != null) { var market = viewModel.GetSymbolInformation(trade.Symbol); if (trade.Side == TradeSide.Sell) { (cell as CellRendererText).ForegroundGdk = bullColor; } else { (cell as CellRendererText).ForegroundGdk = bearColor; } (cell as CellRendererText).Text = trade.Price.ToString(market.PriceFmt); } }
private void MeasureCell(TreePath path, GridViewColumn col) { int w, h, x, y, x_offset, y_offset; TreeIter i; bool header = path.Indices[0] < c_span; Rectangle rect = new Rectangle(); CellRenderer renderer = header && col.HeaderRenderer != null ? col.HeaderRenderer : col.FieldRenderer; model.GetIter(out i, path); col.CellSetCellData(model, i, header); renderer.GetSize(this, ref rect, out x_offset, out y_offset, out w, out h); TranslateCoords(path, col, out x, out y); widths[x] = Math.Max((int)widths[x], w + 20); heights[y] = Math.Max((int)heights[y], h + 4); }
void RenderText(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) { string name = model.GetValue(iter, 0) as string; var executable = model.GetValue(iter, 1) as IExecutable; var text = cell as CellRendererText; text.Text = name; if (executable != null) { text.Foreground = (executable.IsExecutable) ? "darkgreen" : "red"; } else { text.Foreground = "black"; } }
private void CellDataFunc(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) { VolumeItem item = GetItem(iter); Gtk.CellRendererText txt = cell as Gtk.CellRendererText; if ((item != null) && ((item.Note.Length > 0) || (item.Keywords.Length > 0))) { txt.Style = Pango.Style.Italic; //txt.Foreground = "darkgreen"; txt.Text = txt.Text + " *"; } else { txt.Style = Pango.Style.Normal; //txt.Foreground = null; } }
public static void DebugDrawInteractionCells() { if (Find.VisibleMap == null) { return; } if (DebugViewSettings.drawInteractionCells) { foreach (object current in Find.Selector.SelectedObjects) { Thing thing = current as Thing; if (thing != null) { CellRenderer.RenderCell(thing.InteractionCell, 0.5f); } } } }
private void TransferProgressFunc(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) { IFileTransfer transfer = (IFileTransfer)model.GetValue(iter, 0); CellRendererProgress progressCell = (CellRendererProgress)cell; if (transfer.Progress >= 0) { progressCell.Value = Convert.ToInt32(transfer.Progress); progressCell.Visible = true; } else { progressCell.Value = 0; progressCell.Visible = false; } progressCell.Text = String.Format("{0}%", progressCell.Value); }
private void OnCellLayoutDataFunc(CellLayout cell_layout, CellRenderer cell, TreeModel tree_model, TreeIter iter) { var streetName = (string)tree_model.GetValue(iter, (int)columns.StreetName); var streetTypeName = (string)tree_model.GetValue(iter, (int)columns.StreetTypeName); var streetDistrict = (string)tree_model.GetValue(iter, (int)columns.StreeDistrict); var pattern = string.Format("\\b{0}", Regex.Escape(Text.ToLower())); streetName = Regex.Replace(streetName, pattern, match => $"<b>{ match.Value }</b>", RegexOptions.IgnoreCase); if (!string.IsNullOrWhiteSpace(streetDistrict)) { streetDistrict = $"({ streetDistrict })"; } ((CellRendererText)cell).Markup = string.IsNullOrWhiteSpace(streetDistrict) ? $"{ streetTypeName.ToLower() } { streetName }" : $"{ streetTypeName.ToLower() } { streetName } { streetDistrict }"; }
/// <summary> /// Renders the icon of a file reference in the export queue. /// </summary> /// <param name="column">The column which the cell is in.</param> /// <param name="cell">The cell which the icon is in.</param> /// <param name="model">The model of the treeview.</param> /// <param name="iter">The <see cref="TreeIter"/> pointing to the row the icon is in.</param> public static void RenderExportQueueReferenceIcon(TreeViewColumn column, CellRenderer cell, ITreeModel model, TreeIter iter) { CellRendererPixbuf cellIcon = cell as CellRendererPixbuf; FileReference reference = (FileReference)model.GetValue(iter, 0); if (reference == null || cellIcon == null) { return; } if (reference.Node.Type.HasFlag(NodeType.Directory)) { cellIcon.Pixbuf = IconManager.GetIconForFiletype(WarcraftFileType.Directory); return; } cellIcon.Pixbuf = IconManager.GetIconForFiletype(reference.Node.FileType); }
void OutlineTreeIconFunc(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) { var pixRenderer = (CellRendererPixbuf)cell; object o = model.GetValue(iter, 0); if (o is DNode) { var icon = DCompletionData.GetNodeIcon(o as DNode); if (icon != (Core.IconId)null) { pixRenderer.Pixbuf = ImageService.GetPixbuf(icon.Name, IconSize.Menu); } } else if (o is D_Parser.Dom.Statements.StatementContainingStatement) { pixRenderer.Pixbuf = ImageService.GetPixbuf("gtk-add", IconSize.Menu); } }
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 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; }
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")); }
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; }
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; }
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; }
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>"; }
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; }
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); } }
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; }
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)); }