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

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

Issue 9546001: Support detaching/attaching panels via inter-strip drags. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 9 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"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 IBOutlet NSView* settingsButtonWrapper_; 51 IBOutlet NSView* settingsButtonWrapper_;
52 IBOutlet HoverImageButton* settingsButton_; 52 IBOutlet HoverImageButton* settingsButton_;
53 // Transparent view on top of entire titlebar. It catches mouse events to 53 // Transparent view on top of entire titlebar. It catches mouse events to
54 // prevent window activation by the system on mouseDown. 54 // prevent window activation by the system on mouseDown.
55 IBOutlet NSView* overlay_; 55 IBOutlet NSView* overlay_;
56 NSButton* closeButton_; // Created explicitly, not from NIB. Weak, destroyed 56 NSButton* closeButton_; // Created explicitly, not from NIB. Weak, destroyed
57 // when view is destroyed, as a subview. 57 // when view is destroyed, as a subview.
58 ScopedCrTrackingArea closeButtonTrackingArea_; 58 ScopedCrTrackingArea closeButtonTrackingArea_;
59 PanelDragState dragState_; 59 PanelDragState dragState_;
60 BOOL isDrawingAttention_; 60 BOOL isDrawingAttention_;
61 NSPoint dragStartLocation_; 61 NSPoint dragStartLocation_; // in screen coordinates.
62 // "Glint" animation is used in "Draw Attention" mode. 62 // "Glint" animation is used in "Draw Attention" mode.
63 scoped_nsobject<RepaintAnimation> glintAnimation_; 63 scoped_nsobject<RepaintAnimation> glintAnimation_;
64 scoped_nsobject<NSTimer> glintAnimationTimer_; 64 scoped_nsobject<NSTimer> glintAnimationTimer_;
65 double glintInterval_; 65 double glintInterval_;
66 } 66 }
67 67
68 // Callback from Close button. 68 // Callback from Close button.
69 - (void)onCloseButtonClick:(id)sender; 69 - (void)onCloseButtonClick:(id)sender;
70 70
71 // Callback from Settings button. 71 // Callback from Settings button.
(...skipping 10 matching lines...) Expand all
82 // Should be called when size of the titlebar changes. 82 // Should be called when size of the titlebar changes.
83 - (void)updateCloseButtonLayout; 83 - (void)updateCloseButtonLayout;
84 - (void)updateIconAndTitleLayout; 84 - (void)updateIconAndTitleLayout;
85 85
86 // Various events that we'll need to redraw our titlebar for. 86 // Various events that we'll need to redraw our titlebar for.
87 - (void)didChangeFrame:(NSNotification*)notification; 87 - (void)didChangeFrame:(NSNotification*)notification;
88 - (void)didChangeTheme:(NSNotification*)notification; 88 - (void)didChangeTheme:(NSNotification*)notification;
89 - (void)didChangeMainWindow:(NSNotification*)notification; 89 - (void)didChangeMainWindow:(NSNotification*)notification;
90 90
91 // Helpers to control title drag operation, called from more then one place. 91 // Helpers to control title drag operation, called from more then one place.
92 - (void)startDrag; 92 // |mouseLocation| is in screen coordinates.
93 - (void)startDrag:(NSPoint)mouseLocation;
93 - (void)endDrag:(BOOL)cancelled; 94 - (void)endDrag:(BOOL)cancelled;
94 - (void)dragWithDeltaX:(int)deltaX 95 - (void)drag:(NSPoint)mouseLocation;
95 deltaY:(int)deltaY;
96 96
97 // Update the visibility of settings button. 97 // Update the visibility of settings button.
98 - (void)updateSettingsButtonVisibility:(BOOL)mouseOverWindow; 98 - (void)updateSettingsButtonVisibility:(BOOL)mouseOverWindow;
99 - (void)checkMouseAndUpdateSettingsButtonVisibility; 99 - (void)checkMouseAndUpdateSettingsButtonVisibility;
100 100
101 // Draw Attention methods - change appearance of titlebar to attract user. 101 // Draw Attention methods - change appearance of titlebar to attract user.
102 - (void)drawAttention; 102 - (void)drawAttention;
103 - (void)stopDrawingAttention; 103 - (void)stopDrawingAttention;
104 - (BOOL)isDrawingAttention; 104 - (BOOL)isDrawingAttention;
105 - (void)startGlintAnimation; 105 - (void)startGlintAnimation;
106 - (void)restartGlintAnimation:(NSTimer*)timer; 106 - (void)restartGlintAnimation:(NSTimer*)timer;
107 - (void)stopGlintAnimation; 107 - (void)stopGlintAnimation;
108 108
109 // Returns width of titlebar when shown in "icon only" mode. 109 // Returns width of titlebar when shown in "icon only" mode.
110 - (int)iconOnlyWidthInScreenCoordinates; 110 - (int)iconOnlyWidthInScreenCoordinates;
111 111
112 @end // @interface PanelTitlebarView 112 @end // @interface PanelTitlebarView
113 113
114 // Methods which are either only for testing, or only public for testing. 114 // Methods which are either only for testing, or only public for testing.
115 @interface PanelTitlebarViewCocoa(TestingAPI) 115 @interface PanelTitlebarViewCocoa(TestingAPI)
116 116
117 - (PanelWindowControllerCocoa*)controller; 117 - (PanelWindowControllerCocoa*)controller;
118 118
119 - (NSTextField*)title; 119 - (NSTextField*)title;
120 120
121 // Simulates click on a close button. Used to test panel closing. 121 // Simulates click on a close button. Used to test panel closing.
122 - (void)simulateCloseButtonClick; 122 - (void)simulateCloseButtonClick;
123 123
124 // NativePanelTesting support. 124 // NativePanelTesting support.
125 - (void)pressLeftMouseButtonTitlebar; 125 - (void)pressLeftMouseButtonTitlebar:(NSPoint)mouseLocation;
126 - (void)releaseLeftMouseButtonTitlebar; 126 - (void)releaseLeftMouseButtonTitlebar;
127 - (void)dragTitlebarDeltaX:(double)delta_x 127 - (void)dragTitlebar:(NSPoint)mouseLocation;
128 deltaY:(double)delta_y;
129 - (void)cancelDragTitlebar; 128 - (void)cancelDragTitlebar;
130 - (void)finishDragTitlebar; 129 - (void)finishDragTitlebar;
131 130
132 @end // @interface PanelTitlebarViewCocoa(TestingAPI) 131 @end // @interface PanelTitlebarViewCocoa(TestingAPI)
133 132
134 #endif // CHROME_BROWSER_UI_PANELS_PANEL_TITLEBAR_VIEW_COCOA_H_ 133 #endif // CHROME_BROWSER_UI_PANELS_PANEL_TITLEBAR_VIEW_COCOA_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698