Ideal D GUI Toolkit
Adam Wilson
flyboynw at gmail.com
Mon May 20 14:02:39 PDT 2013
On Mon, 20 May 2013 13:40:06 -0700, Diggory <diggsey at googlemail.com> wrote:
> UI toolkits are a lot of work but they're not as unreasonably big as
> everyone seems to be suggesting... I've written a couple myself in a
> procedural language using Direct3D to draw everything. Had all the
> standard controls, various layout options, even a syntax highlighted
> code editor, clipboard interaction, keyboard focus, etc.
>
> The main difficulties with doing the same thing in opengl and making it
> cross platform seem to be:
> - Font rendering, especially with support for the combining unicode
> characters and RTL languages. It would probably be worth finding an
> existing library for this.
> - Making it consistent with the host OS, it would be possible to have a
> number of skins for each OS but that would probably be breaking all
> sorts of copyright rules. Generating the skin on the fly using the
> native drawing commands shouldn't be too hard...
>
> On the other hand you get the advantages of hardware acceleration and
> pretty much unlimited custom drawing capabilities and I'd expect to see
> a lot of interesting custom controls out there. I'd definitely favour
> this option!
>
> A native OS UI would be less work - although you'd effectively need to
> write an implementation specifically for each OS, the OS would take care
> of most of it for you. The main problems here would be getting
> consistent behaviour across all OSes and also it would be a lot of work
> to add controls that don't already exist in the OS.
>
>
> What would be neat is if there was a CTFE based compiler which took some
> form of markup describing part of the UI and converted it to D code.
> That way you could mixin bits of UI markup either from files or string
> literals, directly into your classes and it would be really easy to hook
> up events and things.
As far as I am concerned this is pretty much the only way to do it. D's
CTFE gives us so much power in the markup->code translation phase we'd be
terminally stupid not to use it. :-D
--
Adam Wilson
IRC: LightBender
Project Coordinator
The Horizon Project
http://www.thehorizonproject.org/
More information about the Digitalmars-d
mailing list