blob: a67120a22720f6941b5953d81d5b2424e91d9d6a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import "chrome/browser/ui/cocoa/toolbar/toolbar_view.h"
#import "chrome/browser/ui/cocoa/themed_window.h"
#import "chrome/browser/ui/cocoa/view_id_util.h"
@implementation ToolbarView
@synthesize dividerOpacity = dividerOpacity_;
// Prevent mouse down events from moving the parent window around.
- (BOOL)mouseDownCanMoveWindow {
return NO;
}
- (void)drawRect:(NSRect)rect {
// The toolbar's background pattern is phased relative to the
// tab strip view's background pattern.
NSPoint phase = [[self window] themePatternPhase];
[[NSGraphicsContext currentContext] setPatternPhase:phase];
[self drawBackgroundWithOpaque:YES];
}
// Override of |-[BackgroundGradientView strokeColor]|; make it respect opacity.
- (NSColor*)strokeColor {
return [[super strokeColor] colorWithAlphaComponent:[self dividerOpacity]];
}
- (BOOL)accessibilityIsIgnored {
return NO;
}
- (id)accessibilityAttributeValue:(NSString*)attribute {
if ([attribute isEqual:NSAccessibilityRoleAttribute])
return NSAccessibilityToolbarRole;
return [super accessibilityAttributeValue:attribute];
}
- (ViewID)viewID {
return VIEW_ID_TOOLBAR;
}
// Some toolbar buttons draw differently depending on the fouc state of the
// window.
- (void)windowFocusDidChange:(NSNotification*)notification {
[self setNeedsDisplay:YES];
}
- (void)viewWillMoveToWindow:(NSWindow*)window {
if ([self window]) {
[[NSNotificationCenter defaultCenter]
removeObserver:self
name:NSWindowDidBecomeKeyNotification
object:[self window]];
[[NSNotificationCenter defaultCenter]
removeObserver:self
name:NSWindowDidBecomeMainNotification
object:[self window]];
}
if (window) {
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(windowFocusDidChange:)
name:NSWindowDidBecomeKeyNotification
object:[self window]];
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(windowFocusDidChange:)
name:NSWindowDidBecomeMainNotification
object:[self window]];
}
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
[super dealloc];
}
- (BOOL)isOpaque {
return YES;
}
@end
|