Change icon for volume button icon

This commit is contained in:
Mikhail Lobotskiy
2025-07-04 16:02:58 +04:00
parent b1ffa14154
commit 1f8e225d49
3 changed files with 23 additions and 5 deletions

View File

@ -31,6 +31,7 @@
- (void)applySkin:(CFooterSkin::Type)type;
- (void)updatePlayPauseButton:(float)player_rate;
- (void)toggleVolumeControls;
- (void)updateVolumeButton:(double)volume;
@end
#endif // FOOTER_PANEL_H_

View File

@ -193,6 +193,18 @@ void setRightConstraintsToView(NSView* view, NSLayoutYAxisAnchor* top_anchor, NS
[m_panel_volume setHidden:(!m_panel_volume.hidden)];
}
- (void)updateVolumeButton:(double)volume {
if (volume > 75) {
[m_btn_volume setIcon:@"btn-volume-3"];
} else if (volume > 25) {
[m_btn_volume setIcon:@"btn-volume-2"];
} else if (volume > 0) {
[m_btn_volume setIcon:@"btn-volume-1"];
} else {
[m_btn_volume setIcon:@"btn-volume-mute"];
}
}
- (void)dealloc {
NSLog(@"debug: footer panel deallocated");
[m_panel_volume removeFromSuperview];

View File

@ -38,6 +38,10 @@
[m_footer->m_slider_volume setAction:@selector(onSliderVolumeChanged:)];
// player volume observer
[m_player addObserver:self forKeyPath:@"volume" options:NSKeyValueObservingOptionNew context:nil];
// TODO: change
[m_footer->m_btn_rewind_forward setTarget:self];
[m_footer->m_btn_rewind_forward setAction:@selector(onBtnRewindForwardPressed:)];
}
return self;
}
@ -55,8 +59,7 @@
}
- (void)onBtnRewindForwardPressed:(NSIconPushButton*)sender {
double old_value = m_footer->m_slider_volume.doubleValue;
[m_footer->m_slider_volume setDoubleValue:(old_value + 1)];
[self toggleMute];
}
- (void)onSliderVolumeChanged:(NSIconPushButton*)sender {
@ -68,8 +71,9 @@
float rate = [change[NSKeyValueChangeNewKey] floatValue];
[m_footer updatePlayPauseButton:rate];
} else if ([key_path isEqualToString:@"volume"]) {
float volume = [change[NSKeyValueChangeNewKey] floatValue];
[m_footer->m_slider_volume setDoubleValue:(volume * 100.0)];
double volume = [change[NSKeyValueChangeNewKey] floatValue] * 100.0;
[m_footer->m_slider_volume setDoubleValue:volume];
[m_footer updateVolumeButton:volume];
}
}
@ -99,7 +103,8 @@
}
- (void)toggleMute {
// TODO
// TODO: restore previous volume on second call
[self setVolume:0];
}
- (void)stop {