protected void Draw(Area area) { if (DrawEvent != null) { using (CairoContext c = new CairoContext(widget.GdkWindow)) { global::Cairo.Context cc = c.Value as global::Cairo.Context; if (area == null) { Rectangle r = widget.GdkWindow.ClipRegion.Clipbox; area = new Area(new Point(r.X, r.Y), r.Width, r.Height); } cc.Rectangle(area.Start.X, area.Start.Y, area.Width, area.Height); cc.Clip(); if (widget.WidgetFlags.HasFlag(WidgetFlags.NoWindow)) { Rectangle widgetArea = WidgetArea; cc.Translate(widgetArea.X, widgetArea.Y); area.Start.X -= widgetArea.X; area.Start.Y -= widgetArea.Y; } DrawEvent(c, area); } } }
public static void RoundedRectangle(this global::Cairo.Context cr, double x, double y, double w, double h, double r) { cr.MoveTo(x + r, y); cr.Arc(x + w - r, y + r, r, Math.PI * 1.5, Math.PI * 2); cr.Arc(x + w - r, y + h - r, r, 0, Math.PI * 0.5); cr.Arc(x + r, y + h - r, r, Math.PI * 0.5, Math.PI); cr.Arc(x + r, y + r, r, Math.PI, Math.PI * 1.5); }
void Draw(Area area) { if (DrawEvent != null) { using (CairoContext c = new CairoContext(widget.GdkWindow)) { global::Cairo.Context cc = c.Value as global::Cairo.Context; if (area == null) { Rectangle r = widget.GdkWindow.ClipRegion.Clipbox; area = new Area(new Point(r.X, r.Y), r.Width, r.Height); } cc.Rectangle(area.Start.X, area.Start.Y, area.Width, area.Height); cc.Clip(); DrawEvent(c, area); } } }
public CairoContext(global::Cairo.Context context) { Value = context; }
public CairoContext(global::Cairo.Surface surface) { Value = new global::Cairo.Context(surface); }
public CairoContext(global::Cairo.Surface surface) { Value = new global::Cairo.Context (surface); }