DlangUI EditLine question

Vadim Lopatin via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Mar 16 04:59:03 PDT 2015


On Sunday, 15 March 2015 at 16:21:21 UTC, Kyle wrote:
> I have a variable, x, which I want to update when the content 
> of a DlangUI EditLine is modified. I tried making this work 
> with the "onContentChange" method listed in the API 
> documentation, but dmd told me it's not there. I've got this 
> working now by implementing a custom subclass of EditLine as 
> below:
>
>
> class XEditLine : EditLine
> {
>     this(string ID, dstring initialContent = null)
>     {
>         super(ID, initialContent);
>     }
>
>     override bool onKeyEvent(KeyEvent e)
>     {
>         super.onKeyEvent(e);
>         x = to!double(this.text);
>         return true;
>     }
> }
>
>
> This works but it seems like there should be a cleaner way to 
> do this, any suggestions? Thanks.

You can either override onContentChange or use 
onContentChangeListener


override void onContentChange(EditableContent content, 
EditOperation operation, ref TextRange rangeBefore, ref TextRange 
rangeAfter, Object source) {
    super.onContentChange(content, operation, rangeBefore, 
rangeAfter, source);
    // do something
    x = to!double(this.text);
}

or

EditLine line = new EditLine();
line.onContentChangeListener = delegate(EditableContent) {
     // do something
     x = to!double(line.text);
}



> of a DlangUI EditLine is modified. I tried making this work 
> with the "onContentChange" method listed in the API 
> documentation, but dmd told me it's not there. I've got this

If you don't see onContentChange method, probably you have older 
version of DlangUI. Try dub upgrade --force-remove



More information about the Digitalmars-d-learn mailing list