summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--radiobuttons.go3
-rw-r--r--zz_controls.go142
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()
}