Go binding for GTK

go-gtk

Build Status Codecov

WHATS

Go bindings for GTK

SCREENSHOT

Go GTK!

INSTALL

You can experiment with go-gtk by running the various example programs:

git clone https://github.com/mattn/go-gtk
cd go-gtk
go get ...
make example
./example/demo/demo

Or

go get github.com/mattn/go-gtk/gtk

Don't forget, that you need the GTK-Development-Packages.

If you use linux, you should install libgtk+-2.0 and packages that depend on gtk.

On Debian and Debian derived distributions you can run (as root):

apt-get install libgtk2.0-dev libglib2.0-dev libgtksourceview2.0-dev

If you use windows, find gtk binary packages from here:

EMBEDDING

It is possible to embed a pixbuf image with:

$ go run tools/make_inline_pixbuf/make_inline_pixbuf.go logoPNG data/go-gtk-logo.png > logo.gen.go

And then load it with:

  pb := gdkpixbuf.NewPixbufFromData(logoPNG)

LICENSE

The library is available under the same terms and conditions as the Go, the BSD style license, and the LGPL (GNU Lesser General Public License). The idea is that if you can use Go (and Gtk) in a project, you should also be able to use go-gtk.

AUTHOR

  • Yasuhiro Matsumoto

CONTRIBUTE AUTHORS

  • David Roundy
  • Mark Andrew Gerads
  • Tobias Kortkamp
  • Mikhail Trushnikov
  • Federico Sogaro
  • Crazy2be
  • Daniël de Kok
  • Erik Lissel
  • Jeffrey Bolle
  • Leonhard Küper
  • Matt Joiner
  • SQP
  • Steven T
  • Taru Karttunen
  • Utkan Güngördü
  • matiaslina
  • Dag Robøle
  • Denis Dyakov
  • Giuseppe Mazzotta

GOAL

Hopefully support following widgets and methods enough to run general application.

(output of tools/gogtkinfo)

Main Loop and Events          :  30% (  8/ 26)
GtkAccelGroup                 :  15% (  3/ 19)
GtkAccelMap                   :   0% (  0/ 14)
GtkClipboard                  :  29% (  9/ 31)
Drag and Drop                 :  11% (  4/ 35)
GtkIconTheme                  :   9% (  3/ 33)
GtkStockItem                  :  66% (  4/  6)
Themeable Stock Images        :   2% (  1/ 42)
Resource Files                :  14% (  4/ 28)
GtkSettings                   :  40% (  6/ 15)
GtkBinding                    :   0% (  0/ 14)
Graphics Contexts             :   0% (  0/  2)
GtkStyle                      :   9% (  6/ 64)
Selections                    :   8% (  4/ 47)
Version Information           :   0% (  0/  6)
Testing                       :   0% (  0/ 16)
Filesystem Utilities          :   0% (  0/  7)
GtkDialog                     :  63% ( 12/ 19)
GtkMessageDialog              :  62% (  5/  8)
GtkWindow                     :  53% ( 55/102)
GtkWindowGroup                :   0% (  0/  5)
GtkAboutDialog                :  90% ( 29/ 32)
GtkAssistant                  :  91% ( 21/ 23)
GtkOffscreenWindow            :   0% (  0/  3)
GtkAccelLabel                 :  83% (  5/  6)
GtkImage                      :  32% ( 10/ 31)
GtkLabel                      :  86% ( 39/ 45)
GtkProgressBar                : 100% ( 12/ 12)
GtkStatusbar                  :  77% (  7/  9)
GtkInfoBar                    : 100% ( 12/ 12)
GtkStatusIcon                 :  68% ( 26/ 38)
GtkSpinner                    : 100% (  3/  3)
GtkButton                     : 100% ( 28/ 28)
GtkCheckButton                : 100% (  3/  3)
GtkRadioButton                : 100% (  8/  8)
GtkToggleButton               : 100% (  9/  9)
GtkLinkButton                 :  75% (  6/  8)
GtkScaleButton                : 100% (  9/  9)
GtkVolumeButton               : 100% (  1/  1)
GtkEntry                      :  44% ( 28/ 63)
GtkEntryBuffer                :  72% (  8/ 11)
GtkEntryCompletion            :  96% ( 25/ 26)
GtkHScale                     : 100% (  2/  2)
GtkVScale                     : 100% (  2/  2)
GtkSpinButton                 : 100% ( 30/ 30)
GtkEditable                   : 100% ( 13/ 13)
GtkTextIter                   :  25% ( 23/ 91)
GtkTextMark                   :   0% (  0/  7)
GtkTextBuffer                 :  67% ( 52/ 77)
GtkTextTag                    :  83% (  5/  6)
GtkTextAttributes             : 100% (  5/  5)
GtkTextTagTable               :  83% (  5/  6)
GtkTextView                   :  29% ( 19/ 64)
GtkTreePath                   :  90% ( 18/ 20)
GtkTreeRowReference           :  60% (  6/ 10)
GtkTreeIter                   : 100% (  2/  2)
GtkTreeModel                  :  57% ( 15/ 26)
GtkTreeSelection              :  78% ( 18/ 23)
GtkTreeViewColumn             :  61% ( 34/ 55)
GtkTreeView                   :  19% ( 19/ 98)
GtkTreeView drag-and-drop     :   0% (  0/  7)
GtkCellView                   :   0% (  0/ 11)
GtkIconView                   :  17% ( 11/ 62)
GtkTreeSortable               :  87% (  7/  8)
GtkTreeModelSort              :   0% (  0/  9)
GtkTreeModelFilter            :   0% (  0/ 11)
GtkCellLayout                 :   0% (  0/  9)
GtkCellRenderer               : 100% (  2/  2)
GtkCellEditable               :   0% (  0/  3)
GtkCellRendererAccel          : 100% (  1/  1)
GtkCellRendererCombo          : 100% (  1/  1)
GtkCellRendererPixbuf         : 100% (  1/  1)
GtkCellRendererProgress       : 100% (  1/  1)
GtkCellRendererSpin           : 100% (  1/  1)
GtkCellRendererText           : 100% (  2/  2)
GtkCellRendererToggle         : 100% (  7/  7)
GtkCellRendererSpinner        : 100% (  1/  1)
GtkListStore                  :  84% ( 16/ 19)
GtkTreeStore                  :  80% ( 17/ 21)
GtkComboBox                   :  78% ( 30/ 38)
GtkComboBoxText               : 100% (  7/  7)
GtkComboBoxEntry              :  80% (  4/  5)
GtkMenu                       :  48% ( 13/ 27)
GtkMenuBar                    : 100% (  5/  5)
GtkMenuItem                   :  90% ( 18/ 20)
GtkImageMenuItem              :  54% (  6/ 11)
GtkRadioMenuItem              :  44% (  4/  9)
GtkCheckMenuItem              : 100% ( 10/ 10)
GtkSeparatorMenuItem          : 100% (  1/  1)
GtkTearoffMenuItem            : 100% (  1/  1)
GtkToolShell                  :   0% (  0/  9)
GtkToolbar                    :  63% ( 24/ 38)
GtkToolItem                   :  76% ( 19/ 25)
GtkToolPalette                :  59% ( 13/ 22)
GtkToolItemGroup              :  47% (  8/ 17)
GtkSeparatorToolItem          : 100% (  3/  3)
GtkToolButton                 : 100% ( 15/ 15)
GtkMenuToolButton             :  85% (  6/  7)
GtkToggleToolButton           : 100% (  5/  5)
GtkRadioToolButton            :  33% (  2/  6)
GtkUIManager                  :  29% (  5/ 17)
GtkActionGroup                :  55% ( 11/ 20)
GtkAction                     :  93% ( 44/ 47)
GtkToggleAction               : 100% (  6/  6)
GtkRadioAction                : 100% (  5/  5)
GtkRecentAction               :  75% (  3/  4)
GtkActivatable                :  66% (  4/  6)
GtkColorButton                : 100% ( 10/ 10)
GtkColorSelectionDialog       :   0% (  0/  2)
GtkColorSelection             :   0% (  0/ 21)
GtkHSV                        :   0% (  0/  8)
GtkFileChooser                :  27% ( 16/ 58)
GtkFileChooserButton          :  18% (  2/ 11)
GtkFileChooserDialog          : 100% (  1/  1)
GtkFileChooserWidget          :  50% (  1/  2)
GtkFileFilter                 :  55% (  5/  9)
GtkFontButton                 : 100% ( 14/ 14)
GtkFontSelection              :  28% (  4/ 14)
GtkFontSelectionDialog        : 100% (  8/  8)
GtkInputDialog                :   0% (  0/  1)
GtkAlignment                  : 100% (  4/  4)
GtkAspectFrame                :   0% (  0/  2)
GtkHBox                       : 100% (  1/  1)
GtkVBox                       : 100% (  1/  1)
GtkHButtonBox                 :   0% (  0/  5)
GtkVButtonBox                 :   0% (  0/  5)
GtkFixed                      : 100% (  5/  5)
GtkHPaned                     : 100% (  1/  1)
GtkVPaned                     : 100% (  1/  1)
GtkLayout                     : 100% ( 12/ 12)
GtkNotebook                   :  90% ( 50/ 55)
GtkTable                      :  93% ( 14/ 15)
GtkExpander                   :  87% ( 14/ 16)
GtkOrientable                 :   0% (  0/  2)
GtkFrame                      : 100% (  9/  9)
GtkHSeparator                 : 100% (  1/  1)
GtkVSeparator                 : 100% (  1/  1)
GtkScrollbar                  : 100% (  0/  0)
GtkHScrollbar                 : 100% (  1/  1)
GtkVScrollbar                 : 100% (  1/  1)
GtkScrolledWindow             :  86% ( 13/ 15)
GtkPrintOperation             :  13% (  5/ 36)
GtkPrintContext               :  18% (  2/ 11)
GtkPrintSettings              :   0% (  0/ 74)
GtkPageSetup                  :   0% (  0/ 25)
GtkPaperSize                  :   0% (  0/ 21)
GtkPrinter                    :   0% (  0/ 23)
GtkPrintJob                   :   0% (  0/ 10)
GtkPrintUnixDialog            :   0% (  0/ 18)
GtkPageSetupUnixDialog        :   0% (  0/  5)
GtkAdjustment                 :  83% ( 15/ 18)
GtkArrow                      : 100% (  2/  2)
GtkCalendar                   :   0% (  0/ 17)
GtkDrawingArea                : 100% (  2/  2)
GtkEventBox                   :  20% (  1/  5)
GtkHandleBox                  :   0% (  0/  8)
GtkIMContextSimple            :   0% (  0/  2)
GtkIMMulticontext             :   0% (  0/  4)
GtkSizeGroup                  : 100% (  8/  8)
GtkTooltip                    :  60% (  6/ 10)
GtkViewport                   : 100% (  9/  9)
GtkAccessible                 : 100% (  3/  3)
GtkBin                        : 100% (  1/  1)
GtkBox                        : 100% ( 11/ 11)
GtkButtonBox                  :   0% (  0/ 10)
GtkContainer                  :  48% ( 16/ 33)
GtkItem                       : 100% (  3/  3)
GtkMenuShell                  :  27% (  3/ 11)
GtkMisc                       : 100% (  4/  4)
GtkObject                     : 100% (  2/  2)
GtkPaned                      :  88% (  8/  9)
GtkRange                      :  53% ( 16/ 30)
GtkScale                      :  90% (  9/ 10)
GtkSeparator                  : 100% (  0/  0)
GtkWidget                     :  54% (101/187)
GtkIMContext                  :   0% (  0/ 11)
GtkPlug                       :   0% (  0/  7)
GtkSocket                     :   0% (  0/  5)
GtkRecentManager              :   0% (  0/ 37)
GtkRecentChooser              :   0% (  0/ 33)
GtkRecentChooserDialog        :   0% (  0/  2)
GtkRecentChooserMenu          :   0% (  0/  4)
GtkRecentChooserWidget        :   0% (  0/  2)
GtkRecentFilter               :   0% (  0/ 12)
GtkBuildable                  :   0% (  0/ 10)

Total progress :                 48% (1539/3177)
Owner
mattn
Long-time Golang user&contributor, Google Dev Expert for Go, and author of many Go tools, Vim plugin author. Windows hacker C#/Java/C/C++
mattn
Comments
  • gtk is currently broken (ubuntu 11.10)

    gtk is currently broken (ubuntu 11.10)

    (gdk gdkpixbuf glib gtksourceview pango compiles fine)

    installed dev libs: sudo apt-get install libgtk2.0-dev

    git show commit 6f965c8fe3eaf2204bdf06b20c6d19d1934027bf

    go version weekly.2012-02-07 +21

    cd src/github.com/mattn/go-gtk/gtk
    go build -x
    WORK=/tmp/go-build761601610
    mkdir -p $WORK/github.com/mattn/go-gtk/gtk/_obj/
    cd .../src/github.com/mattn/go-gtk/gtk
    pkg-config --cflags gtk+-2.0
    pkg-config --libs gtk+-2.0
    $GOBIN/tool/cgo -objdir $WORK/github.com/mattn/go-gtk/gtk/_obj/ -- -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I $WORK/github.com/mattn/go-gtk/gtk/_obj/ gtk.go
    $GOBIN/tool/6c -FVw -I $WORK/github.com/mattn/go-gtk/gtk/_obj/ -I $GOROOT/pkg/linux_amd64 -o $WORK/github.com/mattn/go-gtk/gtk/_obj/_cgo_defun.6 -DGOOS_linux -DGOARCH_amd64 $WORK/github.com/mattn/go-gtk/gtk/_obj/_cgo_defun.c
    gcc -I . -g -O2 -fPIC -m64 -pthread -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I $WORK/github.com/mattn/go-gtk/gtk/_obj/ -o $WORK/github.com/mattn/go-gtk/gtk/_obj/_cgo_main.o -c $WORK/github.com/mattn/go-gtk/gtk/_obj/_cgo_main.c
    gcc -I . -g -O2 -fPIC -m64 -pthread -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I $WORK/github.com/mattn/go-gtk/gtk/_obj/ -o $WORK/github.com/mattn/go-gtk/gtk/_obj/_cgo_export.o -c $WORK/github.com/mattn/go-gtk/gtk/_obj/_cgo_export.c
    gcc -I . -g -O2 -fPIC -m64 -pthread -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I $WORK/github.com/mattn/go-gtk/gtk/_obj/ -o $WORK/github.com/mattn/go-gtk/gtk/_obj/gtk.cgo2.o -c $WORK/github.com/mattn/go-gtk/gtk/_obj/gtk.cgo2.c
    # github.com/mattn/go-gtk/gtk
    gtk.go: In function ‘_cgo_1a037e14cf9d_Cfunc_gtk_about_dialog_set_documenters’:
    gtk.go:1993:2: warning: passing argument 2 of ‘gtk_about_dialog_set_documenters’ from incompatible pointer type [enabled by default]
    /usr/include/gtk-2.0/gtk/gtkaboutdialog.h:114:24: note: expected ‘const gchar **’ but argument is of type ‘gchar **’
    gtk.go: In function ‘_cgo_1a037e14cf9d_Cfunc_gtk_about_dialog_set_authors’:
    gtk.go:6516:2: warning: passing argument 2 of ‘gtk_about_dialog_set_authors’ from incompatible pointer type [enabled by default]
    /usr/include/gtk-2.0/gtk/gtkaboutdialog.h:111:24: note: expected ‘const gchar **’ but argument is of type ‘gchar **’
    gtk.go: In function ‘_cgo_1a037e14cf9d_Cfunc_gtk_about_dialog_set_artists’:
    gtk.go:8207:2: warning: passing argument 2 of ‘gtk_about_dialog_set_artists’ from incompatible pointer type [enabled by default]
    /usr/include/gtk-2.0/gtk/gtkaboutdialog.h:117:24: note: expected ‘const gchar **’ but argument is of type ‘gchar **’
    gcc -I . -g -O2 -fPIC -m64 -pthread -o $WORK/github.com/mattn/go-gtk/gtk/_obj/_cgo_.o $WORK/github.com/mattn/go-gtk/gtk/_obj/_cgo_main.o $WORK/github.com/mattn/go-gtk/gtk/_obj/_cgo_export.o $WORK/github.com/mattn/go-gtk/gtk/_obj/gtk.cgo2.o -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0
    $GOBIN/tool/cgo -objdir $WORK/github.com/mattn/go-gtk/gtk/_obj/ -dynimport $WORK/github.com/mattn/go-gtk/gtk/_obj/_cgo_.o -dynout $WORK/github.com/mattn/go-gtk/gtk/_obj/_cgo_import.c
    $GOBIN/tool/6c -FVw -I $WORK/github.com/mattn/go-gtk/gtk/_obj/ -I $GOROOT/pkg/linux_amd64 -o $WORK/github.com/mattn/go-gtk/gtk/_obj/_cgo_import.6 -DGOOS_linux -DGOARCH_amd64 $WORK/github.com/mattn/go-gtk/gtk/_obj/_cgo_import.c
    $GOBIN/tool/6g -o $WORK/github.com/mattn/go-gtk/gtk/_obj/_go_.6 -p github.com/mattn/go-gtk/gtk -I $WORK -I /home/mc/server/05/00-work/go-js-tutorial/pkg/linux_amd64 $WORK/github.com/mattn/go-gtk/gtk/_obj/_cgo_gotypes.go $WORK/github.com/mattn/go-gtk/gtk/_obj/gtk.cgo1.go
    # github.com/mattn/go-gtk/gtk
    /tmp/go-build761601610/github.com/mattn/go-gtk/gtk/_obj/_cgo_gotypes.go:1: ambiguous selector *_Ctype_GtkProgressBar._
    /tmp/go-build761601610/github.com/mattn/go-gtk/gtk/_obj/_cgo_gotypes.go:1: ambiguous selector _Ctype_GtkProgressBar._
    /tmp/go-build761601610/github.com/mattn/go-gtk/gtk/_obj/_cgo_gotypes.go:1: cannot use &p._ (type *[4]byte) as type *[8]byte in function argument
    /tmp/go-build761601610/github.com/mattn/go-gtk/gtk/_obj/_cgo_gotypes.go:1: ambiguous selector *_Ctype_GtkProgressBar._
    /tmp/go-build761601610/github.com/mattn/go-gtk/gtk/_obj/_cgo_gotypes.go:1: ambiguous selector _Ctype_GtkProgressBar._
    /tmp/go-build761601610/github.com/mattn/go-gtk/gtk/_obj/_cgo_gotypes.go:1: ambiguous selector *_Ctype_GtkProgressBar._
    /tmp/go-build761601610/github.com/mattn/go-gtk/gtk/_obj/_cgo_gotypes.go:1: ambiguous selector _Ctype_GtkProgressBar._
    /tmp/go-build761601610/github.com/mattn/go-gtk/gtk/_obj/_cgo_gotypes.go:1: ambiguous selector *_Ctype_GtkFrame._
    /tmp/go-build761601610/github.com/mattn/go-gtk/gtk/_obj/_cgo_gotypes.go:1: ambiguous selector _Ctype_GtkFrame._
    /tmp/go-build761601610/github.com/mattn/go-gtk/gtk/_obj/_cgo_gotypes.go:1: ambiguous selector *_Ctype_GtkFrame._
    /tmp/go-build761601610/github.com/mattn/go-gtk/gtk/_obj/_cgo_gotypes.go:1: too many errors
    
  • Cross Compilation to RaspberryPi

    Cross Compilation to RaspberryPi

    I am using GO-GTK to display images, the project is working fine on amd64 but when I try to cross compile it for arm (RaspberryPi), it gives me below error. Please advise how to cross-compile go-gtk from amd64 to arm (Raspberrypi3).

    github.com/mattn/go-gtk/glib

    github.com/mattn/go-gtk/glib

    In file included from /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h:9:0, from /usr/include/glib-2.0/glib/gtypes.h:32, from /usr/include/glib-2.0/glib/galloca.h:32, from /usr/include/glib-2.0/glib.h:30, from ./glib.go.h:4, from src/github.com/mattn/go-gtk/glib/glib.go:5: /usr/include/glib-2.0/glib/gtypes.h: In function '_GLIB_CHECKED_ADD_U64': /usr/include/glib-2.0/glib/gmacros.h:232:53: error: size of array '_GStaticAssertCompileTimeAssertion_0' is negative #define G_STATIC_ASSERT(expr) typedef char G_PASTE (GStaticAssertCompileTimeAssertion, COUNTER)[(expr) ? 1 : -1] G_GNUC_UNUSED ^ /usr/include/glib-2.0/glib/gmacros.h:229:47: note: in definition of macro 'G_PASTE_ARGS' #define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2 ^ /usr/include/glib-2.0/glib/gmacros.h:232:44: note: in expansion of macro 'G_PASTE' #define G_STATIC_ASSERT(expr) typedef char G_PASTE (GStaticAssertCompileTimeAssertion, COUNTER)[(expr) ? 1 : -1] G_GNUC_UNUSED ^ /usr/include/glib-2.0/glib/gtypes.h:422:3: note: in expansion of macro 'G_STATIC_ASSERT' G_STATIC_ASSERT(sizeof (unsigned long long) == sizeof (guint64)); ^ github.com/mattn/go-gtk/pango

    github.com/mattn/go-gtk/pango

    In file included from /usr/lib/x86_64-linux-gnu/glib-2.0/include/glibconfig.h:9:0, from /usr/include/glib-2.0/glib/gtypes.h:32, from /usr/include/glib-2.0/glib/galloca.h:32, from /usr/include/glib-2.0/glib.h:30, from /usr/include/pango-1.0/pango/pango-coverage.h:25, from /usr/include/pango-1.0/pango/pango-font.h:25, from /usr/include/pango-1.0/pango/pango-attributes.h:25, from /usr/include/pango-1.0/pango/pango.h:25, from ./pango.go.h:7, from src/github.com/mattn/go-gtk/pango/pango.go:5: /usr/include/glib-2.0/glib/gtypes.h: In function '_GLIB_CHECKED_ADD_U64': /usr/include/glib-2.0/glib/gmacros.h:232:53: error: size of array '_GStaticAssertCompileTimeAssertion_0' is negative #define G_STATIC_ASSERT(expr) typedef char G_PASTE (GStaticAssertCompileTimeAssertion, COUNTER)[(expr) ? 1 : -1] G_GNUC_UNUSED ^ /usr/include/glib-2.0/glib/gmacros.h:229:47: note: in definition of macro 'G_PASTE_ARGS' #define G_PASTE_ARGS(identifier1,identifier2) identifier1 ## identifier2 ^ /usr/include/glib-2.0/glib/gmacros.h:232:44: note: in expansion of macro 'G_PASTE' #define G_STATIC_ASSERT(expr) typedef char G_PASTE (GStaticAssertCompileTimeAssertion, COUNTER)[(expr) ? 1 : -1] G_GNUC_UNUSED ^ /usr/include/glib-2.0/glib/gtypes.h:422:3: note: in expansion of macro 'G_STATIC_ASSERT' G_STATIC_ASSERT(sizeof (unsigned long long) == sizeof (guint64));


    go env

    GOARCH="arm" GOBIN="" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOOS="linux" GOPATH="/home/minhaj/GoLang" GORACE="" GOROOT="/usr/local/go" GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64" GCCGO="gccgo" GOARM="" CC="arm-linux-gnueabi-gcc" GOGCCFLAGS="-fPIC -marm -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build472526669=/tmp/go-build -gno-record-gcc-switches" CXX="arm-linux-gnueabi-g++" CGO_ENABLED="1" PKG_CONFIG="pkg-config" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2"

  • GTK 2 v 3

    GTK 2 v 3

    I started merging @agl go-gtk into @mattn go-gtk after I realized the @agl fork had broken error reporting : https://github.com/agl/pond/issues/143#issuecomment-72358811

    I’ve started work on a pull request for the GTK 2 changes, but @agl switched to GTK 3 at some point. And Pond now uses GTK 3’s Grids everywhere.

    Anyone considered adding GTK 3 support here? I’m actually unsure how go-gtk should best support both GTK 2 and 3 :

    Separate gtk2 and gtk3 directories with user settable gtk symlink to gtk2 or gtk3?

    If so, what about the common code? Just a convention that gtk[23]/common.go should be (almost?) the same? A go generate script that builds 'gtk[23]/common.gofromgtk+/common.go` with patch files? etc.

  • Error while creating new ListStore

    Error while creating new ListStore

    Gentoo, GTK+ 2.24.30, Go 1.7.0, latest go-gtk3 and go-sqlite3.

    Encountering an error while initializing my application (https://github.com/pztrn/urtrator), on NewListStore() call:

    Initializing requester goroutine pooler...
    fatal error: unexpected signal during runtime execution
    [signal SIGSEGV: segmentation violation code=0x1 addr=0xffffffff94108016 pc=0x7f4fa01cb1e8]
    
    runtime stack:
    runtime.throw(0x7bc8a1, 0x2a)
        /usr/lib/go/src/runtime/panic.go:566 +0x95
    runtime.sigpanic()
        /usr/lib/go/src/runtime/sigpanic_unix.go:12 +0x2cc
    
    goroutine 1 [syscall, locked to thread]:
    runtime.cgocall(0x66ed10, 0xc420053a70, 0xc400000000)
        /usr/lib/go/src/runtime/cgocall.go:131 +0x110 fp=0xc420053a28 sp=0xc4200539e8
    github.com/mattn/go-gtk/gtk._Cfunc_gtk_list_store_newv(0x7f4f00000009, 0x7f4f941492b0, 0x0)
        ??:0 +0x4e fp=0xc420053a70 sp=0xc420053a28
    github.com/mattn/go-gtk/gtk.NewListStore(0xc420053d38, 0x9, 0x9, 0x0)
        /data/.go/src/github.com/mattn/go-gtk/gtk/gtk.go:5093 +0x124 fp=0xc420053ae8 sp=0xc420053a70
    github.com/pztrn/urtrator/ui.(*MainWindow).initializeStorages(0xc420080480)
        /data/.go/src/github.com/pztrn/urtrator/ui/mainwindow.go:599 +0x5c6 fp=0xc420053dd8 sp=0xc420053ae8
    github.com/pztrn/urtrator/ui.(*MainWindow).Initialize(0xc420080480)
        /data/.go/src/github.com/pztrn/urtrator/ui/mainwindow.go:324 +0x4d fp=0xc420053ee0 sp=0xc420053dd8
    main.main()
        /data/.go/src/github.com/pztrn/urtrator/urtrator.go:33 +0x150 fp=0xc420053f48 sp=0xc420053ee0
    runtime.main()
        /usr/lib/go/src/runtime/proc.go:183 +0x1f4 fp=0xc420053fa0 sp=0xc420053f48
    runtime.goexit()
        /usr/lib/go/src/runtime/asm_amd64.s:2086 +0x1 fp=0xc420053fa8 sp=0xc420053fa0
    
    goroutine 17 [syscall, locked to thread]:
    runtime.goexit()
        /usr/lib/go/src/runtime/asm_amd64.s:2086 +0x1
    
    goroutine 5 [chan receive]:
    database/sql.(*DB).connectionOpener(0xc4200b11e0)
        /usr/lib/go/src/database/sql/sql.go:730 +0x4a
    created by database/sql.Open
        /usr/lib/go/src/database/sql/sql.go:493 +0x1e9
    exit status 2
    

    OS X 10.11.6, GTK+ 2.24.31, Go 1.7.1, same app crashing like that:

    Loading favorite servers...
    fatal error: unexpected signal during runtime execution
    [signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x7fff9f0f0a7a]
    
    runtime stack:
    runtime.throw(0x43f18f8, 0x2a)
        /usr/local/Cellar/go/1.7.1/libexec/src/runtime/panic.go:566 +0x95
    runtime.sigpanic()
        /usr/local/Cellar/go/1.7.1/libexec/src/runtime/sigpanic_unix.go:12 +0x2cc
    
    goroutine 1 [syscall, locked to thread]:
    runtime.cgocall(0x4233480, 0xc420049dd0, 0x0)
        /usr/local/Cellar/go/1.7.1/libexec/src/runtime/cgocall.go:131 +0x110 fp=0xc420049da0 sp=0xc420049d60
    github.com/mattn/go-gtk/gtk._Cfunc_gtk_main()
        ??:0 +0x41 fp=0xc420049dd0 sp=0xc420049da0
    github.com/mattn/go-gtk/gtk.Main()
        /Volumes/DATA/.go/src/github.com/mattn/go-gtk/gtk/gtk.go:248 +0x14 fp=0xc420049dd8 sp=0xc420049dd0
    github.com/pztrn/urtrator/ui.(*MainWindow).Initialize(0xc4200a2120)
        /Volumes/DATA/.go/src/github.com/pztrn/urtrator/ui/mainwindow.go:456 +0xcf4 fp=0xc420049ee0 sp=0xc420049dd8
    main.main()
        /Volumes/DATA/.go/src/github.com/pztrn/urtrator/urtrator.go:33 +0x150 fp=0xc420049f48 sp=0xc420049ee0
    runtime.main()
        /usr/local/Cellar/go/1.7.1/libexec/src/runtime/proc.go:183 +0x1f4 fp=0xc420049fa0 sp=0xc420049f48
    runtime.goexit()
        /usr/local/Cellar/go/1.7.1/libexec/src/runtime/asm_amd64.s:2086 +0x1 fp=0xc420049fa8 sp=0xc420049fa0
    
    goroutine 17 [syscall, locked to thread]:
    runtime.goexit()
        /usr/local/Cellar/go/1.7.1/libexec/src/runtime/asm_amd64.s:2086 +0x1
    
    goroutine 35 [chan receive]:
    database/sql.(*DB).connectionOpener(0xc4200d51e0)
        /usr/local/Cellar/go/1.7.1/libexec/src/database/sql/sql.go:730 +0x4a
    created by database/sql.Open
        /usr/local/Cellar/go/1.7.1/libexec/src/database/sql/sql.go:493 +0x1e9
    

    Is that related to GTK bindings, or SQLite3? If GTK - what's the problem? Any ideas?

  • About dialog: only one tab in

    About dialog: only one tab in "Thanks" dialog is allowed with AboutDialog.SetLogo()

    I'm trying to add "Authors" and "Artists" tab in about dialog, and got panic:

    fatal error: unexpected signal during runtime execution
    [signal SIGSEGV: segmentation violation code=0x80 addr=0x0 pc=0x7f641b9a64c6]
    
    runtime stack:
    runtime.throw(0x769c25, 0x2a)
        /usr/lib/go/src/runtime/panic.go:566 +0x95
    runtime.sigpanic()
        /usr/lib/go/src/runtime/sigpanic_unix.go:12 +0x2cc
    
    goroutine 1 [syscall, locked to thread]:
    runtime.cgocall(0x629050, 0xc420053720, 0x0)
        /usr/lib/go/src/runtime/cgocall.go:131 +0x110 fp=0xc4200536f0 sp=0xc4200536b0
    github.com/mattn/go-gtk/gtk._Cfunc_gtk_about_dialog_set_documenters(0x12bc190, 0x10ce190)
        ??:0 +0x41 fp=0xc420053720 sp=0xc4200536f0
    github.com/mattn/go-gtk/gtk.(*AboutDialog).SetDocumenters(0xc420014e70, 0xc420014e90, 0x1, 0x1)
        /data/.go/src/github.com/mattn/go-gtk/gtk/gtk.go:1624 +0x243 fp=0xc420053798 sp=0xc420053720
    runtime.call32(0xc420010de0, 0x7867e8, 0xb91ac8, 0x0)
        /usr/lib/go/src/runtime/asm_amd64.s:479 +0x4c fp=0xc420053850 sp=0xc420053820
    reflect.Value.call(0x6fb320, 0x7867e8, 0x13, 0x7608c1, 0x4, 0xb91ac8, 0x0, 0x0, 0xc42001e3c0, 0x71a160, ...)
        /usr/lib/go/src/reflect/value.go:434 +0x5c8 fp=0xc420053ba0 sp=0xc420053850
    reflect.Value.Call(0x6fb320, 0x7867e8, 0x13, 0xb91ac8, 0x0, 0x0, 0x46c7ec, 0x0, 0x470c50)
        /usr/lib/go/src/reflect/value.go:302 +0xa4 fp=0xc420053c08 sp=0xc420053ba0
    github.com/mattn/go-gtk/glib._go_glib_callback(0x1127870)
        /data/.go/src/github.com/mattn/go-gtk/glib/glib.go:758 +0x11e fp=0xc420053c90 sp=0xc420053c08
    github.com/mattn/go-gtk/glib._cgoexpwrap_b00a5877f6a0__go_glib_callback(0x1127870)
        ??:0 +0x2b fp=0xc420053ca8 sp=0xc420053c90
    runtime.call32(0x0, 0x7fffef65c568, 0x7fffef65c600, 0x8)
        /usr/lib/go/src/runtime/asm_amd64.s:479 +0x4c fp=0xc420053cd8 sp=0xc420053ca8
    runtime.cgocallbackg1(0x0)
        /usr/lib/go/src/runtime/cgocall.go:283 +0x19d fp=0xc420053d50 sp=0xc420053cd8
    runtime.cgocallbackg(0x0)
        /usr/lib/go/src/runtime/cgocall.go:170 +0x84 fp=0xc420053db8 sp=0xc420053d50
    runtime.cgocallback_gofunc(0x445d88, 0x62cd30, 0xc420053e50, 0xb772e0)
        /usr/lib/go/src/runtime/asm_amd64.s:728 +0x74 fp=0xc420053dd8 sp=0xc420053db8
    runtime.asmcgocall(0x62cd30, 0xc420053e50)
        /usr/lib/go/src/runtime/asm_amd64.s:575 +0x42 fp=0xc420053de0 sp=0xc420053dd8
    runtime.cgocall(0x62cd30, 0xc420053e50, 0x0)
        /usr/lib/go/src/runtime/cgocall.go:132 +0x128 fp=0xc420053e20 sp=0xc420053de0
    github.com/mattn/go-gtk/gtk._Cfunc_gtk_main()
        ??:0 +0x41 fp=0xc420053e50 sp=0xc420053e20
    github.com/mattn/go-gtk/gtk.Main()
        /data/.go/src/github.com/mattn/go-gtk/gtk/gtk.go:248 +0x14 fp=0xc420053e58 sp=0xc420053e50
    runtime.main()
        /usr/lib/go/src/runtime/proc.go:183 +0x1f4 fp=0xc420053fa0 sp=0xc420053f48
    runtime.goexit()
        /usr/lib/go/src/runtime/asm_amd64.s:2086 +0x1 fp=0xc420053fa8 sp=0xc420053fa0
    

    (Removed my app name in sake of NDA, sorry).

    Here's example code that cause the issue:

    func ShowAboutDialog() {
        ad := gtk.NewAboutDialog()
    
        ad.SetProgramName("TheProgram")
        ad.SetComments("TheDescription")
        ad.SetVersion("0.1")
        ad.SetWebsite("http://somewebsite.com")
        ad.SetLogo(logo)
    
        // ToDo: put it in plain text files.
        var authors []string
        authors = append(authors, "I AM THE AUTHOR, HWEHEHE")
        ad.SetAuthors(authors)
    
        var artists []string
        artists = append(artists, "I AM THE ONLY ARTIST!")
        ad.SetArtists(artists)
    
        ad.SetCopyright("WHO NEEDS COPYRIGHT HERE")
        ad.SetLicense("NDA!")
    
        ad.ShowAll()
    }
    

    Regarding example code and github.com/mattn/go-gtk/gtk.(*AboutDialog).SetDocumenters - any call for creating more than one tab (SetArtists, SetDocumenters, etc.) cause application crash.

    And very interesting part - when I comment out ad.SetLogo(logo) (which is *gdkpixbuf.Pixbuf) - everything is normal now and I can add more than one tab here.

    So is this go-gtk problem, or GTK+2 itself?

  • In windows_64 make fail , I hope get help, thanks

    In windows_64 make fail , I hope get help, thanks

    This my error info. D:\Go\src\go-gtk>make cd pango && go get -x WORK=C:\Users\czxichenAppData\Local\Temp\go-build213470251 mkdir -p $WORK\go-gtk\pango_obj
    mkdir -p $WORK\go-gtk
    cd D:\Go\src\go-gtk\pango pkg-config --cflags pango pkg-config --libs pango CGO_LDFLAGS="-g" "-O2" "-Ld:/Program" "Files/gtk/lib" "-lpango-1.0" "-lm" "-lg object-2.0" "-lglib-2.0" "-lintl" "D:\Go\pkg\tool\windows_amd64\cgo.exe" -o bjdir "C:\Users\dijl\AppData\Local\Temp\go-build213470251\go-gtk\pango
    _obj" -- -mms-bitfields "-Id:/Program" Files/gtk/include/pango-1.0 "-Id:/Pro gram" Files/gtk/include/glib-2.0 "-Id:/Program" Files/gtk/lib/glib-2.0/inclu de -I "C:\Users\dijl\AppData\Local\Temp\go-build213470251\go-gtk\pango
    _obj" pango.go

    go-gtk/pango

    gcc: error: Files/gtk/include/pango-1.0: No such file or directory gcc: error: Files/gtk/include/glib-2.0: No such file or directory gcc: error: Files/gtk/lib/glib-2.0/include: No such file or directory makefile:2: recipe for target 'all' failed make: *** [all] Error 2

    I get gtk_dev ,but i don't know use , gtk_dev path : 'D:\gcc\gtk_dev'

  • Cannot compile examples.

    Cannot compile examples.

    Hi,

    I tried to compile examples on release.r57.1, but it could not. I got a error message as follows.

    $ cd $GOROOT/src/pkg/github.com/mattn/go-gtk/example/
    $ cd demo && gomake
    6g  -o _go_.6 demo.go 
    6l  -o demo _go_.6
    MACHORESERVE too small: 3608 > 3072
    make[1]: *** [demo] Error 1
    make: *** [all] Error 2
    

    My environment is as follows.

    $ 6g -V
    6g version release.r57.1 8294
    $ sw_vers
    ProductName:    Mac OS X
    ProductVersion: 10.6.7
    BuildVersion:   10J869
    
  • after go update go-GTk won't install

    after go update go-GTk won't install

    I updated go and know Go-GTK gives the following errors:

    jchristoffs-iMac:go-gtk jim$ make install cd pango && gomake install CGOPKGPATH= cgo -- pkg-config --cflags pango pango.go touch _obj/_cgo_run 6g -o go.6 _obj/pango.cgo1.go _obj/_cgo_gotypes.go 6c -FVw -I/Users/jim/go/pkg/darwin_amd64 -I . -o "_cgo_defun.6" _obj/_cgo_defun.c gcc -m64 -I . -g -fPIC -O2 -o _cgo_main.o -c pkg-config --cflags pango _obj/_cgo_main.c gcc -m64 -I . -g -fPIC -O2 -o pango.cgo2.o -c pkg-config --cflags pango _obj/pango.cgo2.c gcc -m64 -I . -g -fPIC -O2 -o _cgo_export.o -c pkg-config --cflags pango _obj/_cgo_export.c gcc -m64 -g -fPIC -O2 -o cgo1.o _cgo_main.o pango.cgo2.o _cgo_export.o -lpthread pkg-config --libs pango ld: warning: in /sw/lib/libpango-1.0.dylib, file was built for i386 which is not the architecture being linked (x86_64) ld: warning: in /sw/lib/libgobject-2.0.dylib, file was built for i386 which is not the architecture being linked (x86_64) ld: warning: in /sw/lib/libgmodule-2.0.dylib, file was built for i386 which is not the architecture being linked (x86_64) ld: warning: in /sw/lib/libglib-2.0.dylib, file was built for i386 which is not the architecture being linked (x86_64) ld: warning: in /sw/lib/libintl.dylib, file was built for i386 which is not the architecture being linked (x86_64) cgo -dynimport cgo1.o >_obj/cgo_import.c && mv -f _obj/cgo_import.c _obj/_cgo_import.c 6c -FVw -I . -o "_cgo_import.6" _obj/_cgo_import.c rm -f _obj/pango.a gopack grc _obj/pango.a go.6 _cgo_defun.6 _cgo_import.6 pango.cgo2.o _cgo_export.o cp _obj/pango.a "/Users/jim/go/pkg/darwin_amd64/pango.a" cd glib && gomake install CGOPKGPATH= cgo -- pkg-config --cflags glib-2.0 gobject-2.0 glib.go touch _obj/_cgo_run 6g -o go.6 _obj/glib.cgo1.go _obj/_cgo_gotypes.go 6c -FVw -I/Users/jim/go/pkg/darwin_amd64 -I . -o "_cgo_defun.6" _obj/_cgo_defun.c gcc -m64 -I . -g -fPIC -O2 -o _cgo_main.o -c pkg-config --cflags glib-2.0 gobject-2.0 _obj/_cgo_main.c gcc -m64 -I . -g -fPIC -O2 -o glib.cgo2.o -c pkg-config --cflags glib-2.0 gobject-2.0 _obj/glib.cgo2.c gcc -m64 -I . -g -fPIC -O2 -o _cgo_export.o -c pkg-config --cflags glib-2.0 gobject-2.0 _obj/_cgo_export.c gcc -m64 -g -fPIC -O2 -o cgo1.o _cgo_main.o glib.cgo2.o _cgo_export.o pkg-config --libs glib-2.0 gobject-2.0 ld: warning: in /sw/lib/libgobject-2.0.dylib, file was built for i386 which is not the architecture being linked (x86_64) ld: warning: in /sw/lib/libglib-2.0.dylib, file was built for i386 which is not the architecture being linked (x86_64) ld: warning: in /sw/lib/libintl.dylib, file was built for i386 which is not the architecture being linked (x86_64) Undefined symbols: "_g_slist_copy", referenced from: __cgo_437809274e4f_Cfunc_g_slist_copy in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_slist_copy) "_g_slist_find", referenced from: __cgo_437809274e4f_Cfunc_g_slist_find in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_slist_find) "_g_list_alloc", referenced from: __cgo_437809274e4f_Cfunc_g_list_alloc in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_alloc) "_g_list_nth", referenced from: __cgo_437809274e4f_Cfunc_g_list_nth in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_nth_prev, __cgo_437809274e4f_Cfunc_g_list_nth_data , __cgo_437809274e4f_Cfunc_g_list_nth ) "_g_value_set_string", referenced from: __cgo_437809274e4f_Cfunc_init_gvalue_string in glib.cgo2.o "_g_list_index", referenced from: __cgo_437809274e4f_Cfunc_g_list_index in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_index) "_g_slist_prepend", referenced from: __cgo_437809274e4f_Cfunc_g_slist_prepend in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_slist_prepend) "_g_list_nth_data", referenced from: __cgo_437809274e4f_Cfunc_g_list_nth_data in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_nth_data) "_g_slist_last", referenced from: __cgo_437809274e4f_Cfunc_g_slist_last in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_slist_last) "_g_value_set_uchar", referenced from: __cgo_437809274e4f_Cfunc_init_gvalue_byte in glib.cgo2.o "_g_list_free", referenced from: __cgo_437809274e4f_Cfunc_g_list_free in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_free_1, __cgo_437809274e4f_Cfunc_g_list_free ) "_g_slist_insert_before", referenced from: __cgo_437809274e4f_Cfunc_g_slist_insert_before in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_slist_insert_before) "_g_list_append", referenced from: __cgo_437809274e4f_Cfunc_g_list_append in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_append) "_g_value_set_uint", referenced from: __cgo_437809274e4f_Cfunc_init_gvalue_uint in glib.cgo2.o "_g_list_copy", referenced from: __cgo_437809274e4f_Cfunc_g_list_copy in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_copy) "_g_utf8_validate", referenced from: __cgo_437809274e4f_Cfunc__g_utf8_validate in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc__g_utf8_validate) "_g_list_find", referenced from: __cgo_437809274e4f_Cfunc_g_list_find in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_find) "_g_list_insert_before", referenced from: __cgo_437809274e4f_Cfunc_g_list_insert_before in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_insert_before) "_g_value_get_string", referenced from: __cgo_437809274e4f_Cfunc_g_value_get_string in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_value_get_string) "_g_list_last", referenced from: __cgo_437809274e4f_Cfunc_g_list_last in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_last) "_g_slist_reverse", referenced from: __cgo_437809274e4f_Cfunc_g_slist_reverse in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_slist_reverse) "_g_list_first", referenced from: __cgo_437809274e4f_Cfunc_g_list_first in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_first) "_g_slist_position", referenced from: __cgo_437809274e4f_Cfunc_g_slist_position in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_slist_position) "_g_slist_length", referenced from: __cgo_437809274e4f_Cfunc_g_slist_length in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_slist_length) "_g_slist_free_1", referenced from: __cgo_437809274e4f_Cfunc_g_slist_free1 in glib.cgo2.o "_g_malloc0", referenced from: __cgo_437809274e4f_Cfunc_init_gvalue_uint in glib.cgo2.o __cgo_437809274e4f_Cfunc_init_gvalue_string in glib.cgo2.o __cgo_437809274e4f_Cfunc_init_gvalue_byte in glib.cgo2.o __cgo_437809274e4f_Cfunc_init_gvalue_bool in glib.cgo2.o __cgo_437809274e4f_Cfunc_init_gvalue_int in glib.cgo2.o __cgo_437809274e4f_Cfunc_init_gvalue_double in glib.cgo2.o "_g_list_insert", referenced from: __cgo_437809274e4f_Cfunc_g_list_insert in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_insert_before, __cgo_437809274e4f_Cfunc_g_list_insert ) "_g_slist_alloc", referenced from: __cgo_437809274e4f_Cfunc_g_slist_alloc in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_slist_alloc) "_g_list_remove", referenced from: __cgo_437809274e4f_Cfunc_g_list_remove in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_remove_link, __cgo_437809274e4f_Cfunc_g_list_remove_all , __cgo_437809274e4f_Cfunc_g_list_remove ) "_g_slist_index", referenced from: __cgo_437809274e4f_Cfunc_g_slist_index in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_slist_index) "_g_slist_delete_link", referenced from: __cgo_437809274e4f_Cfunc_g_slist_delete_link in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_slist_delete_link) "_g_value_set_boolean", referenced from: __cgo_437809274e4f_Cfunc_init_gvalue_bool in glib.cgo2.o "_g_value_get_int", referenced from: __cgo_437809274e4f_Cfunc_g_value_get_int in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_value_get_int) "_g_list_concat", referenced from: __cgo_437809274e4f_Cfunc_g_list_concat in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_concat) "_g_list_prepend", referenced from: __cgo_437809274e4f_Cfunc_g_list_prepend in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_prepend) "_g_object_set_property", referenced from: __cgo_437809274e4f_Cfunc_g_object_set_property in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_object_set_property) "_g_slist_nth_data", referenced from: __cgo_437809274e4f_Cfunc_g_slist_nth_data in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_slist_nth_data) "_g_object_ref", referenced from: __cgo_437809274e4f_Cfunc_g_object_ref in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_object_ref) "_g_slist_append", referenced from: __cgo_437809274e4f_Cfunc_g_slist_append in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_slist_append) "_g_list_position", referenced from: __cgo_437809274e4f_Cfunc_g_list_position in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_position) "_g_list_reverse", referenced from: __cgo_437809274e4f_Cfunc_g_list_reverse in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_reverse) "_g_list_remove_all", referenced from: __cgo_437809274e4f_Cfunc_g_list_remove_all in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_remove_all) "_g_list_nth_prev", referenced from: __cgo_437809274e4f_Cfunc_g_list_nth_prev in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_nth_prev) "_g_list_delete_link", referenced from: __cgo_437809274e4f_Cfunc_g_list_delete_link in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_delete_link) "_g_list_length", referenced from: __cgo_437809274e4f_Cfunc_g_list_length in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_length) "_g_type_check_instance_cast", referenced from: __cgo_437809274e4f_Cfunc_to_GObject in glib.cgo2.o "_g_slist_nth", referenced from: __cgo_437809274e4f_Cfunc_g_slist_nth in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_slist_nth, __cgo_437809274e4f_Cfunc_g_slist_nth_data ) "_g_list_free_1", referenced from: __cgo_437809274e4f_Cfunc_g_list_free_1 in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_free_1) "_g_object_unref", referenced from: __cgo_437809274e4f_Cfunc_g_object_unref in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_object_unref) "_g_object_set", referenced from: __cgo_437809274e4f_Cfunc__g_object_set in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_object_set_property, __cgo_437809274e4f_Cfunc__g_object_set ) "_g_slist_remove_all", referenced from: __cgo_437809274e4f_Cfunc_g_slist_remove_all in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_slist_remove_all) "_g_value_init", referenced from: __cgo_437809274e4f_Cfunc_g_value_init_string in glib.cgo2.o __cgo_437809274e4f_Cfunc_g_value_init_int in glib.cgo2.o __cgo_437809274e4f_Cfunc_init_gvalue_uint in glib.cgo2.o __cgo_437809274e4f_Cfunc_init_gvalue_string in glib.cgo2.o __cgo_437809274e4f_Cfunc_init_gvalue_byte in glib.cgo2.o __cgo_437809274e4f_Cfunc_init_gvalue_bool in glib.cgo2.o __cgo_437809274e4f_Cfunc_init_gvalue_int in glib.cgo2.o __cgo_437809274e4f_Cfunc_init_gvalue_double in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_value_init_int, __cgo_437809274e4f_Cfunc_g_value_init_string ) "_g_slist_remove", referenced from: __cgo_437809274e4f_Cfunc_g_slist_remove in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_slist_remove, __cgo_437809274e4f_Cfunc_g_slist_remove_all ) "_g_list_remove_link", referenced from: __cgo_437809274e4f_Cfunc_g_list_remove_link in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_list_remove_link) "_g_value_set_int", referenced from: __cgo_437809274e4f_Cfunc_init_gvalue_int in glib.cgo2.o "_g_value_set_double", referenced from: __cgo_437809274e4f_Cfunc_init_gvalue_double in glib.cgo2.o "_g_slist_free", referenced from: __cgo_437809274e4f_Cfunc_g_slist_free in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_slist_free1, __cgo_437809274e4f_Cfunc_g_slist_free ) "_g_locale_from_utf8", referenced from: __cgo_437809274e4f_Cfunc__g_locale_from_utf8 in glib.cgo2.o __cgo_437809274e4f_Cfunc__g_locale_to_utf8 in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc__g_locale_from_utf8) "_g_slist_concat", referenced from: __cgo_437809274e4f_Cfunc_g_slist_concat in glib.cgo2.o (maybe you meant: __cgo_437809274e4f_Cfunc_g_slist_concat) ld: symbol(s) not found collect2: ld returned 1 exit status make[1]: *** [cgo1.o] Error 1 make: *** [install] Error 2

  • fail PATH in import

    fail PATH in import

    cd $GOPATH
    git clone https://github.com/mattn/go-gtk.git
    cd go-gtk
    make
    # <...>
    gdkpixbuf.go:22:8: import "github.com/mattn/go-gtk/glib": cannot find package
    

    Fix: find ./ -name *.go -exec sed -i 's/github.com/mattn///g' {} ;

  • glib.go compile failure

    glib.go compile failure

    when compiling on debian i386 I'm getting these errors

    glib.go:35[_obj/glib.cgo1.go:38]: undefined: error glib.go:53[_obj/glib.cgo1.go:56]: undefined: error

  • Highlight selected column

    Highlight selected column

    Hi, I'm building csv reader using your libs and I wonder how solve column highlight problem. I was looking for some function to set attributes and I found one(AddAttribute) but this only read attribute from the column and set it to cell. Do you maybe have some other solution for my problem, I would be very pleased. Greetings PK

  • Is there anyone application based on GTK under Windows

    Is there anyone application based on GTK under Windows

    I am considered using GTK builds a cross platform of application. It seems like GTK tools works well under Linux, but it is quite worried me if it does under Windows. So, is there a successed commercial GTK application under Windows?

  • mac m1

    mac m1

    zhanghaodeMacBook-Air:go-gtk root# go get github.com/mattn/go-gtk/gtk

    github.com/mattn/go-gtk/pango

    ld: warning: ignoring file /opt/homebrew/Cellar/pango/1.50.5/lib/libpango-1.0.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64 ld: warning: ignoring file /opt/homebrew/Cellar/glib/2.70.4/lib/libglib-2.0.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64 ld: warning: ignoring file /opt/homebrew/Cellar/glib/2.70.4/lib/libgobject-2.0.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64 ld: warning: ignoring file /opt/homebrew/opt/gettext/lib/libintl.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64 ld: warning: ignoring file /opt/homebrew/Cellar/harfbuzz/4.0.1/lib/libharfbuzz.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64 Undefined symbols for architecture x86_64: "_g_object_unref", referenced from: __cgo_3aa97d579d37_Cfunc_g_object_unref in _x002.o (maybe you meant: __cgo_3aa97d579d37_Cfunc_g_object_unref) "_pango_font_description_copy", referenced from: __cgo_3aa97d579d37_Cfunc_pango_font_description_copy in _x002.o (maybe you meant: __cgo_3aa97d579d37_Cfunc_pango_font_description_copy) "_pango_font_description_free", referenced from: __cgo_3aa97d579d37_Cfunc_pango_font_description_free in _x002.o (maybe you meant: __cgo_3aa97d579d37_Cfunc_pango_font_description_free) "_pango_font_description_get_size", referenced from: __cgo_3aa97d579d37_Cfunc_pango_font_description_get_size in _x002.o (maybe you meant: __cgo_3aa97d579d37_Cfunc_pango_font_description_get_size) "_pango_font_description_new", referenced from: __cgo_3aa97d579d37_Cfunc_pango_font_description_new in _x002.o (maybe you meant: __cgo_3aa97d579d37_Cfunc_pango_font_description_new) "_pango_font_description_set_size", referenced from: __cgo_3aa97d579d37_Cfunc_pango_font_description_set_size in _x002.o (maybe you meant: __cgo_3aa97d579d37_Cfunc_pango_font_description_set_size) "_pango_layout_new", referenced from: __cgo_3aa97d579d37_Cfunc_pango_layout_new in _x002.o (maybe you meant: __cgo_3aa97d579d37_Cfunc_pango_layout_new) "_pango_layout_set_font_description", referenced from: __cgo_3aa97d579d37_Cfunc_pango_layout_set_font_description in _x002.o (maybe you meant: __cgo_3aa97d579d37_Cfunc_pango_layout_set_font_description) "_pango_layout_set_text", referenced from: __cgo_3aa97d579d37_Cfunc_pango_layout_set_text in _x002.o (maybe you meant: __cgo_3aa97d579d37_Cfunc_pango_layout_set_text) "_pango_layout_set_width", referenced from: __cgo_3aa97d579d37_Cfunc_pango_layout_set_width in _x002.o (maybe you meant: __cgo_3aa97d579d37_Cfunc_pango_layout_set_width) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

    github.com/mattn/go-gtk/glib

    ld: warning: ignoring file /opt/homebrew/opt/gettext/lib/libintl.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64 ld: warning: ignoring file /opt/homebrew/Cellar/glib/2.70.4/lib/libglib-2.0.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64 ld: warning: ignoring file /opt/homebrew/Cellar/glib/2.70.4/lib/libgobject-2.0.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64 Undefined symbols for architecture x86_64: "_g_filename_from_uri", referenced from: __cgo_1efdb3e50950_Cfunc_g_filename_from_uri in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_filename_from_uri) "_g_filename_to_uri", referenced from: __cgo_1efdb3e50950_Cfunc_g_filename_to_uri in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_filename_to_uri) "_g_get_application_name", referenced from: __cgo_1efdb3e50950_Cfunc_g_get_application_name in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_get_application_name) "_g_get_current_dir", referenced from: __cgo_1efdb3e50950_Cfunc_g_get_current_dir in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_get_current_dir) "_g_get_home_dir", referenced from: __cgo_1efdb3e50950_Cfunc_g_get_home_dir in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_get_home_dir) "_g_get_host_name", referenced from: __cgo_1efdb3e50950_Cfunc_g_get_host_name in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_get_host_name) "_g_get_prgname", referenced from: __cgo_1efdb3e50950_Cfunc_g_get_prgname in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_get_prgname) "_g_get_real_name", referenced from: __cgo_1efdb3e50950_Cfunc_g_get_real_name in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_get_real_name) "_g_get_system_config_dirs", referenced from: __cgo_1efdb3e50950_Cfunc_g_get_system_config_dirs in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_get_system_config_dirs) "_g_get_system_data_dirs", referenced from: __cgo_1efdb3e50950_Cfunc_g_get_system_data_dirs in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_get_system_data_dirs) "_g_get_tmp_dir", referenced from: __cgo_1efdb3e50950_Cfunc_g_get_tmp_dir in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_get_tmp_dir) "_g_get_user_cache_dir", referenced from: __cgo_1efdb3e50950_Cfunc_g_get_user_cache_dir in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_get_user_cache_dir) "_g_get_user_config_dir", referenced from: __cgo_1efdb3e50950_Cfunc_g_get_user_config_dir in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_get_user_config_dir) "_g_get_user_data_dir", referenced from: __cgo_1efdb3e50950_Cfunc_g_get_user_data_dir in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_get_user_data_dir) "_g_get_user_name", referenced from: __cgo_1efdb3e50950_Cfunc_g_get_user_name in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_get_user_name) "_g_get_user_runtime_dir", referenced from: __cgo_1efdb3e50950_Cfunc_g_get_user_runtime_dir in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_get_user_runtime_dir) "_g_get_user_special_dir", referenced from: __cgo_1efdb3e50950_Cfunc_g_get_user_special_dir in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_get_user_special_dir) "_g_idle_add_full", referenced from: __cgo_1efdb3e50950_Cfunc__g_idle_add in _x002.o "_g_list_alloc", referenced from: __cgo_1efdb3e50950_Cfunc_g_list_alloc in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_list_alloc) "_g_list_append", referenced from: __cgo_1efdb3e50950_Cfunc_g_list_append in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_list_append) "_g_list_concat", referenced from: __cgo_1efdb3e50950_Cfunc_g_list_concat in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_list_concat) "_g_list_copy", referenced from: __cgo_1efdb3e50950_Cfunc_g_list_copy in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_list_copy) "_g_list_delete_link", referenced from: __cgo_1efdb3e50950_Cfunc_g_list_delete_link in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_list_delete_link) "_g_list_find", referenced from: __cgo_1efdb3e50950_Cfunc_g_list_find in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_list_find) "_g_list_first", referenced from: __cgo_1efdb3e50950_Cfunc_g_list_first in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_list_first) "_g_list_free", referenced from: __cgo_1efdb3e50950_Cfunc_g_list_free in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_list_free_1, __cgo_1efdb3e50950_Cfunc_g_list_free ) "_g_list_free_1", referenced from: __cgo_1efdb3e50950_Cfunc_g_list_free_1 in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_list_free_1) "_g_list_index", referenced from: __cgo_1efdb3e50950_Cfunc_g_list_index in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_list_index) "_g_list_insert", referenced from: __cgo_1efdb3e50950_Cfunc_g_list_insert in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_list_insert, __cgo_1efdb3e50950_Cfunc_g_list_insert_before ) "_g_list_insert_before", referenced from: __cgo_1efdb3e50950_Cfunc_g_list_insert_before in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_list_insert_before) "_g_list_last", referenced from: __cgo_1efdb3e50950_Cfunc_g_list_last in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_list_last) "_g_list_length", referenced from: __cgo_1efdb3e50950_Cfunc_g_list_length in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_list_length) "_g_list_nth", referenced from: __cgo_1efdb3e50950_Cfunc_g_list_nth in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_list_nth_prev, __cgo_1efdb3e50950_Cfunc_g_list_nth_data , __cgo_1efdb3e50950_Cfunc_g_list_nth ) "_g_list_nth_data", referenced from: __cgo_1efdb3e50950_Cfunc_g_list_nth_data in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_list_nth_data) "_g_list_nth_prev", referenced from: __cgo_1efdb3e50950_Cfunc_g_list_nth_prev in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_list_nth_prev) "_g_list_position", referenced from: __cgo_1efdb3e50950_Cfunc_g_list_position in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_list_position) "_g_list_prepend", referenced from: __cgo_1efdb3e50950_Cfunc_g_list_prepend in _x002.o (maybe you meant: __cgo_1efdb3e50950_Cfunc_g_list_prepend) "_g_list_remove", referenced from: __cgo_1efdb3e50950_Cfunc_g_list_remove in

  • go get ... does nothing on FreeBSD

    go get ... does nothing on FreeBSD

    go get ... returns no modules to query for ...@upgrade because first path element contains a wildcard FreeBSD 13.0-RELEASE-p4 go-1.17.1,1 gtk2-2.24.33 gtk3-3.24.30 gtk4-4.4.0

    gmake returns go: cannot find main module

A utility library to make use of the X Go Binding easier. (Implements EWMH and ICCCM specs, key binding support, etc.)

xgbutil is a utility library designed to work with the X Go Binding. This project's main goal is to make various X related tasks easier. For example,

Dec 10, 2022
Tiny cross-platform webview library for C/C++/Golang. Uses WebKit (Gtk/Cocoa) and Edge (Windows)

webview A tiny cross-platform webview library for C/C++/Golang to build modern cross-platform GUIs. Also, there are Rust bindings, Python bindings, Ni

Dec 28, 2022
gobbi is a set of generated Go bindings for gtk et al.

gobbi gobject bindings gobbi is a set of generated Go bindings for gobject based libraries. There are bindings, with varying degrees of completeness,

May 6, 2022
Tiny cross-platform webview library for C/C++/Golang. Uses WebKit (Gtk/Cocoa) and Edge (Windows)

webview A tiny cross-platform webview library for C/C++/Golang to build modern cross-platform GUIs. Also, there are Rust bindings, Python bindings, Ni

Jan 1, 2023
The X Go Binding is a low-level API to communicate with the X server. It is modeled on XCB and supports many X extensions.

Note that this project is largely unmaintained as I don't have the time to do or support more development. Please consider using this fork instead: ht

Dec 29, 2022
Qt binding for Go (Golang) with support for Windows / macOS / Linux / FreeBSD / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS / Ubuntu Touch / JavaScript / WebAssembly

Introduction Qt is a free and open-source widget toolkit for creating graphical user interfaces as well as cross-platform applications that run on var

Jan 2, 2023
Simple QML binding for Go

Qamel Qamel is a simple QML binding for Go, heavily inspired by therecipe/qt. This package only binds Qt's classes that used for creating a simple QML

Jan 3, 2023
SDL2 binding for Go

SDL2 binding for Go go-sdl2 is SDL2 wrapped for Go users. It enables interoperability between Go and the SDL2 library which is written in C. That mean

Dec 30, 2022
Qt binding for Go (Golang) aims get Go's compile speed again.

qt.go Qt5 binding for Go (Golang) without CGO that aims to achieve Go's native compile speeds. Instead of using common bindings and heavy C++ wrapper

Dec 19, 2022
A utility library to make use of the X Go Binding easier. (Implements EWMH and ICCCM specs, key binding support, etc.)

xgbutil is a utility library designed to work with the X Go Binding. This project's main goal is to make various X related tasks easier. For example,

Dec 10, 2022
A utility library to make use of the X Go Binding easier. (Implements EWMH and ICCCM specs, key binding support, etc.)

xgbutil is a utility library designed to work with the X Go Binding. This project's main goal is to make various X related tasks easier. For example,

Dec 10, 2022
mass-binding-target is a command line tool for generating binding target list by search plot files from disk.

mass-binding-target mass-binding-target is a command line tool for generating binding target list by search plot files from disk. Build Go 1.13 or new

Nov 5, 2021
Source code editor written in Go using go-gtk bindings. It aims to handle navigation effectively among large number of files.
Source code editor written in Go using go-gtk bindings. It aims to handle navigation effectively among large number of files.

tabby Source code editor written in Go using go-gtk bindings. It aims to handle navigation effectively among large number of files. screenshot: depend

Nov 16, 2022
Tiny cross-platform webview library for C/C++/Golang. Uses WebKit (Gtk/Cocoa) and Edge (Windows)

webview A tiny cross-platform webview library for C/C++/Golang to build modern cross-platform GUIs. Also, there are Rust bindings, Python bindings, Ni

Dec 28, 2022
gobbi is a set of generated Go bindings for gtk et al.

gobbi gobject bindings gobbi is a set of generated Go bindings for gobject based libraries. There are bindings, with varying degrees of completeness,

May 6, 2022
Tiny cross-platform webview library for C/C++/Golang. Uses WebKit (Gtk/Cocoa) and Edge (Windows)

webview A tiny cross-platform webview library for C/C++/Golang to build modern cross-platform GUIs. Also, there are Rust bindings, Python bindings, Ni

Jan 1, 2023
A Go language binding for encodeing and decoding data in the bencode format that is used by the BitTorrent peer-to-peer file sharing protocol.

bencode-go A Go language binding for encoding and decoding data in the bencode format that is used by the BitTorrent peer-to-peer file sharing protoco

Nov 27, 2022
SDL2 binding for Go

SDL2 binding for Go go-sdl2 is SDL2 wrapped for Go users. It enables interoperability between Go and the SDL2 library which is written in C. That mean

Jan 1, 2023
Reflectionless data binding for Go's net/http (not actively maintained)
Reflectionless data binding for Go's net/http (not actively maintained)

binding Reflectionless data binding for Go's net/http Features HTTP request data binding Data validation (custom and built-in) Error handling Benefits

Nov 18, 2022
Go binding for the cairo graphics library

go-cairo Go binding for the cairo graphics library Based on Dethe Elza's version https://bitbucket.org/dethe/gocairo but significantly extended and up

Dec 19, 2022