From 3d2df2334e13954c166d46013609856113db4d97 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 12 Feb 2014 21:33:24 -0500 Subject: [PATCH] Fixed compiler errors. New code structure success! --- button.go | 5 +---- stdwndclass_windows.go | 6 +++--- sysdata_windows.go | 8 ++++++-- 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 }