diff options
Diffstat (limited to 'src/rhlibrary/selector_widget.go')
-rw-r--r-- | src/rhlibrary/selector_widget.go | 85 |
1 files changed, 81 insertions, 4 deletions
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 +} |