diff options
| -rw-r--r-- | radiobuttons.go | 3 | ||||
| -rw-r--r-- | zz_controls.go | 142 |
2 files changed, 139 insertions, 6 deletions
diff --git a/radiobuttons.go b/radiobuttons.go index 5f7505d..2413544 100644 --- a/radiobuttons.go +++ b/radiobuttons.go @@ -33,7 +33,6 @@ func NewRadioButtons() *RadioButtons { } // Append adds the named button to the end of the RadioButtons. -// If this button is the first button, it is automatically selected. func (r *RadioButtons) Append(text string) { ctext := C.CString(text) C.uiRadioButtonsAppend(r.r, ctext) @@ -41,7 +40,7 @@ func (r *RadioButtons) Append(text string) { } // Selected returns the index of the currently selected option in the -// RadioButtons, or -1 if there are no items. +// RadioButtons, or -1 if no item is selected. func (r *RadioButtons) Selected() int { return int(C.uiRadioButtonsSelected(r.r)) } diff --git a/zz_controls.go b/zz_controls.go index 43178e4..3ea3392 100644 --- a/zz_controls.go +++ b/zz_controls.go @@ -57,6 +57,140 @@ func makeBasicControlsPage() ui.Control { return vbox } +func makeNumbersPage() ui.Control { + hbox := ui.NewHorizontalBox() + hbox.SetPadded(true) + + group := ui.NewGroup("Numbers") + group.SetMargined(true) + hbox.Append(group, true) + + vbox := ui.NewVerticalBox() + vbox.SetPadded(true) + group.SetChild(vbox) + + spinbox := ui.NewSpinbox(0, 100) + slider := ui.NewSlider(0, 100) + pbar := ui.NewProgressBar() + spinbox.OnChanged(func(*ui.Spinbox) { + slider.SetValue(spinbox.Value()) + pbar.SetValue(spinbox.Value()) + }) + slider.OnChanged(func(*ui.Slider) { + spinbox.SetValue(slider.Value()) + pbar.SetValue(slider.Value()) + }) + vbox.Append(spinbox, false) + vbox.Append(slider, false) + vbox.Append(pbar, false) + + ip := ui.NewProgressBar() + ip.SetValue(-1) + vbox.Append(ip, false) + + group = ui.NewGroup("Lists") + group.SetMargined(true) + hbox.Append(group, true) + + vbox = ui.NewVerticalBox() + vbox.SetPadded(true) + group.SetChild(vbox) + + cbox := ui.NewCombobox() + cbox.Append("Combobox Item 1") + cbox.Append("Combobox Item 2") + cbox.Append("Combobox Item 3") + vbox.Append(cbox, false) + + ecbox := ui.NewEditableCombobox() + ecbox.Append("Editable Item 1") + ecbox.Append("Editable Item 2") + ecbox.Append("Editable Item 3") + vbox.Append(ecbox, false) + + rb := ui.NewRadioButtons() + rb.Append("Radio Button 1") + rb.Append("Radio Button 2") + rb.Append("Radio Button 3") + vbox.Append(rb, false) + + return hbox +} + +func makeDataChoosersPage() ui.Control { + hbox := ui.NewHorizontalBox() + hbox.SetPadded(true) + + vbox := ui.NewVerticalBox() + vbox.SetPadded(true) + hbox.Append(vbox, false) + + vbox.Append(ui.NewDatePicker(), false) + vbox.Append(ui.NewTimePicker(), false) + vbox.Append(ui.NewDateTimePicker(), false) +/* + uiBoxAppend(vbox, + uiControl(uiNewFontButton()), + 0); + uiBoxAppend(vbox, + uiControl(uiNewColorButton()), + 0); + + uiBoxAppend(hbox, + uiControl(uiNewVerticalSeparator()), + 0); + + vbox = uiNewVerticalBox(); + uiBoxSetPadded(vbox, 1); + uiBoxAppend(hbox, uiControl(vbox), 1); + + grid = uiNewGrid(); + uiGridSetPadded(grid, 1); + uiBoxAppend(vbox, uiControl(grid), 0); + + button = uiNewButton("Open File"); + entry = uiNewEntry(); + uiEntrySetReadOnly(entry, 1); + uiButtonOnClicked(button, onOpenFileClicked, entry); + uiGridAppend(grid, uiControl(button), + 0, 0, 1, 1, + 0, uiAlignFill, 0, uiAlignFill); + uiGridAppend(grid, uiControl(entry), + 1, 0, 1, 1, + 1, uiAlignFill, 0, uiAlignFill); + + button = uiNewButton("Save File"); + entry = uiNewEntry(); + uiEntrySetReadOnly(entry, 1); + uiButtonOnClicked(button, onSaveFileClicked, entry); + uiGridAppend(grid, uiControl(button), + 0, 1, 1, 1, + 0, uiAlignFill, 0, uiAlignFill); + uiGridAppend(grid, uiControl(entry), + 1, 1, 1, 1, + 1, uiAlignFill, 0, uiAlignFill); + + msggrid = uiNewGrid(); + uiGridSetPadded(msggrid, 1); + uiGridAppend(grid, uiControl(msggrid), + 0, 2, 2, 1, + 0, uiAlignCenter, 0, uiAlignStart); + + button = uiNewButton("Message Box"); + uiButtonOnClicked(button, onMsgBoxClicked, NULL); + uiGridAppend(msggrid, uiControl(button), + 0, 0, 1, 1, + 0, uiAlignFill, 0, uiAlignFill); + button = uiNewButton("Error Box"); + uiButtonOnClicked(button, onMsgBoxErrorClicked, NULL); + uiGridAppend(msggrid, uiControl(button), + 1, 0, 1, 1, + 0, uiAlignFill, 0, uiAlignFill); +*/ + + return hbox +} + func setupUI() { mainwin := ui.NewWindow("libui Control Gallery", 640, 480, true) mainwin.OnClosing(func(*ui.Window) bool { @@ -75,11 +209,11 @@ func setupUI() { tab.Append("Basic Controls", makeBasicControlsPage()) tab.SetMargined(0, true) -// tab.Append("Numbers and Lists", makeNumbersPage()); -// tab.SetMargined(1, true) + tab.Append("Numbers and Lists", makeNumbersPage()); + tab.SetMargined(1, true) -// tab.Append("Data Choosers", makeDataChoosersPage()); -// tab.SetMargined(2, true) + tab.Append("Data Choosers", makeDataChoosersPage()); + tab.SetMargined(2, true) mainwin.Show() } |
