From 47829df71489eed2d456595ab9ce9748ecaf38d9 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 8 Mar 2014 17:25:19 -0500 Subject: Added the Mac OS X implementation of Combobox/Listbox.Len(). --- sysdata_darwin.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'sysdata_darwin.go') diff --git a/sysdata_darwin.go b/sysdata_darwin.go index eb3a76f..6db7ad3 100644 --- a/sysdata_darwin.go +++ b/sysdata_darwin.go @@ -30,6 +30,7 @@ type classData struct { selIndices func(id C.id) []int selTexts func(id C.id) []string delete func(id C.id, index int) + len func(id C.id) int } var ( @@ -76,6 +77,7 @@ var ( _setControlSize = sel_getUid("setControlSize:") _setIndeterminate = sel_getUid("setIndeterminate:") _setDoubleValue = sel_getUid("setDoubleValue:") + _numberOfItems = sel_getUid("numberOfItems") ) func addControl(parentWindow C.id, control C.id) { @@ -199,6 +201,9 @@ var classTypes = [nctypes]*classData{ delete: func(id C.id, index int) { C.objc_msgSend_int(id, _removeItemAtIndex, C.intptr_t(index)) }, + len: func(id C.id) int { + return int(C.objc_msgSend_intret_noargs(id, _numberOfItems)) + }, }, c_lineedit: &classData{ make: func(parentWindow C.id, alternate bool) C.id { @@ -246,6 +251,7 @@ var classTypes = [nctypes]*classData{ selIndices: selectedListboxIndices, selTexts: selectedListboxTexts, delete: deleteListbox, + len: listboxLen, }, c_progressbar: &classData{ make: func(parentWindow C.id, alternate bool) C.id { @@ -465,3 +471,12 @@ func (s *sysData) setProgress(percent int) { } <-ret } + +func (s *sysData) len() int { + ret := make(chan int) + defer close(ret) + uitask <- func() { + ret <- classTypes[s.ctype].len(s.id) + } + return <-ret +} -- cgit v1.2.3