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; }
uiBox *makePage13(void) { uiBox *page13; uiRadioButtons *rb; uiButton *b; uiForm *f; uiEntry *e; uiProgressBar *p; page13 = newVerticalBox(); rb = uiNewRadioButtons(); uiRadioButtonsAppend(rb, "Item 1"); uiRadioButtonsAppend(rb, "Item 2"); uiRadioButtonsAppend(rb, "Item 3"); uiBoxAppend(page13, uiControl(rb), 0); rb = uiNewRadioButtons(); uiRadioButtonsAppend(rb, "Item A"); uiRadioButtonsAppend(rb, "Item B"); uiBoxAppend(page13, uiControl(rb), 0); b = uiNewButton("Horizontal"); uiButtonOnClicked(b, buttonClicked, uiNewHorizontalBox); uiBoxAppend(page13, uiControl(b), 0); b = uiNewButton("Vertical"); uiButtonOnClicked(b, buttonClicked, uiNewVerticalBox); uiBoxAppend(page13, uiControl(b), 0); f = newForm(); e = uiNewPasswordEntry(); uiEntryOnChanged(e, entryChanged, "password"); uiFormAppend(f, "Password Entry", uiControl(e), 0); e = uiNewSearchEntry(); uiEntryOnChanged(e, entryChanged, "search"); uiFormAppend(f, "Search Box", uiControl(e), 0); uiFormAppend(f, "MLE", uiControl(uiNewMultilineEntry()), 1); p = uiNewProgressBar(); uiProgressBarSetValue(p, 50); uiBoxAppend(page13, uiControl(p), 0); b = uiNewButton("Toggle Indeterminate"); uiButtonOnClicked(b, setIndeterminate, p); uiBoxAppend(page13, uiControl(b), 0); b = uiNewButton("Show/Hide"); uiButtonOnClicked(b, showHide, e); uiBoxAppend(page13, uiControl(b), 0); b = uiNewButton("Delete First"); uiButtonOnClicked(b, deleteFirst, f); uiBoxAppend(page13, uiControl(b), 0); uiBoxAppend(page13, uiControl(f), 1); return page13; }
static Janet janet_ui_button_on_clicked(int32_t argc, Janet *argv) { janet_fixarity(argc, 2); uiButton *button = janet_getuitype(argv, 0, &button_td); uiButtonOnClicked(button, button_click_handler, janet_ui_to_handler_data(argv[1])); return argv[0]; }
int main(void) { uiInitOptions o; uiWindow *w; uiBox *b; uiButton *btn; memset(&o, 0, sizeof (uiInitOptions)); if (uiInit(&o) != NULL) abort(); w = uiNewWindow("Hello", 320, 240, 0); uiWindowSetMargined(w, 1); b = uiNewVerticalBox(); uiBoxSetPadded(b, 1); uiWindowSetChild(w, uiControl(b)); e = uiNewMultilineEntry(); uiMultilineEntrySetReadOnly(e, 1); btn = uiNewButton("Say Something"); uiButtonOnClicked(btn, saySomething, NULL); uiBoxAppend(b, uiControl(btn), 0); uiBoxAppend(b, uiControl(e), 1); uiTimer(1000, sayTime, NULL); uiWindowOnClosing(w, onClosing, NULL); uiControlShow(uiControl(w)); uiMain(); return 0; }
uiBox *makePage13(void) { uiBox *page13; uiRadioButtons *rb; uiButton *b; uiForm *f; uiEntry *e; page13 = newVerticalBox(); rb = uiNewRadioButtons(); uiRadioButtonsAppend(rb, "Item 1"); uiRadioButtonsAppend(rb, "Item 2"); uiRadioButtonsAppend(rb, "Item 3"); uiBoxAppend(page13, uiControl(rb), 0); rb = uiNewRadioButtons(); uiRadioButtonsAppend(rb, "Item A"); uiRadioButtonsAppend(rb, "Item B"); uiBoxAppend(page13, uiControl(rb), 0); b = uiNewButton("Horizontal"); uiButtonOnClicked(b, buttonClicked, uiNewHorizontalBox); uiBoxAppend(page13, uiControl(b), 0); b = uiNewButton("Vertical"); uiButtonOnClicked(b, buttonClicked, uiNewVerticalBox); uiBoxAppend(page13, uiControl(b), 0); f = newForm(); uiBoxAppend(page13, uiControl(f), 1); e = uiNewPasswordEntry(); uiEntryOnChanged(e, entryChanged, "password"); uiFormAppend(f, "Password Entry", uiControl(e), 0); e = uiNewSearchEntry(); uiEntryOnChanged(e, entryChanged, "search"); uiFormAppend(f, "Search Box", uiControl(e), 0); uiFormAppend(f, "MLE", uiControl(uiNewMultilineEntry()), 1); return page13; }
uiBox *makePage10(void) { uiBox *page10; uiBox *vbox; uiBox *hbox; page10 = newVerticalBox(); vbox = page10; hbox = newHorizontalBox(); uiBoxAppend(vbox, uiControl(hbox), 0); textString = uiNewEntry(); // TODO make it placeholder uiEntrySetText(textString, "Enter text here"); uiBoxAppend(hbox, uiControl(textString), 1); textFontButton = uiNewFontButton(); uiBoxAppend(hbox, uiControl(textFontButton), 1); hbox = newHorizontalBox(); uiBoxAppend(vbox, uiControl(hbox), 0); textApply = uiNewButton("Apply"); uiButtonOnClicked(textApply, onTextApply, NULL); uiBoxAppend(hbox, uiControl(textApply), 1); textWidth = uiNewEntry(); uiEntrySetText(textWidth, "-1"); uiBoxAppend(hbox, uiControl(textWidth), 1); addLeading = uiNewCheckbox("Add Leading"); uiCheckboxSetChecked(addLeading, 1); uiBoxAppend(hbox, uiControl(addLeading), 0); textAreaHandler.Draw = handlerDraw; textAreaHandler.MouseEvent = handlerMouseEvent; textAreaHandler.MouseCrossed = handlerMouseCrossed; textAreaHandler.DragBroken = handlerDragBroken; textAreaHandler.KeyEvent = handlerKeyEvent; textArea = uiNewArea(&textAreaHandler); uiBoxAppend(vbox, uiControl(textArea), 1); // dummy objects to test single-activation hbox = newHorizontalBox(); uiBoxAppend(vbox, uiControl(hbox), 0); uiBoxAppend(hbox, uiControl(uiNewFontButton()), 1); return page10; }
uiBox *makePage15(uiWindow *w) { uiBox *page15; uiBox *hbox; uiButton *button; uiCheckbox *checkbox; page15 = newVerticalBox(); hbox = newHorizontalBox(); uiBoxAppend(page15, uiControl(hbox), 0); uiBoxAppend(hbox, uiControl(uiNewLabel("Size")), 0); width = uiNewSpinbox(INT_MIN, INT_MAX); uiBoxAppend(hbox, uiControl(width), 1); height = uiNewSpinbox(INT_MIN, INT_MAX); uiBoxAppend(hbox, uiControl(height), 1); fullscreen = uiNewCheckbox("Fullscreen"); uiBoxAppend(hbox, uiControl(fullscreen), 0); uiSpinboxOnChanged(width, sizeWidth, w); uiSpinboxOnChanged(height, sizeHeight, w); uiCheckboxOnToggled(fullscreen, setFullscreen, w); uiWindowOnContentSizeChanged(w, onSize, NULL); updatesize(w); checkbox = uiNewCheckbox("Borderless"); uiCheckboxOnToggled(checkbox, borderless, w); uiBoxAppend(page15, uiControl(checkbox), 0); button = uiNewButton("Borderless Resizes"); uiButtonOnClicked(button, borderWindowOpen, NULL); uiBoxAppend(page15, uiControl(button), 0); hbox = newHorizontalBox(); uiBoxAppend(page15, uiControl(hbox), 1); uiBoxAppend(hbox, uiControl(uiNewVerticalSeparator()), 0); return page15; }
uiBox *makePage9(void) { uiBox *page9; uiBox *vbox; uiBox *hbox; page9 = newVerticalBox(); vbox = page9; hbox = newHorizontalBox(); uiBoxAppend(vbox, uiControl(hbox), 0); textString = uiNewEntry(); // TODO make it placeholder uiEntrySetText(textString, "Enter text here"); uiBoxAppend(hbox, uiControl(textString), 1); textFont = uiNewEntry(); uiEntrySetText(textFont, "Arial"); uiBoxAppend(hbox, uiControl(textFont), 1); textSize = uiNewEntry(); uiEntrySetText(textSize, "10"); uiBoxAppend(hbox, uiControl(textSize), 1); hbox = newHorizontalBox(); uiBoxAppend(vbox, uiControl(hbox), 0); textWeight = uiNewCombobox(); uiComboboxAppend(textWeight, "Thin"); uiComboboxAppend(textWeight, "Ultra Light"); uiComboboxAppend(textWeight, "Light"); uiComboboxAppend(textWeight, "Book"); uiComboboxAppend(textWeight, "Normal"); uiComboboxAppend(textWeight, "Medium"); uiComboboxAppend(textWeight, "Semi Bold"); uiComboboxAppend(textWeight, "Bold"); uiComboboxAppend(textWeight, "Utra Bold"); uiComboboxAppend(textWeight, "Heavy"); uiComboboxAppend(textWeight, "Ultra Heavy"); uiComboboxSetSelected(textWeight, uiDrawTextWeightNormal); uiBoxAppend(hbox, uiControl(textWeight), 1); textItalic = uiNewCombobox(); uiComboboxAppend(textItalic, "Normal"); uiComboboxAppend(textItalic, "Oblique"); uiComboboxAppend(textItalic, "Italic"); uiComboboxSetSelected(textItalic, uiDrawTextItalicNormal); uiBoxAppend(hbox, uiControl(textItalic), 1); textSmallCaps = uiNewCheckbox("Small Caps"); uiBoxAppend(hbox, uiControl(textSmallCaps), 1); hbox = newHorizontalBox(); uiBoxAppend(vbox, uiControl(hbox), 0); textStretch = uiNewCombobox(); uiComboboxAppend(textStretch, "Ultra Condensed"); uiComboboxAppend(textStretch, "Extra Condensed"); uiComboboxAppend(textStretch, "Condensed"); uiComboboxAppend(textStretch, "Semi Condensed"); uiComboboxAppend(textStretch, "Normal"); uiComboboxAppend(textStretch, "Semi Expanded"); uiComboboxAppend(textStretch, "Expanded"); uiComboboxAppend(textStretch, "Extra Expanded"); uiComboboxAppend(textStretch, "Ultra Expanded"); uiComboboxSetSelected(textStretch, uiDrawTextStretchNormal); uiBoxAppend(hbox, uiControl(textStretch), 1); textWidth = uiNewEntry(); uiEntrySetText(textWidth, "-1"); uiBoxAppend(hbox, uiControl(textWidth), 1); hbox = newHorizontalBox(); uiBoxAppend(vbox, uiControl(hbox), 0); textApply = uiNewButton("Apply"); uiButtonOnClicked(textApply, onTextApply, NULL); uiBoxAppend(hbox, uiControl(textApply), 1); addLeading = uiNewCheckbox("Add Leading"); uiCheckboxSetChecked(addLeading, 1); uiBoxAppend(hbox, uiControl(addLeading), 0); textAreaHandler.Draw = handlerDraw; textAreaHandler.MouseEvent = handlerMouseEvent; textAreaHandler.MouseCrossed = handlerMouseCrossed; textAreaHandler.DragBroken = handlerDragBroken; textAreaHandler.KeyEvent = handlerKeyEvent; textArea = uiNewArea(&textAreaHandler); uiBoxAppend(vbox, uiControl(textArea), 1); return page9; }
static uiControl *assorted(void) { uiGrid *outergrid; uiGrid *innergrid; uiButton *b; outergrid = newGrid(); innergrid = newGrid(); one = uiNewButton("Test"); uiGridAppend(innergrid, uiControl(one), 1, 1, 1, 1, 0, uiAlignFill, 0, uiAlignFill); hideOne = uiNewButton("Hide One"); uiButtonOnClicked(hideOne, onHideOne, NULL); uiGridAppend(innergrid, uiControl(hideOne), 0, 1, 1, 1, 0, uiAlignFill, 0, uiAlignFill); showOne = uiNewButton("Show One"); uiButtonOnClicked(showOne, onShowOne, NULL); uiGridAppend(innergrid, uiControl(showOne), 2, 1, 1, 1, 0, uiAlignFill, 0, uiAlignFill); b = uiNewButton("Hide All"); uiButtonOnClicked(b, onHideAll, NULL); uiGridAppend(innergrid, uiControl(b), 1, 0, 1, 1, 0, uiAlignFill, 0, uiAlignFill); b = uiNewButton("Show All"); uiButtonOnClicked(b, onShowAll, NULL); uiGridAppend(innergrid, uiControl(b), 1, 2, 1, 1, 0, uiAlignFill, 0, uiAlignFill); uiGridAppend(outergrid, uiControl(innergrid), 0, 0, 1, 1, 1, uiAlignFill, 1, uiAlignFill); innergrid = newGrid(); b = uiNewButton("Insert Trailing"); uiButtonOnClicked(b, onInsertTrailing, innergrid); uiGridAppend(innergrid, uiControl(b), 0, 0, 1, 1, 1, uiAlignFill, 0, uiAlignFill); b = uiNewButton("Insert Bottom"); uiButtonOnClicked(b, onInsertBottom, innergrid); uiGridAppend(innergrid, uiControl(b), 1, 0, 1, 1, 1, uiAlignFill, 0, uiAlignFill); b = uiNewButton("Insert Leading"); uiButtonOnClicked(b, onInsertLeading, innergrid); uiGridAppend(innergrid, uiControl(b), 1, 1, 1, 1, 1, uiAlignFill, 0, uiAlignFill); b = uiNewButton("Insert Top"); uiButtonOnClicked(b, onInsertTop, innergrid); uiGridAppend(innergrid, uiControl(b), 0, 1, 1, 1, 1, uiAlignFill, 0, uiAlignFill); uiGridAppend(outergrid, uiControl(innergrid), 1, 0, 1, 1, 1, uiAlignFill, 1, uiAlignFill); innergrid = newGrid(); uiGridAppend(innergrid, uiControl(uiNewColorButton()), 0, 0, 1, 1, 1, uiAlignFill, 0, uiAlignFill); uiGridAppend(innergrid, uiControl(uiNewColorButton()), 0, 1, 1, 1, 1, uiAlignStart, 0, uiAlignFill); uiGridAppend(innergrid, uiControl(uiNewColorButton()), 0, 2, 1, 1, 1, uiAlignCenter, 0, uiAlignFill); uiGridAppend(innergrid, uiControl(uiNewColorButton()), 0, 3, 1, 1, 1, uiAlignEnd, 0, uiAlignFill); uiGridAppend(outergrid, uiControl(innergrid), 0, 1, 1, 1, 1, uiAlignFill, 1, uiAlignFill); // TODO with only this, wrong size on OS X — expand sizing thing? innergrid = newGrid(); uiGridAppend(innergrid, uiControl(uiNewColorButton()), 0, 0, 1, 1, 0, uiAlignFill, 1, uiAlignFill); uiGridAppend(innergrid, uiControl(uiNewColorButton()), 1, 0, 1, 1, 0, uiAlignFill, 1, uiAlignStart); uiGridAppend(innergrid, uiControl(uiNewColorButton()), 2, 0, 1, 1, 0, uiAlignFill, 1, uiAlignCenter); uiGridAppend(innergrid, uiControl(uiNewColorButton()), 3, 0, 1, 1, 0, uiAlignFill, 1, uiAlignEnd); uiGridAppend(outergrid, uiControl(innergrid), 1, 1, 1, 1, 1, uiAlignFill, 1, uiAlignFill); return uiControl(outergrid); }
uiBox *makePage4(void) { uiBox *page4; uiBox *hbox; uiSpinbox *xsb; uiButton *b; uiSlider *xsl; page4 = newVerticalBox(); spinbox = uiNewSpinbox(0, 100); uiSpinboxOnChanged(spinbox, onSpinboxChanged, NULL); uiBoxAppend(page4, uiControl(spinbox), 0); slider = uiNewSlider(0, 100); uiSliderOnChanged(slider, onSliderChanged, NULL); uiBoxAppend(page4, uiControl(slider), 0); pbar = uiNewProgressBar(); uiBoxAppend(page4, uiControl(pbar), 0); uiBoxAppend(page4, uiControl(uiNewHorizontalSeparator()), 0); hbox = newHorizontalBox(); xsb = uiNewSpinbox(-40, 40); uiBoxAppend(hbox, uiControl(xsb), 0); b = uiNewButton("Bad Low"); uiButtonOnClicked(b, setSpinboxTooLow, xsb); uiBoxAppend(hbox, uiControl(b), 0); b = uiNewButton("Bad High"); uiButtonOnClicked(b, setSpinboxTooHigh, xsb); uiBoxAppend(hbox, uiControl(b), 0); uiBoxAppend(page4, uiControl(hbox), 0); hbox = newHorizontalBox(); xsl = uiNewSlider(-40, 40); uiBoxAppend(hbox, uiControl(xsl), 0); b = uiNewButton("Bad Low"); uiButtonOnClicked(b, setSliderTooLow, xsl); uiBoxAppend(hbox, uiControl(b), 0); b = uiNewButton("Bad High"); uiButtonOnClicked(b, setSliderTooHigh, xsl); uiBoxAppend(hbox, uiControl(b), 0); uiBoxAppend(page4, uiControl(hbox), 0); uiBoxAppend(page4, uiControl(uiNewHorizontalSeparator()), 0); cbox = uiNewCombobox(); uiComboboxAppend(cbox, "Item 1"); uiComboboxAppend(cbox, "Item 2"); uiComboboxAppend(cbox, "Item 3"); uiComboboxOnSelected(cbox, onCBChanged, "noneditable"); uiBoxAppend(page4, uiControl(cbox), 0); editable = uiNewEditableCombobox(); uiComboboxAppend(editable, "Editable Item 1"); uiComboboxAppend(editable, "Editable Item 2"); uiComboboxAppend(editable, "Editable Item 3"); uiComboboxOnSelected(editable, onCBChanged, "editable"); uiBoxAppend(page4, uiControl(editable), 0); rb = uiNewRadioButtons(); uiRadioButtonsAppend(rb, "Item 1"); uiRadioButtonsAppend(rb, "Item 2"); uiRadioButtonsAppend(rb, "Item 3"); uiBoxAppend(page4, uiControl(rb), 0); hbox = newHorizontalBox(); b = uiNewButton("Append"); uiButtonOnClicked(b, appendCBRB, NULL); uiBoxAppend(hbox, uiControl(b), 0); uiBoxAppend(page4, uiControl(hbox), 0); uiBoxAppend(page4, uiControl(uiNewHorizontalSeparator()), 0); uiBoxAppend(page4, uiControl(uiNewDateTimePicker()), 0); uiBoxAppend(page4, uiControl(uiNewDatePicker()), 0); uiBoxAppend(page4, uiControl(uiNewTimePicker()), 0); return page4; }