From 20dcc48bee158edbeb5b7ba5893f613bfbf11889 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 7 Mar 2014 15:01:42 -0500 Subject: [PATCH] Changed Combobox.Append() and Listbox.Append() to accept multiple strings in one call. --- combobox.go | 15 +++++++++++---- listbox.go | 15 +++++++++++---- test/main.go | 4 ++++ 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/combobox.go b/combobox.go index ac3523a..571bcba 100644 --- a/combobox.go +++ b/combobox.go @@ -2,6 +2,7 @@ package ui import ( + "fmt" "sync" ) @@ -34,15 +35,21 @@ func NewEditableCombobox(items ...string) *Combobox { return newCombobox(true, items...) } -// Append adds an item to the end of the Combobox's list. -func (c *Combobox) Append(what string) (err error) { +// Append adds items to the end of the Combobox's list. +func (c *Combobox) Append(what ...string) (err error) { c.lock.Lock() defer c.lock.Unlock() if c.created { - return c.sysData.append(what) + for i, s := range what { + err := c.sysData.append(s) + if err != nil { + return fmt.Errorf("error adding element %d in Combobox.Append() (%q): %v", i, s, err) + } + } + return nil } - c.initItems = append(c.initItems, what) + c.initItems = append(c.initItems, what...) return nil } diff --git a/listbox.go b/listbox.go index 9568375..fa925d0 100644 --- a/listbox.go +++ b/listbox.go @@ -2,6 +2,7 @@ package ui import ( + "fmt" "sync" ) @@ -25,15 +26,21 @@ func NewListbox(multiple bool, items ...string) (l *Listbox) { return l } -// Append adds an item to the end of the Listbox's list. -func (l *Listbox) Append(what string) (err error) { +// Append adds items to the end of the Listbox's list. +func (l *Listbox) Append(what ...string) (err error) { l.lock.Lock() defer l.lock.Unlock() if l.created { - return l.sysData.append(what) + for i, s := range what { + err := l.sysData.append(s) + if err != nil { + return fmt.Errorf("error adding element %d in Listbox.Append() (%q): %v", i, s, err) + } + } + return nil } - l.initItems = append(l.initItems, what) + l.initItems = append(l.initItems, what...) return nil } diff --git a/test/main.go b/test/main.go index af886c6..31fa243 100644 --- a/test/main.go +++ b/test/main.go @@ -69,6 +69,8 @@ func myMain() { i++ } doAdjustments() + cb1.Append("append multi 1", "append multi 2") + lb2.Append("append multi 1", "append multi 2") s1 := NewVerticalStack(lb2, lb1) s1.SetStretchy(0) s1.SetStretchy(1) @@ -126,6 +128,8 @@ mainloop: prog = 100 } pbar.SetProgress(prog) + cb1.Append("append multi 1", "append multi 2") + lb2.Append("append multi 1", "append multi 2") case <-decButton.Clicked: prog-- if prog < 0 {