all tasks
This commit is contained in:
parent
b83f433714
commit
68f8f3e56b
14735 changed files with 178959 additions and 0 deletions
60
Task/Window-creation-X11/Go/window-creation-x11.go
Normal file
60
Task/Window-creation-X11/Go/window-creation-x11.go
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"code.google.com/p/x-go-binding/xgb"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func main() {
|
||||
c, err := xgb.Dial("")
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
defer c.Close()
|
||||
|
||||
strBytes := []byte("Hello XGB!")
|
||||
rectangles := []xgb.Rectangle{{40, 40, 20, 20}}
|
||||
|
||||
// get the first screen
|
||||
s := c.DefaultScreen()
|
||||
|
||||
// root window
|
||||
win := s.Root
|
||||
|
||||
// create black (foreground) graphic context
|
||||
fg := c.NewId()
|
||||
mask := uint32(xgb.GCForeground | xgb.GCGraphicsExposures)
|
||||
values := []uint32{s.BlackPixel, 0}
|
||||
c.CreateGC(fg, win, mask, values)
|
||||
|
||||
// create white (background) graphic context
|
||||
bg := c.NewId()
|
||||
mask = uint32(xgb.GCBackground | xgb.GCGraphicsExposures)
|
||||
values[0] = s.WhitePixel // (values[1] still 0)
|
||||
c.CreateGC(bg, win, mask, values)
|
||||
|
||||
// create the window
|
||||
win = c.NewId()
|
||||
mask = xgb.CWBackPixel | xgb.CWEventMask
|
||||
// values[0] still s.WhitePixel
|
||||
values[1] = xgb.EventMaskExposure | xgb.EventMaskKeyPress
|
||||
c.CreateWindow(0, win, s.Root, 0, 0, 150, 150, 10,
|
||||
xgb.WindowClassInputOutput, s.RootVisual, mask, values)
|
||||
c.MapWindow(win)
|
||||
|
||||
for {
|
||||
event, err := c.WaitForEvent()
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
switch event.(type) {
|
||||
case xgb.ExposeEvent:
|
||||
c.PolyRectangle(win, fg, rectangles)
|
||||
c.ImageText8(win, bg, 20, 20, strBytes)
|
||||
case xgb.KeyPressEvent:
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue