Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(26)

Side by Side Diff: chrome/browser/ui/panels/panel_titlebar_view_cocoa.h

Issue 9956145: Remove wrench button from panel. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix per feedback Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_UI_PANELS_PANEL_TITLEBAR_VIEW_COCOA_H_ 5 #ifndef CHROME_BROWSER_UI_PANELS_PANEL_TITLEBAR_VIEW_COCOA_H_
6 #define CHROME_BROWSER_UI_PANELS_PANEL_TITLEBAR_VIEW_COCOA_H_ 6 #define CHROME_BROWSER_UI_PANELS_PANEL_TITLEBAR_VIEW_COCOA_H_
7 7
8 #import <Cocoa/Cocoa.h> 8 #import <Cocoa/Cocoa.h>
9 9
10 #import "base/mac/cocoa_protocols.h" 10 #import "base/mac/cocoa_protocols.h"
11 #import "chrome/browser/ui/cocoa/tracking_area.h" 11 #import "chrome/browser/ui/cocoa/tracking_area.h"
12 12
13 @class CrTrackingArea; 13 @class CrTrackingArea;
14 @class HoverImageButton; 14 @class HoverImageButton;
15 @class PanelWindowControllerCocoa; 15 @class PanelWindowControllerCocoa;
16 16
17 // A class that works as a custom titlebar for Panels. It is placed on top of 17 // A class that works as a custom titlebar for Panels. It is placed on top of
18 // the regular Cocoa titlebar. We paint theme image on it, and it's 18 // the regular Cocoa titlebar. We paint theme image on it, and it's
19 // the place for the close button, wrench button, page favicon, title label. 19 // the place for the close button, page favicon, title label.
20 // It also facilitates dragging and minimization of the panels, and changes 20 // It also facilitates dragging and minimization of the panels, and changes
21 // color as 'new activity' indicator. 21 // color as 'new activity' indicator.
22 // One way to have custom titlebar would be to use NSBorderlessWindow, 22 // One way to have custom titlebar would be to use NSBorderlessWindow,
23 // but it seems to affect too many other behaviors (for example, it draws shadow 23 // but it seems to affect too many other behaviors (for example, it draws shadow
24 // differently based on being key window) so it appears easier to simply overlay 24 // differently based on being key window) so it appears easier to simply overlay
25 // the standard titlebar. 25 // the standard titlebar.
26 26
27 // When Drag is cancelled by hitting ESC key, we may still receive 27 // When Drag is cancelled by hitting ESC key, we may still receive
28 // the mouseDragged events but should ignore them until the mouse button is 28 // the mouseDragged events but should ignore them until the mouse button is
29 // released. Use these simple states to track this condition. 29 // released. Use these simple states to track this condition.
(...skipping 19 matching lines...) Expand all
49 } 49 }
50 - (id)initWithView:(NSView*)targetView duration:(double) duration; 50 - (id)initWithView:(NSView*)targetView duration:(double) duration;
51 - (void)setCurrentProgress:(NSAnimationProgress)progress; 51 - (void)setCurrentProgress:(NSAnimationProgress)progress;
52 @end 52 @end
53 53
54 @interface PanelTitlebarViewCocoa : NSView<NSAnimationDelegate> { 54 @interface PanelTitlebarViewCocoa : NSView<NSAnimationDelegate> {
55 @private 55 @private
56 IBOutlet PanelWindowControllerCocoa* controller_; 56 IBOutlet PanelWindowControllerCocoa* controller_;
57 IBOutlet NSView* icon_; 57 IBOutlet NSView* icon_;
58 IBOutlet NSTextField* title_; 58 IBOutlet NSTextField* title_;
59 // Since HoverImageButton manages its own alpha value, we wrap it in a subview
60 // so we can animate it with a fade in/fade out effect.
61 IBOutlet NSView* settingsButtonWrapper_;
62 IBOutlet HoverImageButton* settingsButton_;
63 // Transparent view on top of entire titlebar. It catches mouse events to 59 // Transparent view on top of entire titlebar. It catches mouse events to
64 // prevent window activation by the system on mouseDown. 60 // prevent window activation by the system on mouseDown.
65 IBOutlet NSView* overlay_; 61 IBOutlet NSView* overlay_;
66 NSButton* closeButton_; // Created explicitly, not from NIB. Weak, destroyed 62 NSButton* closeButton_; // Created explicitly, not from NIB. Weak, destroyed
67 // when view is destroyed, as a subview. 63 // when view is destroyed, as a subview.
68 ScopedCrTrackingArea closeButtonTrackingArea_; 64 ScopedCrTrackingArea closeButtonTrackingArea_;
69 PanelDragState dragState_; 65 PanelDragState dragState_;
70 BOOL isDrawingAttention_; 66 BOOL isDrawingAttention_;
71 67
72 // "Glint" animation is used in "Draw Attention" mode. 68 // "Glint" animation is used in "Draw Attention" mode.
(...skipping 10 matching lines...) Expand all
83 // Capture the visible frame and full screen bounds used during drag. 79 // Capture the visible frame and full screen bounds used during drag.
84 // These are used to prevent dragging the panel under the system menu bar in 80 // These are used to prevent dragging the panel under the system menu bar in
85 // the way the system drag does. 81 // the way the system drag does.
86 NSRect visibleFrameForDrag_; 82 NSRect visibleFrameForDrag_;
87 NSRect screenBoundsForDrag_; 83 NSRect screenBoundsForDrag_;
88 } 84 }
89 85
90 // Callback from Close button. 86 // Callback from Close button.
91 - (void)onCloseButtonClick:(id)sender; 87 - (void)onCloseButtonClick:(id)sender;
92 88
93 // Callback from Settings button.
94 - (void)onSettingsButtonClick:(id)sender;
95
96 // Attaches this view to the controller_'s window as a titlebar. 89 // Attaches this view to the controller_'s window as a titlebar.
97 - (void)attach; 90 - (void)attach;
98 91
99 - (void)setTitle:(NSString*)newTitle; 92 - (void)setTitle:(NSString*)newTitle;
100 - (void)setIcon:(NSView*)newIcon; 93 - (void)setIcon:(NSView*)newIcon;
101 94
102 - (NSView*)icon; 95 - (NSView*)icon;
103 96
104 // Should be called when size of the titlebar changes. 97 // Should be called when size of the titlebar changes.
105 - (void)updateCloseButtonLayout; 98 - (void)updateCloseButtonLayout;
106 - (void)updateIconAndTitleLayout; 99 - (void)updateIconAndTitleLayout;
107 100
108 // Various events that we'll need to redraw our titlebar for. 101 // Various events that we'll need to redraw our titlebar for.
109 - (void)didChangeFrame:(NSNotification*)notification; 102 - (void)didChangeFrame:(NSNotification*)notification;
110 - (void)didChangeTheme:(NSNotification*)notification; 103 - (void)didChangeTheme:(NSNotification*)notification;
111 - (void)didChangeMainWindow:(NSNotification*)notification; 104 - (void)didChangeMainWindow:(NSNotification*)notification;
112 105
113 // Helpers to control title drag operation, called from more then one place. 106 // Helpers to control title drag operation, called from more then one place.
114 // |mouseLocation| is in Cocoa's screen coordinates. 107 // |mouseLocation| is in Cocoa's screen coordinates.
115 - (void)startDrag:(NSPoint)mouseLocation; 108 - (void)startDrag:(NSPoint)mouseLocation;
116 - (void)endDrag:(BOOL)cancelled; 109 - (void)endDrag:(BOOL)cancelled;
117 - (void)drag:(NSPoint)mouseLocation; 110 - (void)drag:(NSPoint)mouseLocation;
118 111
119 // Update the visibility of settings button.
120 - (void)updateSettingsButtonVisibility:(BOOL)mouseOverWindow;
121 - (void)checkMouseAndUpdateSettingsButtonVisibility;
122
123 // Draw Attention methods - change appearance of titlebar to attract user. 112 // Draw Attention methods - change appearance of titlebar to attract user.
124 - (void)drawAttention; 113 - (void)drawAttention;
125 - (void)stopDrawingAttention; 114 - (void)stopDrawingAttention;
126 - (BOOL)isDrawingAttention; 115 - (BOOL)isDrawingAttention;
127 - (void)startGlintAnimation; 116 - (void)startGlintAnimation;
128 - (void)restartGlintAnimation:(NSTimer*)timer; 117 - (void)restartGlintAnimation:(NSTimer*)timer;
129 - (void)stopGlintAnimation; 118 - (void)stopGlintAnimation;
130 119
131 // Returns width of titlebar when shown in "icon only" mode. 120 // Returns width of titlebar when shown in "icon only" mode.
132 - (int)iconOnlyWidthInScreenCoordinates; 121 - (int)iconOnlyWidthInScreenCoordinates;
(...skipping 15 matching lines...) Expand all
148 - (void)pressLeftMouseButtonTitlebar:(NSPoint)mouseLocation 137 - (void)pressLeftMouseButtonTitlebar:(NSPoint)mouseLocation
149 modifiers:(int)modifierFlags; 138 modifiers:(int)modifierFlags;
150 - (void)releaseLeftMouseButtonTitlebar:(int)modifierFlags; 139 - (void)releaseLeftMouseButtonTitlebar:(int)modifierFlags;
151 - (void)dragTitlebar:(NSPoint)mouseLocation; 140 - (void)dragTitlebar:(NSPoint)mouseLocation;
152 - (void)cancelDragTitlebar; 141 - (void)cancelDragTitlebar;
153 - (void)finishDragTitlebar; 142 - (void)finishDragTitlebar;
154 143
155 @end // @interface PanelTitlebarViewCocoa(TestingAPI) 144 @end // @interface PanelTitlebarViewCocoa(TestingAPI)
156 145
157 #endif // CHROME_BROWSER_UI_PANELS_PANEL_TITLEBAR_VIEW_COCOA_H_ 146 #endif // CHROME_BROWSER_UI_PANELS_PANEL_TITLEBAR_VIEW_COCOA_H_
OLDNEW
« no previous file with comments | « chrome/browser/ui/panels/panel_settings_menu_model.cc ('k') | chrome/browser/ui/panels/panel_titlebar_view_cocoa.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698