diff options
Diffstat (limited to 'src/rhlibrary')
-rw-r--r-- | src/rhlibrary/app_window.go | 8 | ||||
-rw-r--r-- | src/rhlibrary/main.go | 16 | ||||
-rw-r--r-- | src/rhlibrary/selector_widget.go | 85 |
3 files changed, 95 insertions, 14 deletions
diff --git a/src/rhlibrary/app_window.go b/src/rhlibrary/app_window.go index cf1a97a..cf8ef18 100644 --- a/src/rhlibrary/app_window.go +++ b/src/rhlibrary/app_window.go @@ -26,11 +26,13 @@ package main import ( "code.helsinki.at/rhrd-go/player" + "code.helsinki.at/rhrd-go/rddb" "github.com/gotk3/gotk3/gtk" ) type AppWindow struct { win *gtk.Window + db *rddb.DBChan player *player.PlayerChan } @@ -41,7 +43,7 @@ func (aw *AppWindow) dispatchRequests() { } func (aw *AppWindow) drawSelector(grid *gtk.Grid) (err error) { - widget, err := getSelectorWidget(aw.player) + widget, err := getSelectorWidget(aw.db, aw.player) if err == nil { grid.Add(widget) } @@ -64,8 +66,9 @@ func (aw *AppWindow) ShowAndRun() { aw.win.ShowAll() } -func NewAppWindow(player *player.PlayerChan, width, height int) (aw *AppWindow, err error) { +func NewAppWindow(db *rddb.DBChan, player *player.PlayerChan, width, height int) (aw *AppWindow, err error) { aw = &AppWindow{} + aw.db = db aw.player = player if aw.win, err = gtk.WindowNew(gtk.WINDOW_TOPLEVEL); err != nil { return @@ -80,6 +83,7 @@ func NewAppWindow(player *player.PlayerChan, width, height int) (aw *AppWindow, return } grid.SetOrientation(gtk.ORIENTATION_VERTICAL) + grid.SetRowSpacing(10) if err = aw.drawPlayer(grid); err != nil { return diff --git a/src/rhlibrary/main.go b/src/rhlibrary/main.go index 1f5fefd..b40ce9a 100644 --- a/src/rhlibrary/main.go +++ b/src/rhlibrary/main.go @@ -32,7 +32,7 @@ import ( "os" "code.helsinki.at/rhrd-go/player" - // "code.helsinki.at/rhrd-go/rddb" + "code.helsinki.at/rhrd-go/rddb" "github.com/gotk3/gotk3/gtk" ) @@ -79,12 +79,12 @@ func main() { gtk.Init(nil) - // db, err := rddb.NewDB(rdconf.Get().(string)) - // if err != nil { - // rhl.Println("Error initializing Rivdenll DB:", err) - // return - // } - // defer db.Cleanup() + db, err := rddb.NewDB(rdconf.Get().(string)) + if err != nil { + rhl.Println("Error initializing Rivdenll DB:", err) + return + } + defer db.Cleanup() p, err := player.NewPlayer("/home/equinox/helsinki/rivenhell/contrib/rhlibrary/snd", rhl, rhdl) if err != nil { @@ -92,7 +92,7 @@ func main() { return } - mw, err := NewAppWindow(p.GetInterface(), 800, 600) + mw, err := NewAppWindow(db.GetInterface(), p.GetInterface(), 800, 600) if err != nil { rhl.Println("Error initializing Main Window:", err) return diff --git a/src/rhlibrary/selector_widget.go b/src/rhlibrary/selector_widget.go index becf413..d0aab71 100644 --- a/src/rhlibrary/selector_widget.go +++ b/src/rhlibrary/selector_widget.go @@ -26,10 +26,11 @@ package main import ( "code.helsinki.at/rhrd-go/player" + "code.helsinki.at/rhrd-go/rddb" "github.com/gotk3/gotk3/gtk" ) -func getSelectorWidget(p *player.PlayerChan) (gtk.IWidget, error) { +func getManualSelector(p *player.PlayerChan) (gtk.IWidget, error) { var grid *gtk.Grid grid, err := gtk.GridNew() if err != nil { @@ -81,10 +82,86 @@ func getSelectorWidget(p *player.PlayerChan) (gtk.IWidget, error) { grid.Attach(loadBtn, 1, 3, 2, 1) grid.Attach(unloadBtn, 1, 4, 2, 1) - grid.SetHExpand(true) - grid.SetVExpand(true) - grid.SetHAlign(gtk.ALIGN_CENTER) grid.SetVAlign(gtk.ALIGN_CENTER) + return grid, nil } + +func getShowsSelector(p *player.PlayerChan) (gtk.IWidget, error) { + page, err := gtk.LabelNew("SHOWS") + if err != nil { + return nil, err + } + + return page, nil +} + +func getJinglesSelector(p *player.PlayerChan) (gtk.IWidget, error) { + page, err := gtk.LabelNew("JINGLES") + if err != nil { + return nil, err + } + + return page, nil +} + +func getPoolsSelector(p *player.PlayerChan) (gtk.IWidget, error) { + page, err := gtk.LabelNew("MUSIC POOLS") + if err != nil { + return nil, err + } + + return page, nil +} + +func addSelectorPage(nb *gtk.Notebook, page gtk.IWidget, title string) (err error) { + var label *gtk.Label + if label, err = gtk.LabelNew(title); err != nil { + return + } + label.SetSizeRequest(150, 15) + nb.AppendPage(page, label) + return +} + +func getSelectorWidget(db *rddb.DBChan, p *player.PlayerChan) (gtk.IWidget, error) { + nb, err := gtk.NotebookNew() + if err != nil { + return nil, err + } + + var page gtk.IWidget + if page, err = getShowsSelector(p); err != nil { + return nil, err + } + if err = addSelectorPage(nb, page, "Sendungen"); err != nil { + return nil, err + } + + if page, err = getJinglesSelector(p); err != nil { + return nil, err + } + if err = addSelectorPage(nb, page, "Jingles"); err != nil { + return nil, err + } + + if page, err = getPoolsSelector(p); err != nil { + return nil, err + } + if err = addSelectorPage(nb, page, "Musicpools"); err != nil { + return nil, err + } + + if page, err = getManualSelector(p); err != nil { + return nil, err + } + if err = addSelectorPage(nb, page, "manual"); err != nil { + return nil, err + } + + nb.SetHExpand(true) + nb.SetVExpand(true) + + return nb, nil +} |