summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--checkbox.go6
-rw-r--r--combobox.go4
-rw-r--r--lineedit.go4
-rw-r--r--main.go18
-rw-r--r--sysdata.go2
-rw-r--r--sysdata_windows.go13
-rw-r--r--winerrors.md4
7 files changed, 19 insertions, 32 deletions
diff --git a/checkbox.go b/checkbox.go
index dc148e2..9a83852 100644
--- a/checkbox.go
+++ b/checkbox.go
@@ -42,11 +42,7 @@ func (c *Checkbox) Checked() bool {
c.lock.Lock()
defer c.lock.Unlock()
- check, err := c.sysData.isChecked()
- if err != nil {
- panic(err) // TODO
- }
- return check
+ return c.sysData.isChecked()
}
func (c *Checkbox) make(window *sysData) error {
diff --git a/combobox.go b/combobox.go
index e018cce..9b38fa3 100644
--- a/combobox.go
+++ b/combobox.go
@@ -29,14 +29,14 @@ func NewCombobox(editable bool, items ...string) (c *Combobox) {
// TODO Append, InsertBefore, Delete
// Selection returns the current selection.
-func (c *Combobox) Selection() (string, error) {
+func (c *Combobox) Selection() string {
c.lock.Lock()
defer c.lock.Unlock()
if c.created {
return c.sysData.text()
}
- return "", nil
+ return ""
}
// TODO SelectedIndex
diff --git a/lineedit.go b/lineedit.go
index 9c5b25d..9c839c5 100644
--- a/lineedit.go
+++ b/lineedit.go
@@ -27,14 +27,14 @@ func NewLineEdit(text string) *LineEdit {
// TODO SetText
// Text returns the LineEdit's text.
-func (l *LineEdit) Text() (string, error) {
+func (l *LineEdit) Text() string {
l.lock.Lock()
defer l.lock.Unlock()
if l.created {
return l.sysData.text()
}
- return l.initText, nil
+ return l.initText
}
// TODO adorn errors with what failed
diff --git a/main.go b/main.go
index 1e571d6..e02adc5 100644
--- a/main.go
+++ b/main.go
@@ -30,19 +30,11 @@ mainloop:
case <-w.Closing:
break mainloop
case <-b.Clicked:
- cs1, err := cb1.Selection()
- if err != nil {
- panic(err)
- }
- cs2, err := cb2.Selection()
- if err != nil {
- panic(err)
- }
- et, err := e.Text()
- if err != nil {
- panic(err)
- }
- err = w.SetTitle(fmt.Sprintf("%v | %s | %s | %s", c.Checked(), cs1, cs2, et))
+ err = w.SetTitle(fmt.Sprintf("%v | %s | %s | %s",
+ c.Checked(),
+ cb1.Selection(),
+ cb2.Selection(),
+ e.Text()))
if err != nil {
panic(err)
}
diff --git a/sysdata.go b/sysdata.go
index a49db08..4f5c017 100644
--- a/sysdata.go
+++ b/sysdata.go
@@ -27,7 +27,7 @@ func (c *cSysData) setText(text string) error {
func (c *cSysData) setRect(x int, y int, width int, height int) error {
panic(runtime.GOOS + " sysData does not define setRect()")
}
-func (c *cSysData) isChecked() (bool, error) {
+func (c *cSysData) isChecked() bool {
panic(runtime.GOOS + " sysData does not define isChecked()")
}
func (c *cSysData) text() (string, error) {
diff --git a/sysdata_windows.go b/sysdata_windows.go
index 5a197bf..34ec3cb 100644
--- a/sysdata_windows.go
+++ b/sysdata_windows.go
@@ -244,8 +244,7 @@ func (s *sysData) setRect(x int, y int, width int, height int) error {
return nil
}
-// TODO figure out how to handle error
-func (s *sysData) isChecked() (bool, error) {
+func (s *sysData) isChecked() bool {
ret := make(chan uiret)
defer close(ret)
uitask <- &uimsg{
@@ -259,16 +258,14 @@ func (s *sysData) isChecked() (bool, error) {
ret: ret,
}
r := <-ret
- return r.ret == _BST_CHECKED, nil
+ return r.ret == _BST_CHECKED
}
-// TODO adorn error messages with which part failed
-func (s *sysData) text() (str string, err error) {
+func (s *sysData) text() (str string) {
var tc []uint16
ret := make(chan uiret)
defer close(ret)
- // TODO figure out how to handle errors
uitask <- &uimsg{
call: _sendMessage,
p: []uintptr{
@@ -282,7 +279,6 @@ func (s *sysData) text() (str string, err error) {
r := <-ret
length := r.ret + 1 // terminating null
tc = make([]uint16, length)
- // TODO figure out how to handle errors
uitask <- &uimsg{
call: _sendMessage,
p: []uintptr{
@@ -294,8 +290,7 @@ func (s *sysData) text() (str string, err error) {
ret: ret,
}
<-ret
- // TODO check character count
- return syscall.UTF16ToString(tc), nil
+ return syscall.UTF16ToString(tc)
}
// TODO figure out how to handle errors
diff --git a/winerrors.md b/winerrors.md
new file mode 100644
index 0000000..da7ac33
--- /dev/null
+++ b/winerrors.md
@@ -0,0 +1,4 @@
+- all SendMessage() calls
+- BM_GETCHECK (sysData.isChecked())
+- WM_GETTEXTLENGTH (LRESULT is unsinged so) (sysData.text())
+- WM_GETTEXT (WM_GETTEXTLENGTH docs say its result may be larger than the actual length, so we can't use that) (sysData.text())