Ejemplo n.º 1
0
        public static Canvas Receive(Lidgren.Network.NetIncomingMessage message, Palette pal)
        {
            var width  = message.ReadVariableInt32();
            var height = message.ReadVariableInt32();

            message.ReadPadBits();
            var stream = message.ReadStream();

            var canvas = new MemoryCanvas(new Size(width, height));

            Pablo.Load(stream, canvas, pal);
            return(canvas);
        }
Ejemplo n.º 2
0
        protected override void Execute(CommandExecuteArgs args)
        {
            var handler = tool.Handler;

            if (tool.SelectedRegion == null)
            {
                return;
            }
            var rect = tool.SelectedRegion.Value;

            // copy the selected region

            rect.Normalize();
            var location = rect.TopLeft;
            var canvas   = new MemoryCanvas(rect.Size);

            canvas.Set(Point.Empty, rect, handler.CurrentPage.Canvas);


            // save to clipboard
            var cb = new Clipboard();

            cb.Clear();              // clear out contents of clipboard

            // save as text
            var ascii = new Types.Ascii(handler.Info);

            cb.Text = ascii.SaveToText(canvas, handler.CurrentPage.Font.Encoding);


            // save as ansi
            using (var ansistream = new MemoryStream()) {
                var writer = new BinaryWriter(ansistream);
                writer.Write(canvas.Width);
                writer.Write(canvas.Height);
                writer.Flush();
                Types.Pablo.Save(ansistream, canvas, handler.CurrentPage.Palette);
                ansistream.Flush();


                cb.SetDataStream(ansistream, "pablo");
            }

            handler.Undo.Save(handler.CursorPosition, location, rect);
            handler.CurrentPage.Canvas.Fill(rect, handler.DrawElement);
            handler.InvalidateCharacterRegion(rect, true, true);

            tool.DrawMode          = DrawMode.Normal;
            handler.CursorPosition = location;             // go to starting position for the block
        }
Ejemplo n.º 3
0
        protected override void OnExecuted(EventArgs e)
        {
            Rectangle rect = tool.SelectedRegion.Value;
            // copy the selected region

            Point location = rect.TopLeft;

            rect.Normalize();
            Canvas canvas = new MemoryCanvas(rect.Size);

            canvas.Set(new Point(0, 0), rect, tool.Handler.CurrentPage.Canvas);

            tool.DrawMode               = DrawMode.Paste;
            tool.SelectedRegion         = null;
            tool.Handler.CursorPosition = location;             // go to starting position for the block

            // go into paste mode
            tool.PasteCanvas = canvas;
        }
Ejemplo n.º 4
0
        Canvas GetCanvasFromClipboard()
        {
            var handler = (CharacterHandler)Handler;

            Canvas canvas = null;
            var    cb     = new Clipboard();
            var    stream = cb.GetDataStream("pablo");

            if (stream != null)
            {
                // get width/height
                var reader = new BinaryReader(stream);
                var width  = reader.ReadInt32();
                var height = reader.ReadInt32();
                canvas = new MemoryCanvas(new Size(width, height));
                Types.Pablo.Load(stream, canvas, handler.CurrentPage.Palette);
            }
            else
            {
                var text = cb.Text;
                if (!string.IsNullOrEmpty(text))
                {
                    // calculate height/width of incoming text
                    var lines  = text.Split(new string[] { "\r\n", "\n", "\r" }, StringSplitOptions.None);
                    var width  = lines.Max(r => r.Length);
                    var height = lines.Length;

                    // encode to memory stream
                    var textstream = new MemoryStream(handler.CurrentPage.Font.Encoding.GetBytes(text), false);

                    // load it up
                    canvas = new MemoryCanvas(new Size(width, height));
                    var ascii = new Types.Ascii(handler.Info);
                    ascii.Load(textstream, canvas, null, false);
                    //pasteMode = PasteMode.Transparent;
                }
            }
            return(canvas);
        }
Ejemplo n.º 5
0
 public void Given_canvas(string id, int width, int height)
 {
     canvas[id] = new MemoryCanvas(width, height);
 }