Esempio n. 1
0
        public Image Copy(ICanvas canvas, Area area)
        {
            Image  img;
            Pixmap pm;

            global::Cairo.Context ctx;

            var            w      = canvas.Widget;
            NoWindowWidget widget = new NoWindowWidget {
                Width = area.Width, Height = area.Height
            };

            canvas.SetWidget(widget);

            pm  = new Pixmap(null, (int)area.Width, (int)area.Height, 24);
            ctx = Gdk.CairoHelper.Create(pm);
            using (CairoContext c = new CairoContext(ctx)) {
                ctx.Translate(-area.Start.X, -area.Start.Y);
                canvas.Draw(c, null);
            }

            img = new Image(Pixbuf.FromDrawable(pm, Colormap.System, 0, 0, 0, 0,
                                                (int)area.Width, (int)area.Height));

            canvas.SetWidget(w);
            return(img);
        }
Esempio n. 2
0
        protected Image CreateInternalPreview(ICanvasView view, IViewModel vm, double width, double height)
        {
            NoWindowWidget widget = new NoWindowWidget();

            view.SetWidget(widget);
            view.SetViewModel(vm);

            // set the widget sizes after the view model has been set
            widget.Width  = width;
            widget.Height = height;
            return(App.Current.DrawingToolkit.Copy(view, new Area(new Point(0, 0), width, height)));
        }