diff options
| -rw-r--r-- | area_unix.go | 8 | ||||
| -rw-r--r-- | callbacks_unix.go | 4 | ||||
| -rw-r--r-- | gtkcalls_unix.go | 109 | ||||
| -rw-r--r-- | gtkcasts_unix.go | 62 | ||||
| -rw-r--r-- | listbox_unix.go | 36 | ||||
| -rw-r--r-- | sysdata_unix.go | 34 |
6 files changed, 122 insertions, 131 deletions
diff --git a/area_unix.go b/area_unix.go index 0155bdc..d9ca2d2 100644 --- a/area_unix.go +++ b/area_unix.go @@ -20,7 +20,7 @@ import ( // extern gboolean our_area_key_release_event_callback(GtkWidget *, GdkEvent *, gpointer); import "C" -func gtkAreaNew() *gtkWidget { +func gtkAreaNew() *C.GtkWidget { drawingarea := C.gtk_drawing_area_new() C.gtk_widget_set_size_request(drawingarea, 100, 100) // default initial size (TODO do we need it?); use C. to avoid casting drawingarea // we need to explicitly subscribe to mouse events with GtkDrawingArea @@ -31,13 +31,13 @@ func gtkAreaNew() *gtkWidget { scrollarea := C.gtk_scrolled_window_new((*C.GtkAdjustment)(nil), (*C.GtkAdjustment)(nil)) // need a viewport because GtkDrawingArea isn't natively scrollable C.gtk_scrolled_window_add_with_viewport((*C.GtkScrolledWindow)(unsafe.Pointer(scrollarea)), drawingarea) - return fromgtkwidget(scrollarea) + return scrollarea } -func gtkAreaGetControl(scrollarea *gtkWidget) *gtkWidget { +func gtkAreaGetControl(scrollarea *C.GtkWidget) *C.GtkWidget { viewport := C.gtk_bin_get_child((*C.GtkBin)(unsafe.Pointer(scrollarea))) control := C.gtk_bin_get_child((*C.GtkBin)(unsafe.Pointer(viewport))) - return fromgtkwidget(control) + return control } //export our_area_draw_callback diff --git a/callbacks_unix.go b/callbacks_unix.go index 5c7afc3..e34db4c 100644 --- a/callbacks_unix.go +++ b/callbacks_unix.go @@ -70,10 +70,10 @@ var button_clicked_callback = C.GCallback(C.our_button_clicked_callback) type callbackMap map[string]C.GCallback // this is what actually connects a signal -func g_signal_connect(obj *gtkWidget, sig string, callback C.GCallback, sysData *sysData) { +func g_signal_connect(obj *C.GtkWidget, sig string, callback C.GCallback, sysData *sysData) { csig := C.CString(sig) defer C.free(unsafe.Pointer(csig)) - C.gSignalConnect(togtkwidget(obj), csig, callback, unsafe.Pointer(sysData)) + C.gSignalConnect(obj, csig, callback, unsafe.Pointer(sysData)) } // there are two issues we solve here: diff --git a/gtkcalls_unix.go b/gtkcalls_unix.go index d1158d5..7d2c4ca 100644 --- a/gtkcalls_unix.go +++ b/gtkcalls_unix.go @@ -13,10 +13,6 @@ import ( // #include "gtk_unix.h" import "C" -type ( - gtkWidget C.GtkWidget -) - func gtk_init() bool { // TODO allow GTK+ standard command-line argument processing return fromgbool(C.gtk_init_check((*C.int)(nil), (***C.char)(nil))) @@ -30,35 +26,34 @@ func gtk_main_quit() { C.gtk_main_quit() } -func gtk_window_new() *gtkWidget { - // 0 == GTK_WINDOW_TOPLEVEL (the only other type, _POPUP, should not be used) - return fromgtkwidget(C.gtk_window_new(0)) +func gtk_window_new() *C.GtkWidget { + return C.gtk_window_new(C.GTK_WINDOW_TOPLEVEL) } // TODO ensure this works if called on an individual control -func gtk_widget_show(widget *gtkWidget) { - C.gtk_widget_show_all(togtkwidget(widget)) +func gtk_widget_show(widget *C.GtkWidget) { + C.gtk_widget_show_all(widget) } -func gtk_widget_hide(widget *gtkWidget) { - C.gtk_widget_hide(togtkwidget(widget)) +func gtk_widget_hide(widget *C.GtkWidget) { + C.gtk_widget_hide(widget) } -func gtk_window_set_title(window *gtkWidget, title string) { +func gtk_window_set_title(window *C.GtkWidget, title string) { ctitle := C.CString(title) defer C.free(unsafe.Pointer(ctitle)) C.gtk_window_set_title(togtkwindow(window), togchar(ctitle)) } -func gtk_window_get_title(window *gtkWidget) string { +func gtk_window_get_title(window *C.GtkWidget) string { return C.GoString(fromgchar(C.gtk_window_get_title(togtkwindow(window)))) } -func gtk_window_resize(window *gtkWidget, width int, height int) { +func gtk_window_resize(window *C.GtkWidget, width int, height int) { C.gtk_window_resize(togtkwindow(window), C.gint(width), C.gint(height)) } -func gtk_window_get_size(window *gtkWidget) (int, int) { +func gtk_window_get_size(window *C.GtkWidget) (int, int) { var width, height C.gint C.gtk_window_get_size(togtkwindow(window), &width, &height) @@ -67,152 +62,152 @@ func gtk_window_get_size(window *gtkWidget) (int, int) { // this should allow us to resize the window arbitrarily // thanks to Company in irc.gimp.net/#gtk+ -func gtkNewWindowLayout() *gtkWidget { +func gtkNewWindowLayout() *C.GtkWidget { layout := C.gtk_layout_new(nil, nil) scrollarea := C.gtk_scrolled_window_new((*C.GtkAdjustment)(nil), (*C.GtkAdjustment)(nil)) C.gtk_container_add((*C.GtkContainer)(unsafe.Pointer(scrollarea)), layout) // never show scrollbars; we're just doing this to allow arbitrary resizes C.gtk_scrolled_window_set_policy((*C.GtkScrolledWindow)(unsafe.Pointer(scrollarea)), C.GTK_POLICY_NEVER, C.GTK_POLICY_NEVER) - return fromgtkwidget(scrollarea) + return scrollarea } -func gtk_container_add(container *gtkWidget, widget *gtkWidget) { - C.gtk_container_add(togtkcontainer(container), togtkwidget(widget)) +func gtk_container_add(container *C.GtkWidget, widget *C.GtkWidget) { + C.gtk_container_add(togtkcontainer(container), widget) } -func gtkAddWidgetToLayout(container *gtkWidget, widget *gtkWidget) { +func gtkAddWidgetToLayout(container *C.GtkWidget, widget *C.GtkWidget) { layout := C.gtk_bin_get_child((*C.GtkBin)(unsafe.Pointer(container))) - C.gtk_container_add((*C.GtkContainer)(unsafe.Pointer(layout)), togtkwidget(widget)) + C.gtk_container_add((*C.GtkContainer)(unsafe.Pointer(layout)), widget) } -func gtkMoveWidgetInLayout(container *gtkWidget, widget *gtkWidget, x int, y int) { +func gtkMoveWidgetInLayout(container *C.GtkWidget, widget *C.GtkWidget, x int, y int) { layout := C.gtk_bin_get_child((*C.GtkBin)(unsafe.Pointer(container))) - C.gtk_layout_move((*C.GtkLayout)(unsafe.Pointer(layout)), togtkwidget(widget), + C.gtk_layout_move((*C.GtkLayout)(unsafe.Pointer(layout)), widget, C.gint(x), C.gint(y)) } -func gtk_widget_set_size_request(widget *gtkWidget, width int, height int) { - C.gtk_widget_set_size_request(togtkwidget(widget), C.gint(width), C.gint(height)) +func gtk_widget_set_size_request(widget *C.GtkWidget, width int, height int) { + C.gtk_widget_set_size_request(widget, C.gint(width), C.gint(height)) } -func gtk_button_new() *gtkWidget { - return fromgtkwidget(C.gtk_button_new()) +func gtk_button_new() *C.GtkWidget { + return C.gtk_button_new() } -func gtk_button_set_label(button *gtkWidget, label string) { +func gtk_button_set_label(button *C.GtkWidget, label string) { clabel := C.CString(label) defer C.free(unsafe.Pointer(clabel)) C.gtk_button_set_label(togtkbutton(button), togchar(clabel)) } -func gtk_button_get_label(button *gtkWidget) string { +func gtk_button_get_label(button *C.GtkWidget) string { return C.GoString(fromgchar(C.gtk_button_get_label(togtkbutton(button)))) } -func gtk_check_button_new() *gtkWidget { - return fromgtkwidget(C.gtk_check_button_new()) +func gtk_check_button_new() *C.GtkWidget { + return C.gtk_check_button_new() } -func gtk_toggle_button_get_active(widget *gtkWidget) bool { +func gtk_toggle_button_get_active(widget *C.GtkWidget) bool { return fromgbool(C.gtk_toggle_button_get_active(togtktogglebutton(widget))) } -func gtk_combo_box_text_new() *gtkWidget { - return fromgtkwidget(C.gtk_combo_box_text_new()) +func gtk_combo_box_text_new() *C.GtkWidget { + return C.gtk_combo_box_text_new() } -func gtk_combo_box_text_new_with_entry() *gtkWidget { - return fromgtkwidget(C.gtk_combo_box_text_new_with_entry()) +func gtk_combo_box_text_new_with_entry() *C.GtkWidget { + return C.gtk_combo_box_text_new_with_entry() } -func gtk_combo_box_text_get_active_text(widget *gtkWidget) string { +func gtk_combo_box_text_get_active_text(widget *C.GtkWidget) string { return C.GoString(fromgchar(C.gtk_combo_box_text_get_active_text(togtkcombobox(widget)))) } -func gtk_combo_box_text_append_text(widget *gtkWidget, text string) { +func gtk_combo_box_text_append_text(widget *C.GtkWidget, text string) { ctext := C.CString(text) defer C.free(unsafe.Pointer(ctext)) C.gtk_combo_box_text_append_text(togtkcombobox(widget), togchar(ctext)) } -func gtk_combo_box_text_insert_text(widget *gtkWidget, index int, text string) { +func gtk_combo_box_text_insert_text(widget *C.GtkWidget, index int, text string) { ctext := C.CString(text) defer C.free(unsafe.Pointer(ctext)) C.gtk_combo_box_text_insert_text(togtkcombobox(widget), C.gint(index), togchar(ctext)) } -func gtk_combo_box_get_active(widget *gtkWidget) int { +func gtk_combo_box_get_active(widget *C.GtkWidget) int { cb := (*C.GtkComboBox)(unsafe.Pointer(widget)) return int(C.gtk_combo_box_get_active(cb)) } -func gtk_combo_box_text_remove(widget *gtkWidget, index int) { +func gtk_combo_box_text_remove(widget *C.GtkWidget, index int) { C.gtk_combo_box_text_remove(togtkcombobox(widget), C.gint(index)) } -func gtkComboBoxLen(widget *gtkWidget) int { +func gtkComboBoxLen(widget *C.GtkWidget) int { cb := (*C.GtkComboBox)(unsafe.Pointer(widget)) model := C.gtk_combo_box_get_model(cb) // this is the same as with a Listbox so return gtkTreeModelListLen(model) } -func gtk_entry_new() *gtkWidget { - return fromgtkwidget(C.gtk_entry_new()) +func gtk_entry_new() *C.GtkWidget { + return C.gtk_entry_new() } -func gtkPasswordEntryNew() *gtkWidget { +func gtkPasswordEntryNew() *C.GtkWidget { e := gtk_entry_new() C.gtk_entry_set_visibility(togtkentry(e), C.FALSE) return e } -func gtk_entry_set_text(widget *gtkWidget, text string) { +func gtk_entry_set_text(widget *C.GtkWidget, text string) { ctext := C.CString(text) defer C.free(unsafe.Pointer(ctext)) C.gtk_entry_set_text(togtkentry(widget), togchar(ctext)) } -func gtk_entry_get_text(widget *gtkWidget) string { +func gtk_entry_get_text(widget *C.GtkWidget) string { return C.GoString(fromgchar(C.gtk_entry_get_text(togtkentry(widget)))) } var _emptystring = [1]C.gchar{0} var emptystring = &_emptystring[0] -func gtk_label_new() *gtkWidget { - return fromgtkwidget(C.gtk_label_new(emptystring)) +func gtk_label_new() *C.GtkWidget { + return C.gtk_label_new(emptystring) // TODO left-justify? } -func gtk_label_set_text(widget *gtkWidget, text string) { +func gtk_label_set_text(widget *C.GtkWidget, text string) { ctext := C.CString(text) defer C.free(unsafe.Pointer(ctext)) C.gtk_label_set_text(togtklabel(widget), togchar(ctext)) } -func gtk_label_get_text(widget *gtkWidget) string { +func gtk_label_get_text(widget *C.GtkWidget) string { return C.GoString(fromgchar(C.gtk_label_get_text(togtklabel(widget)))) } -func gtk_widget_get_preferred_size(w *gtkWidget) (minWidth int, minHeight int, natWidth int, natHeight int) { +func gtk_widget_get_preferred_size(widget *C.GtkWidget) (minWidth int, minHeight int, natWidth int, natHeight int) { var minimum, natural C.GtkRequisition - C.gtk_widget_get_preferred_size(togtkwidget(w), &minimum, &natural) + C.gtk_widget_get_preferred_size(widget, &minimum, &natural) return int(minimum.width), int(minimum.height), int(natural.width), int(natural.height) } -func gtk_progress_bar_new() *gtkWidget { - return fromgtkwidget(C.gtk_progress_bar_new()) +func gtk_progress_bar_new() *C.GtkWidget { + return C.gtk_progress_bar_new() } -func gtk_progress_bar_set_fraction(w *gtkWidget, percent int) { +func gtk_progress_bar_set_fraction(w *C.GtkWidget, percent int) { p := C.gdouble(percent) / 100 C.gtk_progress_bar_set_fraction(togtkprogressbar(w), p) } -func gtk_progress_bar_pulse(w *gtkWidget) { +func gtk_progress_bar_pulse(w *C.GtkWidget) { C.gtk_progress_bar_pulse(togtkprogressbar(w)) } diff --git a/gtkcasts_unix.go b/gtkcasts_unix.go index b4fe95b..133f596 100644 --- a/gtkcasts_unix.go +++ b/gtkcasts_unix.go @@ -28,14 +28,6 @@ func togbool(b bool) C.gboolean { return C.FALSE } -func fromgtkwidget(x *C.GtkWidget) *gtkWidget { - return (*gtkWidget)(unsafe.Pointer(x)) -} - -func togtkwidget(what *gtkWidget) *C.GtkWidget { - return (*C.GtkWidget)(unsafe.Pointer(what)) -} - // TODO wrap in C.GoString()? func fromgchar(what *C.gchar) *C.char { return (*C.char)(unsafe.Pointer(what)) @@ -45,74 +37,74 @@ func togchar(what *C.char) *C.gchar { return (*C.gchar)(unsafe.Pointer(what)) } -func fromgtkwindow(x *C.GtkWindow) *gtkWidget { - return (*gtkWidget)(unsafe.Pointer(x)) +func fromgtkwindow(x *C.GtkWindow) *C.GtkWidget { + return (*C.GtkWidget)(unsafe.Pointer(x)) } -func togtkwindow(what *gtkWidget) *C.GtkWindow { +func togtkwindow(what *C.GtkWidget) *C.GtkWindow { return (*C.GtkWindow)(unsafe.Pointer(what)) } -func fromgtkcontainer(x *C.GtkContainer) *gtkWidget { - return (*gtkWidget)(unsafe.Pointer(x)) +func fromgtkcontainer(x *C.GtkContainer) *C.GtkWidget { + return (*C.GtkWidget)(unsafe.Pointer(x)) } -func togtkcontainer(what *gtkWidget) *C.GtkContainer { +func togtkcontainer(what *C.GtkWidget) *C.GtkContainer { return (*C.GtkContainer)(unsafe.Pointer(what)) } -func fromgtklayout(x *C.GtkLayout) *gtkWidget { - return (*gtkWidget)(unsafe.Pointer(x)) +func fromgtklayout(x *C.GtkLayout) *C.GtkWidget { + return (*C.GtkWidget)(unsafe.Pointer(x)) } -func togtklayout(what *gtkWidget) *C.GtkLayout { +func togtklayout(what *C.GtkWidget) *C.GtkLayout { return (*C.GtkLayout)(unsafe.Pointer(what)) } -func fromgtkbutton(x *C.GtkButton) *gtkWidget { - return (*gtkWidget)(unsafe.Pointer(x)) +func fromgtkbutton(x *C.GtkButton) *C.GtkWidget { + return (*C.GtkWidget)(unsafe.Pointer(x)) } -func togtkbutton(what *gtkWidget) *C.GtkButton { +func togtkbutton(what *C.GtkWidget) *C.GtkButton { return (*C.GtkButton)(unsafe.Pointer(what)) } -func fromgtktogglebutton(x *C.GtkToggleButton) *gtkWidget { - return (*gtkWidget)(unsafe.Pointer(x)) +func fromgtktogglebutton(x *C.GtkToggleButton) *C.GtkWidget { + return (*C.GtkWidget)(unsafe.Pointer(x)) } -func togtktogglebutton(what *gtkWidget) *C.GtkToggleButton { +func togtktogglebutton(what *C.GtkWidget) *C.GtkToggleButton { return (*C.GtkToggleButton)(unsafe.Pointer(what)) } -func fromgtkcombobox(x *C.GtkComboBoxText) *gtkWidget { - return (*gtkWidget)(unsafe.Pointer(x)) +func fromgtkcombobox(x *C.GtkComboBoxText) *C.GtkWidget { + return (*C.GtkWidget)(unsafe.Pointer(x)) } -func togtkcombobox(what *gtkWidget) *C.GtkComboBoxText { +func togtkcombobox(what *C.GtkWidget) *C.GtkComboBoxText { return (*C.GtkComboBoxText)(unsafe.Pointer(what)) } -func fromgtkentry(x *C.GtkEntry) *gtkWidget { - return (*gtkWidget)(unsafe.Pointer(x)) +func fromgtkentry(x *C.GtkEntry) *C.GtkWidget { + return (*C.GtkWidget)(unsafe.Pointer(x)) } -func togtkentry(what *gtkWidget) *C.GtkEntry { +func togtkentry(what *C.GtkWidget) *C.GtkEntry { return (*C.GtkEntry)(unsafe.Pointer(what)) } -func fromgtklabel(x *C.GtkLabel) *gtkWidget { - return (*gtkWidget)(unsafe.Pointer(x)) +func fromgtklabel(x *C.GtkLabel) *C.GtkWidget { + return (*C.GtkWidget)(unsafe.Pointer(x)) } -func togtklabel(what *gtkWidget) *C.GtkLabel { +func togtklabel(what *C.GtkWidget) *C.GtkLabel { return (*C.GtkLabel)(unsafe.Pointer(what)) } -func fromgtkprogressbar(x *C.GtkProgressBar) *gtkWidget { - return (*gtkWidget)(unsafe.Pointer(x)) +func fromgtkprogressbar(x *C.GtkProgressBar) *C.GtkWidget { + return (*C.GtkWidget)(unsafe.Pointer(x)) } -func togtkprogressbar(what *gtkWidget) *C.GtkProgressBar { +func togtkprogressbar(what *C.GtkWidget) *C.GtkProgressBar { return (*C.GtkProgressBar)(unsafe.Pointer(what)) } diff --git a/listbox_unix.go b/listbox_unix.go index 02c4aed..240270d 100644 --- a/listbox_unix.go +++ b/listbox_unix.go @@ -53,23 +53,23 @@ and the GTK+ reference documentation. // } import "C" -func fromgtktreemodel(x *C.GtkTreeModel) *gtkWidget { - return (*gtkWidget)(unsafe.Pointer(x)) +func fromgtktreemodel(x *C.GtkTreeModel) *C.GtkWidget { + return (*C.GtkWidget)(unsafe.Pointer(x)) } -func togtktreemodel(what *gtkWidget) *C.GtkTreeModel { +func togtktreemodel(what *C.GtkWidget) *C.GtkTreeModel { return (*C.GtkTreeModel)(unsafe.Pointer(what)) } -func fromgtktreeview(x *C.GtkTreeView) *gtkWidget { - return (*gtkWidget)(unsafe.Pointer(x)) +func fromgtktreeview(x *C.GtkTreeView) *C.GtkWidget { + return (*C.GtkWidget)(unsafe.Pointer(x)) } -func togtktreeview(what *gtkWidget) *C.GtkTreeView { +func togtktreeview(what *C.GtkWidget) *C.GtkTreeView { return (*C.GtkTreeView)(unsafe.Pointer(what)) } -func gListboxNew(multisel bool) *gtkWidget { +func gListboxNew(multisel bool) *C.GtkWidget { store := C.gtkListStoreNew() widget := C.gtk_tree_view_new_with_model((*C.GtkTreeModel)(unsafe.Pointer(store))) tv := (*C.GtkTreeView)(unsafe.Pointer(widget)) @@ -84,23 +84,23 @@ func gListboxNew(multisel bool) *gtkWidget { C.gtk_tree_selection_set_mode(C.gtk_tree_view_get_selection(tv), C.GtkSelectionMode(sel)) scrollarea := C.gtk_scrolled_window_new((*C.GtkAdjustment)(nil), (*C.GtkAdjustment)(nil)) C.gtk_container_add((*C.GtkContainer)(unsafe.Pointer(scrollarea)), widget) - return fromgtkwidget(scrollarea) + return scrollarea } -func gListboxNewSingle() *gtkWidget { +func gListboxNewSingle() *C.GtkWidget { return gListboxNew(false) } -func gListboxNewMulti() *gtkWidget { +func gListboxNewMulti() *C.GtkWidget { return gListboxNew(true) } -func getTreeViewFrom(widget *gtkWidget) *C.GtkTreeView { +func getTreeViewFrom(widget *C.GtkWidget) *C.GtkTreeView { wid := C.gtk_bin_get_child((*C.GtkBin)(unsafe.Pointer(widget))) return (*C.GtkTreeView)(unsafe.Pointer(wid)) } -func gListboxText(widget *gtkWidget) string { +func gListboxText(widget *C.GtkWidget) string { var model *C.GtkTreeModel var iter C.GtkTreeIter var gs *C.gchar @@ -114,7 +114,7 @@ func gListboxText(widget *gtkWidget) string { return C.GoString(fromgchar(gs)) } -func gListboxAppend(widget *gtkWidget, what string) { +func gListboxAppend(widget *C.GtkWidget, what string) { var iter C.GtkTreeIter tv := getTreeViewFrom(widget) @@ -125,7 +125,7 @@ func gListboxAppend(widget *gtkWidget, what string) { C.gtkListStoreSet(ls, &iter, cwhat) } -func gListboxInsert(widget *gtkWidget, index int, what string) { +func gListboxInsert(widget *C.GtkWidget, index int, what string) { var iter C.GtkTreeIter tv := getTreeViewFrom(widget) @@ -136,7 +136,7 @@ func gListboxInsert(widget *gtkWidget, index int, what string) { C.gtkListStoreSet(ls, &iter, cwhat) } -func gListboxSelectedMulti(widget *gtkWidget) (indices []int) { +func gListboxSelectedMulti(widget *C.GtkWidget) (indices []int) { var model *C.GtkTreeModel tv := getTreeViewFrom(widget) @@ -158,7 +158,7 @@ func gListboxSelectedMulti(widget *gtkWidget) (indices []int) { return indices } -func gListboxSelMultiTexts(widget *gtkWidget) (texts []string) { +func gListboxSelMultiTexts(widget *C.GtkWidget) (texts []string) { var model *C.GtkTreeModel var iter C.GtkTreeIter var gs *C.gchar @@ -185,7 +185,7 @@ func gListboxSelMultiTexts(widget *gtkWidget) (texts []string) { return texts } -func gListboxDelete(widget *gtkWidget, index int) { +func gListboxDelete(widget *C.GtkWidget, index int) { var iter C.GtkTreeIter tv := getTreeViewFrom(widget) @@ -203,7 +203,7 @@ func gtkTreeModelListLen(model *C.GtkTreeModel) int { return int(C.gtk_tree_model_iter_n_children(model, (*C.GtkTreeIter)(nil))) } -func gListboxLen(widget *gtkWidget) int { +func gListboxLen(widget *C.GtkWidget) int { tv := getTreeViewFrom(widget) model := C.gtk_tree_view_get_model(tv) return gtkTreeModelListLen(model) diff --git a/sysdata_unix.go b/sysdata_unix.go index be9a827..d60bef4 100644 --- a/sysdata_unix.go +++ b/sysdata_unix.go @@ -8,29 +8,33 @@ import ( "time" ) +// #cgo pkg-config: gtk+-3.0 +// #include "gtk_unix.h" +import "C" + type sysData struct { cSysData - widget *gtkWidget - container *gtkWidget // for moving + widget *C.GtkWidget + container *C.GtkWidget // for moving pulse chan bool // for sysData.progressPulse() } type classData struct { - make func() *gtkWidget - makeAlt func() *gtkWidget - setText func(widget *gtkWidget, text string) - text func(widget *gtkWidget) string - append func(widget *gtkWidget, text string) - insert func(widget *gtkWidget, index int, text string) - selected func(widget *gtkWidget) int - selMulti func(widget *gtkWidget) []int - smtexts func(widget *gtkWidget) []string - delete func(widget *gtkWidget, index int) - len func(widget *gtkWidget) int + make func() *C.GtkWidget + makeAlt func() *C.GtkWidget + setText func(widget *C.GtkWidget, text string) + text func(widget *C.GtkWidget) string + append func(widget *C.GtkWidget, text string) + insert func(widget *C.GtkWidget, index int, text string) + selected func(widget *C.GtkWidget) int + selMulti func(widget *C.GtkWidget) []int + smtexts func(widget *C.GtkWidget) []string + delete func(widget *C.GtkWidget, index int) + len func(widget *C.GtkWidget) int // ... signals callbackMap - child func(widget *gtkWidget) *gtkWidget + child func(widget *C.GtkWidget) *C.GtkWidget childsigs callbackMap } @@ -110,7 +114,7 @@ var classTypes = [nctypes]*classData{ func (s *sysData) make(initText string, window *sysData) error { ct := classTypes[s.ctype] - ret := make(chan *gtkWidget) + ret := make(chan *C.GtkWidget) defer close(ret) uitask <- func() { if s.alternate { |
