OSDN Git Service

Documentのコンストラクターを変更した
[fooeditengine/FooEditEngine.git] / Metro / FooEditEngine / Print / DocumentSource.cs
index 8d24c7e..df94768 100644 (file)
@@ -62,9 +62,9 @@ namespace FooEditEngine
         Windows.UI.Color foreground, comment, keyword1, keyword2, literal, url;\r
         string fontName;\r
         double fontSize;\r
-        Document document;\r
         LineBreakMethod lineBreakMethod;\r
         int lineBreakCharCount, tabCount;\r
+        Document document;\r
         bool urlMark;\r
         IHilighter hilighter;\r
         float displayDpi;\r
@@ -80,7 +80,7 @@ namespace FooEditEngine
             this.fontName = textbox.FontFamily.Source;\r
             this.fontSize = textbox.FontSize;\r
             this.tabCount = textbox.TabChars;\r
-            this.document = new Document(textbox.Document);\r
+            this.document = textbox.Document;\r
             this.lineBreakMethod = textbox.LineBreakMethod;\r
             this.lineBreakCharCount = textbox.LineBreakCharCount;\r
             this.drawLineNumber = textbox.DrawLineNumber;\r
@@ -90,17 +90,17 @@ namespace FooEditEngine
             this.padding = padding;\r
             this.EnableHilight = true;\r
         }\r
-        public D2DRenderBase CreateRender(PrintPageDescription pagedesc, IPrintDocumentPackageTarget docPackageTarget)\r
+        public D2DPrintRender CreateRender(PrintPageDescription pagedesc, IPrintDocumentPackageTarget docPackageTarget)\r
         {\r
-            D2DRenderBase render;\r
+            D2DPrintRender render;\r
             Size size = new Size(pagedesc.ImageableRect.Width, pagedesc.ImageableRect.Height);\r
             render = new D2DPrintRender(this.fontName, this.fontSize, size, Math.Min(pagedesc.DpiX, pagedesc.DpiY), docPackageTarget);\r
-            render.Foreground = this.foreground;\r
-            render.Comment = this.comment;\r
-            render.Keyword1 = this.keyword1;\r
-            render.Keyword2 = this.keyword2;\r
-            render.Literal = this.literal;\r
-            render.Url = this.url;\r
+            render.Foreground = D2DRenderBase.ToColor4(this.foreground);\r
+            render.Comment = D2DRenderBase.ToColor4(this.comment);\r
+            render.Keyword1 = D2DRenderBase.ToColor4(this.keyword1);\r
+            render.Keyword2 = D2DRenderBase.ToColor4(this.keyword2);\r
+            render.Literal = D2DRenderBase.ToColor4(this.literal);\r
+            render.Url = D2DRenderBase.ToColor4(this.url);\r
             return render;\r
         }\r
         public D2DPrintPreviewRender CreateRender(PrintPageDescription pagedesc)\r
@@ -108,17 +108,19 @@ namespace FooEditEngine
             D2DPrintPreviewRender render;\r
             Size size = new Size(pagedesc.ImageableRect.Width, pagedesc.ImageableRect.Height);\r
             render = new D2DPrintPreviewRender(this.fontName, this.fontSize, size, this.displayDpi);\r
-            render.Foreground = this.foreground;\r
-            render.Comment = this.comment;\r
-            render.Keyword1 = this.keyword1;\r
-            render.Keyword2 = this.keyword2;\r
-            render.Literal = this.literal;\r
-            render.Url = this.url;\r
+            render.Foreground = D2DRenderBase.ToColor4(this.foreground);\r
+            render.Comment = D2DRenderBase.ToColor4(this.comment);\r
+            render.Keyword1 = D2DRenderBase.ToColor4(this.keyword1);\r
+            render.Keyword2 = D2DRenderBase.ToColor4(this.keyword2);\r
+            render.Literal = D2DRenderBase.ToColor4(this.literal);\r
+            render.Url = D2DRenderBase.ToColor4(this.url);\r
             return render;\r
         }\r
-        public PrintableView CreateView(PrintPageDescription pagedesc, D2DRenderBase render, string header, string footer)\r
+        public PrintableView CreateView(PrintPageDescription pagedesc, IPrintableTextRender render, string header, string footer)\r
         {\r
-            PrintableView view = new PrintableView(this.document, (IPrintableTextRender)render,padding);\r
+            Document documentSnap = new Document(this.document);\r
+            documentSnap.LayoutLines.Render = render;\r
+            PrintableView view = new PrintableView(documentSnap, render,padding);\r
             view.TabStops = this.tabCount;\r
             view.LineBreak = this.lineBreakMethod == LineBreakMethod.None ? LineBreakMethod.PageBound : this.lineBreakMethod;\r
             view.LineBreakCharCount = this.lineBreakCharCount;\r
@@ -217,7 +219,7 @@ namespace FooEditEngine
             PrintTaskOptions options = (PrintTaskOptions)printTaskOptions;\r
             PrintPageDescription pagedesc = options.GetPageDescription(1);\r
 \r
-            D2DRenderBase render = this.factory.CreateRender(pagedesc, docPackageTarget);\r
+            D2DPrintRender render = this.factory.CreateRender(pagedesc, docPackageTarget);\r
             PrintableView view = this.factory.CreateView(pagedesc, render, this.Header, this.Fotter);\r
 \r
             bool result = false;\r
@@ -230,7 +232,7 @@ namespace FooEditEngine
                 if (!string.IsNullOrEmpty(this.Fotter))\r
                     view.Footer = this.ParseHF(this, new ParseCommandEventArgs(currentPage, this.maxPreviePageCount, this.Fotter));\r
 \r
-                render.BeginDraw();\r
+                render.BegineDraw();\r
                 view.Draw(view.PageBound);\r
                 render.EndDraw();\r
                 result = view.TryPageDown();\r
@@ -291,7 +293,7 @@ namespace FooEditEngine
             this.previewRender.Resize(width, height);\r
             this.previewRender.SetScale((float)(this.previewView.PageBound.Width / width)); //BeginDraw()で倍率が1に戻る\r
 \r
-            this.previewRender.BeginDraw();\r
+            this.previewRender.BegineDraw();\r
             this.previewView.Draw(this.previewView.PageBound);\r
             this.previewRender.EndDraw(this.dxgiPreviewTarget,desiredJobPage);\r
         }\r