Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add ability to add custom elements #15

Open
furesoft opened this issue May 31, 2018 · 7 comments
Open

add ability to add custom elements #15

furesoft opened this issue May 31, 2018 · 7 comments

Comments

@furesoft
Copy link

like ...

adds fastcoloredtextbox as control

@prepare
Copy link
Member

prepare commented Jun 14, 2018

@furesoft ,

Thank you for your interest.


It is easy and the HtmlRender already has that capability

but it is hidden in the code :)


If you want to do that
please visit class MyCustomCssBoxGenerator ( see https://github.com/LayoutFarm/HtmlRenderer/blob/master/Source/LayoutFarm.YourHtmlWidget/5_HtmlBox/MyCustomCssBoxGenerator.cs#L10)

and this is an extensible point. (https://github.com/LayoutFarm/HtmlRenderer/blob/master/Source/LayoutFarm.YourHtmlWidget/5_HtmlBox/MyCustomCssBoxGenerator.cs#L24)

The code demonstrates "custom control" for input tag and canvas tag
(both are implemented with PixelFarm's UI control)
you can add other tags.


@prepare
Copy link
Member

prepare commented Jun 14, 2018

I will show an example here.


Let's begin with

08_test3_mixhtml

Test3_MixHtml => 00.html test case


The current Acid1 test page should look like this ...

09_acid1_sample

Acid1 test page shows 2 gray boxes (input controls) after 'bang' and 'whimper'

the code that renders the 2 small boxes is here (https://github.com/LayoutFarm/HtmlRenderer/blob/master/Source/LayoutFarm.YourHtmlWidget/5_HtmlBox/MyCustomCssBoxGenerator.cs#L131)


Now, modify it with this ...

html_ext3

in red box, test it, I change bg-color to red and add 'child /sub' label with text 'R'


Run again,

html_ext2

That's it

@prepare
Copy link
Member

prepare commented Jun 14, 2018

Above, in this version, all controls are 'Windowless' control.

Do you want 'Window/ Native' control ?

@prepare prepare mentioned this issue Jun 14, 2018
@prepare
Copy link
Member

prepare commented Jun 14, 2018

If you want to add more MyCustomCssBoxGenerator or replace it

please see here:
https://github.com/LayoutFarm/HtmlRenderer/blob/master/Source/Test3_MixHtml/HtmlHostCreatorHelper.cs#L34

@furesoft
Copy link
Author

can i add winforms controls?

@prepare
Copy link
Member

prepare commented Jun 15, 2018

It is possible.
But I need some modification,
because in this version all controls are 'Windowless'.


But I'm also thinking about adding a 'Window' control too.
There are 2 ways.

  1. Direct embed the control into the host.
    => in this way the 'Windowless' object can't show on top of it.

  2. Indirect embed the control =>
    hide actual control,
    and copy Hdc of it and render into a dedicated html element object.
    and route mouse/keyboard event to the actual control.


What do you think about it?

@furesoft
Copy link
Author

yes thats a good idea

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants