func appMain(driver gxui.Driver) { file := "./img/block.bmp" f, err := os.Open(file) if err != nil { fmt.Printf("Failed to open image '%s': %v\n", file, err) os.Exit(1) } source, _, err := image.Decode(f) if err != nil { fmt.Printf("Failed to read image '%s': %v\n", file, err) os.Exit(1) } theme := flags.CreateTheme(driver) img := theme.CreateImage() //mx := source.Bounds().Max window := theme.CreateWindow(1000, 1000, "Tetris") window.SetScale(flags.DefaultScaleFactor) window.AddChild(img) rgba := image.NewRGBA(source.Bounds()) draw.Draw(rgba, source.Bounds(), source, image.ZP, draw.Src) texture := driver.CreateTexture(rgba, 1) img.SetTexture(texture) window.OnClose(driver.Terminate) }
func appMain(driver gxui.Driver) { theme := dark.CreateTheme(driver) img := theme.CreateImage() // mx := source.Bounds().Max // fmt.Println(mx) window := theme.CreateWindow(500, 500, "Screenshot") size := window.Viewport().SizePixels() fmt.Println(size) window.SetScale(flags.DefaultScaleFactor) window.AddChild(img) go func() { for { source, err := goss.Capture() if err != nil { fmt.Fprintln(os.Stderr, "Failed to capture screenshot.") os.Exit(1) } rgba := image.NewRGBA(source.Bounds()) draw.Draw(rgba, source.Bounds(), source, image.ZP, draw.Src) texture := driver.CreateTexture(rgba, 1) img.SetTexture(texture) } }() window.OnClose(driver.Terminate) }
func appMain(driver gxui.Driver) { theme := dark.CreateTheme(driver) window := theme.CreateWindow(800, 600, "Polygon") container := theme.CreateLinearLayout() // texture := driver.CreateTexture(getImage(cacheDir, tweet.User.ProfileImageURL), 96) f, err := os.Open("data/icont19.png") if err != nil { log.Fatalln(err) } defer f.Close() im, _, err := image.Decode(f) if err != nil { log.Fatalln(err) } for i := 0; i < 100; i++ { pict := theme.CreateImage() texture := driver.CreateTexture(im, 96) texture.SetFlipY(true) pict.SetTexture(texture) pict.SetExplicitSize(math.Size{32, 32}) pict.SetMargin(math.CreateSpacing(4)) container.AddChild(pict) } label := theme.CreateLabel() label.SetText("hogehogehoge") label.SetMargin(math.CreateSpacing(200)) container.AddChild(label) window.OnClose(driver.Terminate) window.AddChild(container) gxui.EventLoop(driver) }
func appMain(driver gxui.Driver) { d = driver source := image.Image(newMandelbrot()) theme := flags.CreateTheme(driver) mx := source.Bounds().Max img = theme.CreateImage() window = theme.CreateWindow(mx.X, mx.Y, "Image viewer") window.SetScale(flags.DefaultScaleFactor) window.AddChild(img) rgba := image.NewRGBA(source.Bounds()) draw.Draw(rgba, source.Bounds(), source, image.ZP, draw.Src) texture = driver.CreateTexture(rgba, 1) img.SetTexture(texture) window.OnClick(windowOnClickHandler) window.OnClose(driver.Terminate) }
func appMain(driver gxui.Driver) { args := flag.Args() if len(args) != 1 { fmt.Print("usage: image_viewer image-path\n") os.Exit(1) } file := args[0] f, err := os.Open(file) if err != nil { fmt.Printf("Failed to open image '%s': %v\n", file, err) os.Exit(1) } source, _, err := image.Decode(f) if err != nil { fmt.Printf("Failed to read image '%s': %v\n", file, err) os.Exit(1) } theme := flags.CreateTheme(driver) img := theme.CreateImage() mx := source.Bounds().Max window := theme.CreateWindow(mx.X, mx.Y, "Image viewer") window.SetScale(flags.DefaultScaleFactor) window.AddChild(img) // Copy the image to a RGBA format before handing to a gxui.Texture rgba := image.NewRGBA(source.Bounds()) draw.Draw(rgba, source.Bounds(), source, image.ZP, draw.Src) texture := driver.CreateTexture(rgba, 1) img.SetTexture(texture) window.OnClose(driver.Terminate) }
func getFilm(driver gxui.Driver, h1Title gxui.Label, KinopoiskLabel gxui.Label, ImdbLabel gxui.Label, img gxui.Image) { m := Movies{} // TODO: cache file in memory xmlFile, _ := ioutil.ReadFile(XML_PATH) err := xml.Unmarshal(xmlFile, &m) catch(err) rand := rand.Intn(len(m.FilmsList)) random_movie := m.FilmsList[rand] search_movie_title := "" if random_movie.En != "" { search_movie_title += random_movie.En + " " } if random_movie.Ru != "" { search_movie_title += random_movie.Ru + " " } if random_movie.Year != "" { search_movie_title += random_movie.Year + " " } search_movie_title += EN_SEARCH_PREFIX if search_movie_title != "" { resp, err := http.Get(GOOGLE_IMAGES_URL + url.QueryEscape(search_movie_title)) catch(err) if resp.StatusCode == 200 { defer resp.Body.Close() jsonData, err := ioutil.ReadAll(resp.Body) catch(err) var jsonMap JsonMap err = json.Unmarshal([]byte(jsonData), &jsonMap) catch(err) ImageUrl := filterFromBlockedResources(jsonMap) f, err := http.Get(ImageUrl) catch(err) source, _, err := image.Decode(f.Body) catch(err) rgba := image.NewRGBA(source.Bounds()) draw.Draw(rgba, source.Bounds(), source, image.ZP, draw.Src) texture := driver.CreateTexture(rgba, 1) img.SetTexture(texture) } title := "" if random_movie.Ru != "" { title += random_movie.Ru + " | " } if random_movie.En != "" { title += random_movie.En + " | " } if random_movie.Year != "" { title += random_movie.Year } if title[len(title)-2:] == "| " { title = title[:len(title)-2] } h1Title.SetText(title) //p.TitleForSearch = strings.Replace(title, " | ", " ", -1) // TODO: TitleForSearch == search_movie_title ? replace it! KinopoiskLabel.SetText(random_movie.Kinopoisk) ImdbLabel.SetText(random_movie.Imdb) } else { h1Title.SetText("Movie [" + strconv.Itoa(rand) + "] - not found!") } }
func appMain(driver gxui.Driver) { theme := flags.CreateTheme(driver) font, err := driver.CreateFont(gxfont.Default, 75) if err != nil { panic(err) } window := theme.CreateWindow(800, 480, "Привет") window.SetBackgroundBrush(gxui.CreateBrush(gxui.Gray50)) window.SetBorderPen(gxui.Pen{Width: 5, Color: gxui.Yellow}) f, err := os.Open("wallpaper.jpg") if err != nil { fmt.Printf("Failed to open image %v\n", err) os.Exit(1) } source, _, err := image.Decode(f) if err != nil { fmt.Printf("Failed to open image %v\n", err) os.Exit(2) } wallpaper := theme.CreateImage() window.AddChild(wallpaper) // Copy the image to a RGBA format before handing to a gxui.Texture rgba := image.NewRGBA(source.Bounds()) draw.Draw(rgba, source.Bounds(), source, image.ZP, draw.Src) texture := driver.CreateTexture(rgba, 1) wallpaper.SetTexture(texture) layout := theme.CreateLinearLayout() layout.SetDirection(gxui.TopToBottom) window.AddChild(layout) label := theme.CreateLabel() label.SetFont(font) label.SetText("Здравствуй мир") label.OnMouseMove(func(e gxui.MouseEvent) { fmt.Printf("X=%d; Y=%d\n", e.Point.X, e.Point.Y) }) layout.AddChild(label) lTimer := theme.CreateLabel() lTimer.SetFont(font) lTimer.SetColor(gxui.Green30) layout.AddChild(lTimer) button := theme.CreateButton() button.SetText("Exit") button.SetPadding(math.Spacing{20, 10, 20, 10}) button.SetMargin(math.Spacing{20, 10, 20, 10}) button.OnClick(func(e gxui.MouseEvent) { window.Close() }) layout.AddChild(button) ticker := time.NewTicker(time.Millisecond * 30) go func() { phase := float32(0) for _ = range ticker.C { c := gxui.Color{ R: 0.75 + 0.25*math.Cosf((phase+0.000)*math.TwoPi), G: 0.75 + 0.25*math.Cosf((phase+0.333)*math.TwoPi), B: 0.75 + 0.25*math.Cosf((phase+0.666)*math.TwoPi), A: 0.50 + 0.50*math.Cosf(phase*10), } phase += 0.01 driver.Call(func() { label.SetColor(c) }) } }() ticker2 := time.NewTicker(time.Millisecond * 100) go func() { for t := range ticker.C { driver.Call(func() { lTimer.SetText(t.Format(time.Stamp)) }) } }() window.OnClose(ticker.Stop) window.OnClose(ticker2.Stop) window.OnClose(driver.Terminate) }