本文整理汇总了Golang中github.com/mattn/go-gtk/gdk.GC类的典型用法代码示例。如果您正苦于以下问题:Golang GC类的具体用法?Golang GC怎么用?Golang GC使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了GC类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: draw_square
func draw_square(gc *gdk.GC, pixmap *gdk.Pixmap, x, y int) {
gc.SetRgbFgColor(gdk.NewColor("grey"))
pixmap.GetDrawable().DrawRectangle(gc, true,
x*INTER+DEC,
y*INTER+DEC,
40,
40)
gc.SetRgbFgColor(gdk.NewColor("black"))
pixmap.GetDrawable().DrawLine(gc,
x*INTER+INTER/2+DEC,
y*INTER+DEC,
x*INTER+INTER/2+DEC,
y*INTER+INTER+DEC)
pixmap.GetDrawable().DrawLine(gc,
x*INTER+DEC,
y*INTER+INTER/2+DEC,
x*INTER+INTER+DEC,
y*INTER+INTER/2+DEC)
if x == 0 {
clean_side(gc, pixmap, 0, y*INTER+DEC, INTER, INTER) // LEFT
} else if x == 18 {
clean_side(gc, pixmap, HEIGHT-INTER+1, y*INTER+DEC, -1, INTER) // RIGHT
}
if y == 0 {
clean_side(gc, pixmap, x*INTER+DEC, 0, x*INTER+INTER+DEC, INTER) // TOP
} else if y == 18 {
clean_side(gc, pixmap, x*INTER+DEC, HEIGHT-INTER+1, INTER, -1) // BOT
}
}
开发者ID:Khady,项目名称:gomoku,代码行数:29,代码来源:display.go
示例2: clean_side
func clean_side(gc *gdk.GC, pixmap *gdk.Pixmap, x1, y1, x2, y2 int) {
gc.SetRgbFgColor(gdk.NewColor("grey"))
pixmap.GetDrawable().DrawRectangle(gc, true,
x1,
y1,
x2,
y2)
}
开发者ID:Khady,项目名称:gomoku,代码行数:8,代码来源:display.go
示例3: createEvents
/*
* Erzeugt die ganzen Events für das drawing area mittels lambdas.
*
* Parameter:
* drawingarea - Die drawing area auf der gezeichnet werden soll
*
* Zu den Schnittstellenkommentaren: Leider gibts das anscheinend nicht direkt
* in go (jedenfall kein @param etc.) :/
*/
func createEvents(drawingarea *gtk.DrawingArea) {
// Wir brauchen ne pixmap in der wir die Pixeldaten speichern
var pixmap *gdk.Pixmap
// gdk.GC ist einfach eine Sammlung an Eigenschaften und Einstellungen zum zeichnen
var gc *gdk.GC
p := point{x: -1, y: -1}
drawingarea.Connect("configure-event", func() {
// wenns schon ne pixmap gibt, lösche diese
if pixmap != nil {
pixmap.Unref()
}
// hole pixmap und stuff
allocation := drawingarea.GetAllocation()
pixmap = gdk.NewPixmap(drawingarea.GetWindow().GetDrawable(), allocation.Width, allocation.Height, 24)
// weißen Hintergrund zeichnen:
gc = gdk.NewGC(pixmap.GetDrawable())
gc.SetRgbFgColor(gdk.NewColor("white"))
pixmap.GetDrawable().DrawRectangle(gc, true, 0, 0, -1, -1)
// Vorder- und Hintergrundfarbe setzen
gc.SetRgbFgColor(gdk.NewColor("black"))
gc.SetRgbBgColor(gdk.NewColor("red"))
})
// dieses event wird ausgeführt wenn auf das widget geklickt wurde
drawingarea.Connect("button-press-event", func(ctx *glib.CallbackContext) {
// Argumente holen
arg := ctx.Args(0)
// irgend son pointer auf ein objekt holen in dem mehr Infos stehen
mev := *(**gdk.EventMotion)(unsafe.Pointer(&arg))
// Position ausgeben
fmt.Println("Geklickte Position: ", p)
// hier ist meine eigene Logik:
// Wenn noch kein Klick registriert wurde ist p.x == p.y == -1 und da soll noch nichts gezeichnet werden
// erst wenn der zweite klick kommt soll zwischen diesem und dem alten eine Linie gezeichnet werden
p_neu := point{x: int(mev.X), y: int(mev.Y)}
if p.x != -1 && p.y != -1 {
pixmap.GetDrawable().DrawLine(gc, p.x, p.y, p_neu.x, p_neu.y)
drawingarea.GetWindow().Invalidate(nil, false)
}
// Position des neuen klicks speichern, es ist also der neue startpunkt der nächsten linie
p = p_neu
})
// dieses event wird ausgeführt wenn drawingarea.GetWindow().Invalidate(nil, false) aufgerufen wird
drawingarea.Connect("expose-event", func() {
if pixmap != nil {
drawingarea.GetWindow().GetDrawable().DrawDrawable(gc, pixmap.GetDrawable(), 0, 0, 0, 0, -1, -1)
}
})
// Events müssen manuell spezifiziert werden.
// Hier werden immer MASKs übergeben, hier also eben die BUTTON_PRESS_MASK,
// welche erst in einen int gecastet werden muss
drawingarea.SetEvents(int(gdk.BUTTON_PRESS_MASK))
}
开发者ID:paua-app,项目名称:curly-octo-moo,代码行数:69,代码来源:test001.go
示例4: display_init_grid
func display_init_grid(gc *gdk.GC, pixmap *gdk.Pixmap) {
gc.SetRgbFgColor(gdk.NewColor("grey"))
pixmap.GetDrawable().DrawRectangle(gc, true, 0, 0, -1, -1)
for x := 0; x < 19; x++ {
for y := 0; y < 19; y++ {
gc.SetRgbFgColor(gdk.NewColor("grey"))
draw_square(gc, pixmap, x, y)
}
}
gc.SetRgbFgColor(gdk.NewColor("black"))
pixmap.GetDrawable().DrawArc(gc, true, (4*INTER)-(CIRCLE/2), (4*INTER)-(CIRCLE/2),
CIRCLE, CIRCLE, 0, 64*360)
pixmap.GetDrawable().DrawArc(gc, true, (10*INTER)-(CIRCLE/2), (4*INTER)-(CIRCLE/2),
CIRCLE, CIRCLE, 0, 64*360)
pixmap.GetDrawable().DrawArc(gc, true, (16*INTER)-(CIRCLE/2), (4*INTER)-(CIRCLE/2),
CIRCLE, CIRCLE, 0, 64*360)
pixmap.GetDrawable().DrawArc(gc, true, (4*INTER)-(CIRCLE/2), (10*INTER)-(CIRCLE/2),
CIRCLE, CIRCLE, 0, 64*360)
pixmap.GetDrawable().DrawArc(gc, true, (10*INTER)-(CIRCLE/2), (10*INTER)-(CIRCLE/2),
CIRCLE, CIRCLE, 0, 64*360)
pixmap.GetDrawable().DrawArc(gc, true, (16*INTER)-(CIRCLE/2), (10*INTER)-(CIRCLE/2),
CIRCLE, CIRCLE, 0, 64*360)
pixmap.GetDrawable().DrawArc(gc, true, (4*INTER)-(CIRCLE/2), (16*INTER)-(CIRCLE/2),
CIRCLE, CIRCLE, 0, 64*360)
pixmap.GetDrawable().DrawArc(gc, true, (10*INTER)-(CIRCLE/2), (16*INTER)-(CIRCLE/2),
CIRCLE, CIRCLE, 0, 64*360)
pixmap.GetDrawable().DrawArc(gc, true, (16*INTER)-(CIRCLE/2), (16*INTER)-(CIRCLE/2),
CIRCLE, CIRCLE, 0, 64*360)
}
开发者ID:Khady,项目名称:gomoku,代码行数:29,代码来源:display.go
示例5: colorBox
func colorBox(c *gdk.Color) *gtk.DrawingArea {
dArea := gtk.NewDrawingArea()
var pixmap *gdk.Pixmap
var gc *gdk.GC
dArea.Connect("configure-event", func() {
if pixmap != nil {
pixmap.Unref()
}
alloc := dArea.GetAllocation()
pixmap = gdk.NewPixmap(dArea.GetWindow().GetDrawable(), alloc.Width, alloc.Height, 24)
gc = gdk.NewGC(pixmap.GetDrawable())
gc.SetRgbFgColor(c)
pixmap.GetDrawable().DrawRectangle(gc, true, 0, 0, -1, -1)
})
dArea.Connect("expose-event", func() {
if pixmap != nil {
dArea.GetWindow().GetDrawable().DrawDrawable(gc, pixmap.GetDrawable(), 0, 0, 0, 0, -1, -1)
}
})
return dArea
}
开发者ID:kch42,项目名称:biomed,代码行数:24,代码来源:colorbox.go
示例6: Init
func Init(title string) {
gtk.Init(nil)
window := gtk.NewWindow(gtk.WINDOW_TOPLEVEL)
window.SetPosition(gtk.WIN_POS_CENTER)
window.SetTitle(title)
window.SetIconName("gtk-dialog-info")
window.Connect("destroy", func(ctx *glib.CallbackContext) {
fmt.Println("got destroy!", ctx.Data().(string))
gtk.MainQuit()
}, "foo")
//--------------------------------------------------------
// GtkVBox
//--------------------------------------------------------
vbox := gtk.NewVBox(false, 1)
//--------------------------------------------------------
// GtkMenuBar
//--------------------------------------------------------
menubar := gtk.NewMenuBar()
vbox.PackStart(menubar, false, false, 0)
//--------------------------------------------------------
// GtkDrawable
//--------------------------------------------------------
drawingarea := gtk.NewDrawingArea()
//var gdkwin *gdk.Window
var pixmap *gdk.Pixmap
var gc *gdk.GC
drawingarea.Connect("configure-event", func() {
println("Configuring drawingArea!")
if pixmap != nil {
pixmap.Unref()
}
allocation := drawingarea.GetAllocation()
pixmap = gdk.NewPixmap(drawingarea.GetWindow().GetDrawable(), allocation.Width, allocation.Height, 24)
gc = gdk.NewGC(pixmap.GetDrawable())
gc.SetRgbFgColor(gdk.NewColor("white"))
pixmap.GetDrawable().DrawRectangle(gc, true, 0, 0, -1, -1)
gc.SetRgbFgColor(gdk.NewColor("black"))
gc.SetRgbBgColor(gdk.NewColor("white"))
pixmap.GetDrawable().DrawRectangle(gc, false, 0, 0, 10, 10)
})
drawingarea.Connect("expose-event", func() {
println("Exposing DrawingArea!")
if pixmap != nil {
drawingarea.GetWindow().GetDrawable().DrawDrawable(gc, pixmap.GetDrawable(), 0, 0, 0, 0, -1, -1)
}
})
vbox.Add(drawingarea)
//--------------------------------------------------------
// GtkScale
//--------------------------------------------------------
scale := gtk.NewHScaleWithRange(0, 100, 1)
scale.Connect("value-changed", func() {
//fmt.Println("scale:", int(scale.GetValue()))
})
vbox.Add(scale)
window.Add(vbox)
window.SetSizeRequest(600, 600)
window.ShowAll()
gtk.Main()
}
开发者ID:GlenDC,项目名称:AI-Algorithms-Collection,代码行数:68,代码来源:window.go
示例7: main
func main() {
gtk.Init(&os.Args)
window := gtk.NewWindow(gtk.WINDOW_TOPLEVEL)
window.SetTitle("GTK DrawingArea")
window.Connect("destroy", gtk.MainQuit)
vbox := gtk.NewVBox(true, 0)
vbox.SetBorderWidth(5)
drawingarea := gtk.NewDrawingArea()
var p1, p2 point
var gdkwin *gdk.Window
var pixmap *gdk.Pixmap
var gc *gdk.GC
p1.x = -1
p1.y = -1
colors := []string{
"black",
"gray",
"blue",
"purple",
"red",
"orange",
"yellow",
"green",
"darkgreen",
}
drawingarea.Connect("configure-event", func() {
if pixmap != nil {
pixmap.Unref()
}
allocation := drawingarea.GetAllocation()
pixmap = gdk.NewPixmap(drawingarea.GetWindow().GetDrawable(), allocation.Width, allocation.Height, 24)
gc = gdk.NewGC(pixmap.GetDrawable())
gc.SetRgbFgColor(gdk.NewColor("white"))
pixmap.GetDrawable().DrawRectangle(gc, true, 0, 0, -1, -1)
gc.SetRgbFgColor(gdk.NewColor(colors[0]))
gc.SetRgbBgColor(gdk.NewColor("white"))
})
drawingarea.Connect("motion-notify-event", func(ctx *glib.CallbackContext) {
arg := ctx.Args(0)
mev := *(**gdk.EventMotion)(unsafe.Pointer(&arg))
var mt gdk.ModifierType
if mev.IsHint != 0 {
gdkwin.GetPointer(&p2.x, &p2.y, &mt)
} else {
p2.x, p2.y = int(mev.X), int(mev.Y)
}
if p1.x != -1 && p2.x != -1 && (gdk.EventMask(mt)&gdk.BUTTON_PRESS_MASK) != 0 {
pixmap.GetDrawable().DrawLine(gc, p1.x, p1.y, p2.x, p2.y)
gdkwin.Invalidate(nil, false)
}
colors = append(colors[1:], colors[0])
gc.SetRgbFgColor(gdk.NewColor(colors[0]))
p1 = p2
})
drawingarea.Connect("expose-event", func() {
if pixmap == nil {
return
}
gdkwin.GetDrawable().DrawDrawable(gc, pixmap.GetDrawable(), 0, 0, 0, 0, -1, -1)
})
drawingarea.SetEvents(int(gdk.POINTER_MOTION_MASK | gdk.POINTER_MOTION_HINT_MASK | gdk.BUTTON_PRESS_MASK))
vbox.Add(drawingarea)
window.Add(vbox)
window.SetSizeRequest(400, 400)
window.ShowAll()
gdkwin = drawingarea.GetWindow()
gtk.Main()
}
开发者ID:mattn,项目名称:go-gtk,代码行数:77,代码来源:drawable.go
注:本文中的github.com/mattn/go-gtk/gdk.GC类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论