From 6cdda6ebec7338ea019403d26dfc48db93180995 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 14 Mar 2014 23:15:24 -0400 Subject: Provided a way to connect child widget signals in the GTK+ sysData and connected Area to draw. I think I'm getting the wrong child widget, though... --- sysdata_unix.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'sysdata_unix.go') diff --git a/sysdata_unix.go b/sysdata_unix.go index 7a14ae9..8d753da 100644 --- a/sysdata_unix.go +++ b/sysdata_unix.go @@ -30,6 +30,8 @@ type classData struct { len func(widget *gtkWidget) int // ... signals callbackMap + child func(widget *gtkWidget) *gtkWidget + childsigs callbackMap } var classTypes = [nctypes]*classData{ @@ -94,6 +96,10 @@ var classTypes = [nctypes]*classData{ }, c_area: &classData{ make: gtkAreaNew, + child: gtkAreaGetControl, + childsigs: callbackMap{ + "draw": area_draw_callback, + }, }, } @@ -127,6 +133,12 @@ func (s *sysData) make(initText string, window *sysData) error { for signame, sigfunc := range ct.signals { g_signal_connect(s.widget, signame, sigfunc, s) } + if ct.child != nil { + child := ct.child(s.widget) + for signame, sigfunc := range ct.childsigs { + g_signal_connect(child, signame, sigfunc, s) + } + } ret <- nil } <-ret -- cgit v1.2.3