// // rhlibrary // // The Radio Helsinki Rivendell Library // // // Copyright (C) 2016 Christian Pointner // // This file is part of rhlibrary. // // rhlibrary is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // any later version. // // rhlibrary is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with rhlibrary. If not, see . // package main import ( "code.helsinki.at/rhrd-go/player" "github.com/gotk3/gotk3/gtk" ) func init() { gtk.Init(nil) } type AppWindow struct { win *gtk.Window player *player.PlayerChan } func (mw *AppWindow) ShowAndRun() { mw.win.ShowAll() if err := mw.player.Load(1, 1); err != nil { rhl.Println(err) } if err := mw.player.Play(); err != nil { rhl.Println(err) } gtk.Main() } func NewAppWindow(player *player.PlayerChan, width, height int) (mw *AppWindow, err error) { mw = &AppWindow{} mw.player = player if mw.win, err = gtk.WindowNew(gtk.WINDOW_TOPLEVEL); err != nil { return } mw.win.SetTitle("rhlibrary") mw.win.Connect("destroy", func() { gtk.MainQuit() }) var l *gtk.Label if l, err = gtk.LabelNew("Hello, world!"); err != nil { return } mw.win.Add(l) mw.win.SetDefaultSize(width, height) return }