static uiBox *half(uiMultilineEntry *(*mk)(void), const char *which) { uiBox *vbox, *hbox; uiMultilineEntry *me; uiButton *button; vbox = newVerticalBox(); me = (*mk)(); uiMultilineEntryOnChanged(me, meChanged, (void *) which); uiBoxAppend(vbox, uiControl(me), 1); hbox = newHorizontalBox(); uiBoxAppend(vbox, uiControl(hbox), 0); button = uiNewButton("Set"); uiButtonOnClicked(button, setClicked, me); uiBoxAppend(hbox, uiControl(button), 0); button = uiNewButton("Append"); uiButtonOnClicked(button, appendClicked, me); uiBoxAppend(hbox, uiControl(button), 0); return vbox; }
static Janet janet_ui_multiline_entry_on_changed(int32_t argc, Janet *argv) { janet_fixarity(argc, 2); uiMultilineEntry *me = janet_getuitype(argv, 0, &multiline_entry_td); assert_callable(argv, 1); void *handle = janet_ui_to_handler_data(argv[1]); uiMultilineEntryOnChanged(me, multiline_entry_on_changed, handle); return argv[0]; }
uiMultilineEntry *uiNewMultilineEntry(void) { uiMultilineEntry *e; uiWindowsNewControl(uiMultilineEntry, e); e->hwnd = uiWindowsEnsureCreateControlHWND(WS_EX_CLIENTEDGE, L"edit", L"", ES_AUTOVSCROLL | ES_LEFT | ES_MULTILINE | ES_NOHIDESEL | ES_WANTRETURN | WS_TABSTOP | WS_VSCROLL, hInstance, NULL, TRUE); uiWindowsRegisterWM_COMMANDHandler(e->hwnd, onWM_COMMAND, uiControl(e)); uiMultilineEntryOnChanged(e, defaultOnChanged, NULL); return e; }