コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
ファイル: WidgetWrapper.cs プロジェクト: kuggaa/longomatch
 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);
         }
     }
 }