summaryrefslogtreecommitdiff
path: root/src/rhlibrary/player_widget.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/rhlibrary/player_widget.go')
-rw-r--r--src/rhlibrary/player_widget.go98
1 files changed, 49 insertions, 49 deletions
diff --git a/src/rhlibrary/player_widget.go b/src/rhlibrary/player_widget.go
index fcaaeab..f990279 100644
--- a/src/rhlibrary/player_widget.go
+++ b/src/rhlibrary/player_widget.go
@@ -138,53 +138,6 @@ func addMeter(grid *gtk.Grid, p *player.PlayerChan) error {
return nil
}
-func addScrubber(grid *gtk.Grid, p *player.PlayerChan) (err error) {
- var scale *gtk.Scale
- if scale, err = gtk.ScaleNew(gtk.ORIENTATION_HORIZONTAL, nil); err != nil {
- return
- }
- if err = scale.SetProperty("draw-value", false); err != nil {
- return
- }
- scale.SetRange(0, 1)
- scale.SetValue(0)
-
- scale.Connect("change-value", func(s *gtk.Scale, _ interface{}, pos float64) {
- if err := p.Seek(pos); err != nil {
- rhdl.Println(err) // TODO: feedback at GUI?
- }
- })
- scale.SetSensitive(false)
-
- p.AddUpdateHandler(func(duration time.Duration, pos time.Duration, _ player.Meter, _ interface{}) bool {
- glib.IdleAdd(func() {
- if duration > 0 {
- scale.SetValue(float64(pos) / float64(duration))
- } else {
- scale.SetValue(0)
- }
- })
- return true
- }, nil)
-
- p.AddStateChangeHandler(func(state player.State, _ interface{}) bool {
- glib.IdleAdd(func() {
- switch state {
- case player.IDLE:
- scale.SetSensitive(false)
- case player.PAUSED:
- scale.SetSensitive(true)
- case player.PLAYING:
- scale.SetSensitive(true)
- }
- })
- return true
- }, nil)
-
- grid.Attach(scale, 1, 2, 3, 1)
- return
-}
-
func getPlayTimeString(duration, pos time.Duration, countdown bool) string {
t := time.Unix(0, 0).UTC()
if countdown {
@@ -238,6 +191,53 @@ func addPlayTime(grid *gtk.Grid, p *player.PlayerChan) (err error) {
return
}
+func addScrubber(grid *gtk.Grid, p *player.PlayerChan) (err error) {
+ var scale *gtk.Scale
+ if scale, err = gtk.ScaleNew(gtk.ORIENTATION_HORIZONTAL, nil); err != nil {
+ return
+ }
+ if err = scale.SetProperty("draw-value", false); err != nil {
+ return
+ }
+ scale.SetRange(0, 1)
+ scale.SetValue(0)
+
+ scale.Connect("change-value", func(s *gtk.Scale, _ interface{}, pos float64) {
+ if err := p.Seek(pos); err != nil {
+ rhdl.Println(err) // TODO: feedback at GUI?
+ }
+ })
+ scale.SetSensitive(false)
+
+ p.AddUpdateHandler(func(duration time.Duration, pos time.Duration, _ player.Meter, _ interface{}) bool {
+ glib.IdleAdd(func() {
+ if duration > 0 {
+ scale.SetValue(float64(pos) / float64(duration))
+ } else {
+ scale.SetValue(0)
+ }
+ })
+ return true
+ }, nil)
+
+ p.AddStateChangeHandler(func(state player.State, _ interface{}) bool {
+ glib.IdleAdd(func() {
+ switch state {
+ case player.IDLE:
+ scale.SetSensitive(false)
+ case player.PAUSED:
+ scale.SetSensitive(true)
+ case player.PLAYING:
+ scale.SetSensitive(true)
+ }
+ })
+ return true
+ }, nil)
+
+ grid.Attach(scale, 1, 2, 3, 1)
+ return
+}
+
func getPlayerWidget(p *player.PlayerChan) (gtk.IWidget, error) {
var err error
var grid *gtk.Grid
@@ -254,10 +254,10 @@ func getPlayerWidget(p *player.PlayerChan) (gtk.IWidget, error) {
if err = addMeter(grid, p); err != nil {
return nil, err
}
- if err = addScrubber(grid, p); err != nil {
+ if err = addPlayTime(grid, p); err != nil {
return nil, err
}
- if err = addPlayTime(grid, p); err != nil {
+ if err = addScrubber(grid, p); err != nil {
return nil, err
}