protected override void Render(Gdk.Drawable window, Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, CellRendererState flags) { using (Cairo.Context cr = Gdk.CairoHelper.Create(window)) { cr.LineWidth = 2.0; double center_x = cell_area.X + Math.Round((double)(cell_area.Width / 2d)); double center_y = cell_area.Y + Math.Round((double)(cell_area.Height / 2d)); cr.Arc(center_x, center_y, 5, 0, 2 * Math.PI); var state = StateType.Normal; if (!base.Sensitive) { state = StateType.Insensitive; } else if (flags.HasFlag(CellRendererState.Selected)) { if (widget.HasFocus) { state = StateType.Selected; } else { state = StateType.Active; } } else if (flags.HasFlag(CellRendererState.Prelit)) { state = StateType.Prelight; } else if (widget.State == StateType.Insensitive) { state = StateType.Insensitive; } cr.SetSourceColor(widget.Style.Text(state).ToCairoColor()); cr.Stroke(); if (!FirstNode) { cr.MoveTo(center_x, cell_area.Y - 2); cr.LineTo(center_x, center_y - 5); cr.Stroke(); } if (!LastNode) { cr.MoveTo(center_x, cell_area.Y + cell_area.Height + 2); cr.LineTo(center_x, center_y + 5); cr.Stroke(); } } }
string GetPackageSourceErrorMarkup(CellRendererState flags = CellRendererState.Focused) { return(MarkupString.Format( "<span foreground='{0}'>{1}</span>", Ide.Gui.Styles.ColorGetHex(flags.HasFlag(CellRendererState.Selected) ? Styles.PackageSourceErrorSelectedTextColor : Styles.PackageSourceErrorTextColor), PackageSourceViewModel.ValidationFailureMessage)); }
protected override void Render(Gdk.Drawable window, Widget widget, Gdk.Rectangle backgroundArea, Gdk.Rectangle cellArea, Gdk.Rectangle exposeArea, CellRendererState flags) { IDrawingToolkit tk = App.Current.DrawingToolkit; using (IContext context = new CairoContext(window)) { cellWidth = cellArea.Width; cellHeight = cellArea.Height; Point pos = new Point(cellArea.X + backgroundArea.Width / 2 - BUTTON_WIDTH / 2, cellArea.Y + Sizes.FilterTreeViewOnlyTopOffset); Point imagePos = new Point(pos.X + SPACING, pos.Y + Sizes.FilterTreeViewOnlyTopOffset); //Get the offset to properly calculate if needs tooltip or redraw offsetX = pos.X - backgroundArea.X; offsetY = pos.Y - backgroundArea.Y; tk.Context = context; tk.Begin(); tk.StrokeColor = App.Current.Style.ThemeBase; tk.FillColor = Color.Transparent; if (flags.HasFlag(CellRendererState.Prelit) && cursor.IsInsideArea(pos, BUTTON_WIDTH, BUTTON_HEIGHT)) { tk.StrokeColor = App.Current.Style.ColorPrimary; tk.LineWidth = LINE_WIDTH; } tk.DrawRectangle(pos, BUTTON_WIDTH, BUTTON_HEIGHT); tk.DrawImage(imagePos, BUTTON_WIDTH - (SPACING * 2), BUTTON_HEIGHT - (Sizes.FilterTreeViewOnlyTopOffset * 2), Icon, ScaleMode.AspectFit); tk.End(); tk.Context = null; } }
void SetupLayout(Widget widget, CellRendererState flags = 0) { if (layout == null || layout.Context != widget.PangoContext) { if (layout != null) { layout.Dispose(); } layout = new Pango.Layout(widget.PangoContext); layout.Ellipsize = Ellipsize; } string newmarkup = TextMarkup; if (!string.IsNullOrEmpty(SecondaryTextMarkup)) { if (Platform.IsMac && flags.HasFlag(CellRendererState.Selected)) { newmarkup += "\n<span foreground='" + Gui.Styles.SecondarySelectionTextColor.ToHexString(false) + "'><small>" + SecondaryTextMarkup + "</small></span>"; } else { newmarkup += "\n<span foreground='" + Gui.Styles.SecondaryTextColor.ToHexString(false) + "'><small>" + SecondaryTextMarkup + "</small></span>"; } } layout.SetMarkup(newmarkup); }
string GetPackageSourceDescriptionMarkup(CellRendererState flags = CellRendererState.Focused) { return(MarkupString.Format( "<b>{0}</b>\n<span foreground='{2}'>{1}</span>", PackageSourceViewModel.Name, PackageSourceViewModel.Source, Ide.Gui.Styles.ColorGetHex(flags.HasFlag(CellRendererState.Selected) ? Styles.PackageSourceUrlSelectedTextColor : Styles.PackageSourceUrlTextColor))); }
StateType GetState (Widget widget, CellRendererState flags) { if (flags.HasFlag (CellRendererState.Selected)) { if (widget.IsFocus) { return StateType.Selected; } return StateType.Active; } return StateType.Normal; }
StateType GetState(Widget widget, CellRendererState flags) { if (flags.HasFlag(CellRendererState.Selected)) { if (widget.IsFocus) { return(StateType.Selected); } return(StateType.Active); } return(StateType.Normal); }
protected override void Render (Drawable window, Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, CellRendererState flags) { try{ Gdk.Rectangle text_area1 = new Gdk.Rectangle(); Gdk.Rectangle text_area2 = new Gdk.Rectangle(); Gdk.Rectangle text_area3 = new Gdk.Rectangle(); text_area1.Y= cell_area.Y; text_area2.Y= cell_area.Y+33; text_area3.X = cell_area.Width-20; text_area3.Y= cell_area.Y+33; text_area3.Width = 75; Pango.Layout text_l1 = new Pango.Layout(widget.PangoContext); text_l1.FontDescription = Pango.FontDescription.FromString ("Meiryo,Arial 10.5"); text_l1.SetText(text1); Pango.Layout text_l2 = new Pango.Layout(widget.PangoContext); text_l2.FontDescription = Pango.FontDescription.FromString ("Meiryo,MS Gothic,Arial 8"); text_l2.SetText(text2); text_l2.Alignment = Pango.Alignment.Right; Pango.Layout text_l3 = new Pango.Layout(widget.PangoContext); text_l3.Width = Pango.Units.FromPixels(text_area3.Width); text_l3.FontDescription = Pango.FontDescription.FromString ("Meiryo,MS Gothic,Arial 8"); text_l3.Alignment = Pango.Alignment.Right; text_l3.SetText(text3); text_l2.Width = Pango.Units.FromPixels(cell_area.Width-text_l3.Text.Length*8-13); StateType state = flags.HasFlag(CellRendererState.Selected) ? widget.IsFocus ? StateType.Selected : StateType.Active : StateType.Normal; text_l3.SetMarkup("<span color=" + (char)34 + "grey" + (char)34 + ">" + text_l3.Text + "</span>");; window.DrawLayout(widget.Style.TextGC(state), 55, text_area1.Y, text_l1); window.DrawLayout(widget.Style.TextGC(state), 55, text_area2.Y, text_l2); window.DrawLayout(widget.Style.TextGC(state), text_area3.X, text_area3.Y, text_l3); text_l1.Dispose (); text_l2.Dispose (); text_l3.Dispose (); }catch(Exception e){ Console.WriteLine (e); } }
protected override void Render(Gdk.Drawable window, Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, CellRendererState flags) { base.Render (window, widget, background_area, cell_area, expose_area, flags); int xPos = cell_area.X; if(this.Pixbuf != null){ window.DrawPixbuf(widget.Style.MidGC( StateType.Normal), this.Pixbuf, 0, 0, xPos + 1, cell_area.Y + 1, 16, 16, Gdk.RgbDither.Normal, 0, 0); xPos += 20; } using (var layout = new Pango.Layout(widget.PangoContext)) { layout.Alignment = Pango.Alignment.Left; layout.SetText(this.Text ?? ""); StateType state = flags.HasFlag(CellRendererState.Selected) ? widget.IsFocus ? StateType.Selected : StateType.Active : StateType.Normal; window.DrawLayout(widget.Style.TextGC(state), xPos, cell_area.Y + 2, layout); } }
protected override void Render(Gdk.Drawable window, Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, CellRendererState flags) { base.Render(window, widget, background_area, cell_area, expose_area, flags); int xPos = cell_area.X; if (this.Pixbuf != null) { window.DrawPixbuf(widget.Style.MidGC(StateType.Normal), this.Pixbuf, 0, 0, xPos + 1, cell_area.Y + 1, 16, 16, Gdk.RgbDither.Normal, 0, 0); xPos += 20; } using (var layout = new Pango.Layout(widget.PangoContext)) { layout.Alignment = Pango.Alignment.Left; layout.SetText(this.Text ?? ""); StateType state = flags.HasFlag(CellRendererState.Selected) ? widget.IsFocus ? StateType.Selected : StateType.Active : StateType.Normal; window.DrawLayout(widget.Style.TextGC(state), xPos, cell_area.Y + 2, layout); } }
protected override void Render (Gdk.Drawable window, Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, CellRendererState flags) { using (Cairo.Context cr = Gdk.CairoHelper.Create (window)) { cr.LineWidth = 2.0; double center_x = cell_area.X + Math.Round ((double) (cell_area.Width / 2d)); double center_y = cell_area.Y + Math.Round ((double) (cell_area.Height / 2d)); cr.Arc (center_x, center_y, 5, 0, 2 * Math.PI); var state = StateType.Normal; if (!base.Sensitive) state = StateType.Insensitive; else if (flags.HasFlag (CellRendererState.Selected)) { if (widget.HasFocus) state = StateType.Selected; else state = StateType.Active; } else if (flags.HasFlag (CellRendererState.Prelit)) state = StateType.Prelight; else if (widget.State == StateType.Insensitive) state = StateType.Insensitive; cr.SetSourceColor (widget.Style.Text (state).ToCairoColor ()); cr.Stroke (); if (!FirstNode) { cr.MoveTo (center_x, cell_area.Y - 2); cr.LineTo (center_x, center_y - 5); cr.Stroke (); } if (!LastNode) { cr.MoveTo (center_x, cell_area.Y + cell_area.Height + 2); cr.LineTo (center_x, center_y + 5); cr.Stroke (); } } }
protected override void Render(Gdk.Drawable window, Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, CellRendererState flags) { m_Tree = widget as TreeView; m_TextXOffset = 0; Gdk.Rectangle pix_rect = Gdk.Rectangle.Zero; bool isSelected = flags.HasFlag(CellRendererState.Selected); m_FontDesc = widget.PangoContext.FontDescription; this.GetSize (widget, ref cell_area, out pix_rect.X, out pix_rect.Y, out pix_rect.Width, out pix_rect.Height); // Take care of padding pix_rect.X += cell_area.X + (int)this.Xpad; pix_rect.Y += cell_area.Y + (int)this.Ypad; // Remove left, right, top and buttom borders which were added to the returned width pix_rect.Width -= (int)this.Xpad * 2; pix_rect.Height -= (int)this.Ypad * 2; // Create Context Cairo.Context context = Gdk.CairoHelper.Create(window); context.SelectFontFace(m_FontDesc.Family, FontSlant.Normal, FontWeight.Normal); // Draw backdrop //if (IsHeading) { context.Save (); Color col = IsHeading ? m_BackdropHeadingColour : m_BackdropItemColour; context.Color = col; context.SetSourceRGB (col.R, col.G, col.B); context.Rectangle (background_area.X, background_area.Y, background_area.Width, background_area.Height); // Fill the path with pattern context.Fill (); // We "undo" the pattern setting here context.Restore (); } // Draw expander if (IsExpander) { RenderExpander(context, pix_rect); } else if (!IsHeading && RenderInfo) { context.Save(); Gdk.Pixbuf expander = new Gdk.Pixbuf(ECM.Core.Info16PNG); Gdk.CairoHelper.SetSourcePixbuf(context, expander, pix_rect.Right - 16, pix_rect.Y); context.Paint(); context.Restore(); } RenderCell(context, pix_rect, isSelected); // Draw line under cell int bottom = background_area.Bottom; if (ECM.Helper.CurrentPlatform != ECM.Helper.Platform.Windows) bottom += 1; else bottom -= 1; context.Save(); context.Antialias = Antialias.None; context.LineWidth = 1; context.Color = DarkGray; context.MoveTo(background_area.Left, bottom); context.LineTo(background_area.Right, bottom); context.Stroke(); context.Restore(); (context.Target as System.IDisposable).Dispose(); (context as System.IDisposable).Dispose(); }
string GetPackageSourceErrorMarkup (CellRendererState flags = CellRendererState.Focused) { return MarkupString.Format ( "<span foreground='{0}'>{1}</span>", Ide.Gui.Styles.ColorGetHex (flags.HasFlag (CellRendererState.Selected) ? Styles.PackageSourceErrorSelectedTextColor : Styles.PackageSourceErrorTextColor), PackageSourceViewModel.ValidationFailureMessage); }
string GetPackageSourceDescriptionMarkup (CellRendererState flags = CellRendererState.Focused) { return MarkupString.Format ( "<b>{0}</b>\n<span foreground='{2}'>{1}</span>", PackageSourceViewModel.Name, PackageSourceViewModel.Source, Ide.Gui.Styles.ColorGetHex (flags.HasFlag (CellRendererState.Selected) ? Styles.PackageSourceUrlSelectedTextColor : Styles.PackageSourceUrlTextColor)); }