adds vendor directory
vendors dependencies in standard `vendor` directory, managed by glide
This commit is contained in:
55
vendor/github.com/mattn/go-gtk/example/textview/textview.go
generated
vendored
Normal file
55
vendor/github.com/mattn/go-gtk/example/textview/textview.go
generated
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/mattn/go-gtk/gdk"
|
||||
"github.com/mattn/go-gtk/glib"
|
||||
"github.com/mattn/go-gtk/gtk"
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
func main() {
|
||||
gtk.Init(nil)
|
||||
|
||||
window := gtk.NewWindow(gtk.WINDOW_TOPLEVEL)
|
||||
window.SetPosition(gtk.WIN_POS_CENTER)
|
||||
window.SetTitle("GTK Go!")
|
||||
window.SetIconName("textview")
|
||||
window.Connect("destroy", gtk.MainQuit)
|
||||
|
||||
textview := gtk.NewTextView()
|
||||
textview.SetEditable(true)
|
||||
textview.SetCursorVisible(true)
|
||||
var iter gtk.TextIter
|
||||
buffer := textview.GetBuffer()
|
||||
|
||||
buffer.GetStartIter(&iter)
|
||||
buffer.Insert(&iter, "Hello ")
|
||||
|
||||
tag := buffer.CreateTag("bold", map[string]string{"background": "#FF0000", "weight": "700"})
|
||||
buffer.InsertWithTag(&iter, "Google!", tag)
|
||||
|
||||
u := "http://www.google.com"
|
||||
tag.SetData("tag-name", unsafe.Pointer(&u))
|
||||
textview.Connect("event-after", func(ctx *glib.CallbackContext) {
|
||||
arg := ctx.Args(0)
|
||||
if ev := *(**gdk.EventAny)(unsafe.Pointer(&arg)); ev.Type != gdk.BUTTON_RELEASE {
|
||||
return
|
||||
}
|
||||
ev := *(**gdk.EventButton)(unsafe.Pointer(&arg))
|
||||
var iter gtk.TextIter
|
||||
textview.GetIterAtLocation(&iter, int(ev.X), int(ev.Y))
|
||||
tags := iter.GetTags()
|
||||
for n := uint(0); n < tags.Length(); n++ {
|
||||
vv := tags.NthData(n)
|
||||
tag := gtk.NewTextTagFromPointer(vv)
|
||||
u := *(*string)(tag.GetData("tag-name"))
|
||||
fmt.Println(u)
|
||||
}
|
||||
})
|
||||
|
||||
window.Add(textview)
|
||||
window.SetSizeRequest(600, 600)
|
||||
window.ShowAll()
|
||||
gtk.Main()
|
||||
}
|
Reference in New Issue
Block a user