Skip to content

Commit 4f1d431

Browse files
committed
feat: Implement minimal volume button replacement using a scale and popover
Signed-off-by: Felicitas Pojtinger <[email protected]>
1 parent 5a346c0 commit 4f1d431

File tree

2 files changed

+35
-5
lines changed

2 files changed

+35
-5
lines changed

internal/components/controls.go

+5-3
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ func OpenControlsWindow(
155155
buttonHeaderbarSubtitle := builder.GetObject("button-headerbar-subtitle").Cast().(*gtk.Label)
156156
playButton := builder.GetObject("play-button").Cast().(*gtk.Button)
157157
stopButton := builder.GetObject("stop-button").Cast().(*gtk.Button)
158-
volumeButton := builder.GetObject("volume-button").Cast().(*gtk.VolumeButton)
158+
volumeScale := builder.GetObject("volume-scale").Cast().(*gtk.Scale)
159159
subtitleButton := builder.GetObject("subtitle-button").Cast().(*gtk.Button)
160160
audiotracksButton := builder.GetObject("audiotracks-button").Cast().(*gtk.Button)
161161
fullscreenButton := builder.GetObject("fullscreen-button").Cast().(*gtk.ToggleButton)
@@ -1373,7 +1373,7 @@ func OpenControlsWindow(
13731373
}
13741374
}()
13751375

1376-
volumeButton.ConnectValueChanged(func(value float64) {
1376+
volumeScale.ConnectChangeValue(func(scroll gtk.ScrollType, value float64) (ok bool) {
13771377
if err := mpvClient.ExecuteMPVRequest(ipcFile, func(encoder *json.Encoder, decoder *json.Decoder) error {
13781378
log.Info().
13791379
Float64("value", value).
@@ -1388,8 +1388,10 @@ func OpenControlsWindow(
13881388
}); err != nil {
13891389
OpenErrorDialog(ctx, window, err)
13901390

1391-
return
1391+
return false
13921392
}
1393+
1394+
return false
13931395
})
13941396

13951397
subtitleButton.ConnectClicked(func() {

internal/resources/controls.blp

+30-2
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,14 @@ Adw.ApplicationWindow main-window {
143143
]
144144
}
145145

146-
VolumeButton volume-button {
147-
value: 1;
146+
MenuButton {
147+
styles [
148+
"flat",
149+
]
150+
151+
icon-name: 'audio-volume-medium';
152+
tooltip-text: 'Change audio volume';
153+
popover: audiovolume-button-popover;
148154
}
149155

150156
Button audiotracks-button {
@@ -220,3 +226,25 @@ Popover users-popover {
220226
}
221227
}
222228
}
229+
230+
Popover audiovolume-button-popover {
231+
width-request: 250;
232+
233+
Box {
234+
margin-top: 6;
235+
margin-bottom: 6;
236+
margin-start: 6;
237+
margin-end: 6;
238+
239+
Scale volume-scale {
240+
hexpand: true;
241+
242+
adjustment: Adjustment {
243+
step-increment: 0.2;
244+
lower: 0;
245+
upper: 1;
246+
value: 1;
247+
};
248+
}
249+
}
250+
}

0 commit comments

Comments
 (0)