public void RenderItem(Context cr, Gdk.Point renderAnchor, int width, Do.Universe.Item item, bool drawArrow) { cr.Rectangle(renderAnchor.X, renderAnchor.Y, width, Height); cr.SetSourceRGBA(0, 0, 0, 0); cr.Operator = Operator.Source; cr.Fill(); cr.Operator = Operator.Over; Gdk.Pixbuf pixbuf = IconProvider.PixbufFromIconName(item.Icon, IconSize); Gdk.CairoHelper.SetSourcePixbuf(cr, pixbuf, 2, 2); cr.Paint(); pixbuf.Dispose(); foreach (int i in parent.Secondary) { if (parent.Results[i] == item) { pixbuf = IconProvider.PixbufFromIconName("gtk-add", IconSize); Gdk.CairoHelper.SetSourcePixbuf(cr, pixbuf, 2, 2); cr.PaintWithAlpha(.7); pixbuf.Dispose(); } } Pango.Layout layout = new Pango.Layout(parent.PangoContext); layout.Width = Pango.Units.FromPixels(width - IconSize - 25); layout.Ellipsize = Pango.EllipsizeMode.End; layout.SetMarkup("<span foreground=\"#" + parent.ItemTextColor + "\">" + GLib.Markup.EscapeText(item.Name) + "</span>"); layout.FontDescription = Pango.FontDescription.FromString("normal bold"); layout.FontDescription.AbsoluteSize = Pango.Units.FromPixels(10); cr.MoveTo(IconSize + 6, 4); Pango.CairoHelper.ShowLayout(cr, layout); layout.SetMarkup("<span foreground=\"#" + parent.ItemTextColor + "\">" + GLib.Markup.EscapeText(item.Description) + "</span>"); layout.FontDescription.Dispose(); layout.FontDescription = Pango.FontDescription.FromString("normal"); layout.FontDescription.AbsoluteSize = Pango.Units.FromPixels(10); cr.MoveTo(IconSize + 8, 19); Pango.CairoHelper.ShowLayout(cr, layout); if (drawArrow) { cr.MoveTo(width - 15, 13); cr.LineTo(width - 15 + 7, 17); cr.LineTo(width - 15, 21); Gdk.Color gc = new Gdk.Color(); Gdk.Color.Parse("#" + parent.ItemTextColor, ref gc); cr.SetSourceRGB(gc); cr.Fill(); } layout.FontDescription.Dispose(); layout.Dispose(); (cr as IDisposable).Dispose(); }
public void BezelSetPaneObject(Pane pane, Do.Universe.Item obj) { if (Context.GetPaneObject(pane) == obj && obj != null) { return; } OldContext.SetPaneObject(pane, Context.GetPaneObject(pane)); Context.SetPaneObject(pane, obj); icon_fade [(int)pane] = 0; Draw(); }
protected void IconDataFunc(TreeViewColumn column, CellRenderer cell, TreeModel model, TreeIter iter) { CellRendererPixbuf renderer = cell as CellRendererPixbuf; Do.Universe.Item o = (resultsTreeview.Model as ListStore).GetValue(iter, 0) as Do.Universe.Item; bool isSecondary = false; foreach (int i in secondary) { if (model.GetStringFromIter(iter) == i.ToString()) { isSecondary = true; } } Gdk.Pixbuf final; if (isSecondary) { using (Gdk.Pixbuf source = IconProvider.PixbufFromIconName(o.Icon, DefaultResultIconSize)) using (Gdk.Pixbuf emblem = IconProvider.PixbufFromIconName("gtk-add", DefaultResultIconSize)) { final = new Pixbuf(Colorspace.Rgb, true, 8, DefaultResultIconSize, DefaultResultIconSize); source.CopyArea(0, 0, source.Width, source.Height, final, 0, 0); emblem.Composite(final, 0, 0, DefaultResultIconSize, DefaultResultIconSize, 0, 0, 1, 1, InterpType.Bilinear, 220); } } else { final = IconProvider.PixbufFromIconName(o.Icon, DefaultResultIconSize); } renderer.Pixbuf = final; final.Dispose(); }
void BufferItem(Do.Universe.Item item) { if (!IsDrawable) { return; } using (var cr = Gdk.CairoHelper.Create(GdkWindow)) { Surface surface = cr.CreateSimilarToTarget(InternalWidth, SurfaceHeight); using (var cr2 = new Context(surface)) { ItemRenderer.RenderItem(cr2, new Gdk.Point(border_width, 0), InternalWidth, item, controller.ItemHasChildren(item)); if (surface_cache.ContainsKey(item)) { surface_cache[item].Dispose(); } surface_cache[item] = surface; } } }
private void RenderPixbuf(Pane pane, Context cr) { Do.Universe.Item obj = Context.GetPaneObject(pane); RenderPixbuf(pane, cr, obj.Icon, 1); }