DlangIDE update

Vadim Lopatin via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Tue Jan 26 08:01:52 PST 2016


On Monday, 25 January 2016 at 20:00:57 UTC, Basile B. wrote:
> On Tuesday, 8 December 2015 at 15:58:43 UTC, Vadim Lopatin 
> wrote:
>> - integration of DML GUI builder (Delphi like)
>
> Can you explain me how do you think it can be done while there 
> is even no official object streaming for D ?
>
> Just one thing: "@widget" is not enough.
>
> I don't know how to explain you the problem. But let's say you 
> have an object inspector that displays the properties of an 
> object. The D way doesn't work (templates). You won't be able 
> to assign an untyped Object to an inspector if your object 
> doesn't store runtime informations. It's just impossible. 
> Furthemore properties are not just for the visual things...
>
> You won't be able to make a good run-time designer "à la 
> Delphi" until the D standard library gets a serialization 
> library. And when this will happen, you won't be able to use 
> this serialization library because it won't work at run-time 
> (object inspectors, property bindings, etc.).
>
> It won't work.

Currently it's being done by adding lines like following into 
modules which contain widgets to publish:

import dlangui.widgets.metadata;
mixin(registerWidgets!(Widget, TextWidget, ScrollBar, 
CanvasWidget)());

Unless widgets are registered, it's impossible to create them 
from DML like this:

auto layout = parseDML!VerticalLayout(q{
     VerticalLayout {
         layoutWidth: fill; layoutHeight: fill; backgroundColor: 
#FF8080
         TextWidget { text: "Input text here" }
         EditLine { id: edName  }
     }
});

Sample DML editor:
     dub run dlangui:dmledit



More information about the Digitalmars-d-announce mailing list