summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--listbox.go13
-rw-r--r--test/main.go8
-rw-r--r--todo.md2
3 files changed, 16 insertions, 7 deletions
diff --git a/listbox.go b/listbox.go
index 7e05287..cdb6c2d 100644
--- a/listbox.go
+++ b/listbox.go
@@ -17,8 +17,7 @@ type Listbox struct {
initItems []string
}
-// NewCombobox makes a new combobox with the given items. If multiple is true, the listbox allows multiple selection.
-func NewListbox(multiple bool, items ...string) (l *Listbox) {
+func newListbox(multiple bool, items ...string) (l *Listbox) {
l = &Listbox{
sysData: mksysdata(c_listbox),
initItems: items,
@@ -27,6 +26,16 @@ func NewListbox(multiple bool, items ...string) (l *Listbox) {
return l
}
+// NewListbox creates a new single-selection Listbox with the given items loaded initially.
+func NewListbox(items ...string) *Listbox {
+ return newListbox(false, items...)
+}
+
+// NewMultiSelListbox creates a new multiple-selection Listbox with the given items loaded initially.
+func NewMultiSelListbox(items ...string) *Listbox {
+ return newListbox(true, items...)
+}
+
// Append adds items to the end of the Listbox's list.
// Append will panic if something goes wrong on platforms that do not abort themselves.
func (l *Listbox) Append(what ...string) {
diff --git a/test/main.go b/test/main.go
index b2d0fb0..3dbae24 100644
--- a/test/main.go
+++ b/test/main.go
@@ -9,7 +9,7 @@ import (
var prefsizetest = flag.Bool("prefsize", false, "")
func listboxPreferredSizeTest() (*Window, error) {
- lb := NewListbox(false, "xxxxx", "y", "zzz")
+ lb := NewListbox("xxxxx", "y", "zzz")
g := NewGrid(1, lb)
w := NewWindow("Listbox Preferred Size Test", 300, 300)
return w, w.Open(g)
@@ -21,7 +21,7 @@ func gridWindow() (*Window, error) {
b00 := NewButton("0,0")
b01 := NewButton("0,1")
b02 := NewButton("0,2")
- l11 := NewListbox(true, "1,1")
+ l11 := NewMultiSelListbox("1,1")
b12 := NewButton("1,2")
l20 := NewLabel("2,0")
c21 := NewCheckbox("2,1")
@@ -134,8 +134,8 @@ func myMain() {
password := NewPasswordEdit()
s0 := NewVerticalStack(s2, c, cb1, cb2, e, s3, pbar, sincdec, Space(), password)
s0.SetStretchy(8)
- lb1 := NewListbox(true, "Select One", "Or More", "To Continue")
- lb2 := NewListbox(false, "Select", "Only", "One", "Please")
+ lb1 := NewMultiSelListbox("Select One", "Or More", "To Continue")
+ lb2 := NewListbox("Select", "Only", "One", "Please")
i := 0
doAdjustments := func() {
cb1.Append("append")
diff --git a/todo.md b/todo.md
index b730440..8bb383a 100644
--- a/todo.md
+++ b/todo.md
@@ -10,7 +10,6 @@ so I don't forget:
- [Windows, Mac OS X] should ListBox have a border style?
- [Windows] a different border on LineEdits?
- padding and spacing in Stack
-- change Listbox constructor so that there's a separate constructor for each variant, rather than passing in parameters
- allow Combobox to have initial settings
- Combobox and Listbox insertions and deletions should allow bulk (...string)
- Combobox/Listbox.DeleteAll
@@ -74,6 +73,7 @@ super ultra important things:
important things:
- make specific wording in documentation consistent (make/create, etc.)
- document minor details like wha thappens on specific events so that they are guaranteed to work the same on all platforms (are there any left?)
+ - what happens when the user clicks and drags on a listbox
- make passing of parameters and type conversions of parameters to uitask on Windows consistent: explicit _WPARAM(xxx)/_LPARAM(xxx)/uintptr(xxx), for example
- do this for type signatures in exported functions: (err error) or just error?
- do this for the names of GTK+ helper functions (gtkXXX or gXXX)