+2009-10-15 Eric Carlson <eric.carlson@apple.com>
+
+ Reviewed by Adele Peterson.
+
+ <rdar://problem/7306052> Fullscreen max/min volume buttons non-functional
+
+ * WebView/WebVideoFullscreenHUDWindowController.mm:
+ (-[WebVideoFullscreenHUDWindowController windowDidLoad]): Set volume buttons target and action.
+ (-[WebVideoFullscreenHUDWindowController decrementVolume:]): New, decrement the volume by 10%.
+ (-[WebVideoFullscreenHUDWindowController incrementVolume:]): New, increment the volume by 10%.
+
2009-10-15 Eric Carlson <eric.carlson@apple.com>
Reviewed by Simon Fraser.
#import "WebKitSystemInterface.h"
#import "WebTypesInternal.h"
#import <wtf/RetainPtr.h>
+#import <limits>
+
+using namespace std;
#define HAVE_MEDIA_CONTROL (!defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD))
CGFloat left = kMargin;
NSControl *volumeDownButton = createControlWithMediaUIControlType(WKMediaUIControlVolumeDownButton, NSMakeRect(left, top - kButtonSize / 2 - kButtonMiniSize / 2, kButtonMiniSize, kButtonMiniSize));
[contentView addSubview:volumeDownButton];
+ [volumeDownButton setTarget:self];
+ [volumeDownButton setAction:@selector(decrementVolume:)];
[volumeDownButton release];
static const int volumeSliderWidth = 50;
[contentView addSubview:_volumeSlider];
left = kMargin + kButtonMiniSize + volumeSliderWidth + kButtonMiniSize / 2;
- NSControl *button = createControlWithMediaUIControlType(WKMediaUIControlVolumeUpButton, NSMakeRect(left, top - kButtonSize / 2 - kButtonMiniSize / 2, kButtonMiniSize, kButtonMiniSize));
- [contentView addSubview:button];
- [button release];
+ NSControl *volumeUpButton = createControlWithMediaUIControlType(WKMediaUIControlVolumeUpButton, NSMakeRect(left, top - kButtonSize / 2 - kButtonMiniSize / 2, kButtonMiniSize, kButtonMiniSize));
+ [volumeUpButton setTarget:self];
+ [volumeUpButton setAction:@selector(incrementVolume:)];
+ [contentView addSubview:volumeUpButton];
+ [volumeUpButton release];
static const int timeTextWidth = 50;
static const int sliderHeight = 13;
[self setVolume:[_volumeSlider doubleValue]];
}
+- (void)decrementVolume:(id)sender
+{
+ if (![_delegate mediaElement])
+ return;
+
+ double volume = [self volume] - 10;
+ [self setVolume:max(volume, 0.)];
+}
+
+- (void)incrementVolume:(id)sender
+{
+ if (![_delegate mediaElement])
+ return;
+
+ double volume = [self volume] + 10;
+ [self setVolume:min(volume, [self maxVolume])];
+}
+
- (double)volume
{
return [_delegate mediaElement] ? [_delegate mediaElement]->volume() * [self maxVolume] : 0;