├── .gitattributes ├── .gitignore ├── LICENSE ├── README.md ├── Source ├── Deps │ └── we_use_PixelFarm.One.HtmlRenderer_dev_Branch.txt ├── Deps_HtmlKit │ ├── .gitattributes │ ├── .gitignore │ ├── CodeGenerator │ │ ├── CodeGenerator.csproj │ │ ├── HtmlEntities.json │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ └── packages.config │ ├── HtmlBuilder │ │ ├── HtmlBuilder.csproj │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── HtmlKit.nuspec │ ├── HtmlKit.sln │ ├── HtmlKit │ │ ├── HtmlAttribute.cs │ │ ├── HtmlAttributeCollection.cs │ │ ├── HtmlAttributeId.cs │ │ ├── HtmlEntityDecoder.cs │ │ ├── HtmlEntityDecoder.g.cs │ │ ├── HtmlKit.csproj │ │ ├── HtmlNamespace.cs │ │ ├── HtmlTagId.cs │ │ ├── HtmlToken.cs │ │ ├── HtmlTokenKind.cs │ │ ├── HtmlTokenizer.cs │ │ ├── HtmlTokenizerState.cs │ │ ├── HtmlUtils.cs │ │ ├── HtmlWriter.cs │ │ ├── HtmlWriterState.cs │ │ ├── ICharArray.cs │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── HtmlKit_Net20 │ │ ├── ForNet20.cs │ │ ├── HtmlKit_Net20.csproj │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── License.md │ ├── README.md │ ├── TestWithWinForms │ │ ├── Form1.Designer.cs │ │ ├── Form1.cs │ │ ├── Form1.resx │ │ ├── Program.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ ├── Resources.resx │ │ │ ├── Settings.Designer.cs │ │ │ └── Settings.settings │ │ ├── TestData │ │ │ └── html │ │ │ │ ├── blocked.html │ │ │ │ ├── blocked.tokens │ │ │ │ ├── test.html │ │ │ │ ├── test.tokens │ │ │ │ ├── xamarin3.html │ │ │ │ ├── xamarin3.tokens │ │ │ │ └── xamarin3.xhtml │ │ ├── TestWithWinForms.csproj │ │ └── packages.config │ ├── UnitTests │ │ ├── HtmlAttributeTests.cs │ │ ├── HtmlEntityDecoderTests.cs │ │ ├── HtmlTokenizerTests.cs │ │ ├── HtmlUtilsTests.cs │ │ ├── HtmlWriterTests.cs │ │ ├── TestData │ │ │ └── html │ │ │ │ ├── HtmlEntities.json │ │ │ │ ├── blocked.html │ │ │ │ ├── blocked.out.html │ │ │ │ ├── blocked.tokens │ │ │ │ ├── cdata.html │ │ │ │ ├── cdata.out.html │ │ │ │ ├── cdata.tokens │ │ │ │ ├── papercut-4.4.html │ │ │ │ ├── papercut-4.4.out.html │ │ │ │ ├── papercut-4.4.tokens │ │ │ │ ├── papercut.html │ │ │ │ ├── papercut.out.html │ │ │ │ ├── papercut.tokens │ │ │ │ ├── plaintext.html │ │ │ │ ├── plaintext.out.html │ │ │ │ ├── plaintext.tokens │ │ │ │ ├── script-data.html │ │ │ │ ├── script-data.out.html │ │ │ │ ├── script-data.tokens │ │ │ │ ├── test.html │ │ │ │ ├── test.out.html │ │ │ │ ├── test.tokens │ │ │ │ ├── xamarin3.html │ │ │ │ ├── xamarin3.out.html │ │ │ │ ├── xamarin3.tokens │ │ │ │ └── xamarin3.xhtml │ │ ├── UnitTests.csproj │ │ ├── packages.config │ │ ├── submit.ps1 │ │ └── test.ps1 │ ├── UnitTests_Net20 │ │ ├── HtmlTokenizerTests.cs │ │ ├── TestData │ │ │ └── html │ │ │ │ ├── blocked.html │ │ │ │ ├── blocked.tokens │ │ │ │ ├── test.html │ │ │ │ ├── test.tokens │ │ │ │ ├── xamarin3.html │ │ │ │ ├── xamarin3.tokens │ │ │ │ └── xamarin3.xhtml │ │ ├── UnitTests_Net20.csproj │ │ └── packages.config │ ├── appveyor.yml │ └── cov-build.bat ├── Deps_JsEngine │ └── README.md ├── HtmlRenderer.sln ├── LayoutFarm.HtmlComposer │ ├── 0_REF_PaintLab.MathML │ │ ├── CssBoxMathMLRoot.cs │ │ ├── Impl │ │ │ └── DomNodeDefinitionStore.cs │ │ ├── MathMLCreator.cs │ │ ├── MathMLHitChain.cs │ │ ├── MathMLRootEventPortal.cs │ │ └── MathMLRootEventPortal_IEventPortal.cs │ ├── 0_REF_PaintLab_Svg │ │ ├── CssBoxSvgRoot.cs │ │ ├── SvgCreator.cs │ │ ├── SvgRootEventPortal.cs │ │ └── SvgRootEventPortal_IEventPortal.cs │ ├── 0_Start │ │ └── ComposerConfig.cs │ ├── 1_Composers │ │ ├── 1_Builder │ │ │ ├── BulletNumberFormatter.cs │ │ │ ├── CustomCssBoxGenerator.cs │ │ │ ├── HtmlContentTextSplitter.cs │ │ │ ├── HtmlHost.cs │ │ │ ├── RenderTreeBuilder.cs │ │ │ ├── RunListHelper.cs │ │ │ ├── SpecialBoxCreator.cs │ │ │ ├── TopDownActiveCssTemplate.cs │ │ │ └── WebDocumentParser.cs │ │ ├── 2_Css │ │ │ ├── CssColorConv.cs │ │ │ ├── CssDefaults.cs │ │ │ └── SpecSetter.cs │ │ ├── 3_Scriptable │ │ │ └── EaseScriptElement.cs │ │ ├── 4_Diagnostic │ │ │ ├── ArgCheckNotNullAttribute.cs │ │ │ ├── HtmlGenerationStyle.cs │ │ │ └── HtmlRenderErrorType.cs │ │ ├── 5_RenderBoxes │ │ │ ├── HtmlRenderBox.cs │ │ │ ├── MyHtmlVisualRoot.cs │ │ │ ├── RenderElementWrapperCssBox.cs │ │ │ └── TopWindowRenderBox.cs │ │ └── 6_SpecialCssBoxes │ │ │ ├── CssBoxScrollView.cs │ │ │ └── CssIsolateBox.cs │ ├── 4_WebDom │ │ ├── CustomCssBoxGen.cs │ │ ├── HtmlDocument.cs │ │ ├── HtmlDocumentFragment.cs │ │ ├── HtmlElements.cs │ │ ├── HtmlShadowDocument.cs │ │ ├── HtmlSharedDocument.cs │ │ ├── HtmlTextNode.cs │ │ └── SpecialHtmlElements.cs │ ├── 5_RenderBasedUI │ │ └── RenderElementExtension.cs │ ├── 7_Events │ │ └── HtmlInputEventAdapter.cs │ ├── LayoutFarm.HtmlComposer.csproj │ └── Properties │ │ └── AssemblyInfo.cs ├── LayoutFarm.HtmlComposer_SH │ ├── LayoutFarm.HtmlComposer_SH.projitems │ └── LayoutFarm.HtmlComposer_SH.shproj ├── LayoutFarm.HtmlLayout │ ├── 1_Css │ │ ├── BoxSpec.cs │ │ ├── BoxSpecNode.cs │ │ ├── BoxSpec_CopyAndVersioning.cs │ │ ├── CssFeatures.cs │ │ ├── CssLengthExt.cs │ │ ├── FontDefaultConfig.cs │ │ └── IHtmlTextService.cs │ ├── 2_Boxes │ │ ├── 0_Root │ │ │ ├── CssBoxConstConfig.cs │ │ │ └── HtmlVisualRoot.cs │ │ ├── 1_CoreBox │ │ │ ├── BoxVisitor.cs │ │ │ ├── CssBox.cs │ │ │ ├── CssBoxCollection.cs │ │ │ ├── CssBoxDecorator.cs │ │ │ ├── CssBox_BoxFlags.cs │ │ │ ├── CssBox_Fields.cs │ │ │ ├── CssBox_Flex.cs │ │ │ ├── CssBox_OtherActualValues.cs │ │ │ ├── CssBox_Positions.cs │ │ │ ├── CssBox_Spec_ReadOnly.cs │ │ │ ├── CssBox_Spec_Snap.cs │ │ │ ├── CssBox_Unsafe.cs │ │ │ ├── CssLineBox.cs │ │ │ ├── CssSideAndOrientation.cs │ │ │ └── SelectionSegment.cs │ │ └── 2_Runs │ │ │ ├── CssBlockRun.cs │ │ │ ├── CssImageRun.cs │ │ │ ├── CssRun.cs │ │ │ └── CssTextRun.cs │ ├── 3_Boxes_Layout │ │ ├── 0_General │ │ │ ├── BoxHitUtils.cs │ │ │ ├── CssBoxLayoutExtension.cs │ │ │ ├── CssLayoutEngine.FloatFormattingContext.cs │ │ │ ├── CssLayoutEngine.cs │ │ │ ├── CssTableLayoutEngine.CssVerticalCellSpacingBox.cs │ │ │ ├── CssTableLayoutEngine.TableColumns.cs │ │ │ ├── CssTableLayoutEngine.cs │ │ │ └── LayoutVisitor.cs │ │ └── 1_Flex │ │ │ └── FlexContainer.cs │ ├── 4_HitAndSelections │ │ ├── BoxHitChain.cs │ │ └── SelectionRange.cs │ ├── 5_Boxes_SpecialBoxes │ │ ├── CssBoxFrame.cs │ │ ├── CssBoxHr.cs │ │ ├── CssBoxImage.cs │ │ ├── CssBoxListItem.cs │ │ └── CssFloatContainerBox.cs │ ├── LayoutFarm.HtmlLayout.csproj │ ├── PORT.cs │ └── Properties │ │ └── AssemblyInfo.cs ├── LayoutFarm.HtmlRenderer │ ├── BackgroundImagePaintHelper.cs │ ├── BorderPaintHelper.cs │ ├── CssBoxDecorator_R.cs │ ├── CssBoxHr_R.cs │ ├── CssBoxImage_R.cs │ ├── CssBox_Paint.cs │ ├── CssLineBox_R.cs │ ├── CssTextRun_R.cs │ ├── LayoutFarm.HtmlRenderer.csproj │ ├── MultiLayerStack.cs │ ├── PaintVisitor.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── RenderUtils.cs │ ├── SelectionSegment_R.cs │ ├── VisualRoot_R.cs │ └── dbug.cs ├── LayoutFarm.WebDom │ ├── 0_REF_HtmlKit │ │ ├── HtmlAttributeId.cs │ │ └── HtmlTagId.cs │ ├── 1_WebDom.Parser │ │ ├── DeprecatedAttribute.cs │ │ ├── HtmlKitParser.cs │ │ ├── HtmlParser.cs │ │ ├── HtmlUtils.cs │ │ ├── MyHtmlParser.cs │ │ └── TextSource.cs │ ├── 2_WebDom │ │ ├── DomElement.cs │ │ ├── DomElement_EventListener.cs │ │ ├── DomElement_OnEvents.cs │ │ ├── DomNodes.cs │ │ ├── ElementChangeKind.cs │ │ ├── StringTable.cs │ │ ├── WebDocument.cs │ │ └── WellknownElementName.cs │ ├── 3_WebDom_Interfaces │ │ └── HtmlInterfaces.cs │ ├── 4_WebDom.Impl │ │ ├── DomTextWriter.cs │ │ ├── HtmlDocument.cs │ │ ├── HtmlDocumentFragment.cs │ │ ├── HtmlDocument_Scripting.cs │ │ ├── HtmlElements.Scripting.cs │ │ ├── HtmlElements.cs │ │ ├── HtmlPredefinedNames.cs │ │ ├── HtmlShadowDocument.cs │ │ ├── HtmlTextNode.cs │ │ └── SpecialHtmlElements.cs │ ├── HtmlLexer │ │ ├── HtmlLexer.cs │ │ ├── MyHtmlLexer.cs │ │ └── MyHtmlLexer_dbug.cs │ ├── LayoutFarm.WebDom.csproj │ └── Properties │ │ └── AssemblyInfo.cs ├── LayoutFarm.YourHtmlWidget │ ├── 5.1_HtmlWidgetBase │ │ ├── 0_WidgetBase.cs │ │ ├── Button.cs │ │ ├── ChoiceBox.cs │ │ ├── ComboBox.cs │ │ ├── HingeBox.cs │ │ ├── HtmlDomExtension.cs │ │ ├── ListView.cs │ │ ├── Menu.cs │ │ ├── ScrollBar.cs │ │ ├── TabPageBox.cs │ │ ├── TreeView.cs │ │ └── WidgetResList.cs │ ├── 5_HtmlBox │ │ ├── HtmlBox.cs │ │ ├── HtmlHostContentManager.cs │ │ ├── HtmlHostExtensions.cs │ │ └── MyCustomCssBoxGenerator.cs │ ├── LayoutFarm.YourHtmlWidget.csproj │ └── Properties │ │ └── AssemblyInfo.cs ├── PaintLab.Sprite │ ├── PaintLab.Sprite.csproj │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── RectBoxController.cs │ ├── ShapeControllers.cs │ ├── SpriteElement.cs │ ├── UISprite.cs │ └── VgVisualElemHelper.cs ├── Test1_CoreVisual_New │ ├── Form1.Designer.cs │ ├── Form1.cs │ ├── Form1.resx │ ├── Program.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Test1_CoreVisual_New.csproj │ └── app.config ├── Test2_WebDomParsers │ ├── Form1.Designer.cs │ ├── Form1.cs │ ├── Form1.resx │ ├── Program.cs │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ ├── Resources.resx │ │ ├── Settings.Designer.cs │ │ └── Settings.settings │ ├── SampleData │ │ ├── 0_basic │ │ │ └── test01.html │ │ └── 1_large_and_errs │ │ │ ├── syntax.html │ │ │ └── test01.html │ └── Test2_WebDomParsers.csproj ├── Test3_MixHtml.One │ ├── Demo │ │ ├── arrow_blank.png │ │ ├── arrow_close.png │ │ ├── arrow_open.png │ │ └── favorites32.png │ ├── ExampleFolderConfig.cs │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ ├── Resources.resx │ │ ├── Settings.Designer.cs │ │ └── Settings.settings │ ├── Test3_MixHtml.One.csproj │ ├── app.config │ └── images │ │ ├── 01.jpg │ │ ├── 02.jpg │ │ ├── 03.jpg │ │ ├── 04.jpg │ │ ├── 05.jpg │ │ ├── images.txt │ │ └── sample01.png ├── Test3_MixHtml │ ├── Demo │ │ ├── arrow_blank.png │ │ ├── arrow_close.png │ │ ├── arrow_open.png │ │ └── favorites32.png │ ├── HtmlHostCreatorHelper.cs │ ├── Program.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Test3_MixHtml.csproj │ ├── app.config │ └── images │ │ ├── 01.jpg │ │ ├── 02.jpg │ │ ├── 03.jpg │ │ ├── 04.jpg │ │ ├── 05.jpg │ │ ├── images.txt │ │ └── sample01.png ├── Test3_MixHtml_SH │ ├── Demo_04 │ │ ├── 4.1_UIHtmlBox.cs │ │ ├── 4.2_MixHtml.cs │ │ ├── 4.3.1_UIHtmlBoxWithResReq.cs │ │ ├── 4.3.2_UIHtmlBox_ContentMx.cs │ │ ├── 4.4_CssLeanBox.cs │ │ ├── 4.5_LightHtmlBox.cs │ │ └── 4.6_DynamicDom1.cs │ ├── Demo_05 │ │ ├── 5.0_HtmlDemoBase.cs │ │ ├── 5.1_Demo_MenuItems.cs │ │ ├── 5.2_Demo_MultipleBoxes2.cs │ │ ├── 5.3_Demo_TabPage.cs │ │ ├── 5.7_Demo_ListView.cs │ │ ├── 5.8_Demo_Hinge.cs │ │ └── 5.9_Demo_TreeView.cs │ ├── Demo_06 │ │ ├── 6.1_Demo01_CreateHtmlDomStyle1.cs │ │ ├── 6.2_Demo02_CreateHtmlDomStyle2.cs │ │ ├── 6.3_Demo03_DynamicContent1.cs │ │ ├── 6.4_Demo04_DynamicContent2.cs │ │ ├── 6.5_Demo05_Dynamic_BoxSpec.cs │ │ └── HtmlDomExtension.cs │ ├── Demo_09 │ │ ├── 9.1_SvgTiger.cs │ │ ├── 9.2_ShapeControls.cs │ │ ├── 9.3_Demo_SvgViewer.cs │ │ └── 9.4_SvgParts.cs │ ├── Test3_MixHtml_SH.projitems │ └── Test3_MixHtml_SH.shproj ├── Test4.1_Neutral_NetCore │ ├── HtmlHostCreatorHelper.cs │ ├── NeutralTestBed │ │ ├── AppHostNeutral.cs │ │ └── TestBedStartup.cs │ ├── Program.cs │ └── Test4.1_Neutral_NetCore.csproj ├── Test4_Neutral │ ├── HtmlHostCreatorHelper.cs │ ├── NeutralTestBed │ │ ├── AppHostNeutral.cs │ │ └── TestBedStartup.cs │ ├── Program.cs │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ ├── Resources.resx │ │ ├── Settings.Designer.cs │ │ └── Settings.settings │ ├── Test4_Neutral.csproj │ └── app.config ├── Test5_Ease │ ├── AppModule │ │ └── SampleAppModule.cs │ ├── EaseComponents │ │ ├── MyJsTypeDefBuilder.cs │ │ └── MyWebConsole.cs │ ├── Form1.Designer.cs │ ├── Form1.cs │ ├── Form1.resx │ ├── Program.cs │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ ├── Resources.resx │ │ ├── Settings.Designer.cs │ │ └── Settings.settings │ └── Test5_Ease.csproj ├── Test6_WinNeutral │ ├── GLFWProgram.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ └── Test6_WinNeutral.csproj ├── Test7_Win │ ├── GLFWProgram.cs │ ├── Helper │ │ ├── EaseDomElement.cs │ │ ├── EaseHost.cs │ │ ├── EaseViewport.cs │ │ ├── FormCanvasHelper.cs │ │ ├── HtmlHostCreatorHelper.cs │ │ ├── SampleViewport.cs │ │ ├── SampleViewportExtension.cs │ │ └── UserHtmlWorkspace.cs │ ├── Helper2 │ │ ├── EaseDomElement.cs │ │ ├── EaseHost.cs │ │ ├── EaseViewport.cs │ │ └── UserHtmlWorkspace.cs │ ├── LionDataStore.cs │ ├── MyNativeRGBA32BitsImage.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── SampleBase.cs │ ├── SpriteShape.cs │ ├── T108_LionFill.cs │ └── Test7_Win.csproj ├── Test8_HtmlRenderer.Demo │ └── Samples │ │ ├── 0_acid1_dev │ │ ├── 00.htm │ │ ├── 000.1.html │ │ ├── 000.2.html │ │ ├── 001.html │ │ ├── 002.1.html │ │ ├── 002.html │ │ ├── 003.1.html │ │ ├── 003.10.html │ │ ├── 003.11.html │ │ ├── 003.12.html │ │ ├── 003.13.1.html │ │ ├── 003.13.html │ │ ├── 003.2.html │ │ ├── 003.3.html │ │ ├── 003.4.html │ │ ├── 003.5.1.html │ │ ├── 003.5.2.html │ │ ├── 003.5.html │ │ ├── 003.6.html │ │ ├── 003.7.html │ │ ├── 003.8.html │ │ ├── 003.9.html │ │ ├── 003.html │ │ ├── 00_1.htm │ │ ├── 00_2.htm │ │ ├── 00_input.htm │ │ ├── 00_input10.htm │ │ ├── 00_input2.htm │ │ ├── 00_input3.htm │ │ ├── 00_input4.htm │ │ ├── 00_input5.htm │ │ ├── 00_input6.htm │ │ ├── 00_input7.htm │ │ ├── 00_input8.htm │ │ ├── 00_input9.htm │ │ ├── 00_testspan.htm │ │ ├── 01_test_width.htm │ │ ├── arrow_blank.png │ │ ├── arrow_close.png │ │ ├── arrow_open.png │ │ ├── check_buttons.png │ │ ├── chk_checked.png │ │ ├── chk_unchecked.png │ │ ├── drop_down_button.png │ │ ├── favorites32.png │ │ ├── html32.png │ │ ├── opt_checked.png │ │ ├── opt_unchecked.png │ │ └── x00.ACID 1.htm │ │ ├── 1_acid2_dev │ │ └── acid2.html │ │ ├── Basic │ │ ├── 01_table1.htm │ │ ├── 02_text.htm │ │ ├── 02_text1.htm │ │ ├── 03_text2.htm │ │ ├── 04_text3.htm │ │ ├── 05_add.htm │ │ ├── 06_txt.htm │ │ ├── 07_1_ab2.htm │ │ ├── 07_ab.htm │ │ ├── 08_link1.htm │ │ ├── 08_link2.htm │ │ ├── 09_text.htm │ │ ├── 10_td.htm │ │ ├── 11_lines.htm │ │ ├── 12_table_image.htm │ │ ├── 13_text.htm │ │ ├── 14_table2.htm │ │ ├── 15_table3.htm │ │ ├── 16_div.htm │ │ ├── 17_inlineblock.htm │ │ ├── 18_inlineblock2.htm │ │ ├── 19_inlineblock3.htm │ │ ├── 20_inlineblock4.htm │ │ ├── 21_canvas.htm │ │ ├── 22_abs_pos.htm │ │ ├── 23_relative_pos.htm │ │ ├── 24_fixed_pos.htm │ │ ├── 25_center_pos.htm │ │ ├── 26_abs_pos2.htm │ │ ├── 30_padding.htm │ │ ├── 32_overflow_content.htm │ │ ├── 33_box_shadow1.htm │ │ ├── 40_div.htm │ │ ├── 50_input.htm │ │ ├── 51_htmlAttr.html │ │ ├── 52_box2.html │ │ ├── 53_box_sizing.html │ │ ├── 54_float1.htm │ │ ├── 55_float2.htm │ │ ├── 56_float3.htm │ │ ├── 57_float4.htm │ │ ├── 58_box_sizing2.html │ │ └── stylesheet1.css │ │ ├── ClassicSamples │ │ ├── 00.Intro.3.htm │ │ ├── 00.Intro.4.htm │ │ ├── 00.Intro.5_SVG.htm │ │ ├── 00.Intro.5_SVG2.htm │ │ ├── 00.Intro.htm │ │ ├── 00.Intro2.htm │ │ ├── 01.History.htm │ │ ├── 02.Text.htm │ │ ├── 03.Tables.htm │ │ ├── 04.Links.htm │ │ ├── 05.Images.htm │ │ ├── 06.Embeded video.htm │ │ ├── 07.Additional features.htm │ │ ├── 08.Tooltip.htm │ │ ├── 09.Using the library.htm │ │ ├── 10.HtmlPanel.htm │ │ ├── 11.HtmlLabel.htm │ │ ├── 12.HtmlToolTip.htm │ │ ├── 13.HtmlRender.htm │ │ ├── 14.HtmlContainer.htm │ │ ├── 20.About.htm │ │ ├── 21.IntroOld.htm │ │ ├── 22TextOld.htm │ │ ├── clown-fish.svg │ │ ├── html32.png │ │ ├── stylesheet1.css │ │ ├── x00.Intro.htm │ │ ├── x00.Intro2.htm │ │ ├── x00.Intro5.htm │ │ ├── x02.Text3.htm │ │ ├── x02.Text4.htm │ │ ├── x03.Tables.htm │ │ ├── x03.Tables2.htm │ │ └── x03.Tables3.htm │ │ ├── Experiment │ │ ├── 1_simple_flex.htm │ │ ├── 2_flex2.htm │ │ ├── 3_ext_flex.htm │ │ ├── 4_custom_element.htm │ │ └── 5_template.html │ │ ├── Fonts │ │ ├── SOV_Thanamas.ttf │ │ ├── SOV_Thanamas_readme_uvSOV.txt │ │ └── latinmodern-math.otf │ │ ├── PerfSamples │ │ └── 1.Big table.htm │ │ ├── Svg │ │ ├── freepik │ │ │ ├── README.md │ │ │ ├── archive.svg │ │ │ ├── cat.svg │ │ │ ├── clown-fish.svg │ │ │ ├── dog.svg │ │ │ ├── dog1.svg │ │ │ ├── duck.svg │ │ │ ├── folder.svg │ │ │ └── whale.svg │ │ └── others │ │ │ ├── README.MD │ │ │ ├── cat_complex.svg │ │ │ ├── cat_simple.svg │ │ │ ├── img01.svg │ │ │ ├── lion.svg │ │ │ ├── lion2.svg │ │ │ ├── lion3.svg │ │ │ ├── svg16_marker.svg │ │ │ ├── svg17_use.svg │ │ │ ├── text.svg │ │ │ ├── tiger.svg │ │ │ ├── volcano.svg │ │ │ ├── volcano2.svg │ │ │ ├── volcano3.svg │ │ │ └── wiki_structure_volcano-en.svg │ │ ├── SvgSamples │ │ ├── html32.png │ │ ├── svg01.htm │ │ ├── svg01_1.htm │ │ ├── svg02.htm │ │ ├── svg03_rounds.htm │ │ ├── svg04_lines.htm │ │ ├── svg04_text.html │ │ ├── svg05_gradient.htm │ │ ├── svg06_path.htm │ │ ├── svg07_path2.htm │ │ ├── svg08_image.htm │ │ ├── svg09_path3.htm │ │ ├── svg10_arc.htm │ │ ├── svg11_arc.htm │ │ ├── svg12_arc.htm │ │ ├── svg13_curve.htm │ │ ├── svg14_svg.html │ │ ├── svg15_curve.htm │ │ └── svg20_as_img_src.htm │ │ ├── TestSamples │ │ ├── 01.Header.htm │ │ ├── 02.Line break.htm │ │ ├── 03.Paragraphs.htm │ │ ├── 04.Blockquotes.htm │ │ ├── 05.Images.htm │ │ ├── 06.External Image.htm │ │ ├── 07.Background Image.htm │ │ ├── 08.White-space.htm │ │ ├── 09.Inline.htm │ │ ├── 10.BlockInInline.htm │ │ ├── 11.LineHeight.htm │ │ ├── 12.Text.htm │ │ ├── 13.Tables.htm │ │ ├── 14.Iframes.htm │ │ ├── 15.MaxWidth.htm │ │ ├── 16.Borders.htm │ │ ├── 17.Languages.htm │ │ ├── 18.Anchors.htm │ │ ├── 19.Many images.htm │ │ ├── 20.Fonts decorations.htm │ │ ├── 21.Bullets.htm │ │ ├── 22.RTL.htm │ │ ├── 30.Misc.htm │ │ └── 40.mathml.htm │ │ └── WordSplit │ │ ├── 1.th_TH.htm │ │ ├── 2.Symbols.htm │ │ └── 3.Symbols.htm ├── TestMobile │ ├── CustomApp01 │ │ ├── CustomApp.cs │ │ ├── CustomApp01.projitems │ │ ├── CustomApp01.shproj │ │ ├── HtmlHostCreatorHelper.cs │ │ └── YourImplementation │ │ │ ├── App.cs │ │ │ ├── AppHost.cs │ │ │ ├── AppHostExtensions.cs │ │ │ ├── DemoNote.cs │ │ │ ├── MyTextBreaker.cs │ │ │ └── RelativePathBuilder.cs │ ├── Droid │ │ ├── AppHostAndroid.cs │ │ ├── Assets │ │ │ └── AboutAssets.txt │ │ ├── DroidSans.ttf │ │ ├── GLView.cs │ │ ├── MainActivity.cs │ │ ├── Properties │ │ │ ├── AndroidManifest.xml │ │ │ └── AssemblyInfo.cs │ │ ├── Resources │ │ │ ├── AboutResources.txt │ │ │ ├── Resource.designer.cs │ │ │ ├── layout │ │ │ │ └── Main.axml │ │ │ ├── mipmap-hdpi │ │ │ │ └── Icon.png │ │ │ ├── mipmap-mdpi │ │ │ │ └── Icon.png │ │ │ ├── mipmap-xhdpi │ │ │ │ └── Icon.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── Icon.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── Icon.png │ │ │ └── values │ │ │ │ └── Strings.xml │ │ ├── SOV_Thanamas.ttf │ │ ├── TAHOMABD.TTF │ │ ├── TestApp01.Droid.csproj │ │ ├── packages.config │ │ └── tahoma.ttf │ ├── TestMobile.sln │ └── iOS │ │ ├── AppDelegate.cs │ │ ├── AppHostIOS.cs │ │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── Contents.json │ │ ├── DroidSans.ttf │ │ ├── Entitlements.plist │ │ ├── GameViewController.cs │ │ ├── Info.plist │ │ ├── LaunchScreen.storyboard │ │ ├── Main.cs │ │ ├── Main.storyboard │ │ ├── SOV_Thanamas.ttf │ │ ├── TestApp01.iOS.csproj │ │ ├── ViewController.designer.cs │ │ ├── packages.config │ │ └── tahoma.ttf ├── Tools │ └── BuildMergeProject │ │ ├── AndroidManifest.xml │ │ ├── BuildMergeProject.csproj │ │ ├── Form1.Designer.cs │ │ ├── Form1.cs │ │ ├── Form1.resx │ │ ├── MergeProjects.cs │ │ ├── Program.cs │ │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ ├── Resources.resx │ │ ├── Settings.Designer.cs │ │ └── Settings.settings │ │ ├── SolutionListViewController.cs │ │ ├── Xamarin_Droid_Template.xml │ │ ├── Xamarin_iOS_Template.xml │ │ └── app.config ├── YourImplementation │ ├── Bootstrap │ │ ├── BootStrapOpenGLES2.cs │ │ └── BootStrapWinGdi.cs │ ├── DrawingGLFontPrinter.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── Windows │ │ ├── InstallFontsProviderWin32.cs │ │ └── WindowFontLoader.cs │ └── YourImplementation.csproj ├── x_autogen │ └── HtmlRenderer.One │ │ └── HtmlRenderer.One.csproj ├── x_autogen2 │ └── HtmlRenderer.One │ │ └── HtmlRenderer.One.csproj ├── x_autogen_netstandard2.0 │ └── HtmlRenderer.One │ │ └── HtmlRenderer.One.csproj ├── x_autogen_xamarin_droid │ └── HtmlRenderer.One │ │ ├── AndroidManifest.xml │ │ ├── HtmlRenderer.One.Droid.csproj │ │ └── packages.config ├── x_autogen_xamarin_ios │ └── HtmlRenderer.One │ │ ├── HtmlRenderer.One.iOS.csproj │ │ └── packages.config ├── x_autogen_xamarin_ios_and_droid │ └── HtmlRenderer.One │ │ ├── AndroidManifest.xml │ │ └── HtmlRenderer.One.csproj └── x_merge_projects │ ├── HtmlComposer │ ├── HtmlComposer.csproj │ └── Properties │ │ └── AssemblyInfo.cs │ └── HtmlRenderer.One │ └── HtmlRenderer.One.csproj └── _config.yml /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | 24 | Source/Test8_HtmlRenderer.Demo/Samples/* linguist-vendored 25 | Source/Deps_HtmlKit/UnitTests/* linguist-vendored 26 | Source/Deps_HtmlKit/UnitTests_Net20/* linguist-vendored -------------------------------------------------------------------------------- /Source/Deps/we_use_PixelFarm.One.HtmlRenderer_dev_Branch.txt: -------------------------------------------------------------------------------- 1 | we_use_PixelFarm_dev_Branch.txt -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/.gitattributes: -------------------------------------------------------------------------------- 1 | *.csproj text 2 | *.nuspec text 3 | *.sln eol=crlf 4 | *.html text 5 | *.txt text 6 | *.yml text 7 | *.cs text 8 | *.md text 9 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/CodeGenerator/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/HtmlBuilder/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("HtmlBuilder")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("HtmlBuilder")] 13 | [assembly: AssemblyCopyright("Copyright © 2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("3d561b6c-c738-4a33-a392-5630ca9a0aa7")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/HtmlKit.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | HtmlKit 5 | 1.0.0 6 | HtmlKit 7 | Jeffrey Stedfast 8 | Jeffrey Stedfast 9 | http://opensource.org/licenses/MIT 10 | http://github.com/jstedfast/HtmlKit 11 | false 12 | HtmlKit is a cross-platform .NET framework for parsing HTML. 13 | HtmlKit is a cross-platform .NET framework for parsing HTML. 14 | 15 | 16 | Xamarin Inc. 17 | en-US 18 | html parser 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/HtmlKit_Net20/ForNet20.cs: -------------------------------------------------------------------------------- 1 |  2 | #if NET20 3 | namespace System.Runtime.CompilerServices 4 | { 5 | public partial class ExtensionAttribute : Attribute { } 6 | } 7 | #endif -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/HtmlKit_Net20/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("HtmlKit_Net20")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("HtmlKit_Net20")] 13 | [assembly: AssemblyCopyright("Copyright © 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("517eaaff-7cee-4558-b7f3-be30957aae69")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/License.md: -------------------------------------------------------------------------------- 1 | ## License Information 2 | 3 | HtmlKit is Copyright (C) 2015 Xamarin Inc. and is licensed under the MIT license: 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/TestWithWinForms/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Windows.Forms; 4 | namespace TestWithWinForms 5 | { 6 | static class Program 7 | { 8 | /// 9 | /// The main entry point for the application. 10 | /// 11 | [STAThread] 12 | static void Main() 13 | { 14 | Application.EnableVisualStyles(); 15 | Application.SetCompatibleTextRenderingDefault(false); 16 | Application.Run(new Form1()); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/TestWithWinForms/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("TestWithWinForms")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("TestWithWinForms")] 12 | [assembly: AssemblyCopyright("Copyright © 2015")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("6ae96c3a-f02f-4d63-8351-6dafd5b2375e")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/TestWithWinForms/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace TestWithWinForms.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/TestWithWinForms/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/TestWithWinForms/TestData/html/test.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Deps_HtmlKit/TestWithWinForms/TestData/html/test.html -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/TestWithWinForms/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/UnitTests/TestData/html/cdata.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CDATA Test Cases 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/UnitTests/TestData/html/cdata.out.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CDATA Test Cases 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/UnitTests/TestData/html/cdata.tokens: -------------------------------------------------------------------------------- 1 | Comment: ?xml version="1.0" encoding="utf-8"? 2 | Data: \n 3 | DocType: 4 | Data: \n 5 | Tag: 6 | Data: \n 7 | Tag: 8 | Data: \n 9 | Tag: 10 | Data: CDATA Test Cases 11 | Tag: 12 | Data: \n 13 | Tag: 14 | Data: \n 15 | Tag: 16 | Data: \n 17 | Comment: - 18 | Data: \n 19 | Comment: 20 | Data: \n 21 | CData: this is some CDATA text 22 | Data: \n 23 | Tag: 24 | Data: \n 25 | Tag: 26 | Data: \n 27 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/UnitTests/TestData/html/plaintext.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This is some plain text and should not need to have <'s and >'s encoded as entities within. 4 | 5 | Tags and end tags such as <b>BOLD!</b> </body> should have no effect in here. 6 | 7 | The <plaintext> tag is very much like the Hotel California. 8 | 9 | "Relax", said the nightman. "We are programmed to receive. You can checkout anytime you like, but you can never leave." 10 | 11 | Once you enter a </plaintext> tag, you can never leave. 12 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/UnitTests/TestData/html/plaintext.out.html: -------------------------------------------------------------------------------- 1 | <html> 2 | <body> 3 | <plaintext>This is some plain text and should not need to have <'s and >'s encoded as entities within. 4 | 5 | Tags and end tags such as <b>BOLD!</b> </body> should have no effect in here. 6 | 7 | The <plaintext> tag is very much like the Hotel California. 8 | 9 | "Relax", said the nightman. "We are programmed to receive. You can checkout anytime you like, but you can never leave." 10 | 11 | Once you enter a </plaintext> tag, you can never leave. 12 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/UnitTests/TestData/html/plaintext.tokens: -------------------------------------------------------------------------------- 1 | Tag: <html> 2 | Data: \n 3 | Tag: <body> 4 | Data: \n 5 | Tag: <plaintext> 6 | Data: This is some plain text and should not need to have <'s and >'s encoded as entities within.\n\n Tags and end tags such as <b>BOLD!</b> </body> should have no effect in here.\n\n The <plaintext> tag is very much like the Hotel California.\n\n "Relax", said the nightman. "We are programmed to receive. You can checkout anytime you like, but you can never leave."\n\n Once you enter a </plaintext> tag, you can never leave.\n 7 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/UnitTests/TestData/html/script-data.html: -------------------------------------------------------------------------------- 1 | <!DOCTYPE html> 2 | <html> 3 | <head> 4 | <title>Script Data Samples</title> 5 | <script></head></script> 6 | <script><!----</head>--></script/> 7 | <script><!--<!--escaped!-->--></script > 8 | <script><!--<--escaped!</script/> 9 | <script><!--<--<script>double escaped!</script></script> 10 | <script><!--<--<script>double escaped!-</script></script> 11 | <script><!--<--<script>double escaped!--<</script></script> 12 | </head> 13 | <body> 14 | <br/> 15 | </body> 16 | </html> 17 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/UnitTests/TestData/html/script-data.out.html: -------------------------------------------------------------------------------- 1 | <!DOCTYPE html> 2 | <html> 3 | <head> 4 | <title>Script Data Samples</title> 5 | <script></head></script> 6 | <script><!----</head>--></script/> 7 | <script><!--<!--escaped!-->--></script> 8 | <script><!--<--escaped!</script/> 9 | <script><!--<--<script>double escaped!</script></script> 10 | <script><!--<--<script>double escaped!-</script></script> 11 | <script><!--<--<script>double escaped!--<</script></script> 12 | </head> 13 | <body> 14 | <br/> 15 | </body> 16 | </html> 17 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/UnitTests/TestData/html/script-data.tokens: -------------------------------------------------------------------------------- 1 | DocType: <!DOCTYPE HTML> 2 | Data: \n 3 | Tag: <html> 4 | Data: \n 5 | Tag: <head> 6 | Data: \n 7 | Tag: <title> 8 | Data: Script Data Samples 9 | Tag: </title> 10 | Data: \n 11 | Tag: <script> 12 | ScriptData: </head> 13 | Tag: </script> 14 | Data: \n 15 | Tag: <script> 16 | ScriptData: <!---- 17 | ScriptData: </head>--> 18 | Tag: </script/> 19 | Data: \n 20 | Tag: <script> 21 | ScriptData: <!-- 22 | ScriptData: <!--escaped!-->--> 23 | Tag: </script> 24 | Data: \n 25 | Tag: <script> 26 | ScriptData: <!-- 27 | ScriptData: <--escaped! 28 | Tag: </script/> 29 | Data: \n 30 | Tag: <script> 31 | ScriptData: <!-- 32 | ScriptData: <-- 33 | ScriptData: <script>double escaped!</script> 34 | Tag: </script> 35 | Data: \n 36 | Tag: <script> 37 | ScriptData: <!-- 38 | ScriptData: <-- 39 | ScriptData: <script>double escaped!-</script> 40 | Tag: </script> 41 | Data: \n 42 | Tag: <script> 43 | ScriptData: <!-- 44 | ScriptData: <-- 45 | ScriptData: <script>double escaped!--<</script> 46 | Tag: </script> 47 | Data: \n 48 | Tag: </head> 49 | Data: \n 50 | Tag: <body> 51 | Data: \n 52 | Tag: <br/> 53 | Data: \n 54 | Tag: </body> 55 | Data: \n 56 | Tag: </html> 57 | Data: \n 58 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/UnitTests/TestData/html/test.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Deps_HtmlKit/UnitTests/TestData/html/test.html -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/UnitTests/packages.config: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <packages> 3 | <package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" /> 4 | <package id="NUnit" version="2.6.4" targetFramework="net45" /> 5 | </packages> -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/UnitTests/submit.ps1: -------------------------------------------------------------------------------- 1 | $revision = git rev-parse HEAD 2 | $branch = git rev-parse --abbrev-ref HEAD 3 | $commitAuthor = git show --quiet --format="%aN" $revision 4 | $commitEmail = git show --quiet --format="%aE" $revision 5 | $commitMessage = git show --quiet --format="%s" $revision 6 | 7 | #nuget install coveralls.net 8 | 9 | Set-PSDebug -Trace 2 10 | ..\packages\coveralls.net.0.5.0\csmacnz.Coveralls.exe ` 11 | --opencover -i opencover.xml ` 12 | --repoToken $Env:COVERALLS_REPO_TOKEN ` 13 | --commitId $revision ` 14 | --commitBranch $branch ` 15 | --commitAuthor $commitAuthor ` 16 | --commitEmail $commitEmail ` 17 | --commitMessage $commitMessage ` 18 | --useRelativePaths ` 19 | --basePath .\bin\Debug 20 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/UnitTests/test.ps1: -------------------------------------------------------------------------------- 1 | $testDir = ".\bin\Debug\" 2 | $tests = @("$testdir\UnitTests.dll") 3 | 4 | # nuget install OpenCover 5 | # nuget install NUnit.Runners 6 | 7 | foreach ($elem in $tests) { 8 | ..\packages\OpenCover.4.5.3723\OpenCover.Console.exe ` 9 | -register:user ` 10 | -target:..\packages\NUnit.Runners.2.6.4\tools\nunit-console.exe ` 11 | "-targetargs: ""$elem"" /framework:net-4.5 /noshadow" ` 12 | "-filter:+[HtmlKit]* -[UnitTests]* -[CodeGenerator]*" ` 13 | -output:opencover.xml ` 14 | } 15 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/UnitTests_Net20/TestData/html/test.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Deps_HtmlKit/UnitTests_Net20/TestData/html/test.html -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/UnitTests_Net20/packages.config: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <packages> 3 | <package id="NUnit" version="2.6.3" targetFramework="net45" /> 4 | </packages> -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/appveyor.yml: -------------------------------------------------------------------------------- 1 | version: 1.0.0.{build} 2 | 3 | configuration: Debug 4 | platform: Any CPU 5 | 6 | install: 7 | - cmd: nuget restore 8 | 9 | environment: 10 | COVERALLS_REPO_TOKEN: 11 | secure: CtNjB3/AUTKeFrXmEpR71u6zUBqp2z1/bESLf1LRoZvIQhRnuJEqc5GXELWVHKMI 12 | 13 | build: 14 | project: HtmlKit.sln 15 | verbosity: minimal 16 | 17 | test_script: 18 | - ps: >- 19 | $testDir = ".\UnitTests\bin\Debug\" 20 | 21 | $tests = @("$testdir\UnitTests.dll") 22 | 23 | foreach ($elem in $tests) { 24 | .\packages\OpenCover.4.5.3723\OpenCover.Console.exe ` 25 | -register:user ` 26 | -target:.\packages\NUnit.Runners.2.6.4\tools\nunit-console.exe ` 27 | "-targetargs: ""$elem"" /framework:net-4.5 /noshadow" ` 28 | "-filter:+[HtmlKit]* -[UnitTests]* -[CodeGenerator]*" ` 29 | -output:opencover.xml ` 30 | } 31 | 32 | $revision = git rev-parse HEAD 33 | 34 | $branch = git rev-parse --abbrev-ref HEAD 35 | 36 | $commitAuthor = git show --quiet --format="%aN" $revision 37 | 38 | $commitEmail = git show --quiet --format="%aE" $revision 39 | 40 | $commitMessage = git show --quiet --format="%s" $revision 41 | 42 | .\packages\coveralls.net.0.5.0\csmacnz.Coveralls.exe ` 43 | --opencover -i opencover.xml ` 44 | --repoToken $Env:COVERALLS_REPO_TOKEN ` 45 | --commitId $revision ` 46 | --commitBranch $branch ` 47 | --commitAuthor $commitAuthor ` 48 | --commitEmail $commitEmail ` 49 | --commitMessage $commitMessage ` 50 | --useRelativePaths ` 51 | --basePath .\UnitTests\bin\Debug 52 | -------------------------------------------------------------------------------- /Source/Deps_HtmlKit/cov-build.bat: -------------------------------------------------------------------------------- 1 | ..\cov-analysis\bin\cov-build.exe --dir cov-int "%WinDir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" /t:Rebuild HtmlKit.sln 2 | -------------------------------------------------------------------------------- /Source/Deps_JsEngine/README.md: -------------------------------------------------------------------------------- 1 | This folder should contains an Espresso lib. 2 | 3 | -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlComposer/0_REF_PaintLab.MathML/CssBoxMathMLRoot.cs: -------------------------------------------------------------------------------- 1 | //MS-PL, Apache2, 2014-present, WinterDev 2 | using PixelFarm.Drawing; 3 | using PixelFarm.CpuBlit; 4 | 5 | 6 | namespace LayoutFarm.HtmlBoxes 7 | { 8 | 9 | public sealed class CssBoxMathMLRoot : CssBox 10 | { 11 | public CssBoxMathMLRoot(Css.BoxSpec spec) 12 | : base(spec, Css.CssDisplay.Block) 13 | { 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlComposer/0_REF_PaintLab.MathML/Impl/DomNodeDefinitionStore.cs: -------------------------------------------------------------------------------- 1 | //MIT, 2020, Brezza92 2 | using LayoutFarm.Composers; 3 | using System; 4 | using System.Collections.Generic; 5 | namespace MathLayout 6 | { 7 | 8 | partial class DomNodeDefinitionStore 9 | { 10 | delegate MathNode MathNodeCreatorDelegate(); 11 | 12 | //another part of this is on autogen side 13 | public DomNodeDefinitionStore() 14 | { 15 | LoadNodeDefinition(); 16 | } 17 | partial void LoadNodeDefinition();//this is partial method, the implementation is on autogen side 18 | 19 | Dictionary<string, MathNodeCreatorDelegate> _nodeCreatorDic = new Dictionary<string, MathNodeCreatorDelegate>(); 20 | void Register(string nodeName, MathNodeCreatorDelegate creatorFunc) 21 | { 22 | _nodeCreatorDic.Add(nodeName, creatorFunc); 23 | } 24 | public MathNode CreateMathNode(string nodename) 25 | { 26 | if (!_nodeCreatorDic.TryGetValue(nodename, out MathNodeCreatorDelegate creator)) 27 | { 28 | System.Diagnostics.Debugger.Break();//??? 29 | } 30 | //if found this 31 | MathNode newNode = creator(); 32 | return newNode; 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlComposer/0_Start/ComposerConfig.cs: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlComposer/1_Composers/1_Builder/CustomCssBoxGenerator.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | using LayoutFarm.Css; 4 | using LayoutFarm.HtmlBoxes; 5 | using LayoutFarm.UI; 6 | namespace LayoutFarm.Composers 7 | { 8 | 9 | public abstract class CustomCssBoxGenerator 10 | { 11 | public abstract CssBox CreateCssBox(HtmlElement tag, 12 | CssBox parentBox, 13 | BoxSpec spec, 14 | HtmlHost host); 15 | 16 | public static CssBox CreateCssWrapper(HtmlHost htmlhost, 17 | object owner, 18 | RenderElement renderElement, 19 | BoxSpec spec, 20 | ISubDomExtender subDomExtender, 21 | bool isInline) 22 | { 23 | if (!(owner is IEventPortal portalEvent)) 24 | { 25 | portalEvent = new RenderElementEventPortal(renderElement); 26 | } 27 | 28 | if (isInline) 29 | { 30 | return new LayoutFarm.HtmlBoxes.InternalWrappers.WrapperInlineCssBox(htmlhost, portalEvent, spec, renderElement, subDomExtender); 31 | } 32 | else 33 | { 34 | return new LayoutFarm.HtmlBoxes.InternalWrappers.WrapperBlockCssBox(htmlhost, portalEvent, spec, renderElement, subDomExtender); 35 | } 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlComposer/1_Composers/1_Builder/RunListHelper.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | using System.Collections.Generic; 4 | using LayoutFarm.Css; 5 | using LayoutFarm.Composers; 6 | namespace LayoutFarm.HtmlBoxes 7 | { 8 | static class RunListHelper 9 | { 10 | public static void AddRunList(CssBox toBox, BoxSpec spec, HtmlTextNode textnode) 11 | { 12 | AddRunList(toBox, spec, textnode.InternalGetRuns(), textnode.GetOriginalBuffer(), textnode.IsWhiteSpace); 13 | } 14 | //--------------------------------------------------------------------------------------- 15 | public static void AddRunList(CssBox toBox, 16 | BoxSpec spec, 17 | List<CssRun> runlist, 18 | char[] buffer, 19 | bool isAllWhitespace) 20 | { 21 | CssBox.UnsafeSetTextBuffer(toBox, buffer); 22 | if (runlist != null) 23 | { 24 | for (int i = runlist.Count - 1; i >= 0; --i) 25 | { 26 | runlist[i].SetOwner(toBox); 27 | } 28 | } 29 | CssBox.UnsafeSetContentRuns(toBox, runlist, isAllWhitespace); 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlComposer/1_Composers/2_Css/CssColorConv.cs: -------------------------------------------------------------------------------- 1 | ////BSD, 2014-present, WinterDev 2 | 3 | //namespace LayoutFarm 4 | //{ 5 | // public static class CssColorConv 6 | // { 7 | // public static PixelFarm.Drawing.Color ConvertToActualColor(LayoutFarm.WebDom.CssColor color) 8 | // { 9 | // return new PixelFarm.Drawing.Color( 10 | // color.A, 11 | // color.R, 12 | // color.G, 13 | // color.B); 14 | // } 15 | // public static PixelFarm.Drawing.Color ConvertToCssColor(PixelFarm.Drawing.Color color) 16 | // { 17 | // return new PixelFarm.Drawing.Color( 18 | // color.A, 19 | // color.R, 20 | // color.G, 21 | // color.B); 22 | // } 23 | // } 24 | //} -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlComposer/1_Composers/4_Diagnostic/ArgCheckNotNullAttribute.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | using System; 4 | namespace LayoutFarm.HtmlDiagnostics 5 | { 6 | [AttributeUsage(AttributeTargets.Parameter)] 7 | public class ArgNotNullAttribute : Attribute 8 | { 9 | public ArgNotNullAttribute() 10 | { 11 | } 12 | public ArgNotNullAttribute(string desc) 13 | { 14 | this.Description = desc; 15 | } 16 | public string Description { get; private set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlComposer/1_Composers/4_Diagnostic/HtmlGenerationStyle.cs: -------------------------------------------------------------------------------- 1 | //BSD 2014, 2 | //ArthurHub, Jose Manuel Menendez Poo 3 | 4 | // "Therefore those skilled at the unorthodox 5 | // are infinite as heaven and earth, 6 | // inexhaustible as the great rivers. 7 | // When they come to an end, 8 | // they begin again, 9 | // like the days and months; 10 | // they die and are reborn, 11 | // like the four seasons." 12 | // 13 | // - Sun Tsu, 14 | // "The Art of War" 15 | //MIT, 2018-present, WinterDev 16 | namespace LayoutFarm.HtmlDiagnostics 17 | { 18 | /// <summary> 19 | /// Controls the way styles are generated when html is generated. 20 | /// </summary> 21 | public enum HtmlGenerationStyle 22 | { 23 | /// <summary> 24 | /// styles are not generated at all 25 | /// </summary> 26 | None = 0, 27 | /// <summary> 28 | /// style are inserted in style attribute for each html tag 29 | /// </summary> 30 | Inline = 1, 31 | /// <summary> 32 | /// style section is generated in the head of the html 33 | /// </summary> 34 | InHeader = 2 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlComposer/1_Composers/4_Diagnostic/HtmlRenderErrorType.cs: -------------------------------------------------------------------------------- 1 | //BSD 2014, 2 | //ArthurHub, Jose Manuel Menendez Poo 3 | 4 | // "Therefore those skilled at the unorthodox 5 | // are infinite as heaven and earth, 6 | // inexhaustible as the great rivers. 7 | // When they come to an end, 8 | // they begin again, 9 | // like the days and months; 10 | // they die and are reborn, 11 | // like the four seasons." 12 | // 13 | // - Sun Tsu, 14 | // "The Art of War" 15 | //MIT, 2018-present, WinterDev 16 | namespace LayoutFarm.HtmlDiagnostics 17 | { 18 | /// <summary> 19 | /// Enum of possible error types that can be repported. 20 | /// </summary> 21 | public enum HtmlRenderErrorType 22 | { 23 | General = 0, 24 | CssParsing = 1, 25 | HtmlParsing = 2, 26 | Image = 3, 27 | Paint = 4, 28 | Layout = 5, 29 | KeyboardMouse = 6, 30 | Iframe = 7, 31 | ContextMenu = 8, 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlComposer/1_Composers/5_RenderBoxes/TopWindowRenderBox.cs: -------------------------------------------------------------------------------- 1 |  2 | ////Apache2, 2014-present, WinterDev 3 | //using LayoutFarm.RenderBoxes; 4 | //using PixelFarm.Drawing; 5 | //namespace LayoutFarm 6 | //{ 7 | // public class TopWindowRenderBox2 : RenderBoxBase 8 | // { 9 | // public TopWindowRenderBox2(RootGraphic rootGfx, int width, int height) 10 | // : base(rootGfx, width, height) 11 | // { 12 | // this.IsTopWindow = true; 13 | // this.HasSpecificWidthAndHeight = true; 14 | // } 15 | // protected override void DrawBoxContent(DrawBoard canvas, Rectangle updateArea) 16 | // { 17 | // canvas.FillRectangle(Color.White, 0, 0, this.Width, this.Height); 18 | // this.DrawDefaultLayer(canvas, ref updateArea); 19 | // } 20 | // protected override PlainLayer CreateDefaultLayer() 21 | // { 22 | // throw new System.NotImplementedException(); 23 | // } 24 | // } 25 | //} -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlComposer/1_Composers/6_SpecialCssBoxes/CssIsolateBox.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | using PixelFarm.Drawing; 4 | using LayoutFarm.Css; 5 | namespace LayoutFarm.HtmlBoxes 6 | { 7 | 8 | 9 | class CssIsolateBox : CssBox 10 | { 11 | public CssIsolateBox(BoxSpec spec) 12 | : base(spec) 13 | { 14 | } 15 | } 16 | 17 | class RenderElementBridgeCssBox : CssBox 18 | { 19 | public RenderElementBridgeCssBox(BoxSpec spec, 20 | RenderElement containerElement) 21 | : base(spec) 22 | { 23 | ContainerElement = containerElement; 24 | } 25 | public override void InvalidateGraphics(Rectangle clientArea) 26 | { 27 | ContainerElement.InvalidateGraphics(clientArea); 28 | } 29 | public LayoutFarm.RenderElement ContainerElement { get; private set; } 30 | protected override void GetGlobalLocationImpl(out float globalX, out float globalY) 31 | { 32 | Point p = ContainerElement.GetGlobalLocation(); 33 | globalX = p.X; 34 | globalY = p.Y; 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlComposer/4_WebDom/HtmlDocumentFragment.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | namespace LayoutFarm.Composers 4 | { 5 | class HtmlDocumentFragment : HtmlDocument 6 | { 7 | HtmlDocument _primaryHtmlDoc; 8 | internal HtmlDocumentFragment(HtmlDocument primaryHtmlDoc) 9 | : base(primaryHtmlDoc.Host, primaryHtmlDoc.UniqueStringTable) 10 | { 11 | //share string table with primary html doc 12 | _primaryHtmlDoc = primaryHtmlDoc; 13 | } 14 | public override bool IsDocFragment => true; 15 | } 16 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlComposer/4_WebDom/HtmlShadowDocument.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | namespace LayoutFarm.Composers 4 | { 5 | class HtmlShadowDocument : HtmlDocument 6 | { 7 | //this is not document fragment *** 8 | HtmlDocument _primaryHtmlDoc; 9 | internal HtmlShadowDocument(HtmlBoxes.HtmlHost host, HtmlDocument primaryHtmlDoc) 10 | : base(host, primaryHtmlDoc.UniqueStringTable) 11 | { 12 | //share string table with primary html doc 13 | _primaryHtmlDoc = primaryHtmlDoc; 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlComposer/4_WebDom/HtmlSharedDocument.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | namespace LayoutFarm.Composers 4 | { 5 | class HtmlSharedDocument : HtmlDocument 6 | { 7 | //this is not document fragment *** 8 | HtmlDocument _primaryHtmlDoc; 9 | internal HtmlSharedDocument(HtmlDocument primaryHtmlDoc) 10 | : base(primaryHtmlDoc.Host, primaryHtmlDoc.UniqueStringTable) 11 | { 12 | //share string table with primary html doc 13 | _primaryHtmlDoc = primaryHtmlDoc; 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlComposer/5_RenderBasedUI/RenderElementExtension.cs: -------------------------------------------------------------------------------- 1 | //Apache2, 2014-present, WinterDev 2 | using LayoutFarm.UI; 3 | namespace LayoutFarm.InternalUI 4 | { 5 | static class RenderElementExtension 6 | { 7 | public static void AddChild(this RenderBoxBase renderBox, UIElement ui) 8 | { 9 | renderBox.AddChild(ui.GetPrimaryRenderElement()); 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlComposer_SH/LayoutFarm.HtmlComposer_SH.projitems: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 3 | <PropertyGroup> 4 | <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> 5 | <HasSharedItems>true</HasSharedItems> 6 | <SharedGUID>c0e4605d-5835-44fd-ba6c-747438d25609</SharedGUID> 7 | </PropertyGroup> 8 | <PropertyGroup Label="Configuration"> 9 | <Import_RootNamespace>LayoutFarm.HtmlComposer_SH</Import_RootNamespace> 10 | </PropertyGroup> 11 | </Project> -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlComposer_SH/LayoutFarm.HtmlComposer_SH.shproj: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 3 | <PropertyGroup Label="Globals"> 4 | <ProjectGuid>c0e4605d-5835-44fd-ba6c-747438d25609</ProjectGuid> 5 | <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion> 6 | </PropertyGroup> 7 | <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> 8 | <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props" /> 9 | <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.props" /> 10 | <PropertyGroup /> 11 | <Import Project="LayoutFarm.HtmlComposer_SH.projitems" Label="Shared" /> 12 | <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.CSharp.targets" /> 13 | </Project> 14 | -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlLayout/1_Css/BoxSpecNode.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | namespace LayoutFarm.Css 3 | { 4 | public class BoxSpecNode 5 | { 6 | 7 | public BoxSpecNode ParentNode { get; set; } 8 | } 9 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlLayout/1_Css/FontDefaultConfig.cs: -------------------------------------------------------------------------------- 1 | //MIT, 2020, WinterDev 2 | using System; 3 | 4 | namespace LayoutFarm.Css 5 | { 6 | public static class FontDefaultConfig 7 | { 8 | 9 | public static string DEFAULT_FONT_NAME = "Tahoma"; 10 | /// <summary> 11 | /// Default font size in points. Change this value to modify the default font size. 12 | /// </summary> 13 | public static float DEFAULT_FONT_SIZE = 10f; 14 | } 15 | 16 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlLayout/1_Css/IHtmlTextService.cs: -------------------------------------------------------------------------------- 1 | //MIT, 2020-present, WinterDev 2 | 3 | using PixelFarm.Drawing; 4 | 5 | 6 | namespace LayoutFarm.Css 7 | { 8 | public interface IHtmlTextService 9 | { 10 | float MeasureWhitespace(RequestFont f); 11 | float MeasureBlankLineHeight(RequestFont f); 12 | 13 | Size MeasureString(in TextBufferSpan textBufferSpan, RequestFont font); 14 | Size MeasureString(in TextBufferSpan textBufferSpan, Typography.Text.ResolvedFont font); 15 | void MeasureString(in TextBufferSpan textBufferSpan, RequestFont font, int maxWidth, out int charFit, out int charFitWidth); 16 | 17 | Typography.Text.ResolvedFont ResolveFont(RequestFont reqFont); 18 | } 19 | 20 | public interface IHtmlRequestFont 21 | { 22 | 23 | } 24 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlLayout/2_Boxes/0_Root/CssBoxConstConfig.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | namespace LayoutFarm.HtmlBoxes 4 | { 5 | static class CssBoxConstConfig 6 | { 7 | internal const int BOX_MAX_WIDTH = 90999; 8 | internal const int BOX_MAX_RIGHT = 90999; 9 | internal const int BOX_MAX_BOTTOM = 90999; 10 | internal const float TABLE_MAX_WIDTH = 9999f; 11 | internal const float TABLE_VERT_OFFSET_THESHOLD = 0.01f; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlLayout/2_Boxes/1_CoreBox/CssBoxDecorator.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | using PixelFarm.Drawing; 4 | namespace LayoutFarm.HtmlBoxes 5 | { 6 | partial class CssBoxDecorator 7 | { 8 | #if DEBUG 9 | static int totaldbugId = 0; 10 | public readonly int dbugId = totaldbugId++; 11 | #endif 12 | public CssBoxDecorator() 13 | { 14 | } 15 | public Color Color { get; set; } 16 | public int HBoxShadowOffset { get; set; } 17 | public int VBoxShadowOffset { get; set; } 18 | public int BlurRadius { get; set; } 19 | public int SpreadDistance { get; set; } 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlLayout/2_Boxes/1_CoreBox/CssBox_Flex.cs: -------------------------------------------------------------------------------- 1 | //MIT, 2015-present, WinterDev 2 | 3 | namespace LayoutFarm.HtmlBoxes 4 | { 5 | partial class CssBox 6 | { 7 | 8 | internal bool HasFlexContext { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlLayout/2_Boxes/1_CoreBox/CssSideAndOrientation.cs: -------------------------------------------------------------------------------- 1 | //BSD 2014, 2 | //ArthurHub, Jose Manuel Menendez Poo 3 | 4 | // "Therefore those skilled at the unorthodox 5 | // are infinite as heaven and earth, 6 | // inexhaustible as the great rivers. 7 | // When they come to an end, 8 | // they begin again, 9 | // like the days and months; 10 | // they die and are reborn, 11 | // like the four seasons." 12 | // 13 | // - Sun Tsu, 14 | // "The Art of War" 15 | 16 | namespace LayoutFarm.HtmlBoxes 17 | { 18 | enum CssSide 19 | { 20 | Top, 21 | Right, 22 | Bottom, 23 | Left 24 | } 25 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlLayout/2_Boxes/1_CoreBox/SelectionSegment.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | 4 | namespace LayoutFarm.HtmlBoxes 5 | { 6 | enum SelectionSegmentKind 7 | { 8 | SingleLine, 9 | 10 | FullLine, 11 | PartialBegin, 12 | PartialEnd, 13 | } 14 | 15 | partial class SelectionSegment 16 | { 17 | public static readonly SelectionSegment FullLine = new SelectionSegment(); 18 | private SelectionSegment() 19 | { 20 | this.Kind = SelectionSegmentKind.FullLine; 21 | } 22 | public SelectionSegment(int beginAtPixel, int width, SelectionSegmentKind kind) 23 | { 24 | this.Kind = kind; 25 | this.BeginAtPx = beginAtPixel; 26 | this.WidthPx = width; 27 | } 28 | 29 | public SelectionSegmentKind Kind { get; private set; } 30 | public void Clear() 31 | { 32 | } 33 | public int BeginAtPx { get; private set; } 34 | public int WidthPx { get; private set; } 35 | public CssRun StartHitRun { get; set; } 36 | public int StartHitCharIndex { get; set; } 37 | public CssRun EndHitRun { get; set; } 38 | public int EndHitCharIndex { get; set; } 39 | 40 | } 41 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlLayout/2_Boxes/2_Runs/CssBlockRun.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | using System.Text; 4 | 5 | namespace LayoutFarm.HtmlBoxes 6 | { 7 | public class CssBlockRun : CssRun 8 | { 9 | CssBox _contentBlockBox; 10 | public CssBlockRun(CssBox contentBlockBox) 11 | : base(CssRunKind.BlockRun) 12 | { 13 | _contentBlockBox = contentBlockBox; 14 | } 15 | public CssBox ContentBox => _contentBlockBox; 16 | 17 | public override void WriteContent(System.Text.StringBuilder stbuilder, int start, int length) 18 | { 19 | //nothing to write? 20 | #if DEBUG 21 | System.Diagnostics.Debug.WriteLine("write_content: on CssBlockRun"); 22 | #endif 23 | 24 | } 25 | public override void WriteContent(StringBuilder stbuilder, int start = 0) 26 | { 27 | #if DEBUG 28 | System.Diagnostics.Debug.WriteLine("write_content: on CssBlockRun"); 29 | #endif 30 | 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlLayout/5_Boxes_SpecialBoxes/CssBoxListItem.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | 4 | using PixelFarm.Drawing; 5 | namespace LayoutFarm.HtmlBoxes 6 | { 7 | public class CssBoxListItem : CssBox 8 | { 9 | CssBox _listItemBulletBox; 10 | public CssBoxListItem(Css.BoxSpec spec) 11 | : base(spec) 12 | { 13 | } 14 | public CssBox BulletBox 15 | { 16 | get 17 | { 18 | return _listItemBulletBox; 19 | } 20 | set 21 | { 22 | _listItemBulletBox = value; 23 | } 24 | } 25 | protected override void PerformContentLayout(LayoutVisitor lay) 26 | { 27 | base.PerformContentLayout(lay); 28 | if (_listItemBulletBox != null) 29 | { 30 | //layout list item 31 | var prevSibling = lay.LatestSiblingBox; 32 | lay.LatestSiblingBox = null;//reset 33 | _listItemBulletBox.PerformLayout(lay); 34 | lay.LatestSiblingBox = prevSibling; 35 | var fRun = _listItemBulletBox.FirstRun; 36 | _listItemBulletBox.FirstRun.SetSize(fRun.Width, fRun.Height); 37 | _listItemBulletBox.FirstRun.SetLocation(_listItemBulletBox.VisualWidth - 5, this.ActualPaddingTop); 38 | } 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlLayout/5_Boxes_SpecialBoxes/CssFloatContainerBox.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | 4 | using PixelFarm.Drawing; 5 | namespace LayoutFarm.HtmlBoxes 6 | { 7 | class CssFloatContainerBox : CssBox 8 | { 9 | public CssFloatContainerBox(Css.BoxSpec boxSpec, Css.CssDisplay display) 10 | : base(boxSpec, display) 11 | { 12 | } 13 | internal override bool JustTempContainer => true; 14 | } 15 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlLayout/PORT.cs: -------------------------------------------------------------------------------- 1 | //MIT, 2020, WinterDev 2 | using System; 3 | using System.Collections.Generic; 4 | using PixelFarm.Drawing; 5 | 6 | 7 | 8 | namespace LayoutFarm.HtmlBoxes 9 | { 10 | 11 | static class CssBoxRenderExt 12 | { 13 | public static void InvalidateGraphics(this CssBox box) { } 14 | public static void InvalidateGraphics(this CssBox box, RectangleF r) { } 15 | } 16 | } 17 | 18 | -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlLayout/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("LayoutFarm.HtmlLayout")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("LayoutFarm.HtmlLayout")] 13 | [assembly: AssemblyCopyright("MIT, 2020")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("a1070ba8-979c-4a02-a699-31bc54fe1ea3")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlRenderer/CssBoxDecorator_R.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | 4 | namespace LayoutFarm.HtmlBoxes 5 | { 6 | partial class CssBoxDecorator 7 | { 8 | 9 | public void Paint(CssBox box, PaintVisitor p) 10 | { 11 | p.FillRectangle(this.Color, 12 | box.LocalX + this.HBoxShadowOffset, 13 | box.LocalY + this.VBoxShadowOffset, 14 | box.VisualWidth, 15 | box.VisualHeight); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlRenderer/CssTextRun_R.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | //ArthurHub, Jose Manuel Menendez Poo 3 | 4 | // "Therefore those skilled at the unorthodox 5 | // are infinite as heaven and earth, 6 | // inexhaustible as the great rivers. 7 | // When they come to an end, 8 | // they begin again, 9 | // like the days and months; 10 | // they die and are reborn, 11 | // like the four seasons." 12 | // 13 | // - Sun Tsu, 14 | // "The Art of War" 15 | 16 | 17 | using System.Text; 18 | 19 | namespace LayoutFarm.HtmlBoxes 20 | { 21 | /// <summary> 22 | /// Represents a word inside an inline box 23 | /// </summary> 24 | partial class CssTextRun : CssRun 25 | { 26 | 27 | PixelFarm.Drawing.RenderVxFormattedString _cacheRenderVx; 28 | public static PixelFarm.Drawing.RenderVxFormattedString GetCachedFormatString(CssTextRun textrun) => textrun._cacheRenderVx; 29 | public static void SetCachedFormattedString(CssTextRun textrun, PixelFarm.Drawing.RenderVxFormattedString cache) 30 | { 31 | if (textrun._cacheRenderVx != null && textrun._cacheRenderVx != cache) 32 | { 33 | textrun._cacheRenderVx.Dispose(); 34 | } 35 | textrun._cacheRenderVx = cache; 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlRenderer/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("HtmlRenderer")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("HtmlRenderer")] 12 | [assembly: AssemblyCopyright("Copyright © 2008-2015")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("ec8a9e7e-9a9d-43c3-aa97-f6f505b1d3ed")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | [assembly: AssemblyVersion("2.0.0.10")] 32 | [assembly: AssemblyFileVersion("2.0.0.10")] 33 | 34 | -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlRenderer/SelectionSegment_R.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | 4 | namespace LayoutFarm.HtmlBoxes 5 | { 6 | 7 | partial class SelectionSegment 8 | { 9 | public void PaintSelection(PaintVisitor p, CssLineBox line) 10 | { 11 | if (this.Kind == SelectionSegmentKind.FullLine) 12 | { 13 | p.FillRectangle(p.CssBoxSelectionColor, //should be configurable 14 | 0, 15 | 0, 16 | line.CachedLineContentWidth, 17 | line.CacheLineHeight); 18 | 19 | } 20 | else 21 | { 22 | p.FillRectangle( 23 | p.CssBoxSelectionColor, 24 | this.BeginAtPx, 0, 25 | this.WidthPx, 26 | (int)line.CacheLineHeight); 27 | } 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.HtmlRenderer/VisualRoot_R.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | //ArthurHub, Jose Manuel Menendez Poo 3 | 4 | 5 | namespace LayoutFarm.HtmlBoxes 6 | { 7 | partial class HtmlVisualRoot 8 | { 9 | 10 | 11 | public void PerformPaint(PaintVisitor p) 12 | { 13 | if (_rootBox == null) 14 | { 15 | return; 16 | } 17 | 18 | p.PushContaingBlock(_rootBox); 19 | #if DEBUG 20 | p.dbugEnableLogRecord = false; 21 | p.dbugResetLogRecords(); 22 | dbugPaintN++; 23 | #endif 24 | CssBox.Paint(_rootBox, p); 25 | 26 | p.PopContainingBlock(); 27 | #if DEBUG 28 | 29 | if (p.dbugEnableLogRecord) 30 | { 31 | 32 | } 33 | #endif 34 | 35 | } 36 | } 37 | 38 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.WebDom/1_WebDom.Parser/DeprecatedAttribute.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | using System; 4 | namespace LayoutFarm 5 | { 6 | public class FeatureDeprecatedAttribute : Attribute 7 | { 8 | public FeatureDeprecatedAttribute() 9 | { 10 | } 11 | public FeatureDeprecatedAttribute(string note) 12 | { 13 | this.Note = note; 14 | } 15 | public string Note { get; set; } 16 | } 17 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.WebDom/1_WebDom.Parser/TextSource.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | using System; 4 | using LayoutFarm.WebLexer; 5 | namespace LayoutFarm.WebDom.Parser 6 | { 7 | public class TextSource 8 | { 9 | TextSnapshot _actualSnapshot; 10 | public TextSource(char[] textBuffer) 11 | { 12 | _actualSnapshot = new TextSnapshot(textBuffer); 13 | } 14 | internal TextSnapshot ActualSnapshot => _actualSnapshot; 15 | 16 | 17 | public static string GetInternalText(TextSource textsource) 18 | { 19 | return new string(TextSnapshot.UnsafeGetInternalBuffer(textsource._actualSnapshot)); 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.WebDom/2_WebDom/ElementChangeKind.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | namespace LayoutFarm.WebDom 4 | { 5 | public enum ElementChangeKind 6 | { 7 | ClearAllChildren, 8 | AddChild, 9 | SetAttribute, 10 | RemoveChild, 11 | Spec, 12 | ContentUpdate, 13 | AttributeChanged 14 | } 15 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.WebDom/4_WebDom.Impl/DomTextWriter.cs: -------------------------------------------------------------------------------- 1 | //MIT, 2015-present, WinterDev 2 | //ArthurHub, Jose Manuel Menendez Poo 3 | 4 | using System; 5 | using System.Text; 6 | namespace LayoutFarm.WebDom 7 | { 8 | public class DomTextWriter 9 | { 10 | StringBuilder _stbuilder; 11 | public DomTextWriter(StringBuilder stbuilder) 12 | { 13 | _stbuilder = stbuilder; 14 | } 15 | public void Clear() => _stbuilder.Length = 0; 16 | public override string ToString() => _stbuilder.ToString(); 17 | 18 | public void Write(char[] buffer) 19 | { 20 | _stbuilder.Append(buffer); 21 | } 22 | public void Write(string s1) 23 | { 24 | _stbuilder.Append(s1); 25 | } 26 | public void Write(char c1) 27 | { 28 | _stbuilder.Append(c1); 29 | } 30 | public void Write(string s1, string s2) 31 | { 32 | _stbuilder.Append(s1); 33 | _stbuilder.Append(s2); 34 | } 35 | public void Write(string s1, string s2, string s3) 36 | { 37 | _stbuilder.Append(s1); 38 | _stbuilder.Append(s2); 39 | _stbuilder.Append(s3); 40 | } 41 | public void NewLine() 42 | { 43 | _stbuilder.AppendLine(); 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.WebDom/4_WebDom.Impl/HtmlDocumentFragment.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | namespace LayoutFarm.WebDom.Impl 4 | { 5 | public class HtmlDocumentFragment : HtmlDocument 6 | { 7 | HtmlDocument _primaryHtmlDoc; 8 | internal HtmlDocumentFragment(HtmlDocument primaryHtmlDoc) 9 | : base(primaryHtmlDoc.UniqueStringTable) 10 | { 11 | //share string table with primary html doc 12 | _primaryHtmlDoc = primaryHtmlDoc; 13 | } 14 | public override bool IsDocFragment => true; 15 | } 16 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.WebDom/4_WebDom.Impl/HtmlDocument_Scripting.cs: -------------------------------------------------------------------------------- 1 | //MIT, 2015-present, WinterDev 2 | 3 | using LayoutFarm.Scripting; 4 | namespace LayoutFarm.WebDom.Impl 5 | { 6 | partial class HtmlDocument : IHtmlDocument 7 | { 8 | 9 | IHtmlElement IHtmlDocument.getElementById(string id) 10 | { 11 | return this.GetElementById(id) as HtmlElement; 12 | } 13 | 14 | 15 | ITextNode IHtmlDocument.createTextNode(string nodeContent) 16 | { 17 | return this.CreateTextNode(nodeContent.ToCharArray()); 18 | } 19 | 20 | IHtmlElement IHtmlDocument.createElement(string nodeName) 21 | { 22 | return (HtmlElement)this.CreateElement(nodeName); 23 | } 24 | 25 | 26 | IHtmlElement IHtmlDocument.rootNode 27 | { 28 | get { return (IHtmlElement)this.RootNode; } 29 | } 30 | 31 | IHtmlDocument IHtmlDocument.createDocumentFragment() 32 | { 33 | return (IHtmlDocument)this.CreateDocumentFragment(); 34 | } 35 | 36 | IHtmlElement IHtmlDocument.createShadowRootElement() 37 | { 38 | return (IHtmlElement)this.CreateShadowRootElement(); 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.WebDom/4_WebDom.Impl/HtmlPredefinedNames.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | namespace LayoutFarm.WebDom.Impl 4 | { 5 | public static class HtmlPredefineNames 6 | { 7 | static readonly ValueMap<WellknownName> _wellKnownHtmlNameMap = new ValueMap<WellknownName>(); 8 | static UniqueStringTable htmlUniqueStringTableTemplate = new UniqueStringTable(); 9 | static HtmlPredefineNames() 10 | { 11 | int j = _wellKnownHtmlNameMap.Count; 12 | for (int i = 0; i < j; ++i) 13 | { 14 | htmlUniqueStringTableTemplate.AddStringIfNotExist(_wellKnownHtmlNameMap.GetStringFromValue((WellknownName)(i + 1))); 15 | } 16 | } 17 | public static UniqueStringTable CreateUniqueStringTableClone() 18 | { 19 | return htmlUniqueStringTableTemplate.Clone(); 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.WebDom/4_WebDom.Impl/HtmlShadowDocument.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | namespace LayoutFarm.WebDom.Impl 4 | { 5 | class HtmlShadowDocument : HtmlDocument 6 | { 7 | //this is not document fragment *** 8 | HtmlDocument _primaryHtmlDoc; 9 | public HtmlShadowDocument(HtmlDocument primaryHtmlDoc) 10 | : base(primaryHtmlDoc.UniqueStringTable) 11 | { 12 | //share string table with primary html doc 13 | _primaryHtmlDoc = primaryHtmlDoc; 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.WebDom/4_WebDom.Impl/HtmlTextNode.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | //ArthurHub, Jose Manuel Menendez Poo 3 | 4 | namespace LayoutFarm.WebDom.Impl 5 | { 6 | public class HtmlTextNode : DomTextNode 7 | { 8 | //--------------------------------- 9 | //this node may be simple text node 10 | bool _freeze; 11 | bool _hasSomeChar; 12 | public HtmlTextNode(WebDocument ownerDoc, char[] buffer) 13 | : base(ownerDoc, buffer) 14 | { 15 | } 16 | // 17 | public bool IsWhiteSpace => !_hasSomeChar; 18 | public bool IsFreeze => _freeze; 19 | 20 | #if DEBUG 21 | public override string ToString() 22 | { 23 | return new string(base.GetOriginalBuffer()); 24 | } 25 | #endif 26 | public void WriteTextNode(DomTextWriter writer) 27 | { 28 | //write inner run 29 | writer.Write(this.GetOriginalBuffer()); 30 | } 31 | } 32 | public enum TextSplitPartKind : byte 33 | { 34 | Text = 1, 35 | Whitespace, 36 | SingleWhitespace, 37 | LineBreak, 38 | } 39 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.WebDom/4_WebDom.Impl/SpecialHtmlElements.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | using System; 4 | namespace LayoutFarm.WebDom.Impl 5 | { 6 | sealed class HtmlRootElement : HtmlElement 7 | { 8 | public HtmlRootElement(HtmlDocument ownerDoc) 9 | : base(ownerDoc, 0, 0) 10 | { 11 | } 12 | #if DEBUG 13 | public override string ToString() 14 | { 15 | return "!root"; 16 | } 17 | #endif 18 | } 19 | 20 | 21 | 22 | 23 | sealed class ShadowRootElement : HtmlElement 24 | { 25 | //note: this version is not conform with w3c 26 | HtmlShadowDocument _shadowDoc; 27 | public ShadowRootElement(HtmlDocument owner, int prefix, int localNameIndex) 28 | : base(owner, prefix, localNameIndex) 29 | { 30 | _shadowDoc = new HtmlShadowDocument(owner); 31 | _shadowDoc.SetDomUpdateHandler(owner.DomUpdateHandler); 32 | } 33 | public override void AddChild(DomNode childNode) 34 | { 35 | //add dom node to this node 36 | if (childNode.ParentNode != null) 37 | { 38 | throw new NotSupportedException("remove from its parent first"); 39 | } 40 | _shadowDoc.RootNode.AddChild(childNode); 41 | } 42 | #if DEBUG 43 | public override string ToString() 44 | { 45 | return "shadow-root"; 46 | } 47 | #endif 48 | } 49 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.WebDom/HtmlLexer/HtmlLexer.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | using LayoutFarm.WebLexer; 4 | namespace LayoutFarm.WebDom.Parser 5 | { 6 | 7 | public abstract partial class HtmlLexer 8 | { 9 | public event XmlLexerEventHandler LexStateChanged; 10 | protected void RaiseStateChanged(XmlLexerEvent lexEvent, int startIndex, int len) 11 | { 12 | LexStateChanged(lexEvent, startIndex, len); 13 | } 14 | public virtual void Analyze(TextSnapshot textSnapshot) { } 15 | public virtual void BeginLex() 16 | { 17 | } 18 | public virtual void EndLex() 19 | { 20 | } 21 | public static HtmlLexer CreateLexer() 22 | { 23 | return new MyHtmlLexer(); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Source/LayoutFarm.WebDom/HtmlLexer/MyHtmlLexer_dbug.cs: -------------------------------------------------------------------------------- 1 | //BSD, 2014-present, WinterDev 2 | 3 | using LayoutFarm.WebLexer; 4 | namespace LayoutFarm.WebDom.Parser 5 | { 6 | #if DEBUG 7 | partial class MyHtmlLexer 8 | { 9 | dbugLexerReport dbug_LexerReport; 10 | int dbug_currentLineCharIndex = -1; 11 | int dbug_currentLineNumber = 0; 12 | void dbug_OnStartAnalyze() 13 | { 14 | } 15 | void dbug_OnFinishAnalyze() 16 | { 17 | } 18 | public void dbugStartRecord(System.IO.StreamWriter writer) 19 | { 20 | dbug_LexerReport = new dbugLexerReport(); 21 | dbug_LexerReport.Start(writer); 22 | } 23 | 24 | public void dbugEndRecord() 25 | { 26 | dbug_LexerReport.Flush(); 27 | dbug_LexerReport = null; 28 | } 29 | 30 | void dbugReportChar(char c, int currentState) 31 | { 32 | if (dbug_LexerReport != null) 33 | { 34 | dbug_LexerReport.WriteLine("[" + dbug_currentLineNumber + " ," + 35 | dbug_currentLineCharIndex + "] state=" + currentState + " char=" + c); 36 | } 37 | } 38 | } 39 | #endif 40 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.YourHtmlWidget/5.1_HtmlWidgetBase/ComboBox.cs: -------------------------------------------------------------------------------- 1 | //Apache2, 2014-present, WinterDev 2 | 3 | namespace LayoutFarm.HtmlWidgets 4 | { 5 | public class ComboBox : HingeBox 6 | { 7 | public ComboBox(int w, int h) 8 | : base(w, h) 9 | { 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /Source/LayoutFarm.YourHtmlWidget/5.1_HtmlWidgetBase/WidgetResList.cs: -------------------------------------------------------------------------------- 1 | //MIT, 2019-present, WinterDev 2 | using System; 3 | namespace LayoutFarm.HtmlWidgets 4 | { 5 | 6 | static class WidgetResList 7 | { 8 | //store 'built-in' resource list for our HtmlWidgetBase 9 | public const string opt_checked = "built_in://imgs/opt_checked.png"; 10 | public const string opt_unchecked = "built_in://imgs/opt_unchecked.png"; 11 | public const string chk_checked = "built_in://imgs/chk_checked.png"; 12 | public const string chk_unchecked = "built_in://imgs/chk_unchecked.png"; 13 | // 14 | public const string arrow_close = "built_in://imgs/arrow_close.png"; 15 | public const string arrow_open = "built_in://imgs/arrow_open.png"; 16 | 17 | //--------- 18 | 19 | } 20 | } -------------------------------------------------------------------------------- /Source/PaintLab.Sprite/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("PaintLab.Sprite")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("PaintLab.Sprite")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("5c694901-f73a-4ab7-9fa6-024dd591c33e")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Source/Test1_CoreVisual_New/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Forms; 3 | namespace TestGraphicPackage 4 | { 5 | static class Program 6 | { 7 | [STAThread] 8 | static void Main() 9 | { 10 | Application.EnableVisualStyles(); 11 | Application.SetCompatibleTextRenderingDefault(false); 12 | Application.Run(new Form1()); 13 | 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Source/Test1_CoreVisual_New/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | [assembly: AssemblyTitle("TestGraphicPackage")] 5 | [assembly: AssemblyDescription("")] 6 | [assembly: AssemblyConfiguration("")] 7 | [assembly: AssemblyCompany("")] 8 | [assembly: AssemblyProduct("TestGraphicPackage")] 9 | [assembly: AssemblyCopyright("Copyright © 2014")] 10 | [assembly: AssemblyTrademark("")] 11 | [assembly: AssemblyCulture("")] 12 | 13 | [assembly: ComVisible(false)] 14 | 15 | [assembly: Guid("d6e8a053-50da-47b3-a817-ad9259dc376e")] 16 | 17 | // 18 | // 19 | [assembly: AssemblyVersion("1.0.0.0")] 20 | [assembly: AssemblyFileVersion("1.0.0.0")] 21 | -------------------------------------------------------------------------------- /Source/Test1_CoreVisual_New/app.config: -------------------------------------------------------------------------------- 1 | <?xml version="1.0"?> 2 | <configuration> 3 | <startup/></configuration> 4 | -------------------------------------------------------------------------------- /Source/Test2_WebDomParsers/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Windows.Forms; 4 | namespace Test2_WebDomParsers 5 | { 6 | static class Program 7 | { 8 | /// <summary> 9 | /// The main entry point for the application. 10 | /// </summary> 11 | [STAThread] 12 | static void Main() 13 | { 14 | Application.EnableVisualStyles(); 15 | Application.SetCompatibleTextRenderingDefault(false); 16 | Application.Run(new Form1()); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Source/Test2_WebDomParsers/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // <auto-generated> 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.34209 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // </auto-generated> 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Test2_WebDomParsers.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Source/Test2_WebDomParsers/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | <?xml version='1.0' encoding='utf-8'?> 2 | <SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"> 3 | <Profiles> 4 | <Profile Name="(Default)" /> 5 | </Profiles> 6 | <Settings /> 7 | </SettingsFile> 8 | -------------------------------------------------------------------------------- /Source/Test2_WebDomParsers/SampleData/0_basic/test01.html: -------------------------------------------------------------------------------- 1 | <!DOCTYPE html> 2 | <html> 3 | 4 | </html> -------------------------------------------------------------------------------- /Source/Test2_WebDomParsers/SampleData/1_large_and_errs/test01.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test2_WebDomParsers/SampleData/1_large_and_errs/test01.html -------------------------------------------------------------------------------- /Source/Test3_MixHtml.One/Demo/arrow_blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test3_MixHtml.One/Demo/arrow_blank.png -------------------------------------------------------------------------------- /Source/Test3_MixHtml.One/Demo/arrow_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test3_MixHtml.One/Demo/arrow_close.png -------------------------------------------------------------------------------- /Source/Test3_MixHtml.One/Demo/arrow_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test3_MixHtml.One/Demo/arrow_open.png -------------------------------------------------------------------------------- /Source/Test3_MixHtml.One/Demo/favorites32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test3_MixHtml.One/Demo/favorites32.png -------------------------------------------------------------------------------- /Source/Test3_MixHtml.One/ExampleFolderConfig.cs: -------------------------------------------------------------------------------- 1 | //Apache2, 2014-2017, WinterDev 2 | 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Windows.Forms; 6 | namespace TestGraphicPackage2 7 | { 8 | static class ExampleFolderConfig 9 | { 10 | public static void InitIcuData() 11 | { 12 | //string icu_dataFile = @"D:\WImageTest\icudt57l\icudt57l.dat"; 13 | //LayoutFarm.TextBreak.ICU.NativeTextBreaker.SetICUDataFile(icu_dataFile); 14 | 15 | } 16 | public static string GetCheckFolder() 17 | { 18 | #if DEBUG 19 | string checkFolder = "\\Source\\Test3_MixHtml.One\\bin\\Debug"; 20 | #else 21 | string checkFolder = "\\Source\\Test3_MixHtml.One\\bin\\Release"; 22 | #endif 23 | return checkFolder; 24 | 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /Source/Test3_MixHtml.One/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // <auto-generated> 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // </auto-generated> 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Test3_MixHtml.One.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Source/Test3_MixHtml.One/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | <?xml version='1.0' encoding='utf-8'?> 2 | <SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"> 3 | <Profiles> 4 | <Profile Name="(Default)" /> 5 | </Profiles> 6 | <Settings /> 7 | </SettingsFile> 8 | -------------------------------------------------------------------------------- /Source/Test3_MixHtml.One/app.config: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <configuration> 3 | <startup><supportedRuntime version="v2.0.50727"/></startup></configuration> 4 | -------------------------------------------------------------------------------- /Source/Test3_MixHtml.One/images/01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test3_MixHtml.One/images/01.jpg -------------------------------------------------------------------------------- /Source/Test3_MixHtml.One/images/02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test3_MixHtml.One/images/02.jpg -------------------------------------------------------------------------------- /Source/Test3_MixHtml.One/images/03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test3_MixHtml.One/images/03.jpg -------------------------------------------------------------------------------- /Source/Test3_MixHtml.One/images/04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test3_MixHtml.One/images/04.jpg -------------------------------------------------------------------------------- /Source/Test3_MixHtml.One/images/05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test3_MixHtml.One/images/05.jpg -------------------------------------------------------------------------------- /Source/Test3_MixHtml.One/images/images.txt: -------------------------------------------------------------------------------- 1 | these images are not mine. 2 | just for test only 3 | 4 | from ... 5 | 01.jpg: http://www.komkid.com/wp-content/uploads/2011/12/7-days.jpg 6 | 02.jpg: http://www.chaoprayanews.com/wp-content/uploads/2012/07/12.jpg 7 | 03-05.jpg: http://www.nanmee.com/expositionHW&NF/6th/Exhibit.php -------------------------------------------------------------------------------- /Source/Test3_MixHtml.One/images/sample01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test3_MixHtml.One/images/sample01.png -------------------------------------------------------------------------------- /Source/Test3_MixHtml/Demo/arrow_blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test3_MixHtml/Demo/arrow_blank.png -------------------------------------------------------------------------------- /Source/Test3_MixHtml/Demo/arrow_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test3_MixHtml/Demo/arrow_close.png -------------------------------------------------------------------------------- /Source/Test3_MixHtml/Demo/arrow_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test3_MixHtml/Demo/arrow_open.png -------------------------------------------------------------------------------- /Source/Test3_MixHtml/Demo/favorites32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test3_MixHtml/Demo/favorites32.png -------------------------------------------------------------------------------- /Source/Test3_MixHtml/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("Test3_MixHtml")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("Test3_MixHtml")] 12 | [assembly: AssemblyCopyright("Copyright © 2014")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("7c50e0bc-6b6e-4cb0-b1ac-40416961b240")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /Source/Test3_MixHtml/app.config: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <configuration> 3 | <startup><supportedRuntime version="v2.0.50727"/></startup></configuration> 4 | -------------------------------------------------------------------------------- /Source/Test3_MixHtml/images/01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test3_MixHtml/images/01.jpg -------------------------------------------------------------------------------- /Source/Test3_MixHtml/images/02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test3_MixHtml/images/02.jpg -------------------------------------------------------------------------------- /Source/Test3_MixHtml/images/03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test3_MixHtml/images/03.jpg -------------------------------------------------------------------------------- /Source/Test3_MixHtml/images/04.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test3_MixHtml/images/04.jpg -------------------------------------------------------------------------------- /Source/Test3_MixHtml/images/05.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test3_MixHtml/images/05.jpg -------------------------------------------------------------------------------- /Source/Test3_MixHtml/images/images.txt: -------------------------------------------------------------------------------- 1 | these images are not mine. 2 | just for test only 3 | 4 | from ... 5 | 01.jpg: http://www.komkid.com/wp-content/uploads/2011/12/7-days.jpg 6 | 02.jpg: http://www.chaoprayanews.com/wp-content/uploads/2012/07/12.jpg 7 | 03-05.jpg: http://www.nanmee.com/expositionHW&NF/6th/Exhibit.php -------------------------------------------------------------------------------- /Source/Test3_MixHtml/images/sample01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test3_MixHtml/images/sample01.png -------------------------------------------------------------------------------- /Source/Test3_MixHtml_SH/Demo_04/4.4_CssLeanBox.cs: -------------------------------------------------------------------------------- 1 | //Apache2, 2014-present, WinterDev 2 | 3 | using System.Text; 4 | using LayoutFarm.CustomWidgets; 5 | namespace LayoutFarm 6 | { 7 | [DemoNote("4.4 CssLeanBox")] 8 | class Demo_CssLeanBox : App 9 | { 10 | protected override void OnStart(AppHost host) 11 | { 12 | ////================================================== 13 | //html box 14 | HtmlBoxes.HtmlHost htmlHost = HtmlHostCreatorHelper.CreateHtmlHost(host, null, null); 15 | var htmlBox = new HtmlBox(htmlHost, 800, 400); 16 | StringBuilder stbuilder = new StringBuilder(); 17 | stbuilder.Append("<html><head></head><body>"); 18 | stbuilder.Append("<div>custom box1</div>"); 19 | stbuilder.Append("<x id=\"my_custombox1\"></x>"); 20 | stbuilder.Append("<div>custom box2</div>"); 21 | stbuilder.Append("<x type=\"textbox\" id=\"my_custombox1\"></x>"); 22 | stbuilder.Append("</body></html>"); 23 | htmlBox.LoadHtmlString(stbuilder.ToString()); 24 | host.AddChild(htmlBox); 25 | //================================================== 26 | 27 | //textbox 28 | var textbox = new LayoutFarm.CustomWidgets.TextBox(400, 100, true); 29 | textbox.SetLocation(0, 200); 30 | host.AddChild(textbox); 31 | textbox.Focus(); 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /Source/Test3_MixHtml_SH/Demo_05/5.7_Demo_ListView.cs: -------------------------------------------------------------------------------- 1 | //Apache2, 2014-present, WinterDev 2 | 3 | namespace LayoutFarm.WebWidgets 4 | { 5 | [DemoNote("5.7 ListView")] 6 | class Demo_ListView : HtmlDemoBase 7 | { 8 | protected override void OnHtmlHostCreated() 9 | { 10 | var listview = new LayoutFarm.HtmlWidgets.ListView(100, 100); 11 | listview.SetLocation(30, 20); 12 | //add listview item 13 | for (int i = 0; i < 100; ++i) 14 | { 15 | var listItem = new HtmlWidgets.ListItem(100, 20); 16 | listItem.Text = "item" + i; 17 | listview.AddItem(listItem); 18 | } 19 | AddToViewport(listview); 20 | ////------------------------------------------------------------------- 21 | ////add vertical scrollbar 22 | //{ 23 | // //vertical scrollbar 24 | // var vscbar = new LayoutFarm.HtmlWidgets.ScrollBar(15, 100); 25 | // vscbar.SetLocation(10, 20); 26 | // vscbar.MinValue = 0; 27 | // vscbar.MaxValue = 100; 28 | // vscbar.SmallChange = 20; 29 | 30 | // this.sampleViewport.AddContent(vscbar); 31 | 32 | // //add relation between viewpanel and scroll bar 33 | // //var scRelation = new LayoutFarm.HtmlWidgets.ScrollingRelation(vscbar, listview); 34 | //} 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /Source/Test3_MixHtml_SH/Demo_05/5.8_Demo_Hinge.cs: -------------------------------------------------------------------------------- 1 | //Apache2, 2014-present, WinterDev 2 | using LayoutFarm.WebDom.Impl; 3 | using LayoutFarm.WebDom.Extension; 4 | 5 | namespace LayoutFarm.WebWidgets 6 | { 7 | [DemoNote("5.8 Hinge")] 8 | class Demo_Hinge : HtmlDemoBase 9 | { 10 | protected override void OnHtmlHostCreated() 11 | { 12 | //------------------------------- 13 | int boxX = 0; 14 | for (int i = 0; i < 1; ++i) 15 | { 16 | LayoutFarm.HtmlWidgets.HingeBox hingeBox = CreateHingeBox(100, 30); 17 | for (int m = 0; m < 10; ++m) 18 | { 19 | var div = (HtmlElement)_groundHtmlDoc.CreateElement("div"); 20 | div.AddChild("div", div2 => 21 | { 22 | div2.AddTextContent("HELLO!" + m); 23 | //div2.Tag = m.ToString(); 24 | }); 25 | 26 | hingeBox.AddItem(div); 27 | } 28 | 29 | hingeBox.SetLocation(boxX, 20); 30 | boxX += 100 + 2; 31 | AddToViewport(hingeBox); 32 | } 33 | } 34 | LayoutFarm.HtmlWidgets.HingeBox CreateHingeBox(int w, int h) 35 | { 36 | var hingeBox = new LayoutFarm.HtmlWidgets.HingeBox(w, h); 37 | //1. set land part detail 38 | //2. set float part detail 39 | return hingeBox; 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /Source/Test3_MixHtml_SH/Test3_MixHtml_SH.shproj: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 3 | <PropertyGroup Label="Globals"> 4 | <ProjectGuid>bff5f427-429e-4b22-acbb-0c741ef63895</ProjectGuid> 5 | <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion> 6 | </PropertyGroup> 7 | <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> 8 | <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props" /> 9 | <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.props" /> 10 | <PropertyGroup /> 11 | <Import Project="Test3_MixHtml_SH.projitems" Label="Shared" /> 12 | <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.CSharp.targets" /> 13 | </Project> 14 | -------------------------------------------------------------------------------- /Source/Test4_Neutral/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Test4_Neutral")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Test4_Neutral")] 13 | [assembly: AssemblyCopyright("Copyright © 2019")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("47b9575b-01ad-4e4c-9fc8-34eef262d87a")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Source/Test4_Neutral/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // <auto-generated> 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // </auto-generated> 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Test4_Neutral.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Source/Test4_Neutral/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | <?xml version='1.0' encoding='utf-8'?> 2 | <SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"> 3 | <Profiles> 4 | <Profile Name="(Default)" /> 5 | </Profiles> 6 | <Settings /> 7 | </SettingsFile> 8 | -------------------------------------------------------------------------------- /Source/Test4_Neutral/app.config: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <configuration> 3 | <startup><supportedRuntime version="v2.0.50727"/></startup></configuration> 4 | -------------------------------------------------------------------------------- /Source/Test5_Ease/EaseComponents/MyWebConsole.cs: -------------------------------------------------------------------------------- 1 | //MIT, 2015-2017, WinterDev 2 | 3 | using System.Windows.Forms; 4 | namespace LayoutFarm.Scripting 5 | { 6 | /// <summary> 7 | /// simple 8 | /// </summary> 9 | class MyWebConsole 10 | { 11 | TextBox outputTextBox; 12 | public MyWebConsole(TextBox outputTextBox) 13 | { 14 | this.outputTextBox = outputTextBox; 15 | } 16 | [JsMethod] 17 | public void log(object obj) 18 | { 19 | outputTextBox.Text += obj.ToString(); 20 | } 21 | } 22 | } -------------------------------------------------------------------------------- /Source/Test5_Ease/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Windows.Forms; 4 | using LayoutFarm.Ease; 5 | namespace Test5_Ease 6 | { 7 | static class Program 8 | { 9 | /// <summary> 10 | /// The main entry point for the application. 11 | /// </summary> 12 | [STAThread] 13 | static void Main() 14 | { 15 | EaseHost.LibEspr = @"D:\projects\HTML-Renderer\Source\Deps\ess_natives\libespr.dll"; 16 | EaseHost.LoadLibEspr = true; 17 | EaseHost.IcuDataFile = @"D:\WImageTest\icudt57l\icudt57l.dat"; 18 | EaseHostInitReport report = EaseHost.Check(); 19 | if (report.HasSomeError) 20 | { 21 | throw new NotSupportedException(); 22 | } 23 | EaseHost.Init(); 24 | 25 | //---------------------------------------------------------------------------- 26 | 27 | Application.EnableVisualStyles(); 28 | Application.SetCompatibleTextRenderingDefault(false); 29 | 30 | Application.Run(new Form1()); 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Source/Test5_Ease/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | // General Information about an assembly is controlled through the following 5 | // set of attributes. Change these attribute values to modify the information 6 | // associated with an assembly. 7 | [assembly: AssemblyTitle("Test5_Ease")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("Test5_Ease")] 12 | [assembly: AssemblyCopyright("Copyright © 2015")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // Setting ComVisible to false makes the types in this assembly not visible 17 | // to COM components. If you need to access a type in this assembly from 18 | // COM, set the ComVisible attribute to true on that type. 19 | [assembly: ComVisible(false)] 20 | 21 | // The following GUID is for the ID of the typelib if this project is exposed to COM 22 | [assembly: Guid("673456ab-5ff9-49b8-b041-773228f0e868")] 23 | 24 | // Version information for an assembly consists of the following four values: 25 | // 26 | // Major Version 27 | // Minor Version 28 | // Build Number 29 | // Revision 30 | // 31 | // You can specify all the values or you can default the Build and Revision Numbers 32 | // by using the '*' as shown below: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /Source/Test5_Ease/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // <auto-generated> 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.18444 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // </auto-generated> 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace Test5_Ease.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Source/Test5_Ease/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | <?xml version='1.0' encoding='utf-8'?> 2 | <SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"> 3 | <Profiles> 4 | <Profile Name="(Default)" /> 5 | </Profiles> 6 | <Settings /> 7 | </SettingsFile> 8 | -------------------------------------------------------------------------------- /Source/Test6_WinNeutral/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Test6_WinNeutral")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Test6_WinNeutral")] 13 | [assembly: AssemblyCopyright("Copyright © 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("461d6ec9-6cb3-4beb-88e2-679df8016229")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Source/Test7_Win/Helper/EaseDomElement.cs: -------------------------------------------------------------------------------- 1 | //MIT, 2014-2017, WinterDev 2 | 3 | using PixelFarm.Drawing; 4 | using LayoutFarm.Composers; 5 | namespace LayoutFarm.Ease 6 | { 7 | public struct EaseDomElement 8 | { 9 | EaseScriptElement easeScriptElement; 10 | public EaseDomElement(WebDom.DomElement domElement) 11 | { 12 | this.easeScriptElement = new EaseScriptElement(domElement); 13 | } 14 | public void SetBackgroundColor(System.Drawing.Color c) 15 | { 16 | this.easeScriptElement.ChangeBackgroundColor(new Color(c.A, c.R, c.G, c.B)); 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /Source/Test7_Win/Helper/SampleViewport.cs: -------------------------------------------------------------------------------- 1 | //Apache2, 2014-2017, WinterDev 2 | 3 | using LayoutFarm.UI.WinNeutral; 4 | 5 | namespace LayoutFarm 6 | { 7 | public class SampleViewport 8 | { 9 | UISurfaceViewportControl vw; 10 | int primaryScreenWorkingAreaW; 11 | int primaryScreenWorkingAreaH; 12 | 13 | public SampleViewport(UISurfaceViewportControl vw) 14 | { 15 | this.vw = vw; 16 | // var workingArea = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea; 17 | this.primaryScreenWorkingAreaW = 800;// workingArea.Width; 18 | this.primaryScreenWorkingAreaH = 600;// orkingArea.Height; 19 | } 20 | public LayoutFarm.UI.UIPlatform Platform 21 | { 22 | get 23 | { 24 | return this.vw.Platform; 25 | } 26 | } 27 | public int PrimaryScreenWidth 28 | { 29 | get { return this.primaryScreenWorkingAreaW; } 30 | } 31 | public int PrimaryScreenHeight 32 | { 33 | get { return this.primaryScreenWorkingAreaH; } 34 | } 35 | public void AddContent(RenderElement renderElement) 36 | { 37 | this.vw.AddContent(renderElement); 38 | } 39 | 40 | public UISurfaceViewportControl ViewportControl 41 | { 42 | get { return this.vw; } 43 | } 44 | public RootGraphic Root 45 | { 46 | get { return this.vw.RootGfx; } 47 | } 48 | } 49 | } -------------------------------------------------------------------------------- /Source/Test7_Win/Helper/SampleViewportExtension.cs: -------------------------------------------------------------------------------- 1 | //Apache2, 2014-2017, WinterDev 2 | 3 | using LayoutFarm.UI; 4 | namespace LayoutFarm 5 | { 6 | public static class SampleViewportExtension 7 | { 8 | public static void AddContent(this SampleViewport viewport, UIElement ui) 9 | { 10 | viewport.ViewportControl.AddContent( 11 | ui.GetPrimaryRenderElement(viewport.ViewportControl.RootGfx), 12 | ui); 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /Source/Test7_Win/Helper2/EaseDomElement.cs: -------------------------------------------------------------------------------- 1 | //MIT, 2014-2017, WinterDev 2 | 3 | using LayoutFarm.Composers; 4 | namespace LayoutFarm.Ease 5 | { 6 | public struct EaseDomElement 7 | { 8 | EaseScriptElement easeScriptElement; 9 | public EaseDomElement(WebDom.DomElement domElement) 10 | { 11 | this.easeScriptElement = new EaseScriptElement(domElement); 12 | } 13 | //public void SetBackgroundColor(System.Drawing.Color c) 14 | //{ 15 | // this.easeScriptElement.ChangeBackgroundColor(new Color(c.A, c.R, c.G, c.B)); 16 | //} 17 | } 18 | } -------------------------------------------------------------------------------- /Source/Test7_Win/MyNativeRGBA32BitsImage.cs: -------------------------------------------------------------------------------- 1 | //MIT, 2016-2017, WinterDev 2 | using System; 3 | namespace TestGlfw 4 | { 5 | //----------------- 6 | //for test/debug 7 | //sample only**** 8 | //----------------- 9 | 10 | class MyNativeRGBA32BitsImage : IDisposable 11 | { 12 | int width; 13 | int height; 14 | int bitDepth; 15 | int stride; 16 | IntPtr unmanagedMem; 17 | public MyNativeRGBA32BitsImage(int width, int height) 18 | { 19 | //width and height must >0 20 | this.width = width; 21 | this.height = height; 22 | this.bitDepth = 32; 23 | this.stride = width * (32 / 8); 24 | unmanagedMem = System.Runtime.InteropServices.Marshal.AllocHGlobal(stride * height); 25 | //this.pixelBuffer = new byte[stride * height]; 26 | } 27 | public IntPtr Scan0 28 | { 29 | get { return this.unmanagedMem; } 30 | } 31 | public int Stride 32 | { 33 | get { return this.stride; } 34 | } 35 | public void Dispose() 36 | { 37 | if (unmanagedMem != IntPtr.Zero) 38 | { 39 | System.Runtime.InteropServices.Marshal.FreeHGlobal(unmanagedMem); 40 | unmanagedMem = IntPtr.Zero; 41 | } 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /Source/Test7_Win/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Test7_Win")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Test7_Win")] 13 | [assembly: AssemblyCopyright("Copyright © 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("b3047240-20cb-48fe-a6fb-2bba559c402c")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/002.1.html: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>display/box/float/clear test 4 | </title> 5 | <style type="text/css"> 6 | 7 | 8 | body { 9 | margin: 1.5em; 10 | border: .5em solid black; 11 | padding: 0; 12 | width: 48em; 13 | background-color: white; 14 | } 15 | 16 | dl { 17 | margin: 0; 18 | border: 0; 19 | padding: .5em; 20 | } 21 | 22 | dt { 23 | background-color: rgb(204,0,0); 24 | margin: 0; 25 | padding: 5px; 26 | width: 100px; 27 | height: 100px; 28 | border: 5px solid black; 29 | 30 | } 31 | 32 | </style> 33 | </head> 34 | <body> 35 | <dl> 36 | <dt>xyz 37 | </dt> 38 | </dl> 39 | <p> 40 | abcd 41 | </p> 42 | </body> 43 | </html> 44 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/002.html: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>display/box/float/clear test 4 | </title> 5 | <style type="text/css"> 6 | 7 | 8 | body { 9 | margin: 1.5em; 10 | border: .5em solid black; 11 | padding: 0; 12 | width: 48em; 13 | background-color: white; 14 | } 15 | 16 | dl { 17 | margin: 0; 18 | border: 0; 19 | padding: .5em; 20 | } 21 | 22 | dt { 23 | background-color: rgb(204,0,0); 24 | margin: 0; 25 | padding: 1em; 26 | width: 10.638%; /* refers to parent element's width of 47em. = 5em or 50px */ 27 | height: 28em; 28 | border: .5em solid black; 29 | 30 | } 31 | 32 | </style> 33 | </head> 34 | <body> 35 | <dl> 36 | <dt>xyz 37 | </dt> 38 | </dl> 39 | <p> 40 | abcd 41 | </p> 42 | </body> 43 | </html> 44 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/003.3.html: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>test 4 | </title> 5 | </head> 6 | <body> 7 | xyz 8 | <div style="display:inline;background-color:yellow;padding:5px"> 9 | 12345 10 | <div> sub1</div> 11 | <div> sub2</div> 12 | 67890 13 | </div> 14 | <div style="display:inline"> 15 | abcde 16 | </div> 17 | </body> 18 | </html> 19 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/003.4.html: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>test 4 | </title> 5 | </head> 6 | <body> 7 | abcd 8 | <form style="display:inline"> 9 | <p> 10 | bang 11 | 12 | <input type="radio" name="foo" value="off"/> 13 | </p> 14 | <p> 15 | whimper 16 | 17 | <input type="radio" name="foo2" value="on"/> 18 | </p> 19 | </form> 20 | 1234 21 | </body> 22 | </html> 23 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/003.9.html: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>display/box/float/clear test 4 | </title> 5 | <style type="text/css"> 6 | html { 7 | font: 10px/1 Verdana, sans-serif; 8 | background-color: blue; 9 | color: white; 10 | } 11 | 12 | body { 13 | margin: 2px; 14 | border: 5px solid black; 15 | padding: 0; 16 | width: 48px; 17 | background-color: white; 18 | } 19 | dl { 20 | margin: 0; 21 | border: 0; 22 | padding: 5px; 23 | } 24 | dt { 25 | background-color: rgb(204,0,0); 26 | margin: 0; 27 | padding: 10px; 28 | width: 10px; 29 | height: 28px; 30 | border: 5px solid black; 31 | float: left; 32 | } 33 | dd { 34 | float: right; 35 | margin: 0 0 0 5px; 36 | border: 5px solid black; 37 | padding: 5px; 38 | width: 30px; 39 | height: 27px; 40 | } 41 | 42 | </style> 43 | </head> 44 | <body> 45 | <dl> 46 | <dt>toggle 47 | </dt> 48 | <dd> 49 | 50 | 51 | </dd> 52 | </dl> 53 | 54 | </body> 55 | </html> 56 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/00_1.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>A</title> 4 | <style type="text/css"> 5 | body { 6 | width: 100em; 7 | } 8 | p { 9 | margin: 0; 10 | } 11 | </style> 12 | </head> 13 | <body> 14 | <p> 15 | bang1 16 | <input type="checkbox"></input> 17 | <input type="text" name="foo" placeholder="ausername"></input> 18 | 19 | <div> 20 | 21 | xxx 22 | xxxyyy 23 | 24 | zzz 25 | </div> 26 | <div> 27 | 1xxx 28 | 2xxxyyy 29 | 3zzz 30 | </div> 31 | <div> 32 | 4xxx 33 | 5xxxyyy 34 | 6zzz 35 | </div> 36 | </p> 37 | </body> 38 | </html> 39 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/00_input10.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title> 4 | display/box/float/clear test 5 | </title> 6 | </head> 7 | <body> 8 | <div> 9 | AA=<input type="text" name="foo" value="aa"></input> 10 | </div> 11 | <div> 12 | <textarea> 13 | Hello! 14 | ABCD 15 | </textarea> 16 | </div> 17 | </body> 18 | </html> 19 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/00_input9.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title> 4 | display/box/float/clear test 5 | </title> 6 | </head> 7 | <body> 8 | 9 | bang1 10 | <span>A</span> 11 | <input type="text" name="foo"></input> 12 | <span>123456789</span> 13 | 14 | </body> 15 | </html> 16 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/00_testspan.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title> 4 | 5 | </title> 6 | </head> 7 | <body> 8 | <div> 9 | <span style="display:inline-block;background-color:red;">hello1</span> 10 | <span style="background-color:yellow">hello2</span> 11 | </div> 12 | <div> 13 | <span style="display:inline-block;background-color:red;width:200px">hello3</span> 14 | <span style="background-color:yellow">hello4</span> 15 | </div> 16 | <div> 17 | <span style="background-color:red;">hello5</span> 18 | <span style="background-color:yellow">hello6</span> 19 | </div> 20 | </body> 21 | </html> 22 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/01_test_width.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>display/box/float/clear test 4 | </title> 5 | </head> 6 | <body> 7 | <p> 8 | bang1 9 | </p> 10 | </body> 11 | </html> 12 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/arrow_blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/arrow_blank.png -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/arrow_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/arrow_close.png -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/arrow_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/arrow_open.png -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/check_buttons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/check_buttons.png -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/chk_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/chk_checked.png -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/chk_unchecked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/chk_unchecked.png -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/drop_down_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/drop_down_button.png -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/favorites32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/favorites32.png -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/html32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/html32.png -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/opt_checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/opt_checked.png -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/opt_unchecked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test8_HtmlRenderer.Demo/Samples/0_acid1_dev/opt_unchecked.png -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/01_table1.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>Tables</title> 4 | <link rel="Stylesheet" href="StyleSheet" /> 5 | <style type="text/css"> 6 | table, tr, th 7 | { 8 | border-width: 1px; 9 | border-style: solid; 10 | border-style: outset; 11 | } 12 | td, th 13 | { 14 | border-style: inset; 15 | padding:10px; 16 | } 17 | .caption 18 | { 19 | font-weight: bold; 20 | } 21 | </style> 22 | </head> 23 | <body> 24 | <table class="table_me" width="100%"> 25 | <tr> 26 | <td> 27 | <p>A1</p> 28 | <p>A2</p> 29 | </td> 30 | <td valign="middle"> 31 | B1 32 | </td> 33 | <td> 34 | B2 35 | </td> 36 | </tr> 37 | <tr> 38 | <td valign="middle" style="text-align: center"> 39 | C1 40 | </td> 41 | <td> 42 | C2 43 | </td> 44 | <td style="background-color: #8e9"> 45 | C3 46 | </td> 47 | </tr> 48 | </table> 49 | </body> 50 | </html> 51 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/02_text.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | </head> 5 | <body> 6 | <h1> 7 | ABCDpqy123 8 | </h1> 9 | <blockquote> 10 | <p> 11 | For years, I <i>(Jose)</i> have been planning for a project like this. I prepared 12 | my self quite well. I went through the entire CSS Level 2 specification along with 13 | the HTML 4.01 specification. 14 | </p> 15 | </blockquote> 16 | </body> 17 | </html> 18 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/02_text1.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | </head> 5 | <body> 6 | 7 | <p> 8 | For years, I (Jose) have been planning for a project like this. I prepared 9 | my self quite well. I went through the entire CSS Level 2 specification along with 10 | the HTML 4.01 specification. 11 | </p> 12 | 13 | </body> 14 | </html> 15 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/03_text2.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | </head> 5 | <body> 6 | <p> 7 | 8 | A <i>X</i> B 9 | <br /> 10 | C <a href="C:\">E</a> <code>(MM)</code> 11 | </p> 12 | </body> 13 | </html> 14 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/04_text3.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | </head> 5 | <body> 6 | <p> 7 | <h3>URI href</h3> 8 | A <i>X</i> B 9 | <br /> 10 | S <a href="A">B</a> <code>href="RRR"</code> 11 | </p> 12 | </body> 13 | </html> 14 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/05_add.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | </head> 5 | <body> 6 | <pre>AAA</pre> 7 | 8 | </body> 9 | </html> 10 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/06_txt.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | </head> 5 | <body> 6 | <p> 7 | <h3>URI href</h3> 8 | A <i>X</i> B 9 | <br /> 10 | S <a href="A">B</a> <code>href="RRR"</code> 11 | </p> 12 | </body> 13 | </html> 14 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/07_1_ab2.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>About</title> 4 | <link rel="Stylesheet" href="StyleSheet" /> 5 | </head> 6 | <body> 7 | <h1> 8 | H</h1> 9 | <blockquote> 10 | A 11 | </blockquote> 12 | </body> 13 | </html> 14 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/07_ab.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>About</title> 4 | <link rel="Stylesheet" href="StyleSheet" /> 5 | </head> 6 | <body> 7 | <h1> 8 | H</h1> 9 | <blockquote> 10 | <p> 11 | A 12 | </p> 13 | <p> 14 | B 15 | </p> 16 | <p> 17 | C 18 | </p> 19 | <hr /> 20 | <br /> 21 | <h3> D</h3> 22 | </blockquote> 23 | </body> 24 | </html> 25 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/08_link1.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>Links</title> 4 | <link rel="Stylesheet" href="StyleSheet" /> 5 | </head> 6 | <body> 7 | <h1>Links 8 | </h1> 9 | <blockquote> 10 | <p> 11 | X 12 | </p> 13 | <p> 14 | <h3>Y</h3> 15 | Z 16 | <br /> 17 | M 18 | <br /> 19 | N <a href="https://htmlrenderer.codeplex.com/">O</a> (<code>href="P"</code>) 20 | </p> 21 | <br /> 22 | <br /> 23 | <p> 24 | <h3>A</h3> 25 | B <i>C</i> D 26 | <br /> 27 | E <a href="C:\">F</a> <code>G</code> 28 | </p> 29 | 30 | <p id="anchor" style="color: gray"> 31 | L 32 | </p> 33 | </blockquote> 34 | </body> 35 | </html> 36 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/08_link2.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>Links</title> 4 | <link rel="Stylesheet" href="StyleSheet" /> 5 | <style type="text/css"> 6 | a { cursor:pointer} 7 | </style> 8 | </head> 9 | <body> 10 | <h3>Y</h3> 11 | N <a href="V">O</a> (<code>href="P"</code>) 12 | 13 | </body> 14 | </html> 15 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/09_text.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>Text</title> 4 | <link rel="Stylesheet" href="StyleSheet" /> 5 | </head> 6 | <body> 7 | <p> 8 | A 9 | </p> 10 | <p> 11 | <span>C</span> 12 | <b>E</b> 13 | <span style="color: blue"> 14 | XXXX 15 | <b>L</b> 16 | </span> 17 | </p> 18 | </body> 19 | </html> 20 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/10_td.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title></title> 4 | <link rel="Stylesheet" href="StyleSheet" /> 5 | <style> 6 | .tag { 7 | color: rgb(128,0,0); 8 | } 9 | 10 | .att { 11 | color: rgb(240,0,0); 12 | } 13 | 14 | .prop { 15 | color: rgb(128,0,171); 16 | } 17 | 18 | td { 19 | vertical-align: middle; 20 | padding: 1em; 21 | } 22 | </style> 23 | </head> 24 | <body> 25 | 26 | <table border="1"> 27 | <tr> 28 | <td>Just an image: 29 | </td> 30 | </tr> 31 | </table> 32 | </body> 33 | </html> 34 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/11_lines.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | </head> 5 | <body> 6 | <h1> 7 | ABCD 8 | </h1> 9 | <blockquote> 10 | <p> 11 | BBB<i>MMM</i> OOO 12 | CCC 13 | DDD 14 | </p> 15 | <p> 16 | AAAA 17 | </p> 18 | </blockquote> 19 | </body> 20 | </html> 21 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/12_table_image.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>Intro</title> 4 | <link rel="Stylesheet" href="stylesheet1.css" /> 5 | </head> 6 | <body> 7 | <p style="margin-top: 0px"> 8 | <table style="background-color:red" width="100%"> 9 | <tr style="vertical-align: top;"> 10 | <td style="width:32px;padding: 2px 5px 0 0"> 11 | <img src="html32.png" /> 12 | </td> 13 | <td> 14 | AAA 15 | </td> 16 | </tr> 17 | </table> 18 | </p> 19 | </body> 20 | </html> 21 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/13_text.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>Text</title> 4 | <link rel="Stylesheet" href="StyleSheet" /> 5 | <style type="text/css"> 6 | ::selection { 7 | color: #bb5555; 8 | background-color: #aaddaa; 9 | } 10 | </style> 11 | </head> 12 | <body> 13 | <pre style="background-color: white"> 14 | <span style="color: blue">public class</span> HelloWorld 15 | { 16 | <span style="color: blue">public</span> HelloWorld() 17 | { 18 | <span style="color: #099">MessageBox</span>.Show(<span color="maroon">"Hello World"</span>); 19 | } 20 | }</pre> 21 | 22 | 23 | </body> 24 | </html> 25 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/14_table2.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>Tables</title> 4 | <link rel="Stylesheet" href="StyleSheet" /> 5 | <style type="text/css"> 6 | table, tr, th 7 | { 8 | border-width: 1px; 9 | border-style: solid; 10 | border-style: outset; 11 | } 12 | td, th 13 | { 14 | border-style: inset; 15 | padding:10px; 16 | } 17 | .caption 18 | { 19 | font-weight: bold; 20 | } 21 | .table_me{ 22 | border-width:1px; 23 | border-spacing:3px; 24 | } 25 | </style> 26 | </head> 27 | <body> 28 | 29 | <table class="table_me"> 30 | <tr> 31 | <td> 32 | <p> 33 | AAAAAAA AAAAAAAA AAAAAAAAAAAA AAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAA 34 | </p> 35 | 36 | </td> 37 | <td valign="middle"> 38 | 2 39 | </td> 40 | <td> 41 | <ul> 42 | 43 | <li>Item two 44 | <ul> 45 | <li>Sub item one</li> 46 | 47 | </ul> 48 | </li> 49 | 50 | </ul> 51 | </td> 52 | </tr> 53 | </table> 54 | 55 | </body> 56 | </html> 57 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/16_div.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>styles1</title> 4 | </head> 5 | <body> 6 | <div style="font:14pt tahoma"> 7 | <div> 8 | <span>A1</span> 9 | </div> 10 | </div> 11 | </body> 12 | </html> 13 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/17_inlineblock.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>inline-block</title> 4 | </head> 5 | <body> 6 | <div> 7 | 111<div style="display:inline-block"> 8 | 222 9 | <div>333</div> 10 | 444 11 | </div> 12 | 555 13 | </div> 14 | 15 | </body> 16 | </html> 17 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/18_inlineblock2.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>inline-block</title> 4 | </head> 5 | <body> 6 | <div> 7 | 1111 8 | <div style="display:inline-block"> 9 | 2222 10 | <div>3333</div> 11 | 4444 12 | <div style="display:inline-block"> 13 | 5555 14 | <div>6666</div> 15 | </div> 16 | 7777 17 | </div> 18 | 8888 19 | </div> 20 | </body> 21 | </html> 22 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/19_inlineblock3.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>inline-block</title> 4 | </head> 5 | <body> 6 | <div> 7 | 1111a 8 | <div style="display:inline-block"> 9 | 2222a 10 | <table> 11 | <tr> 12 | <td>3333a</td> 13 | <td>4444a</td> 14 | </tr> 15 | <tr> 16 | <td>5555a</td> 17 | <td>6666a</td> 18 | </tr> 19 | </table> 20 | </div> 21 | 7777a 22 | </div> 23 | <div> 24 | 1111b 25 | <div style="display:inline-block"> 26 | 2222b 27 | <table> 28 | <tr> 29 | <td>3333b</td> 30 | <td>4444b</td> 31 | </tr> 32 | <tr> 33 | <td>5555b</td> 34 | <td>6666b</td> 35 | </tr> 36 | </table> 37 | </div> 38 | 7777b 39 | </div> 40 | </body> 41 | </html> 42 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/20_inlineblock4.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>inline</title> 4 | </head> 5 | <body> 6 | <div style="width:600px;"> 7 | <div style="display:inline-block;width:25%;height:50px;"> 8 | A0123 9 | </div> 10 | <div style="display:inline-block;width:25%;height:50px;"> 11 | B0123 12 | </div> 13 | <div style="display:inline-block;width:25%;height:50px;"> 14 | C0123 15 | </div> 16 | <div style="display:inline-block;width:25%;height:50px;"> 17 | D0123 18 | </div> 19 | </div> 20 | 21 | </body> 22 | </html> 23 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/21_canvas.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>canvas</title> 4 | <link rel="Stylesheet" href="stylesheet1.css" /> 5 | </head> 6 | <body> 7 | <canvas style="width:400px;height:400px"></canvas> 8 | </body> 9 | </html> 10 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/22_abs_pos.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>absolute</title> 4 | <link rel="Stylesheet" href="stylesheet1.css" /> 5 | </head> 6 | <body> 7 | <div> 8 | xyz 9 | <div style='position:absolute;width:30px;height:30px;left:100px;top:100px;background-color:blue'> 10 | 12345 11 | <span style='position:absolute;height:30px;left:0px;top:20px;background-color:red'>123</span> 12 | <span style='position:absolute;height:30px;left:0px;top:35px;background-color:red'>AboutMe</span> 13 | 67890 14 | </div> 15 | abc 16 | </div> 17 | </body> 18 | </html> 19 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/23_relative_pos.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>absolute</title> 4 | <link rel="Stylesheet" href="stylesheet1.css" /> 5 | </head> 6 | <body> 7 | <div style='position:relative;width:100px;height:100px;left:30px;top:50px'> 8 | one 9 | <div style='position:absolute;width:20px;height:20px;top:0px;left:0px'>two</div> 10 | <div style='position:absolute;width:20px;height:20px;top:15px;left:20px'>three</div> 11 | 123 12 | </div> 13 | </body> 14 | </html> 15 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/24_fixed_pos.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>fixed</title> 4 | <link rel="Stylesheet" href="stylesheet1.css" /> 5 | </head> 6 | <body> 7 | <div> 8 | xyz 9 | <div style='position:fixed;width:30px;height:30px;left:100px;top:100px;background-color:blue'> 10 | 12345 11 | <span style='position:fixed;height:30px;left:0px;top:20px;background-color:red'>123</span> 12 | <span style='position:fixed;height:30px;left:0px;top:35px;background-color:red'>AboutMe</span> 13 | 67890 14 | </div> 15 | abc 16 | </div> 17 | </body> 18 | </html> 19 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/25_center_pos.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>center</title> 4 | <link rel="Stylesheet" href="stylesheet1.css" /> 5 | </head> 6 | <body> 7 | <div> 8 | xyz 9 | <div style='position:center;width:120px;height:30px;left:100px;top:100px;background-color:blue'> 10 | 12345 11 | <span style='position:center;height:30px;background-color:red'>123</span> 12 | <span style='position:center;height:30px;background-color:red'>AboutMe</span> 13 | 67890 14 | </div> 15 | abc 16 | </div> 17 | </body> 18 | </html> 19 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/26_abs_pos2.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>padding</title> 4 | <link rel="Stylesheet" href="stylesheet1.css" /> 5 | </head> 6 | <body> 7 | <div style="position:relative"> 8 | <div style="position:absolute;left:0px;top:0px;width:5px;height:5px;border:5px solid red;">A</div> 9 | </div> 10 | </body> 11 | </html> 12 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/30_padding.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>padding</title> 4 | <link rel="Stylesheet" href="stylesheet1.css" /> 5 | </head> 6 | <body> 7 | <span style='padding:10px'>A</span><span style='padding:10px'>B C D</span> 8 | </body> 9 | </html> 10 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/32_overflow_content.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>overflow</title> 4 | <link rel="Stylesheet" href="stylesheet1.css" /> 5 | </head> 6 | <body> 7 | <div style="width:80px;height:100px;overflow:scroll"> 8 | A0123456789abcde B0123456789abcde C0123456789abcde 9 | D0123456789abcde E0123456789abcde F0123456789abcde 10 | G0123456789abcde H0123456789abcde I0123456789abcde 11 | </div> 12 | <div> 13 | L0123456789abcde M0123456789abcde N0123456789abcde 14 | O0123456789abcde P0123456789abcde Q0123456789abcde 15 | R0123456789abcde S0123456789abcde T0123456789abcde 16 | </div> 17 | <div style="width:80px;height:100px;overflow:hidden"> 18 | L0123456789abcde M0123456789abcde N0123456789abcde 19 | O0123456789abcde P0123456789abcde Q0123456789abcde 20 | R0123456789abcde S0123456789abcde T0123456789abcde 21 | </div> 22 | </body> 23 | </html> 24 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/33_box_shadow1.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>styles1</title> 4 | </head> 5 | <body> 6 | <div style="background-color:yellow;width:100px;height:100px;font:14pt tahoma;box-shadow:5px 5px;"> 7 | <div> 8 | <span>A1</span> 9 | </div> 10 | </div> 11 | </body> 12 | </html> 13 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/40_div.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>div</title> 4 | </head> 5 | <body> 6 | <div style="width:800px;height:600px;background-color:yellow"> 7 | 8 | </div> 9 | </body> 10 | </html> 11 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/50_input.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>inline-block</title> 4 | <link rel="Stylesheet" href="stylesheet1.css" /> 5 | </head> 6 | <body> 7 | <img src="html32.png"></img> 8 | <input type="text" style="width:300px">AA</input> 9 | <input type="text" style="width:300px" placeholder="hello!">BB</input> 10 | <input type="button">click me!</input> 11 | </body> 12 | </html> 13 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/51_htmlAttr.html: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>attrs</title> 4 | </head> 5 | <body> 6 | <div testAttr1 testAttr2 testAttr4=12.3 testAttr3=abc style="-company1:20" > 7 | hello! 8 | </div> 9 | </body> 10 | </html> 11 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/52_box2.html: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>attrs</title> 4 | </head> 5 | <body> 6 | <div style="display:inline-block;width:60px;height:30px"> 7 | <div style="padding:5px;background-color:#dddddd;"> 8 | <span>button1</span> 9 | </div> 10 | </div> 11 | <div style="display:inline-block;width:60px;height:30px"> 12 | <div style="padding:5px;background-color:#dddddd;"> 13 | <span>button1</span> 14 | </div> 15 | </div> 16 | <div> 17 | simple div 18 | </div> 19 | </body> 20 | </html> 21 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/53_box_sizing.html: -------------------------------------------------------------------------------- 1 | <!DOCTYPE html> 2 | <html> 3 | <head> 4 | </head> 5 | <body> 6 | <div style="width:30em;border:1em solid;"> 7 | <div style="box-sizing:border-box;width:50%;border: 1em solid red;float:left">This div occupies the left half.</div> 8 | <div style="box-sizing:border-box;width:50%;border: 1em solid red;float:left">This div occupies the right half.</div> 9 | <div style="clear:both;"></div> 10 | </div> 11 | </body> 12 | </html> -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/54_float1.htm: -------------------------------------------------------------------------------- 1 | <!DOCTYPE html> 2 | <html> 3 | <head> 4 | </head> 5 | <body> 6 | <p style='background-color:yellow;padding:2px'>a<span style="background-color:blue;float:right">b</span>c</p> 7 | </body> 8 | </html> -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/55_float2.htm: -------------------------------------------------------------------------------- 1 | <!DOCTYPE html> 2 | <html> 3 | <head> 4 | </head> 5 | <body> 6 | 7 | <p style="background-color:yellow;float:left;">X1 yellow</p> 8 | <p style="background-color:lime;float:right;">X2 lime</p> 9 | <p style="background-color:red;">A1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 redA1 red</p> 10 | <p style="background-color:blue;float:left">A2 blueA2 blueA2 blueA2 blueA2 blueA2 blueA2 blueA2 blueA2 blueA2 blueA2 blueA2 blueA2 blueA2 blueA2 blueA2 blueA2 blueA2 blueA2 blueA2 blueA2 blueA2 blueA2 blueA2 blueA2 blueA2 </p> 11 | </body> 12 | </html> -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/56_float3.htm: -------------------------------------------------------------------------------- 1 | <!DOCTYPE html> 2 | <html> 3 | <head> 4 | </head> 5 | <body> 6 | <p style='background-color:yellow;padding:2px'>aaaaaaaaaaaaaaaaaaaaa 7 | <span style="background-color:blue;float:left">x1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12</span> 8 | bbbbbbbbbbbbbbbbbbbb 9 | <span style="background-color:blue;float:right">x2 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12</span> 10 | cccccccccccccccccccc 11 | <span style="background-color:blue;float:right">x3 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12</span> 12 | dddddddddddddddddddd 13 | x</p> 14 | <p style='background-color:yellow;padding:2px'>aaaaaaaaaaaaaaaaaaaaa 15 | <span style="background-color:blue;">x1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12</span> 16 | bbbbbbbbbbbbbbbbbbbb 17 | <span style="background-color:blue;">x2 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12</span> 18 | cccccccccccccccccccc 19 | <span style="background-color:blue;">x3 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12</span> 20 | dddddddddddddddddddd 21 | x</p> 22 | </body> 23 | </html> -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/57_float4.htm: -------------------------------------------------------------------------------- 1 | <!DOCTYPE html> 2 | <html> 3 | <head> 4 | </head> 5 | <body> 6 | <p style='background-color:yellow;padding:2px'>aaaaaaaaaaaaaaaaaaaaa 7 | <span style="background-color:blue;float:left">x1 12 12 12 12 12 12 12x1 12 12 12 12 12 12 12</span>x 8 | <span style="background-color:blue;float:left">y1 10 10 10 10 10 10 10y1 10 10 10 10 10 10 10</span>y 9 | <span style="background-color:blue;float:left">z1 12 12 12 12 12 12 12z1 12 12 12 12 12 12 12</span>z 10 | </p> 11 | 12 | </body> 13 | </html> -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/58_box_sizing2.html: -------------------------------------------------------------------------------- 1 | <!DOCTYPE html> 2 | <html> 3 | <head> 4 | </head> 5 | <body> 6 | <div style="background-color:yellow"> 7 | <div style="width:10px;border-style:solid;border-width:10px;border-color: black;"> 8 | <div style="box-sizing:border-box;width:150px;border-style:solid;border-width:10px;border-color: red;float:left">This div occupies the left half.</div> 9 | <div style="border-style:solid;border-width:10px;border-color: red;float:left">This div occupies the left half.</div> 10 | </div> 11 | </div> 12 | <div> 13 | NEXT 14 | </div> 15 | </body> 16 | </html> -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Basic/stylesheet1.css: -------------------------------------------------------------------------------- 1 | h1, h2, h3 { color: navy; font-weight:normal; } 2 | h1 { margin-bottom: .47em } 3 | h2 { margin-bottom: .3em } 4 | h3 { margin-bottom: .4em } 5 | ul { margin-top: .5em } 6 | ul li {margin: .25em} 7 | body { font:10pt Tahoma } 8 | pre { border:solid 1px gray; background-color:#eee; padding:1em } 9 | a:link { text-decoration: none; } 10 | a:hover { text-decoration: underline; } 11 | .gray { color:gray; } 12 | .example { background-color:#efefef; corner-radius:5px; padding:0.5em; } 13 | .whitehole { background-color:white; corner-radius:10px; padding:15px; } 14 | .caption { font-size: 1.1em } 15 | .comment { color: green; margin-bottom: 5px; margin-left: 3px; } 16 | .comment2 { color: green; } -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/ClassicSamples/00.Intro.3.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>Intro</title> 4 | <link rel="Stylesheet" href="stylesheet1.css" /> 5 | </head> 6 | <body style="background-color: #333; background-gradient: #707; background-gradient-angle: 60; margin: 0;"> 7 | 8 | <blockquote class="whitehole"> 9 | 10 | <table> 11 | <tr style="vertical-align: top;"> 12 | <td style="width:32px;padding: 2px 5px 0 0"> 13 | <img src="html32.png" /> 14 | </td> 15 | <td> 16 | Everything you see on this panel is AAA 17 | </td> 18 | </tr> 19 | </table> 20 | 21 | 22 | </blockquote> 23 | </body> 24 | </html> 25 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/ClassicSamples/00.Intro.4.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>Intro</title> 4 | <link rel="Stylesheet" href="stylesheet1.css" /> 5 | </head> 6 | <body style="background-color: #333; background-gradient: #707; background-gradient-angle: 60; margin: 0;"> 7 | 8 | <table width="100%"> 9 | <tr style="vertical-align: top;"> 10 | <td style="width:32px;padding: 2px 5px 0 0"> 11 | <img src="html32.png" /> 12 | </td> 13 | <td> 14 | AAAA 15 | </td> 16 | </tr> 17 | </table> 18 | </body> 19 | </html> 20 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/ClassicSamples/00.Intro.5_SVG.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>Intro</title> 4 | <link rel="Stylesheet" href="stylesheet1.css" /> 5 | </head> 6 | <body style="background-color: #333; background-gradient: #707; background-gradient-angle: 60; margin: 0;"> 7 | 8 | <blockquote class="whitehole"> 9 | 10 | <table> 11 | <tr style="vertical-align: top;"> 12 | <td style="width:32px;padding: 2px 5px 0 0"> 13 | <img style="width:72px;height:64px" src="clown-fish.svg" /> 14 | </td> 15 | <td> 16 | svg as img'src 17 | </td> 18 | </tr> 19 | </table> 20 | 21 | 22 | </blockquote> 23 | </body> 24 | </html> 25 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/ClassicSamples/00.Intro.5_SVG2.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>Intro</title> 4 | <link rel="Stylesheet" href="stylesheet1.css" /> 5 | </head> 6 | <body style="background-color: #333; background-gradient: #707; background-gradient-angle: 60; margin: 0;"> 7 | 8 | <blockquote class="whitehole"> 9 | 10 | <table> 11 | <tr style="vertical-align: top;"> 12 | <td style="width:32px;padding: 2px 5px 0 0"> 13 | <img style="width:72px;height:64px" src="clown-fish.svg" /> 14 | </td> 15 | <td> 16 | svg as img'src 17 | </td> 18 | </tr> 19 | <tr style="vertical-align: top;"> 20 | <td style="width:32px;padding: 2px 5px 0 0"> 21 | <img style="width:72px;height:64px" src="clown-fish.svg" /> 22 | </td> 23 | <td> 24 | svg as img'src 25 | </td> 26 | </tr> 27 | <tr style="vertical-align: top;"> 28 | <td style="width:32px;padding: 2px 5px 0 0"> 29 | <img style="width:72px;height:64px" src="clown-fish.svg" /> 30 | </td> 31 | <td> 32 | svg as img'src 33 | </td> 34 | </tr> 35 | </table> 36 | 37 | 38 | </blockquote> 39 | </body> 40 | </html> 41 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/ClassicSamples/00.Intro2.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>Intro</title> 4 | <link rel="Stylesheet" href="stylesheet1.css" /> 5 | </head> 6 | <body> 7 | <table width="100%"> 8 | <tr style="vertical-align: top;"> 9 | <td style="width:80px;padding: 2px 5px 0px 0px"> 10 | OKOK 11 | </td> 12 | <td> 13 | AAA 14 | </td> 15 | </tr> 16 | </table> 17 | </body> 18 | </html> 19 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/ClassicSamples/html32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test8_HtmlRenderer.Demo/Samples/ClassicSamples/html32.png -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/ClassicSamples/stylesheet1.css: -------------------------------------------------------------------------------- 1 | h1, h2, h3 { color: navy; font-weight:normal; } 2 | h1 { margin-bottom: .47em } 3 | h2 { margin-bottom: .3em } 4 | h3 { margin-bottom: .4em } 5 | ul { margin-top: .5em } 6 | ul li {margin: .25em} 7 | body { font:10pt Tahoma } 8 | pre { border:solid 1px gray; background-color:#eee; padding:1em } 9 | a:link { text-decoration: none; } 10 | a:hover { text-decoration: underline; } 11 | .gray { color:gray; } 12 | .example { background-color:#efefef; border-radius:5px; padding:0.5em; } 13 | .whitehole { background-color:white; border-radius:10px; padding:15px; } 14 | .caption { font-size: 1.1em } 15 | .comment { color: green; margin-bottom: 5px; margin-left: 3px; } 16 | .comment2 { color: green; } -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Experiment/1_simple_flex.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>simple flex</title> 4 | </head> 5 | <body> 6 | <div style="display:flex;width:300px"> 7 | <div style="width:20px">1</div> 8 | <div style="width:20px">2</div> 9 | <div style="width:20px">3</div> 10 | <div style="width:20px">4</div> 11 | </div> 12 | <div style="display:flex;width:300px"> 13 | <div>1</div> 14 | <div>2</div> 15 | <div>3</div> 16 | <div>4</div> 17 | </div> 18 | <div style="display:flex;width:300px"> 19 | <div style="flex-grow:1">1</div> 20 | <div style="flex-grow:1">2</div> 21 | <div style="flex-grow:1">3</div> 22 | <div style="flex-grow:1">4</div> 23 | </div> 24 | <div style="display:flex;width:300px"> 25 | <div style="flex-grow:1">1</div> 26 | <div style="flex-grow:0">2</div> 27 | <div style="flex-grow:1">3</div> 28 | <div style="flex-grow:1">4</div> 29 | </div> 30 | </body> 31 | </html> 32 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Experiment/2_flex2.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>simple flex2</title> 4 | </head> 5 | <body> 6 | <div style="display:flex;width:300px;height:60px;background-color:red;"> 7 | <div style="flex-grow:1;background-color:blue;">1</div> 8 | <div style="flex-grow:1;background-color:blue;">2</div> 9 | <div style="flex-grow:1;background-color:blue;">3</div> 10 | <div style="flex-grow:1;background-color:blue;">4</div> 11 | </div> 12 | </body> 13 | </html> 14 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Experiment/3_ext_flex.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>just my extension, no w3c standard</title> 4 | </head> 5 | <body> 6 | <div style="display:flex;width:300px;height:100px;flex-ext-num:9;"> 7 | <div style="flex-ext-part:1">A</div> 8 | <div style="flex-ext-part:3">B</div> 9 | <div style="flex-ext-part:6">C</div> 10 | <div style="flex-ext-part:8">D</div> 11 | </div> 12 | </body> 13 | </html> 14 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Experiment/4_custom_element.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>just my extension, no w3c standard</title> 4 | </head> 5 | <body> 6 | <fivespace style="width:300px;height:100px;"> 7 | <left_space expand="top bottom"> 8 | A 9 | </left_space> 10 | <right_space expand="top bottom"> 11 | B 12 | </right_space> 13 | </fivespace> 14 | </body> 15 | </html> 16 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Experiment/5_template.html: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>just my extension, no w3c standard</title> 4 | </head> 5 | <body> 6 | <template id="test1"> 7 | Hello from template! 8 | </template> 9 | <div> 10 | hello! 11 | </div> 12 | </body> 13 | </html> 14 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Fonts/SOV_Thanamas.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test8_HtmlRenderer.Demo/Samples/Fonts/SOV_Thanamas.ttf -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Fonts/SOV_Thanamas_readme_uvSOV.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test8_HtmlRenderer.Demo/Samples/Fonts/SOV_Thanamas_readme_uvSOV.txt -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Fonts/latinmodern-math.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test8_HtmlRenderer.Demo/Samples/Fonts/latinmodern-math.otf -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/PerfSamples/1.Big table.htm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test8_HtmlRenderer.Demo/Samples/PerfSamples/1.Big table.htm -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Svg/freepik/README.md: -------------------------------------------------------------------------------- 1 | Icons made by a http.www.freepik.com 2 | from www.flaticon.com 3 | licensed by Creative Commons BY 3.0 (http://creativecommons.org/licenses/by/3.0/) -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Svg/freepik/dog1.svg: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="iso-8859-1"?> 2 | <!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> 3 | <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" 4 | viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> 5 | 6 | 7 | <path style="fill:#F58C46;" d="M198.71,96c-5.277-10.96-19.765-30.16-37.273-41.489c-12.443-8.052-29.156-2.398-34.212,11.534 8 | l-0.079,0.218c-2.255,6.213-1.457,12.952,1.426,18.9c10.324,21.296,5.977,62.45,39.17,66.062 9 | C205.013,155.282,208.774,116.903,198.71,96z"/> 10 | <path style="fill:#4B3F4E;" d="M90.919,94.968c-4.56,0-8.298-3.698-8.298-8.258s3.657-8.258,8.218-8.258h0.081 11 | c4.56,0,8.258,3.698,8.258,8.258S95.48,94.968,90.919,94.968z"/> 12 | 13 | </svg> 14 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Svg/others/README.MD: -------------------------------------------------------------------------------- 1 | NOTES: 2 | 3 | cat_complex.svg, cat_simple.svg were taken from https://archive.org/details/siamesecats00vand page 46 4 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Svg/others/img01.svg: -------------------------------------------------------------------------------- 1 | <svg width="200" height="200" 2 | xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 3 | <image href="d:\\WImageTest\\alpha1.png" height="583px" width="866px"/> 4 | </svg> -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Svg/others/svg16_marker.svg: -------------------------------------------------------------------------------- 1 | <svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"> 2 | <!-- from https://developer.mozilla.org/en-US/docs/Web/SVG/Element/marker--> 3 | <defs> 4 | <!-- arrowhead marker definition --> 5 | <marker id="arrow" viewBox="0 0 10 10" refX="5" refY="5" 6 | markerWidth="6" markerHeight="6" 7 | orient="auto-start-reverse"> 8 | <path d="M 0 0 L 10 5 L 0 10 z" /> 9 | </marker> 10 | 11 | <!-- simple dot marker definition --> 12 | <marker id="dot" viewBox="0 0 10 10" refX="5" refY="5" 13 | markerWidth="5" markerHeight="5"> 14 | <circle cx="5" cy="5" r="5" fill="red" /> 15 | </marker> 16 | </defs> 17 | 18 | <!-- Coordinate axes with a arrowhead in both direction --> 19 | <polyline points="10,10 10,90 90,90" fill="none" stroke="black" 20 | marker-start="url(#arrow)" marker-end="url(#arrow)" /> 21 | 22 | <!-- Data line with polymarkers --> 23 | <polyline points="15,80 29,50 43,60 57,30 71,40 85,15" fill="none" stroke="grey" 24 | marker-start="url(#dot)" marker-mid="url(#dot)" marker-end="url(#dot)" /> 25 | </svg> -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Svg/others/svg17_use.svg: -------------------------------------------------------------------------------- 1 | <svg viewBox="0 0 30 10" xmlns="http://www.w3.org/2000/svg"> 2 | <!-- from https://developer.mozilla.org/en-US/docs/Web/SVG/Element/use --> 3 | 4 | <circle id="myCircle" cx="5" cy="5" r="4"/> 5 | <use href="#myCircle" x="10" fill="blue" /> 6 | <use href="#myCircle" x="20" fill="white" stroke="blue" /> 7 | 8 | </svg> -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/Svg/others/text.svg: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <svg version="1.1"> 3 | <g id="en"> 4 | <text x="0" y="0" font-family="Tahoma" font-size="10pt">Magma chamber</text> 5 | <text x="0" y="20" font-family="Tahoma" font-size="10pt">Lava flow</text> 6 | </g> 7 | </svg> -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/SvgSamples/html32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/Test8_HtmlRenderer.Demo/Samples/SvgSamples/html32.png -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/SvgSamples/svg01.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | <style type="text/css"> 5 | svg {display:block;background-color:gray;width:500px;height:500px} 6 | </style> 7 | </head> 8 | <body> 9 | <h3> Hello SVG!</h3> 10 | <svg> 11 | <rect x="5px" y="5px" width="50px" height="50px" fill="red" stroke="black" stroke-width="1px"/> 12 | <rect x="100px" y="100px" width="50px" height="50px" fill="green" stroke="black" stroke-width="3px"/> 13 | <rect x="200px" y="200px" width="50px" height="50px" fill="blue" stroke="black" stroke-width="5px"/> 14 | 15 | OKOK 16 | </svg> 17 | </body> 18 | </html> 19 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/SvgSamples/svg02.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | <style type="text/css"> 5 | svg {display:block;background-color:gray;width:500px;height:500px} 6 | </style> 7 | </head> 8 | <body> 9 | <h3> Hello SVG!</h3> 10 | <svg> 11 | <rect x="5px" y="5px" width="50px" height="50px" fill="red" stroke="black" stroke-width="1px"/> 12 | <rect x="100px" y="100px" width="50px" height="50px" fill="green" stroke="black" stroke-width="3px"/> 13 | <rect x="200px" y="200px" width="50px" height="50px" fill="blue" stroke="black" stroke-width="5px" 14 | rx="20px" ry="20px" transform="rotate(-45 100 100)"/> 15 | 16 | OKOK 17 | </svg> 18 | </body> 19 | </html> 20 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/SvgSamples/svg03_rounds.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | <style type="text/css"> 5 | svg {display:block;background-color:gray;width:500px;height:500px} 6 | </style> 7 | </head> 8 | <body> 9 | <h3> Hello SVG!</h3> 10 | <svg> 11 | <circle cx="100px" cy="100px" r="50px" fill="orange" stroke="navy" stroke-width="10px"/> 12 | <ellipse cx="200px" cy="200px" rx="50px" ry="30px" fill="yellow" stroke="black" stroke-width="10px"/> 13 | OKOK 14 | </svg> 15 | </body> 16 | </html> 17 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/SvgSamples/svg04_lines.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | <style type="text/css"> 5 | svg {display:block;background-color:gray;width:500px;height:500px} 6 | </style> 7 | </head> 8 | <body> 9 | <h3> Hello SVG!</h3> 10 | <svg height="200px" width="200px"> 11 | <polygon points="60,0 120,0 180,60 180,120 120,180 60,180 0,120 0,60" fill="yellow" stroke="black" stroke-width="10px"/> 12 | <polyline points="200,200 250,250 250,200" fill="yellow" stroke="black" stroke-width="10px"/> 13 | 14 | <text x="0" y="0" fill="black">OKOK!</text> 15 | </svg> 16 | </body> 17 | </html> 18 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/SvgSamples/svg04_text.html: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | <style type="text/css"> 5 | svg {display:block;background-color:gray;width:500px;height:500px} 6 | </style> 7 | </head> 8 | <body> 9 | <h3> Hello SVG!</h3> 10 | <svg height="200px" width="200px"> 11 | 12 | <style> 13 | .small { font: italic 13px sans-serif; } 14 | .heavy { font: bold 30px sans-serif; } 15 | 16 | /* Note that the color of the text is set with the * 17 | * fill property, the color property is for HTML only */ 18 | .Rrrrr { font: italic 40px serif; fill: red; } 19 | </style> 20 | 21 | <text x="20" y="35" class="small">My</text> 22 | <text x="40" y="35" class="heavy">cat</text> 23 | <text x="55" y="55" class="small">is</text> 24 | <text x="65" y="55" class="Rrrrr">Grumpy!</text> 25 | <text x="0" y="50" class="small">OKOK!</text> 26 | <span> Hello!</span> 27 | 28 | </svg> 29 | </body> 30 | </html> 31 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/SvgSamples/svg05_gradient.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | <style type="text/css"> 5 | svg {display:block;background-color:gray;width:500px;height:500px} 6 | </style> 7 | </head> 8 | <body> 9 | <h3> Hello SVG!</h3> 10 | <svg version="1.1"> 11 | <defs> 12 | <rect id="r1" width="350px" height="350px" stroke="black" stroke-width="1px"/> 13 | <linearGradient id="g1" x1="0%" y1="0%" x2="100%" y2="100%"> 14 | <stop stop-color="black" offset="0%"/> 15 | <stop stop-color="teal" offset="50%"/> 16 | <stop stop-color="white" offset="100%"/> 17 | </linearGradient> 18 | </defs> 19 | <use x="30px" y="25px" xlink:href="#r1" fill="url(#g1)"/> 20 | OKOK 21 | </svg> 22 | </body> 23 | </html> 24 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/SvgSamples/svg06_path.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | <style type="text/css"> 5 | svg {display:block;background-color:gray;width:500px;height:500px} 6 | </style> 7 | </head> 8 | <body> 9 | <h3> Hello SVG!</h3> 10 | <svg> 11 | 12 | <path fill="black" d="M150 0 L75 200 L225 200 Z"/> 13 | 14 | 15 | OKOK 16 | </svg> 17 | </body> 18 | </html> -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/SvgSamples/svg07_path2.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | <style type="text/css"> 5 | svg {display:block;background-color:gray;width:500px;height:500px} 6 | </style> 7 | </head> 8 | <body> 9 | <h3> Hello SVG!</h3> 10 | <svg> 11 | 12 | <path id="lineAB" d="M 100 350 l 150 -300" stroke="red" 13 | stroke-width="3" fill="none" /> 14 | <path id="lineBC" d="M 250 50 l 150 300" stroke="red" 15 | stroke-width="3" fill="none" /> 16 | <path d="M 175 200 l 150 0" stroke="green" stroke-width="3" 17 | fill="none" /> 18 | <path d="M 100 350 q 150 -300 300 0" stroke="blue" 19 | stroke-width="5" fill="none" /> 20 | <g stroke="black" stroke-width="3" fill="black"> 21 | <circle id="pointA" cx="100" cy="350" r="3" /> 22 | <circle id="pointB" cx="250" cy="50" r="3" /> 23 | <circle id="pointC" cx="400" cy="350" r="3" /> 24 | </g> 25 | 26 | 27 | OKOK 28 | </svg> 29 | </body> 30 | </html> -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/SvgSamples/svg08_image.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | <style type="text/css"> 5 | svg {display:block;background-color:gray;width:500px;height:500px} 6 | </style> 7 | </head> 8 | <body> 9 | <h3> Hello SVG!</h3> 10 | <svg> 11 | <image x="100" y="100" width="24px" height="24px" href="html32.png" fill="red"/> 12 | 13 | OKOK 14 | </svg> 15 | </body> 16 | </html> -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/SvgSamples/svg09_path3.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | <style type="text/css"> 5 | svg {display:block;background-color:gray;width:500px;height:500px} 6 | </style> 7 | </head> 8 | <body> 9 | <h3> Hello SVG!</h3> 10 | <svg> 11 | <path class="SamplePath" d="M100,200 C100,100 250,100 250,200 S400,300 400,200" fill="none" stroke="red"/> 12 | OKOK 13 | </svg> 14 | </body> 15 | </html> -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/SvgSamples/svg10_arc.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | <style type="text/css"> 5 | svg {display:block;background-color:gray;width:500px;height:500px} 6 | </style> 7 | </head> 8 | <body> 9 | <h3> Hello SVG!</h3> 10 | <svg> 11 | <path d="M300,200 h-150 a150,150 0 1,0 150,-150 z" 12 | fill="red" stroke="blue" stroke-width="5" /> 13 | <path d="M275,175 v-150 a150,150 0 0,0 -150,150 z" 14 | fill="yellow" stroke="blue" stroke-width="5" /> 15 | 16 | <path d="M100,350 l 50,-25 17 | a25,25 -30 0,1 50,-25 l 50,-25 18 | a25,50 -30 0,1 50,-25 l 50,-25 19 | a25,75 -30 0,1 50,-25 l 50,-25 20 | a25,100 -30 0,1 50,-25 l 50,-25" 21 | fill="none" stroke="green" stroke-width="5" /> 22 | 23 | OKOK 24 | </svg> 25 | </body> 26 | </html> -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/SvgSamples/svg11_arc.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | <style type="text/css"> 5 | svg {display:block;background-color:gray;width:500px;height:500px} 6 | </style> 7 | </head> 8 | <body> 9 | <h3> Hello SVG!</h3> 10 | <svg> 11 | 12 | <path d="M50 200 a 30 50 0 1 1 250 0" stroke="black" stroke-width="3" fill="none"/> 13 | <path d="M50 200 a 200 50 0 1 1 250 0" stroke="blue" stroke-width="3" fill="none"/> 14 | <path d="M50 200 a 100 50 20 1 1 250 0" stroke="green" stroke-width="3" fill="none"/> 15 | <path d="M50 200 a 100 50 30 1 1 250 0" stroke="yellow" stroke-width="3" fill="none"/> 16 | <path d="M50 200 a 100 50 40 1 1 250 0" stroke="red" stroke-width="3" fill="none"/> 17 | <path d="M50 200 a 100 50 50 1 1 250 0" stroke="orange" stroke-width="3" fill="none"/> 18 | <path d="M50 200 a 100 50 60 1 1 250 0" stroke="black" stroke-width="3" fill="none"/> 19 | <path d="M400 300 a 100 50 45 1 1 250 50" stroke="black" stroke-width="3" fill="none"/> 20 | <path d="M750 200 a 100 50 135 1 1 250 50" stroke="black" stroke-width="3" fill="none"/> 21 | 22 | OKOK 23 | </svg> 24 | </body> 25 | </html> -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/SvgSamples/svg12_arc.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | <style type="text/css"> 5 | svg {display:block;background-color:gray;width:500px;height:500px} 6 | </style> 7 | </head> 8 | <body> 9 | <h3> Hello SVG!</h3> 10 | <svg> 11 | 12 | <path d="M300 50 a 150 50 0 0 0 250 50" stroke="black" stroke-width="3" fill="none"/> 13 | <path d="M300 200 a 150 50 0 0 1 250 50" stroke="black" stroke-width="3" fill="none"/> 14 | <path d="M700 50 a 150 50 0 1 0 250 50" stroke="black" stroke-width="3" fill="none"/> 15 | <path d="M700 200 a 150 50 0 1 1 250 50" stroke="black" stroke-width="3" fill="none"/> 16 | 17 | 18 | OKOK 19 | </svg> 20 | </body> 21 | </html> -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/SvgSamples/svg13_curve.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | <style type="text/css"> 5 | svg {display:block;background-color:gray;width:800px;height:600px} 6 | </style> 7 | </head> 8 | <body> 9 | <h3> Hello SVG!</h3> 10 | <svg> 11 | 12 | <path d="M414 20q-163 40 -245 126t-82 276z"/> 13 | 14 | 15 | OKOK 16 | </svg> 17 | </body> 18 | </html> -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/SvgSamples/svg14_svg.html: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" viewbox="0,0,800,1600"> 2 | <path d="M414 20q-163 40 -245 126t-82 276z"/> 3 | 4 | <path d= "M 879 562 C879 695.333 858.667 796.5 818 865.5 C777.333 934.5 712 969 622 969 C570.667 969 518.833 957 466.5 933 C414.167 909 366.667 878.667 324 842 L324 202 C371.333 178.667 413.333 162.167 450 152.5 C486.667 142.833 527 138 571 138 C667 138 742.333 172 797 240 C851.667 308 879 415.333 879 562 Z"/> 5 | 6 | 7 | </svg> -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/SvgSamples/svg15_curve.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | <style type="text/css"> 5 | svg {display:block;background-color:gray;width:800px;height:600px} 6 | </style> 7 | </head> 8 | <body> 9 | <h3> Hello SVG!</h3> 10 | <svg> 11 | 12 | <path d="M414 -20q-163 0 -245 86t-82 236q0 107 40.5 175.5t106 107.5t149.5 54t171 17l243 4v59q0 67 -14 114t-43 76t-72.5 42.5t-102.5 13.5q-52 0 -94 -7.5t-73 -27t-50 -53t-25 -84.5l-188 17q10 64 38 117.5t79.5 92.5t129 60.5t187.5 21.5q204 0 307 -93.5t103 -270.5 13 | v-466q0 -80 21 -120.5t80 -40.5q15 0 30 2t29 5v-112q-34 -8 -67.5 -12t-71.5 -4q-51 0 -87.5 13.5t-59.5 41t-35 68t-15 94.5h-6q-29 -52 -63.5 -94t-80.5 -71.5t-104.5 -45.5t-134.5 -16zM455 115q86 0 150.5 31.5t107 80.5t63.5 107t21 111v89l-197 -4 14 | q-66 -1 -125.5 -9.5t-104.5 -33.5t-71.5 -70t-26.5 -118q0 -88 47.5 -136t135.5 -48z"/> 15 | 16 | 17 | OKOK 18 | </svg> 19 | </body> 20 | </html> -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/SvgSamples/svg20_as_img_src.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <link rel="Stylesheet" href="StyleSheet" /> 4 | </head> 5 | <body> 6 | <h3> Hello SVG!</h3> 7 | <img src="1f30b.svg"> 8 | </body> 9 | </html> 10 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/TestSamples/01.Header.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <body> 3 | <span style="background-color: #eee">Stub simple text</span> 4 | 5 | <h1 style="background-color: #aea">H1 Header text</h1> 6 | <span style="background-color: #eee">Stub simple text</span> 7 | 8 | <h2 style="background-color: #aea">H2 Header text</h2> 9 | <span style="background-color: #eee">Stub simple text</span> 10 | 11 | <h3 style="background-color: #aea">H3 Header text</h3> 12 | <span style="background-color: #eee">Stub simple text</span> 13 | 14 | <h4 style="background-color: #aea">H4 Header text</h4> 15 | <span style="background-color: #eee">Stub simple text</span> 16 | 17 | <h5 style="background-color: #aea">H5 Header text</h5> 18 | <span style="background-color: #eee">Stub simple text</span> 19 | 20 | <h6 style="background-color: #aea">H6 Header text</h6> 21 | <span style="background-color: #eee">Stub simple text</span> 22 | </body> 23 | </html> 24 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/TestSamples/03.Paragraphs.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <body> 3 | <h1 style="background-color:#aae;">Case 1</h1> 4 | <div style="background-color:#eaa"> 5 | <p style="background-color:#aae">2009 Jose Manuel Menendez Poo</p> 6 | </div> 7 | <hr/> 8 | <h1 style="background-color:#aae;">Case 2</h1> 9 | <span style="background-color:#eaa"> 10 | <p style="background-color:#aae">2009 Jose Manuel Menendez Poo</p> 11 | </span> 12 | <hr/> 13 | <h1 style="background-color:#aae;">Case 3</h1> 14 | <blockquote style="background-color:#aae;"> 15 | <p>Text</p> 16 | </blockquote> 17 | <hr/> 18 | <h1 style="background-color:#aae;">Case 4</h1> 19 | <p style="background-color:#aea;"> 20 | <blockquote style="background-color:#aae;">Text</blockquote> 21 | </p> 22 | <hr/> 23 | <h1 style="background-color:#aae;">Case 5</h1> 24 | <div style="background-color:#aea;"> 25 | Text 26 | <h1 style="background-color:#aae;">About</h1> 27 | </div> 28 | <p>2009 Jose Manuel Menendez Poo</p> 29 | <hr/> 30 | <h1 style="background-color:#aae;">Case 6</h1> 31 | <span style="background-color:#aea;"> 32 | Text 33 | <h1 style="background-color:#aae;">About</h1> 34 | </span> 35 | <hr/> 36 | </body> 37 | </html> 38 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/TestSamples/04.Blockquotes.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <body> 3 | <h1 style="background-color:#aea;">Case 1</h1> 4 | <blockquote style="background-color:#aea;">Text</blockquote> 5 | <hr/> 6 | <h1 style="background-color:#aea;">Case 2</h1> 7 | <blockquote style="background-color:#aea;"> 8 | <p>Text</p> 9 | </blockquote> 10 | <hr/> 11 | <h1 style="background-color:#aea;">Case 3</h1> 12 | <blockquote style="background-color:#aea;"> 13 | <span>Text</span> 14 | </blockquote> 15 | <hr/> 16 | <h1 style="background-color:#aea;">Case 4</h1> 17 | <blockquote style="background-color:#aea;"> 18 | <div>Text</div> 19 | </blockquote> 20 | <hr/> 21 | <h1 style="background-color:#aea;">Case 5</h1> 22 | <blockquote style="background-color:#aea;"> 23 | <h2>Text</h2> 24 | </blockquote> 25 | <hr/> 26 | </body> 27 | </html> 28 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/TestSamples/05.Images.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <body> 3 | <h1 style="background-color: #aea;">Inline image</h1> 4 | <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="> 5 | <hr /> 6 | <h2>Block image</h2> 7 | <img src="ImageIcon" style="display: block" /> 8 | <hr /> 9 | <h1 style="background-color: #aea;">Case 1</h1> 10 | <img src="ImageIcon" /> 11 | Text 12 | <hr /> 13 | <h1 style="background-color: #aea;">Case 2</h1> 14 | <div style="background-color: #aea;">Text1</div> 15 | <img src="ImageIcon" /> 16 | <div style="background-color: #aea;">Text2</div> 17 | <hr /> 18 | <h1 style="background-color: #aea;">Case 3</h1> 19 | <div style="background-color: #aea;">Text1</div> 20 | <span style="background-color: #aea;">Text2</span> 21 | <img src="ImageIcon" /> 22 | <span style="background-color: #aea;">Text3</span> 23 | <div style="background-color: #aea;">Text4</div> 24 | <hr /> 25 | <h1 style="background-color: #aea;">Case 4</h1> 26 | <div style="background-color: #aea;">Text1</div> 27 | <span style="background-color: #aea;">Text2</span> 28 | <img src="PropertyIcon" /> 29 | <span style="background-color: #aea;">Text3</span> 30 | <div style="background-color: #aea;">Text4</div> 31 | <hr /> 32 | </body> 33 | </html> 34 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/TestSamples/06.External Image.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <body> 3 | <div> 4 | Local File: 5 | </div> 6 | <img height="100" src="c:\test.png"/> 7 | <hr/> 8 | <div> 9 | From web: 10 | </div> 11 | <img height="100" src="http://www.canadianpetconnection.com/wp-content/uploads/2011/09/Cats1.jpg"/> 12 | <hr /> 13 | <div> 14 | GIF: 15 | </div> 16 | <img src="http://24.media.tumblr.com/7995829378e93457f5dd3c10445ec00e/tumblr_mekn6vBZkI1rf089no1_500.gif" height="100" /> 17 | <hr/> 18 | <div> 19 | By event: 20 | </div> 21 | <img height="100" byevent="1000"/> 22 | <br/> 23 | <br/> 24 | <img style="width:100%" src="http://www.canadianpetconnection.com/wp-content/uploads/2011/09/Cats1.jpg"/> 25 | </body> 26 | </html> 27 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/TestSamples/08.White-space.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <body> 3 | <p> 4 | The ',' after hello need to wrap with hello and not seperatly: <span>hello</span>, world 5 | </p> 6 | <hr/> 7 | <p> 8 | <span style="white-space: nowrap; background-color: Silver;">1. image001.jpg</span>, <span style="white-space: nowrap; background-color: Silver;">2. image002.jpg</span>, <span style="white-space: nowrap; background-color: Silver;">3. image003.jpg</span> 9 | </p> 10 | <hr /> 11 | <pre style="background-color: white"> 12 | <span style="color: green">//Example of code using preformatted text</span> 13 | <span style="color: blue">public class</span> HelloWorld 14 | { 15 | <span style="color: blue">public</span> HelloWorld() 16 | { 17 | <span style="color: #099">MessageBox</span>.Show(<span color="maroon">"Hello World"</span>); 18 | } 19 | }</pre> 20 | </body> 21 | </html> 22 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/TestSamples/09.Inline.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <body> 3 | <div> 4 | code<strong>Plex</strong> 5 | </div> 6 | <hr /> 7 | <div> 8 | code <i>Plex</i> 9 | </div> 10 | <hr /> 11 | <div style="font-family: arial"> 12 | <a href="">CodePlex</a> code<strong>Plex</strong> 13 | </div> 14 | <hr /> 15 | <span><a href="">CodePlex</a> code<strong>Plex</strong> code</span> 16 | <hr /> 17 | <div> 18 | <span>Hello</span> <span>World</span> 19 | </div> 20 | <div> 21 | Hello<span> <span>World</span></span> 22 | </div> 23 | <div> 24 | <span><span>Hello</span> </span>World 25 | </div> 26 | </body> 27 | </html> 28 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/TestSamples/10.BlockInInline.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <body> 3 | <div> 4 | <span style="color: blue; display: ">1 <span style="color: red">a 5 | <p> 6 | b 7 | </p> 8 | c d </span>2</span> 9 | </div> 10 | <hr /> 11 | <div> 12 | <div> 13 | <span>Client Binaries</span> 14 | </div> 15 | <div> 16 | <span> 17 | <br /> 18 | </span>sdf 19 | </div> 20 | </div> 21 | <hr /> 22 | <div> 23 | <span>Text1</span><br> 24 | <span>Text2<br> 25 | </span><span>Text3</span> 26 | </div> 27 | <hr /> 28 | <div> 29 | <span>Text1</span><span><br> 30 | </span><span>Text2</span> 31 | </div> 32 | <hr /> 33 | <div> 34 | <a href="http://www.amazon.com">go to 35 | <br> 36 | amazon(fails)</a> 37 | </div> 38 | <hr /> 39 | <div> 40 | <span><span> 41 | <br /> 42 | </span><span>1<br /> 43 | 2 </span></span> 44 | </div> 45 | <hr /> 46 | <div> 47 | text text<span><br /> 48 | bla 49 | </span> 50 | </div> 51 | <hr /> 52 | 53 | <span style="color: red">1<br /> 54 | <br /> 55 | 2<br /> 56 | <br /> 57 | <br /> 58 | 3<br /> 59 | <br /> 60 | <br /> 61 | <br /> 62 | 4<br /> 63 | </span> 64 | </body> 65 | </html> 66 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/TestSamples/11.LineHeight.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <body style="font: 10pt tahoma;"> 3 | <h2>Control line height</h2> 4 | <p style="line-height: 1.5em;"> 5 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur ornare mollis 6 | elit. Integer sagittis. Fusce elementum commodo felis. Vivamus lacinia eleifend 7 | libero. Donec lacus. Nam sit amet urna. Nullam nulla. Donec accumsan porta magna. 8 | Mauris a dolor eu elit rutrum commodo. Nam iaculis turpis non augue. Nullam lobortis 9 | egestas risus. Nulla elementum dolor ac mauris. Ut tristique. In varius volutpat 10 | metus. Integer leo dolor, tristique a, dignissim ac, iaculis eget, elit. Donec arcu. 11 | </p> 12 | <hr /> 13 | <h2>Limit block height with overflow: hidden</h2> 14 | <p> 15 | <div style="height: 25px; line-height: 20px; overflow: hidden;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur ornare mollis 16 | elit. Integer sagittis. Fusce elementum commodo felis. Vivamus lacinia eleifend 17 | libero. Donec lacus. Nam sit amet urna. Nullam nulla. Donec accumsan porta magna. 18 | Mauris a dolor eu elit rutrum commodo. Nam iaculis turpis non augue. Nullam lobortis 19 | egestas risus. Nulla elementum dolor ac mauris. Ut tristique. In varius volutpat 20 | metus. Integer leo dolor, tristique a, dignissim ac, iaculis eget, elit. Donec arcu.</div> 21 | </p> 22 | <hr /> 23 | </body> 24 | </html> 25 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/TestSamples/14.Iframes.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <body> 3 | <div> 4 | <h2> 5 | Youtube</h2> 6 | <p> 7 | <iframe frameborder="0" height="350" src="https://www.youtube.com/embed/tntOCGkgt98?wmode=transparent" 8 | width="425"></iframe> 9 | </p> 10 | <hr /> 11 | <h2> 12 | Vimeo</h2> 13 | <p> 14 | <iframe frameborder="0" height="350" src="https://player.vimeo.com/video/41254501" 15 | width="480"></iframe> 16 | </p> 17 | <hr /> 18 | <h2> 19 | Not video iframe</h2> 20 | <p> 21 | <iframe frameborder="0" height="350" src="https://www.google.com" 22 | width="350"></iframe> 23 | </p> 24 | </div> 25 | </body> 26 | </html> 27 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/TestSamples/16.Borders.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <body> 3 | <div> 4 | <p> 5 | <div style="padding: 5px; border: 1px solid black"> 6 | simple border 1px 7 | </div> 8 | </p> 9 | <p> 10 | <div style="padding: 5px; border: 3px solid red"> 11 | simple border 3px 12 | </div> 13 | </p> 14 | <p> 15 | <div style="padding: 5px; border: 1px solid black; corner-radius: 5px;"> 16 | border 1px with corner-radius 5px 17 | </div> 18 | </p> 19 | <p> 20 | <div style="padding: 5px; border: 2px solid black; corner-radius: 10px;"> 21 | border 2px with corner-radius 10px 22 | </div> 23 | </p> 24 | <p> 25 | <div style="padding: 5px; border: 1px dotted blue;"> 26 | dotted border 1px 27 | </div> 28 | </p> 29 | <p> 30 | <div style="padding: 5px; border: 3px dotted blue;"> 31 | dotted border 3px 32 | </div> 33 | </p> 34 | <p> 35 | <div style="padding: 5px; border: 1px dashed darkred;"> 36 | dashed border 1px 37 | </div> 38 | </p> 39 | <p> 40 | <div style="padding: 5px; border: 2px dashed darkred; corner-radius: 10px;"> 41 | dashed border 2px with corner-radius 10px 42 | </div> 43 | </p> 44 | </div> 45 | </body> 46 | </html> 47 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/TestSamples/17.Languages.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <body> 3 | <div> 4 | <h2>Validate Unicode rendering</h2> 5 | <p>العربية</p> 6 | <p>Bahasa Indonesia</p> 7 | <p>Bahasa Melayu</p> 8 | <p>Български</p> 9 | <p>Català</p> 10 | <p>Česky</p> 11 | <p>Dansk</p> 12 | <p>Deutsch</p> 13 | <p>Eesti</p> 14 | <p>Ελληνικά</p> 15 | <p>Español</p> 16 | <p>Esperanto</p> 17 | <p>Euskara</p> 18 | <p>فارسی</p> 19 | <p>Français</p> 20 | <p>Galego</p> 21 | <p>한국어</p> 22 | <p>עברית</p> 23 | <p>Hrvatski</p> 24 | <p>Italiano</p> 25 | <p>Lietuvių</p> 26 | <p>Magyar</p> 27 | <p>Nederlands</p> 28 | <p>日本語</p> 29 | <p>Norsk bokmål</p> 30 | <p>Norsk nynorsk</p> 31 | <p>Polski</p> 32 | <p>Português</p> 33 | <p>Română</p> 34 | <p>Русский</p> 35 | <p>Slovenčina</p> 36 | <p>Slovenščina</p> 37 | <p>Српски / srpski</p> 38 | <p>Srpskohrvatski / српскохрватски</p> 39 | <p>Suomi</p> 40 | <p>Svenska</p> 41 | <p>ไทย</p> 42 | <p>Tiếng Việt</p> 43 | <p>Türkçe</p> 44 | <p>Українська</p> 45 | <p>中文</p> 46 | </div> 47 | </body> 48 | </html> 49 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/TestSamples/22.RTL.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <body> 3 | <div dir="rtl"> 4 | <div>שלום עולם, יש ברבורים בעגם הזה</div> 5 | <br /> 6 | <div>שלום עולם, יש ברבורים בעגם הזה</div> 7 | <div>שלום עולם, יש ברבורים בעגם הזה</div> 8 | </div> 9 | <hr/> 10 | <div dir="rtl"> 11 | <div>שלום עולם,<span>hello world</span> יש ברבורים בעגם הזה</div> 12 | <br /> 13 | <div>שלום עולם, יש ברבורים בעגם הזה</div> 14 | <div>שלום עולם, יש ברבורים בעגם הזה</div> 15 | </div> 16 | <hr/> 17 | </body> 18 | </html> 19 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/TestSamples/30.Misc.htm: -------------------------------------------------------------------------------- 1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2 | <html> 3 | <body> 4 | <div> 5 | Single whitespace in seperate<span> </span>element 6 | </div> 7 | <div> 8 | Multiple whitespaces in seperate<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>element 9 | using &amp;nbsp; 10 | </div> 11 | <hr /> 12 | TOP 13 | <div style="background-color: yellow"> 14 | <div style="margin: 10%; background-color: gainsboro"> 15 | there are margin with percentage 16 | </div> 17 | </div> 18 | BOTTOM 19 | <hr /> 20 | <body> 21 | <div style="text-decoration: line-through"> 22 | <span>Line through : Text Text Text Text</span> 23 | </div> 24 | </body> 25 | <hr /> 26 | <div> 27 | Text <span style="display: inline-block; height: 16px; width: 26px; background-color: red;"></span>END 28 | </div> 29 | <hr /> 30 | <div> 31 | &amp;#37; 32 | <b/> 33 | <p><a href="&#109;&#97;&#x69;&#108;&#x74;&#x6f;:&#x74;&#x68;&#105;&#115;&#x2d;&#105;&#115;&#x2d;&#x61;&#x2d;&#116;&#x65;&#x73;&#x74;&#64;&#x65;&#x78;&#x61;&#x6d;&#x70;&#108;&#x65;&#46;&#x63;&#x6f;&#x6d;">&#x74;&#x68;&#105;&#115;&#x2d;&#105;&#115;&#x2d;&#x61;&#x2d;&#116;&#x65;&#x73;&#x74;&#64;&#x65;&#x78;&#x61;&#x6d;&#x70;&#108;&#x65;&#46;&#x63;&#x6f;&#x6d;</a></p> 34 | </div> 35 | </body> 36 | </html> 37 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/TestSamples/40.mathml.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <body> 3 | <math> 4 | <mrow> 5 | <msubsup> 6 | <mo> &#x222B;<!--INTEGRAL--> </mo> 7 | <mn> 0 </mn> 8 | <mn> 1 </mn> 9 | </msubsup> 10 | <mrow> 11 | <msup> 12 | <mi> &#x2147;<!--DOUBLE-STRUCK ITALIC SMALL E--> </mi> 13 | <mi> x </mi> 14 | </msup> 15 | <mo> &#x2062;<!--INVISIBLE TIMES--> </mo> 16 | <mrow> 17 | <mo> &#x2146;<!--DOUBLE-STRUCK ITALIC SMALL D--> </mo> 18 | <mi> x </mi> 19 | </mrow> 20 | </mrow> 21 | </mrow> 22 | </math> 23 | </body> 24 | </html> -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/WordSplit/1.th_TH.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>styles1</title> 4 | </head> 5 | <body> 6 | <div style="font:12pt tahoma"> 7 | <div> 8 | <span>ผู้ใหญ่หาผ้าใหม่ ให้สะใภ้ใช้คล้องคอ</span> 9 | <span>ใฝ่ใจเอาใส่ห่อ มิหลงใหลใครขอดู</span> 10 | <span>จะใคร่ลงเรือใบ ดูน้ำใสและปลาปู</span> 11 | <span>สิ่งใดอยู่ในตู้ มิใช่อยู่ใต้ตั่งเตียง</span> 12 | <span>บ้าใบ้ถือใยบัว หูตามัวมาใกล้เคียง</span> 13 | <span>เล่าท่องอย่าละเลี่ยง ยี่สิบม้วนจำจงดี</span> 14 | </div> 15 | </div> 16 | <div style="font:12pt tahoma;width: 200px"> 17 | <div> 18 | <span>ผู้ใหญ่หาผ้าใหม่ ให้สะใภ้ใช้คล้องคอ</span> 19 | <span>ใฝ่ใจเอาใส่ห่อ มิหลงใหลใครขอดู</span> 20 | <span>จะใคร่ลงเรือใบ ดูน้ำใสและปลาปู</span> 21 | <span>สิ่งใดอยู่ในตู้ มิใช่อยู่ใต้ตั่งเตียง</span> 22 | <span>บ้าใบ้ถือใยบัว หูตามัวมาใกล้เคียง</span> 23 | <span>เล่าท่องอย่าละเลี่ยง ยี่สิบม้วนจำจงดี</span> 24 | </div> 25 | </div> 26 | <div style="font:12pt tahoma;width: 50px"> 27 | <div> 28 | <span>ผู้ใหญ่หาผ้าใหม่ ให้สะใภ้ใช้คล้องคอ</span> 29 | <span>ใฝ่ใจเอาใส่ห่อ มิหลงใหลใครขอดู</span> 30 | <span>จะใคร่ลงเรือใบ ดูน้ำใสและปลาปู</span> 31 | <span>สิ่งใดอยู่ในตู้ มิใช่อยู่ใต้ตั่งเตียง</span> 32 | <span>บ้าใบ้ถือใยบัว หูตามัวมาใกล้เคียง</span> 33 | <span>เล่าท่องอย่าละเลี่ยง ยี่สิบม้วนจำจงดี</span> 34 | </div> 35 | </div> 36 | </body> 37 | </html> 38 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/WordSplit/2.Symbols.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>styles1</title> 4 | </head> 5 | <body> 6 | <div style="font:12pt tahoma"> 7 | <div> 8 | <span>lmnopq(123+456*789/abcd)</span> 9 | </div> 10 | </div> 11 | <div style="font:12pt tahoma;width: 100px"> 12 | <div> 13 | <span>lmnopq(123+456*789/abcd)</span> 14 | </div> 15 | </div> 16 | <div style="font:12pt tahoma;width: 20px"> 17 | <div> 18 | <span>lmnopq(123+456*789/abcd)</span> 19 | </div> 20 | </div> 21 | </body> 22 | </html> 23 | -------------------------------------------------------------------------------- /Source/Test8_HtmlRenderer.Demo/Samples/WordSplit/3.Symbols.htm: -------------------------------------------------------------------------------- 1 | <html> 2 | <head> 3 | <title>styles1</title> 4 | </head> 5 | <body> 6 | <div style="font:12pt tahoma"> 7 | ABC<span> </span>DEF 8 | </div> 9 | </body> 10 | </html> 11 | -------------------------------------------------------------------------------- /Source/TestMobile/CustomApp01/CustomApp01.projitems: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 3 | <PropertyGroup> 4 | <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects> 5 | <HasSharedItems>true</HasSharedItems> 6 | <SharedGUID>{686F7420-98CA-41D0-990C-FC33A8EF4592}</SharedGUID> 7 | </PropertyGroup> 8 | <PropertyGroup Label="Configuration"> 9 | <Import_RootNamespace>CustomApp01</Import_RootNamespace> 10 | </PropertyGroup> 11 | <ItemGroup> 12 | <Compile Include="$(MSBuildThisFileDirectory)CustomApp.cs" /> 13 | <Compile Include="$(MSBuildThisFileDirectory)HtmlHostCreatorHelper.cs" /> 14 | <Compile Include="$(MSBuildThisFileDirectory)YourImplementation\App.cs" /> 15 | <Compile Include="$(MSBuildThisFileDirectory)YourImplementation\AppHost.cs" /> 16 | <Compile Include="$(MSBuildThisFileDirectory)YourImplementation\AppHostExtensions.cs" /> 17 | <Compile Include="$(MSBuildThisFileDirectory)YourImplementation\DemoNote.cs" /> 18 | <Compile Include="$(MSBuildThisFileDirectory)YourImplementation\MyTextBreaker.cs" /> 19 | <Compile Include="$(MSBuildThisFileDirectory)YourImplementation\RelativePathBuilder.cs" /> 20 | </ItemGroup> 21 | </Project> -------------------------------------------------------------------------------- /Source/TestMobile/CustomApp01/CustomApp01.shproj: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 3 | <PropertyGroup> 4 | <ProjectGuid>{686F7420-98CA-41D0-990C-FC33A8EF4592}</ProjectGuid> 5 | </PropertyGroup> 6 | <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> 7 | <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props" /> 8 | <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.props" /> 9 | <Import Project="CustomApp01.projitems" Label="Shared" /> 10 | <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.CSharp.targets" /> 11 | </Project> -------------------------------------------------------------------------------- /Source/TestMobile/CustomApp01/YourImplementation/AppHostExtensions.cs: -------------------------------------------------------------------------------- 1 | //Apache2, 2014-present, WinterDev 2 | 3 | using LayoutFarm.UI; 4 | namespace LayoutFarm 5 | { 6 | public static class AppHostExtensions 7 | { 8 | public static void AddChild(this AppHost appHost, UIElement ui) 9 | { 10 | #if DEBUG 11 | if (ui.ParentUI != null) 12 | { 13 | throw new System.NotSupportedException(); 14 | } 15 | #endif 16 | appHost.AddChild(ui.GetPrimaryRenderElement(appHost.RootGfx), ui); 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /Source/TestMobile/CustomApp01/YourImplementation/DemoNote.cs: -------------------------------------------------------------------------------- 1 | //Apache2, 2014-present, WinterDev 2 | using System; 3 | 4 | namespace LayoutFarm 5 | { 6 | 7 | public class DemoNoteAttribute : Attribute 8 | { 9 | public DemoNoteAttribute(string msg) 10 | { 11 | this.Message = msg; 12 | } 13 | public string Message { get; set; } 14 | } 15 | public class DemoInfo 16 | { 17 | public readonly Type DemoType; 18 | public readonly string DemoNote; 19 | public int demoBaseTypeKind; // 0,1 20 | 21 | public DemoInfo(Type demoType, string demoNote) 22 | { 23 | this.DemoType = demoType; 24 | this.DemoNote = demoNote; 25 | } 26 | public override string ToString() 27 | { 28 | if (string.IsNullOrEmpty(DemoNote)) 29 | { 30 | return this.DemoType.Name; 31 | } 32 | else 33 | { 34 | return this.DemoNote + " : " + this.DemoType.Name; 35 | } 36 | } 37 | } 38 | 39 | } -------------------------------------------------------------------------------- /Source/TestMobile/CustomApp01/YourImplementation/MyTextBreaker.cs: -------------------------------------------------------------------------------- 1 | //Apache2, 2014-present, WinterDev 2 | 3 | using System; 4 | using System.Collections.Generic; 5 | using Typography.TextBreak; 6 | 7 | namespace LayoutFarm.Composers 8 | { 9 | public class MyManagedTextBreaker : ITextBreaker 10 | { 11 | CustomBreaker _textBreaker; 12 | List<int> _breakAtList; 13 | 14 | public MyManagedTextBreaker() 15 | { 16 | //TODO: review config folder here 17 | _textBreaker = CustomBreakerBuilder.NewCustomBreaker(); 18 | _textBreaker.SetNewBreakHandler(vis => _breakAtList.Add(vis.LatestBreakAt)); 19 | } 20 | 21 | public void DoBreak(char[] inputBuffer, int startIndex, int len, List<int> breakAtList) 22 | { 23 | _breakAtList = breakAtList; 24 | // 25 | _textBreaker.BreakWords(inputBuffer, startIndex, len); 26 | } 27 | public void DoBreak(char[] inputBuffer, int startIndex, int len, List<WordBreakInfo> breakAtList) 28 | { 29 | 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /Source/TestMobile/Droid/Assets/AboutAssets.txt: -------------------------------------------------------------------------------- 1 | Any raw assets you want to be deployed with your application can be placed in 2 | this directory (and child directories) and given a Build Action of "AndroidAsset". 3 | 4 | These files will be deployed with your package and will be accessible using Android's 5 | AssetManager, like this: 6 | 7 | public class ReadAsset : Activity 8 | { 9 | protected override void OnCreate (Bundle bundle) 10 | { 11 | base.OnCreate (bundle); 12 | 13 | InputStream input = Assets.Open ("my_asset.txt"); 14 | } 15 | } 16 | 17 | Additionally, some Android functions will automatically load asset files: 18 | 19 | Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); 20 | -------------------------------------------------------------------------------- /Source/TestMobile/Droid/DroidSans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/TestMobile/Droid/DroidSans.ttf -------------------------------------------------------------------------------- /Source/TestMobile/Droid/Properties/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="PixelFarm.One.HtmlRenderer"> 3 | <uses-sdk android:minSdkVersion="15" /> 4 | <application android:label="TestApp01"></application> 5 | </manifest> -------------------------------------------------------------------------------- /Source/TestMobile/Droid/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using Android.App; 4 | 5 | // Information about this assembly is defined by the following attributes. 6 | // Change them to the values specific to your project. 7 | 8 | [assembly: AssemblyTitle("TestApp01.Droid")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("")] 13 | [assembly: AssemblyCopyright("${AuthorCopyright}")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". 18 | // The form "{Major}.{Minor}.*" will automatically update the build and revision, 19 | // and "{Major}.{Minor}.{Build}.*" will update just the revision. 20 | 21 | [assembly: AssemblyVersion("1.0.0")] 22 | 23 | // The following attributes are used to specify the signing key for the assembly, 24 | // if desired. See the Mono documentation for more information about signing. 25 | 26 | //[assembly: AssemblyDelaySign(false)] 27 | //[assembly: AssemblyKeyFile("")] 28 | -------------------------------------------------------------------------------- /Source/TestMobile/Droid/Resources/layout/Main.axml: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> 3 | <Button android:id="@+id/myButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/hello" /> 4 | </LinearLayout> 5 | -------------------------------------------------------------------------------- /Source/TestMobile/Droid/Resources/mipmap-hdpi/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/TestMobile/Droid/Resources/mipmap-hdpi/Icon.png -------------------------------------------------------------------------------- /Source/TestMobile/Droid/Resources/mipmap-mdpi/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/TestMobile/Droid/Resources/mipmap-mdpi/Icon.png -------------------------------------------------------------------------------- /Source/TestMobile/Droid/Resources/mipmap-xhdpi/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/TestMobile/Droid/Resources/mipmap-xhdpi/Icon.png -------------------------------------------------------------------------------- /Source/TestMobile/Droid/Resources/mipmap-xxhdpi/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/TestMobile/Droid/Resources/mipmap-xxhdpi/Icon.png -------------------------------------------------------------------------------- /Source/TestMobile/Droid/Resources/mipmap-xxxhdpi/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/TestMobile/Droid/Resources/mipmap-xxxhdpi/Icon.png -------------------------------------------------------------------------------- /Source/TestMobile/Droid/Resources/values/Strings.xml: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <resources> 3 | <string name="hello">Hello World, Click Me!</string> 4 | <string name="app_name">TestApp01.Droid</string> 5 | </resources> 6 | -------------------------------------------------------------------------------- /Source/TestMobile/Droid/SOV_Thanamas.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/TestMobile/Droid/SOV_Thanamas.ttf -------------------------------------------------------------------------------- /Source/TestMobile/Droid/TAHOMABD.TTF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/TestMobile/Droid/TAHOMABD.TTF -------------------------------------------------------------------------------- /Source/TestMobile/Droid/packages.config: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <packages> 3 | <package id="System.Runtime.CompilerServices.Unsafe" version="4.5.2" targetFramework="monoandroid90" /> 4 | </packages> -------------------------------------------------------------------------------- /Source/TestMobile/Droid/tahoma.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/TestMobile/Droid/tahoma.ttf -------------------------------------------------------------------------------- /Source/TestMobile/iOS/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Source/TestMobile/iOS/DroidSans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/TestMobile/iOS/DroidSans.ttf -------------------------------------------------------------------------------- /Source/TestMobile/iOS/Entitlements.plist: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8" ?> 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 | <plist version="1.0"> 4 | <dict> 5 | </dict> 6 | </plist> 7 | -------------------------------------------------------------------------------- /Source/TestMobile/iOS/Main.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | 5 | using Foundation; 6 | using UIKit; 7 | 8 | namespace TestApp01.iOS 9 | { 10 | public class Application 11 | { 12 | // This is the main entry point of the application. 13 | static void Main(string[] args) 14 | { 15 | // if you want to use a different Application Delegate class from "AppDelegate" 16 | // you can specify it here. 17 | UIApplication.Main(args, null, "AppDelegate"); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Source/TestMobile/iOS/SOV_Thanamas.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/TestMobile/iOS/SOV_Thanamas.ttf -------------------------------------------------------------------------------- /Source/TestMobile/iOS/ViewController.designer.cs: -------------------------------------------------------------------------------- 1 | // WARNING 2 | // 3 | // This file has been generated automatically by Visual Studio from the outlets and 4 | // actions declared in your storyboard file. 5 | // Manual changes to this file will not be maintained. 6 | // 7 | using Foundation; 8 | using System; 9 | using System.CodeDom.Compiler; 10 | 11 | namespace TestApp01.iOS 12 | { 13 | [Register ("ViewController")] 14 | partial class ViewController 15 | { 16 | [Outlet] 17 | UIKit.UIButton Button { get; set; } 18 | 19 | void ReleaseDesignerOutlets () 20 | { 21 | if (Button != null) { 22 | Button.Dispose (); 23 | Button = null; 24 | } 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /Source/TestMobile/iOS/packages.config: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <packages> 3 | <package id="System.Runtime.CompilerServices.Unsafe" version="4.5.2" targetFramework="xamarinios10" /> 4 | </packages> -------------------------------------------------------------------------------- /Source/TestMobile/iOS/tahoma.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayoutFarm/HtmlRenderer/e9559f3821a0f61ea1339f4529f7294164e78b51/Source/TestMobile/iOS/tahoma.ttf -------------------------------------------------------------------------------- /Source/Tools/BuildMergeProject/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="PixelFarm.One.HtmlRenderer"> 3 | <uses-sdk android:minSdkVersion="15" /> 4 | <application android:label="TestApp01"></application> 5 | </manifest> -------------------------------------------------------------------------------- /Source/Tools/BuildMergeProject/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // <auto-generated> 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // </auto-generated> 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace BuildPixelFarmMerge.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Source/Tools/BuildMergeProject/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | <?xml version='1.0' encoding='utf-8'?> 2 | <SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"> 3 | <Profiles> 4 | <Profile Name="(Default)" /> 5 | </Profiles> 6 | <Settings /> 7 | </SettingsFile> 8 | -------------------------------------------------------------------------------- /Source/Tools/BuildMergeProject/app.config: -------------------------------------------------------------------------------- 1 | <?xml version="1.0"?> 2 | <configuration> 3 | <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration> 4 | -------------------------------------------------------------------------------- /Source/YourImplementation/Bootstrap/BootStrapOpenGLES2.cs: -------------------------------------------------------------------------------- 1 | //MIT, 2017, WinterDev 2 | using System; 3 | using PixelFarm.Drawing; 4 | using PixelFarm.Drawing.Fonts; 5 | 6 | namespace YourImplementation 7 | { 8 | 9 | 10 | public static class BootStrapOpenGLES2 11 | { 12 | public static readonly IFontLoader myFontLoader = new WindowsFontLoader(); 13 | } 14 | 15 | 16 | } -------------------------------------------------------------------------------- /Source/YourImplementation/Bootstrap/BootStrapWinGdi.cs: -------------------------------------------------------------------------------- 1 | //MIT, 2017, WinterDev 2 | using System; 3 | using PixelFarm.Drawing; 4 | using PixelFarm.Drawing.Fonts; 5 | 6 | namespace YourImplementation 7 | { 8 | public static class BootStrapWinGdi 9 | { 10 | public static readonly IFontLoader myFontLoader = new WindowsFontLoader(); 11 | } 12 | class WindowsFontLoader : IFontLoader 13 | { 14 | 15 | InstalledFontCollection installFontCollection = new InstalledFontCollection(); 16 | public WindowsFontLoader() 17 | { 18 | //iterate 19 | var installFontsWin32 = new InstallFontsProviderWin32(); 20 | installFontCollection.LoadInstalledFont(installFontsWin32.GetInstalledFontIter()); 21 | } 22 | public InstalledFont GetFont(string fontName, InstalledFontStyle style) 23 | { 24 | return installFontCollection.GetFont(fontName, style); 25 | } 26 | public void SetFontHotFoundHandler(FontNotFoundHandler fontNotFoundHandler) 27 | { 28 | installFontCollection.SetFontNotFoundHandler(fontNotFoundHandler); 29 | } 30 | } 31 | 32 | } -------------------------------------------------------------------------------- /Source/YourImplementation/Windows/WindowFontLoader.cs: -------------------------------------------------------------------------------- 1 | //MIT, 2014-2017, WinterDev 2 | 3 | using PixelFarm.Drawing.Fonts; 4 | 5 | namespace PixelFarm.Drawing 6 | { 7 | class WindowsFontLoader : IFontLoader 8 | { 9 | InstalledFontCollection installFontCollection = new InstalledFontCollection(); 10 | public WindowsFontLoader() 11 | { 12 | //iterate 13 | var installFontsWin32 = new InstallFontsProviderWin32(); 14 | installFontCollection.LoadInstalledFont(installFontsWin32.GetInstalledFontIter()); 15 | } 16 | public InstalledFont GetFont(string fontName, InstalledFontStyle style) 17 | { 18 | return installFontCollection.GetFont(fontName, style); 19 | } 20 | public void SetFontHotFoundHandler(FontNotFoundHandler fontNotFoundHandler) 21 | { 22 | installFontCollection.SetFontNotFoundHandler(fontNotFoundHandler); 23 | } 24 | } 25 | } -------------------------------------------------------------------------------- /Source/x_autogen_xamarin_droid/HtmlRenderer.One/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="PixelFarm.One.HtmlRenderer"> 3 | <uses-sdk android:minSdkVersion="15" /> 4 | <application android:label="TestApp01"></application> 5 | </manifest> -------------------------------------------------------------------------------- /Source/x_autogen_xamarin_droid/HtmlRenderer.One/packages.config: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <packages> 3 | <package id="System.Runtime.CompilerServices.Unsafe" version="4.5.2" targetFramework="monoandroid81" /> 4 | </packages> -------------------------------------------------------------------------------- /Source/x_autogen_xamarin_ios/HtmlRenderer.One/packages.config: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <packages> 3 | <package id="System.Runtime.CompilerServices.Unsafe" version="4.5.2" targetFramework="xamarinios10" /> 4 | </packages> -------------------------------------------------------------------------------- /Source/x_autogen_xamarin_ios_and_droid/HtmlRenderer.One/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="utf-8"?> 2 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="PixelFarm.One.HtmlRenderer"> 3 | <uses-sdk android:minSdkVersion="15" /> 4 | <application android:label="TestApp01"></application> 5 | </manifest> -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-minimal --------------------------------------------------------------------------------