module ui.Entry; import ui.Control; enum EntryStyle { Normal, Password, Search, } class Entry : Control { protected uiEntry * _entry; mixin EventListenerMixin!("OnChanged", Entry); this(EntryStyle style = EntryStyle.Normal) { final switch (style) with(EntryStyle) { case Normal: _entry = uiNewEntry(); break; case Password: _entry = uiNewPasswordEntry(); break; case Search: _entry = uiNewSearchEntry(); break; } super(cast(uiControl *) _entry); uiEntryOnChanged(_entry, &OnChangedCallback, cast(void *) this); } string text() { return uiEntryText(_entry).toString; } Entry setText(string text) { import std.string: toStringz; uiEntrySetText(_entry, text.toStringz); return this; } bool readOnly() { return cast(bool) uiEntryReadOnly(_entry); } Entry setReadOnly(bool readonly) { uiEntrySetReadOnly(_entry, cast(int) readonly); return this; } }