summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2014-02-12 21:33:24 -0500
committerPietro Gagliardi <[email protected]>2014-02-12 21:33:24 -0500
commit3d2df2334e13954c166d46013609856113db4d97 (patch)
tree9cca792aec2040ac24725cad9c7a255f8961a390
parent8e2f3b136e041705098f9f8d11941c33f785258a (diff)
Fixed compiler errors. New code structure success!
-rw-r--r--button.go5
-rw-r--r--stdwndclass_windows.go6
-rw-r--r--sysdata_windows.go8
3 files changed, 10 insertions, 9 deletions
diff --git a/button.go b/button.go
index 92ddead..4603ee0 100644
--- a/button.go
+++ b/button.go
@@ -2,7 +2,6 @@
package main
import (
- "fmt"
"sync"
)
@@ -36,9 +35,7 @@ func (b *Button) SetText(text string) (err error) {
b.lock.Lock()
defer b.lock.Unlock()
- if b.pWin != nil && b.pWin.created {
- panic("TODO")
- }
+ // TODO handle created
b.initText = text
return nil
}
diff --git a/stdwndclass_windows.go b/stdwndclass_windows.go
index ad99ce4..b87743f 100644
--- a/stdwndclass_windows.go
+++ b/stdwndclass_windows.go
@@ -27,12 +27,12 @@ func stdWndProc(s *sysData) func(hwnd _HWND, uMsg uint32, wParam _WPARAM, lParam
case _WM_COMMAND:
id := _HMENU(wParam.LOWORD())
s.childrenLock.Lock()
- defer s.childrenLock.Unlock()
- ss = s.children[id]
+ ss := s.children[id]
+ s.childrenLock.Unlock()
switch ss.ctype {
case c_button:
if wParam.HIWORD() == _BN_CLICKED {
- sysData.event <- struct{}{}
+ ss.event <- struct{}{}
}
}
return 0
diff --git a/sysdata_windows.go b/sysdata_windows.go
index ab65879..da1c6b8 100644
--- a/sysdata_windows.go
+++ b/sysdata_windows.go
@@ -40,10 +40,13 @@ var classTypes = [nctypes]*classData{
},
}
-func (s *sysData) addChild(chlid *sysData) _HMENU {
+func (s *sysData) addChild(child *sysData) _HMENU {
s.childrenLock.Lock()
defer s.childrenLock.Unlock()
s.nextChildID++ // start at 1
+ if s.children == nil {
+ s.children = map[_HMENU]*sysData{}
+ }
s.children[s.nextChildID] = child
return s.nextChildID
}
@@ -54,6 +57,7 @@ func (s *sysData) delChild(id _HMENU) {
delete(s.children, id)
}
+// TODO adorn error messages with what stage failed?
func (s *sysData) make(initText string, initWidth int, initHeight int, window *sysData) (err error) {
ret := make(chan uiret)
defer close(ret)
@@ -67,7 +71,7 @@ func (s *sysData) make(initText string, initWidth int, initHeight int, window *s
} else { // need a new class
n, err := registerStdWndClass(s)
if err != nil {
- return r.err
+ return err
}
classname = n
}