Hello community, here is the log from the commit of package go-go-gtk for openSUSE:Factory checked in at 2012-01-19 09:41:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/go-go-gtk (Old) and /work/SRC/openSUSE:Factory/.go-go-gtk.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "go-go-gtk", Maintainer is "" Changes: -------- --- /work/SRC/openSUSE:Factory/go-go-gtk/go-go-gtk.changes 2011-10-27 12:16:22.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.go-go-gtk.new/go-go-gtk.changes 2012-01-19 09:41:55.000000000 +0100 @@ -1,0 +2,6 @@ +Fri Dec 23 22:22:27 UTC 2011 - [email protected] + +- Update to 23.12.2011 git +- GtkEntry.SetAlignment() + +------------------------------------------------------------------- Old: ---- go-gtk-0.0.0+git20111019.tar.bz2 New: ---- go-gtk-0.0.0+git20111223.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ go-go-gtk.spec ++++++ --- /var/tmp/diff_new_pack.eaIQr9/_old 2012-01-19 09:41:57.000000000 +0100 +++ /var/tmp/diff_new_pack.eaIQr9/_new 2012-01-19 09:41:57.000000000 +0100 @@ -19,7 +19,7 @@ Name: go-go-gtk -Version: 0.0.0+git20111019 +Version: 0.0.0+git20111223 Release: 0 License: BSD ; LGPL-2.0+ Summary: Go bindings for GTK ++++++ go-gtk-0.0.0+git20111019.tar.bz2 -> go-gtk-0.0.0+git20111223.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-gtk/example/twitter/twitter.go new/go-gtk/example/twitter/twitter.go --- old/go-gtk/example/twitter/twitter.go 2011-10-19 18:23:01.000000000 +0200 +++ new/go-gtk/example/twitter/twitter.go 2011-12-23 23:06:39.000000000 +0100 @@ -1,36 +1,40 @@ package main import ( - "github.com/mattn/go-gtk/gtk" + "bytes" + "encoding/json" + "fmt" "github.com/mattn/go-gtk/gdk" "github.com/mattn/go-gtk/gdkpixbuf" - "http" - "json" - "bytes" + "github.com/mattn/go-gtk/gtk" "io" "io/ioutil" + "net/http" "os" "strings" ) -func url2pixbuf(url string) *gdkpixbuf.GdkPixbuf { +func readURL(url string) ([]byte, *http.Response) { r, err := http.Get(url) if err != nil { - return nil + return nil, nil } - t := r.Header.Get("Content-Type") - b := make([]byte, r.ContentLength) - if _, err = io.ReadFull(r.Body, b); err != nil { - return nil + var b []byte + if b, err = ioutil.ReadAll(r.Body); err != nil { + return nil, nil } + return b, r +} + +func bytes2pixbuf(data []byte, typ string) *gdkpixbuf.GdkPixbuf { var loader *gdkpixbuf.GdkPixbufLoader - if strings.Index(t, "jpeg") >= 0 { + if strings.Index(typ, "jpeg") >= 0 { loader, _ = gdkpixbuf.PixbufLoaderWithMimeType("image/jpeg") } else { loader, _ = gdkpixbuf.PixbufLoaderWithMimeType("image/png") } loader.SetSize(24, 24) - loader.Write(b) + loader.Write(data) loader.Close() return loader.GetPixbuf() } @@ -72,19 +76,26 @@ _, err = io.ReadFull(r.Body, b) } if err != nil { - println(err.String()) + fmt.Println(err) return } var j interface{} - json.NewDecoder(bytes.NewBuffer(b)).Decode(&j) + err = json.NewDecoder(bytes.NewBuffer(b)).Decode(&j) + if err != nil { + fmt.Println(err) + return + } arr := j.([]interface{}) for i := 0; i < len(arr); i++ { data := arr[i].(map[string]interface{}) icon := data["user"].(map[string]interface{})["profile_image_url"].(string) var iter gtk.GtkTextIter + pixbufbytes, resp := readURL(icon) gdk.ThreadsEnter() - buffer.GetStartIter(&iter) - buffer.InsertPixbuf(&iter, url2pixbuf(icon)) + buffer.GetEndIter(&iter) + if resp != nil { + buffer.InsertPixbuf(&iter, bytes2pixbuf(pixbufbytes, resp.Header.Get("Content-Type"))) + } gdk.ThreadsLeave() name := data["user"].(map[string]interface{})["screen_name"].(string) text := data["text"].(string) @@ -95,6 +106,8 @@ gtk.MainIterationDo(false) gdk.ThreadsLeave() } + } else { + fmt.Println(err) } button.SetSensitive(true) }() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-gtk/glib/glib.go new/go-gtk/glib/glib.go --- old/go-gtk/glib/glib.go 2011-10-19 18:23:01.000000000 +0200 +++ new/go-gtk/glib/glib.go 2011-12-23 23:06:39.000000000 +0100 @@ -46,32 +46,32 @@ g_object_set(object, property_name, *(gpointer**)value, NULL); } //static void _g_object_get(gpointer object, const gchar *property_name, void* value) { -// g_object_get(object, property_name, value, NULL); +// g_object_get(object, property_name, value, NULL); //} static void g_value_init_int(GValue* gv) { g_value_init(gv, G_TYPE_INT); } static void g_value_init_string(GValue* gv) { g_value_init(gv, G_TYPE_STRING); } static GValue* init_gvalue_string_type() { - GValue* gv = g_new0(GValue, 1); - g_value_init(gv, G_TYPE_STRING); - return gv; + GValue* gv = g_new0(GValue, 1); + g_value_init(gv, G_TYPE_STRING); + return gv; } static GValue* init_gvalue_string(gchar* val) { - GValue* gv = init_gvalue_string_type(); - g_value_set_string(gv, val); - return gv; + GValue* gv = init_gvalue_string_type(); + g_value_set_string(gv, val); + return gv; } static GValue* init_gvalue_int_type() { - GValue* gv = g_new0(GValue, 1); - g_value_init(gv, G_TYPE_INT); - return gv; + GValue* gv = g_new0(GValue, 1); + g_value_init(gv, G_TYPE_INT); + return gv; } static GValue* init_gvalue_int(gint val) { - GValue* gv = init_gvalue_int_type(); - g_value_set_int(gv, val); - return gv; + GValue* gv = init_gvalue_int_type(); + g_value_set_int(gv, val); + return gv; } static GValue* init_gvalue_uint(guint val) { GValue* gv = g_new0(GValue, 1); g_value_init(gv, G_TYPE_UINT); g_value_set_uint(gv, val); return gv; } @@ -87,7 +87,7 @@ uintptr_t* args; int args_no; gboolean ret; - guint id; + guint id; } callback_info; static uintptr_t callback_info_get_arg(callback_info* cbi, int idx) { @@ -131,18 +131,16 @@ cbi->id = g_signal_connect_data((gpointer)obj, name, G_CALLBACK(_callback), cbi, free_callback_info, G_CONNECT_SWAPPED); return cbi; } +static void _g_signal_emit_by_name(gpointer instance, const gchar *detailed_signal) { + g_signal_emit_by_name(instance, detailed_signal); +} */ // #cgo pkg-config: glib-2.0 gobject-2.0 import "C" import "unsafe" import "reflect" -import "container/vector" - -var callback_contexts *vector.Vector -func init() { - callback_contexts = new(vector.Vector) -} +var callback_contexts []*CallbackContext func bool2gboolean(b bool) C.gboolean { if b { @@ -473,7 +471,6 @@ C.g_object_set_property(C.to_GObject(v.Object), C.to_gcharptr(str), &val.Value) } - func Utf8Validate(str []byte, len int, bar **byte) bool { return gboolean2bool(C._g_utf8_validate(unsafe.Pointer(&str[0]), C.int(len), unsafe.Pointer(bar))) @@ -648,7 +645,7 @@ //export _go_glib_callback func _go_glib_callback(pcbi unsafe.Pointer) { cbi := (*C.callback_info)(pcbi) - context := callback_contexts.At(int(cbi.func_no)).(*CallbackContext) + context := callback_contexts[int(cbi.func_no)] rf := reflect.ValueOf(context.f) t := rf.Type() fargs := make([]reflect.Value, t.NumIn()) @@ -670,12 +667,18 @@ ctx := &CallbackContext{f, nil, reflect.ValueOf(v), reflect.ValueOf(data)} ptr := C.CString(s) defer C.free_string(ptr) - ctx.cbi = unsafe.Pointer(C._g_signal_connect(unsafe.Pointer(v.Object), C.to_gcharptr(ptr), C.int(callback_contexts.Len()))) - callback_contexts.Push(ctx) + ctx.cbi = unsafe.Pointer(C._g_signal_connect(unsafe.Pointer(v.Object), C.to_gcharptr(ptr), C.int(len(callback_contexts)))) + callback_contexts = append(callback_contexts, ctx) } func (v *GObject) StopEmission(s string) { ptr := C.CString(s) defer C.free_string(ptr) - C.g_signal_stop_emission_by_name((C.gpointer)(v.Object), C.to_gcharptr(ptr)); + C.g_signal_stop_emission_by_name((C.gpointer)(v.Object), C.to_gcharptr(ptr)) +} + +func (v *GObject) Emit(s string) { + ptr := C.CString(s) + defer C.free_string(ptr) + C._g_signal_emit_by_name((C.gpointer)(v.Object), C.to_gcharptr(ptr)) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-gtk/gtk/gtk.go new/go-gtk/gtk/gtk.go --- old/go-gtk/gtk/gtk.go 2011-10-19 18:23:01.000000000 +0200 +++ new/go-gtk/gtk/gtk.go 2011-12-23 23:06:39.000000000 +0100 @@ -631,7 +631,6 @@ import "github.com/mattn/go-gtk/pango" import "unsafe" import "reflect" -import "container/vector" func bool2gboolean(b bool) C.gboolean { if b { @@ -887,6 +886,9 @@ func (v *GtkWidget) StopEmission(s string) { glib.ObjectFromNative(unsafe.Pointer(v.Widget)).StopEmission(s) } +func (v *GtkWidget) Emit(s string) { + glib.ObjectFromNative(unsafe.Pointer(v.Widget)).Emit(s) +} func (v *GtkWidget) GetTopLevel() *GtkWidget { return &GtkWidget{ C.gtk_widget_get_toplevel(v.Widget)} @@ -2025,16 +2027,16 @@ C.gtk_about_dialog_set_website_label(C.to_GtkAboutDialog(v.Widget), C.to_gcharptr(ptr)) } func (v *GtkAboutDialog) GetAuthors() []string { - var authors *vector.StringVector + var authors []string cauthors := C.gtk_about_dialog_get_authors(C.to_GtkAboutDialog(v.Widget)) for { - authors.Push(C.GoString(C.to_charptr(*cauthors))) + authors = append(authors, C.GoString(C.to_charptr(*cauthors))) cauthors = C.next_gcharptr(cauthors) if *cauthors == nil { break } } - return authors.Copy() + return authors } func (v *GtkAboutDialog) SetAuthors(authors []string) { cauthors := C.make_strings(C.int(len(authors) + 1)) @@ -2048,16 +2050,16 @@ C.destroy_strings(cauthors) } func (v *GtkAboutDialog) GetDocumenters() []string { - var documenters *vector.StringVector + var documenters []string cdocumenters := C.gtk_about_dialog_get_documenters(C.to_GtkAboutDialog(v.Widget)) for { - documenters.Push(C.GoString(C.to_charptr(*cdocumenters))) + documenters = append(documenters, C.GoString(C.to_charptr(*cdocumenters))) cdocumenters = C.next_gcharptr(cdocumenters) if *cdocumenters == nil { break } } - return documenters.Copy() + return documenters } func (v *GtkAboutDialog) SetDocumenters(documenters []string) { cdocumenters := C.make_strings(C.int(len(documenters))) @@ -2070,16 +2072,16 @@ C.destroy_strings(cdocumenters) } func (v *GtkAboutDialog) GetArtists() []string { - var artists *vector.StringVector + var artists []string cartists := C.gtk_about_dialog_get_artists(C.to_GtkAboutDialog(v.Widget)) for { - artists.Push(C.GoString(C.to_charptr(*cartists))) + artists = append(artists, C.GoString(C.to_charptr(*cartists))) cartists = C.next_gcharptr(cartists) if *cartists == nil { break } } - return artists.Copy() + return artists } func (v *GtkAboutDialog) SetArtists(artists []string) { cartists := C.make_strings(C.int(len(artists))) @@ -2293,8 +2295,12 @@ // gtk_entry_get_layout // gtk_entry_get_layout_offsets -// gtk_entry_set_alignment -// gtk_entry_get_alignment +func (v *GtkEntry) SetAlignment(xalign float64) { + C.gtk_entry_set_alignment(C.to_GtkEntry(v.Widget), C.gfloat(xalign)) +} +func (v *GtkEntry) GetAlignment() float64 { + return float64(C.gtk_entry_get_alignment(C.to_GtkEntry(v.Widget))) +} // gtk_entry_set_completion // gtk_entry_layout_index_to_text_index // gtk_entry_text_index_to_layout_index -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
