From 1f8e225d49b178aa45cc85abce3ee568dec8cd97 Mon Sep 17 00:00:00 2001 From: Mikhail Lobotskiy Date: Fri, 4 Jul 2025 16:02:58 +0400 Subject: [PATCH] Change icon for volume button icon --- .../lib/src/mac_videoplayer/footerpanel.h | 1 + .../lib/src/mac_videoplayer/footerpanel.mm | 12 ++++++++++++ .../lib/src/mac_videoplayer/playercontroller.mm | 15 ++++++++++----- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/ChromiumBasedEditors/lib/src/mac_videoplayer/footerpanel.h b/ChromiumBasedEditors/lib/src/mac_videoplayer/footerpanel.h index 91b78003..ede57ebd 100644 --- a/ChromiumBasedEditors/lib/src/mac_videoplayer/footerpanel.h +++ b/ChromiumBasedEditors/lib/src/mac_videoplayer/footerpanel.h @@ -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_ diff --git a/ChromiumBasedEditors/lib/src/mac_videoplayer/footerpanel.mm b/ChromiumBasedEditors/lib/src/mac_videoplayer/footerpanel.mm index 03fd14a2..287d7214 100644 --- a/ChromiumBasedEditors/lib/src/mac_videoplayer/footerpanel.mm +++ b/ChromiumBasedEditors/lib/src/mac_videoplayer/footerpanel.mm @@ -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]; diff --git a/ChromiumBasedEditors/lib/src/mac_videoplayer/playercontroller.mm b/ChromiumBasedEditors/lib/src/mac_videoplayer/playercontroller.mm index f6745351..b88a5c82 100644 --- a/ChromiumBasedEditors/lib/src/mac_videoplayer/playercontroller.mm +++ b/ChromiumBasedEditors/lib/src/mac_videoplayer/playercontroller.mm @@ -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 {