lots of docs and examples
This commit is contained in:
		
							
								
								
									
										39
									
								
								nexgb/examples/xinerama/main.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								nexgb/examples/xinerama/main.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
// Example xinerama shows how to query the geometry of all active heads.
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"log"
 | 
			
		||||
 | 
			
		||||
	"github.com/BurntSushi/xgb"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	X, err := xgb.NewConn()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Initialize the Xinerama extension.
 | 
			
		||||
	// The appropriate 'Init' function must be run for *every*
 | 
			
		||||
	// extension before any of its requests can be used.
 | 
			
		||||
	err = X.XineramaInit()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Issue a request to get the screen information.
 | 
			
		||||
	reply, err := X.XineramaQueryScreens().Reply()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Fatal(err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// reply.Number is the number of active heads, while reply.ScreenInfo
 | 
			
		||||
	// is a slice of XineramaScreenInfo containing the rectangle geometry
 | 
			
		||||
	// of each head.
 | 
			
		||||
	fmt.Printf("Number of heads: %d\n", reply.Number)
 | 
			
		||||
	for i, screen := range reply.ScreenInfo {
 | 
			
		||||
		fmt.Printf("%d :: X: %d, Y: %d, Width: %d, Height: %d\n",
 | 
			
		||||
			i, screen.XOrg, screen.YOrg, screen.Width, screen.Height)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user