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

Side by Side Diff: chrome/browser/ui/views/bookmarks/bookmark_bar_view.h

Issue 7054013: Cleans up bookmark_bar_view. In particular makes sure order of methods (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 7 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
« no previous file with comments | « no previous file | chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_VIEWS_BOOKMARKS_BOOKMARK_BAR_VIEW_H_ 5 #ifndef CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_BAR_VIEW_H_
6 #define CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_BAR_VIEW_H_ 6 #define CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_BAR_VIEW_H_
7 #pragma once 7 #pragma once
8 8
9 #include <set> 9 #include <set>
10 10
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 public ProfileSyncServiceObserver, 46 public ProfileSyncServiceObserver,
47 public BookmarkModelObserver, 47 public BookmarkModelObserver,
48 public views::ViewMenuDelegate, 48 public views::ViewMenuDelegate,
49 public views::ButtonListener, 49 public views::ButtonListener,
50 public NotificationObserver, 50 public NotificationObserver,
51 public views::ContextMenuController, 51 public views::ContextMenuController,
52 public views::DragController, 52 public views::DragController,
53 public ui::AnimationDelegate, 53 public ui::AnimationDelegate,
54 public BookmarkMenuController::Observer, 54 public BookmarkMenuController::Observer,
55 public BookmarkBarInstructionsView::Delegate { 55 public BookmarkBarInstructionsView::Delegate {
56 friend class ShowFolderMenuTask;
57
58 public: 56 public:
59 // Constants used in Browser View, as well as here. 57 // Constants used in Browser View, as well as here.
60 // How inset the bookmarks bar is when displayed on the new tab page. 58 // How inset the bookmarks bar is when displayed on the new tab page.
61 static const int kNewtabHorizontalPadding; 59 static const int kNewtabHorizontalPadding;
62 static const int kNewtabVerticalPadding; 60 static const int kNewtabVerticalPadding;
63 61
64 // Maximum size of buttons on the bookmark bar. 62 // Maximum size of buttons on the bookmark bar.
65 static const int kMaxButtonWidth; 63 static const int kMaxButtonWidth;
66 64
67 // Interface implemented by controllers/views that need to be notified any
68 // time the model changes, typically to cancel an operation that is showing
69 // data from the model such as a menu. This isn't intended as a general
70 // way to be notified of changes, rather for cases where a controller/view is
71 // showing data from the model in a modal like setting and needs to cleanly
72 // exit the modal loop if the model changes out from under it.
73 //
74 // A controller/view that needs this notification should install itself as the
75 // ModelChangeListener via the SetModelChangedListener method when shown and
76 // reset the ModelChangeListener of the BookmarkBarView when it closes by way
77 // of either the SetModelChangedListener method or the
78 // ClearModelChangedListenerIfEquals method.
79 class ModelChangedListener {
80 public:
81 virtual ~ModelChangedListener() {}
82
83 // Invoked when the model changes. Should cancel the edit and close any
84 // dialogs.
85 virtual void ModelChanged() = 0;
86 };
87
88 static const int kNewtabBarHeight; 65 static const int kNewtabBarHeight;
89 66
90 BookmarkBarView(Profile* profile, Browser* browser); 67 BookmarkBarView(Profile* profile, Browser* browser);
91 virtual ~BookmarkBarView(); 68 virtual ~BookmarkBarView();
92 69
93 // Resets the profile. This removes any buttons for the current profile and 70 // Resets the profile. This removes any buttons for the current profile and
94 // recreates the models. 71 // recreates the models.
95 void SetProfile(Profile* profile); 72 void SetProfile(Profile* profile);
96 73
97 // Returns the current profile. 74 // Returns the current profile.
98 Profile* GetProfile() { return profile_; } 75 Profile* GetProfile() { return profile_; }
99 76
100 // Returns the current browser. 77 // Returns the current browser.
101 Browser* browser() const { return browser_; } 78 Browser* browser() const { return browser_; }
102 79
103 // Sets the PageNavigator that is used when the user selects an entry on 80 // Sets the PageNavigator that is used when the user selects an entry on
104 // the bookmark bar. 81 // the bookmark bar.
105 void SetPageNavigator(PageNavigator* navigator); 82 void SetPageNavigator(PageNavigator* navigator);
106 83
84 // Returns the page navigator.
85 PageNavigator* GetPageNavigator() { return page_navigator_; }
86
107 // Sets whether the containing browser is showing an infobar. This affects 87 // Sets whether the containing browser is showing an infobar. This affects
108 // layout during animation. 88 // layout during animation.
109 void set_infobar_visible(bool infobar_visible) { 89 void set_infobar_visible(bool infobar_visible) {
110 infobar_visible_ = infobar_visible; 90 infobar_visible_ = infobar_visible;
111 } 91 }
112 92
113 virtual bool IsOnTop() const; 93 // Returns the model.
114 94 BookmarkModel* GetModel() { return model_; }
115 // DetachableToolbarView methods:
116 virtual bool IsDetached() const OVERRIDE;
117 virtual double GetAnimationValue() const OVERRIDE;
118 virtual int GetToolbarOverlap() const OVERRIDE;
119
120 // View methods:
121 virtual gfx::Size GetPreferredSize() OVERRIDE;
122 virtual gfx::Size GetMinimumSize() OVERRIDE;
123 virtual void Layout() OVERRIDE;
124 virtual void ViewHierarchyChanged(bool is_add, View* parent, View* child)
125 OVERRIDE;
126 virtual void PaintChildren(gfx::Canvas* canvas) OVERRIDE;
127 virtual bool GetDropFormats(
128 int* formats,
129 std::set<ui::OSExchangeData::CustomFormat>* custom_formats) OVERRIDE;
130 virtual bool AreDropTypesRequired() OVERRIDE;
131 virtual bool CanDrop(const ui::OSExchangeData& data) OVERRIDE;
132 virtual void OnDragEntered(const views::DropTargetEvent& event) OVERRIDE;
133 virtual int OnDragUpdated(const views::DropTargetEvent& event) OVERRIDE;
134 virtual void OnDragExited() OVERRIDE;
135 virtual int OnPerformDrop(const views::DropTargetEvent& event) OVERRIDE;
136 virtual void ShowContextMenu(const gfx::Point& p, bool is_mouse_gesture)
137 OVERRIDE;
138
139 // AccessiblePaneView methods:
140 virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
141
142 // ProfileSyncServiceObserver method.
143 virtual void OnStateChanged();
144 95
145 // Called when fullscreen mode toggles on or off; this affects our layout. 96 // Called when fullscreen mode toggles on or off; this affects our layout.
146 void OnFullscreenToggled(bool fullscreen); 97 void OnFullscreenToggled(bool fullscreen);
147 98
148 // Sets the model change listener to listener.
149 void SetModelChangedListener(ModelChangedListener* listener) {
150 model_changed_listener_ = listener;
151 }
152
153 // If the ModelChangedListener is listener, ModelChangeListener is set to
154 // NULL.
155 void ClearModelChangedListenerIfEquals(ModelChangedListener* listener) {
156 if (model_changed_listener_ == listener)
157 model_changed_listener_ = NULL;
158 }
159
160 // Returns the model change listener.
161 ModelChangedListener* GetModelChangedListener() {
162 return model_changed_listener_;
163 }
164
165 // Returns the page navigator.
166 PageNavigator* GetPageNavigator() { return page_navigator_; }
167
168 // Returns the model.
169 BookmarkModel* GetModel() { return model_; }
170
171 // Returns true if the bookmarks bar preference is set to 'always show'. 99 // Returns true if the bookmarks bar preference is set to 'always show'.
172 bool IsAlwaysShown() const; 100 bool IsAlwaysShown() const;
173 101
174 // True if we're on a page where the bookmarks bar is always visible. 102 // True if we're on a page where the bookmarks bar is always visible.
175 bool OnNewTabPage() const; 103 bool OnNewTabPage() const;
176 104
177 // How much we want the bookmark bar to overlap the toolbar. If |return_max| 105 // How much we want the bookmark bar to overlap the toolbar. If |return_max|
178 // is true, we return the maximum overlap rather than the current overlap. 106 // is true, we return the maximum overlap rather than the current overlap.
179 int GetToolbarOverlap(bool return_max) const; 107 int GetToolbarOverlap(bool return_max) const;
180 108
181 // Whether or not we are animating. 109 // Whether or not we are animating.
182 bool is_animating(); 110 bool is_animating();
183 111
184 // SlideAnimationDelegate implementation. 112 // Returns the number of buttons corresponding to starred urls/folders. This
185 virtual void AnimationProgressed(const ui::Animation* animation); 113 // is equivalent to the number of children the bookmark bar node from the
186 virtual void AnimationEnded(const ui::Animation* animation); 114 // bookmark bar model has.
187 115 int GetBookmarkButtonCount();
188 // BookmarkMenuController::Observer
189 virtual void BookmarkMenuDeleted(BookmarkMenuController* controller);
190 116
191 // Returns the button at the specified index. 117 // Returns the button at the specified index.
192 views::TextButton* GetBookmarkButton(int index); 118 views::TextButton* GetBookmarkButton(int index);
193 119
194 // Returns the button responsible for showing bookmarks in the other bookmark
195 // folder.
196 views::MenuButton* other_bookmarked_button() const {
197 return other_bookmarked_button_;
198 }
199
200 // Returns the active MenuItemView, or NULL if a menu isn't showing.
201 views::MenuItemView* GetMenu();
202
203 // Returns the drop MenuItemView, or NULL if a menu isn't showing.
204 views::MenuItemView* GetDropMenu();
205
206 // Returns the context menu, or null if one isn't showing.
207 views::MenuItemView* GetContextMenu();
208
209 // Returns the button used when not all the items on the bookmark bar fit.
210 views::MenuButton* overflow_button() const { return overflow_button_; }
211
212 // If |loc| is over a bookmark button the node is returned corresponding 120 // If |loc| is over a bookmark button the node is returned corresponding
213 // to the button and |start_index| is set to 0. If a overflow button is 121 // to the button and |start_index| is set to 0. If a overflow button is
214 // showing and |loc| is over the overflow button, the bookmark bar node is 122 // showing and |loc| is over the overflow button, the bookmark bar node is
215 // returned and |start_index| is set to the index of the first node 123 // returned and |start_index| is set to the index of the first node
216 // contained in the overflow menu. 124 // contained in the overflow menu.
217 const BookmarkNode* GetNodeForButtonAt(const gfx::Point& loc, 125 const BookmarkNode* GetNodeForButtonAt(const gfx::Point& loc,
218 int* start_index); 126 int* start_index);
219 127
220 // Returns the MenuButton for node. 128 // Returns the MenuButton for node.
221 views::MenuButton* GetMenuButtonForNode(const BookmarkNode* node); 129 views::MenuButton* GetMenuButtonForNode(const BookmarkNode* node);
222 130
223 // Returns the position to anchor the menu for |button| at, the index of the 131 // Returns the position to anchor the menu for |button| at, the index of the
224 // first child of the node to build the menu from. 132 // first child of the node to build the menu from.
225 void GetAnchorPositionAndStartIndexForButton( 133 void GetAnchorPositionAndStartIndexForButton(
226 views::MenuButton* button, 134 views::MenuButton* button,
227 views::MenuItemView::AnchorPosition* anchor, 135 views::MenuItemView::AnchorPosition* anchor,
228 int* start_index); 136 int* start_index);
229 137
230 // BookmarkBarInstructionsView::Delegate. 138 // Returns the button responsible for showing bookmarks in the other bookmark
231 virtual void ShowImportDialog(); 139 // folder.
140 views::MenuButton* other_bookmarked_button() const {
141 return other_bookmarked_button_;
142 }
143
144 // Returns the button used when not all the items on the bookmark bar fit.
145 views::MenuButton* overflow_button() const { return overflow_button_; }
146
147 // Returns the active MenuItemView, or NULL if a menu isn't showing.
148 views::MenuItemView* GetMenu();
149
150 // Returns the context menu, or null if one isn't showing.
151 views::MenuItemView* GetContextMenu();
152
153 // Returns the drop MenuItemView, or NULL if a menu isn't showing.
154 views::MenuItemView* GetDropMenu();
232 155
233 // If a button is currently throbbing, it is stopped. If immediate is true 156 // If a button is currently throbbing, it is stopped. If immediate is true
234 // the throb stops immediately, otherwise it stops after a couple more 157 // the throb stops immediately, otherwise it stops after a couple more
235 // throbs. 158 // throbs.
236 void StopThrobbing(bool immediate); 159 void StopThrobbing(bool immediate);
237 160
238 // Returns the number of buttons corresponding to starred urls/folders. This
239 // is equivalent to the number of children the bookmark bar node from the
240 // bookmark bar model has.
241 int GetBookmarkButtonCount();
242
243 // Returns the tooltip text for the specified url and title. The returned 161 // Returns the tooltip text for the specified url and title. The returned
244 // text is clipped to fit within the bounds of the monitor. 162 // text is clipped to fit within the bounds of the monitor.
245 // 163 //
246 // Note that we adjust the direction of both the URL and the title based on 164 // Note that we adjust the direction of both the URL and the title based on
247 // the locale so that pure LTR strings are displayed properly in RTL locales. 165 // the locale so that pure LTR strings are displayed properly in RTL locales.
248 static std::wstring CreateToolTipForURLAndTitle( 166 static std::wstring CreateToolTipForURLAndTitle(
249 const gfx::Point& screen_loc, 167 const gfx::Point& screen_loc,
250 const GURL& url, 168 const GURL& url,
251 const std::wstring& title, 169 const std::wstring& title,
252 Profile* profile); 170 Profile* profile);
253 171
172 // DetachableToolbarView methods:
173 virtual bool IsDetached() const OVERRIDE;
174 virtual double GetAnimationValue() const OVERRIDE;
175 virtual int GetToolbarOverlap() const OVERRIDE;
176
177 // View methods:
178 virtual gfx::Size GetPreferredSize() OVERRIDE;
179 virtual gfx::Size GetMinimumSize() OVERRIDE;
180 virtual void Layout() OVERRIDE;
181 virtual void ViewHierarchyChanged(bool
182 is_add,
183 View* parent,
184 View* child) OVERRIDE;
185 virtual void PaintChildren(gfx::Canvas* canvas) OVERRIDE;
186 virtual bool GetDropFormats(
187 int* formats,
188 std::set<ui::OSExchangeData::CustomFormat>* custom_formats) OVERRIDE;
189 virtual bool AreDropTypesRequired() OVERRIDE;
190 virtual bool CanDrop(const ui::OSExchangeData& data) OVERRIDE;
191 virtual void OnDragEntered(const views::DropTargetEvent& event) OVERRIDE;
192 virtual int OnDragUpdated(const views::DropTargetEvent& event) OVERRIDE;
193 virtual void OnDragExited() OVERRIDE;
194 virtual int OnPerformDrop(const views::DropTargetEvent& event) OVERRIDE;
195 virtual void ShowContextMenu(const gfx::Point& p,
196 bool is_mouse_gesture) OVERRIDE;
197 virtual void OnThemeChanged() OVERRIDE;
198
199 // AccessiblePaneView methods:
200 virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
201
202 // ProfileSyncServiceObserver method.
203 virtual void OnStateChanged() OVERRIDE;
204
205 // SlideAnimationDelegate implementation.
206 virtual void AnimationProgressed(const ui::Animation* animation) OVERRIDE;
207 virtual void AnimationEnded(const ui::Animation* animation) OVERRIDE;
208
209 // BookmarkMenuController::Observer
210 virtual void BookmarkMenuDeleted(
211 BookmarkMenuController* controller) OVERRIDE;
212
213 // BookmarkBarInstructionsView::Delegate.
214 virtual void ShowImportDialog() OVERRIDE;
215
216 // BookmarkModelObserver:
217 virtual void Loaded(BookmarkModel* model) OVERRIDE;
218 virtual void BookmarkModelBeingDeleted(BookmarkModel* model) OVERRIDE;
219 virtual void BookmarkNodeMoved(BookmarkModel* model,
220 const BookmarkNode* old_parent,
221 int old_index,
222 const BookmarkNode* new_parent,
223 int new_index) OVERRIDE;
224 virtual void BookmarkNodeAdded(BookmarkModel* model,
225 const BookmarkNode* parent,
226 int index) OVERRIDE;
227 virtual void BookmarkNodeRemoved(BookmarkModel* model,
228 const BookmarkNode* parent,
229 int old_index,
230 const BookmarkNode* node) OVERRIDE;
231 virtual void BookmarkNodeChanged(BookmarkModel* model,
232 const BookmarkNode* node) OVERRIDE;
233 virtual void BookmarkNodeChildrenReordered(BookmarkModel* model,
234 const BookmarkNode* node) OVERRIDE;
235 virtual void BookmarkNodeFaviconLoaded(BookmarkModel* model,
236 const BookmarkNode* node) OVERRIDE;
237
238 // DragController:
239 virtual void WriteDragDataForView(views::View* sender,
240 const gfx::Point& press_pt,
241 ui::OSExchangeData* data) OVERRIDE;
242 virtual int GetDragOperationsForView(views::View* sender,
243 const gfx::Point& p) OVERRIDE;
244 virtual bool CanStartDragForView(views::View* sender,
245 const gfx::Point& press_pt,
246 const gfx::Point& p) OVERRIDE;
247
248 // ViewMenuDelegate:
249 virtual void RunMenu(views::View* view, const gfx::Point& pt) OVERRIDE;
250
251 // ButtonListener:
252 virtual void ButtonPressed(views::Button* sender,
253 const views::Event& event) OVERRIDE;
254
255 // ContextMenuController
256 virtual void ShowContextMenuForView(views::View* source,
257 const gfx::Point& p,
258 bool is_mouse_gesture) OVERRIDE;
259
260 // NotificationService:
261 virtual void Observe(NotificationType type,
262 const NotificationSource& source,
263 const NotificationDetails& details) OVERRIDE;
264
254 // If true we're running tests. This short circuits a couple of animations. 265 // If true we're running tests. This short circuits a couple of animations.
255 static bool testing_; 266 static bool testing_;
256 267
257 private: 268 private:
258 class ButtonSeparatorView; 269 class ButtonSeparatorView;
259 struct DropInfo; 270 struct DropInfo;
260 271
261 // Task that invokes ShowDropFolderForNode when run. ShowFolderDropMenuTask 272 // Task that invokes ShowDropFolderForNode when run. ShowFolderDropMenuTask
262 // deletes itself once run. 273 // deletes itself once run.
263 class ShowFolderDropMenuTask : public Task { 274 class ShowFolderDropMenuTask : public Task {
(...skipping 26 matching lines...) Expand all
290 // Creates recent bookmark button and when visible button as well as 301 // Creates recent bookmark button and when visible button as well as
291 // calculating the preferred height. 302 // calculating the preferred height.
292 void Init(); 303 void Init();
293 304
294 // Creates the button showing the other bookmarked items. 305 // Creates the button showing the other bookmarked items.
295 views::MenuButton* CreateOtherBookmarkedButton(); 306 views::MenuButton* CreateOtherBookmarkedButton();
296 307
297 // Creates the button used when not all bookmark buttons fit. 308 // Creates the button used when not all bookmark buttons fit.
298 views::MenuButton* CreateOverflowButton(); 309 views::MenuButton* CreateOverflowButton();
299 310
300 // Invoked when the bookmark bar model has finished loading. Creates a button 311 // Creates the sync error button and adds it as a child view.
301 // for each of the children of the root node from the model. 312 views::TextButton* CreateSyncErrorButton();
302 virtual void Loaded(BookmarkModel* model);
303
304 // Invoked when the model is being deleted.
305 virtual void BookmarkModelBeingDeleted(BookmarkModel* model);
306
307 // Invokes added followed by removed.
308 virtual void BookmarkNodeMoved(BookmarkModel* model,
309 const BookmarkNode* old_parent,
310 int old_index,
311 const BookmarkNode* new_parent,
312 int new_index);
313
314 // Notifies ModelChangeListener of change.
315 // If the node was added to the root node, a button is created and added to
316 // this bookmark bar view.
317 virtual void BookmarkNodeAdded(BookmarkModel* model,
318 const BookmarkNode* parent,
319 int index);
320
321 // Implementation for BookmarkNodeAddedImpl.
322 void BookmarkNodeAddedImpl(BookmarkModel* model,
323 const BookmarkNode* parent,
324 int index);
325
326 // Notifies ModelChangeListener of change.
327 // If the node was a child of the root node, the button corresponding to it
328 // is removed.
329 virtual void BookmarkNodeRemoved(BookmarkModel* model,
330 const BookmarkNode* parent,
331 int old_index,
332 const BookmarkNode* node);
333
334 // Implementation for BookmarkNodeRemoved.
335 void BookmarkNodeRemovedImpl(BookmarkModel* model,
336 const BookmarkNode* parent,
337 int index);
338
339 // Notifies ModelChangedListener and invokes BookmarkNodeChangedImpl.
340 virtual void BookmarkNodeChanged(BookmarkModel* model,
341 const BookmarkNode* node);
342
343 // If the node is a child of the root node, the button is updated
344 // appropriately.
345 void BookmarkNodeChangedImpl(BookmarkModel* model, const BookmarkNode* node);
346
347 virtual void BookmarkNodeChildrenReordered(BookmarkModel* model,
348 const BookmarkNode* node);
349
350 // Invoked when the favicon is available. If the node is a child of the
351 // root node, the appropriate button is updated. If a menu is showing, the
352 // call is forwarded to the menu to allow for it to update the icon.
353 virtual void BookmarkNodeFaviconLoaded(BookmarkModel* model,
354 const BookmarkNode* node);
355
356 // DragController method. Determines the node representing sender and invokes
357 // WriteDragData to write the actual data.
358 virtual void WriteDragDataForView(views::View* sender,
359 const gfx::Point& press_pt,
360 ui::OSExchangeData* data) OVERRIDE;
361
362 virtual int GetDragOperationsForView(views::View* sender,
363 const gfx::Point& p) OVERRIDE;
364
365 virtual bool CanStartDragForView(views::View* sender,
366 const gfx::Point& press_pt,
367 const gfx::Point& p) OVERRIDE;
368
369 // Writes a BookmarkNodeData for node to data.
370 void WriteBookmarkDragData(const BookmarkNode* node,
371 ui::OSExchangeData* data);
372
373 // ViewMenuDelegate method. Ends up creating a BookmarkMenuController to
374 // show the menu.
375 virtual void RunMenu(views::View* view, const gfx::Point& pt);
376
377 // Invoked when a star entry corresponding to a URL on the bookmark bar is
378 // pressed. Forwards to the PageNavigator to open the URL.
379 virtual void ButtonPressed(views::Button* sender, const views::Event& event);
380
381 // Invoked for this View, one of the buttons or the 'other' button. Shows the
382 // appropriate context menu.
383 virtual void ShowContextMenuForView(views::View* source,
384 const gfx::Point& p,
385 bool is_mouse_gesture);
386 313
387 // Creates the button for rendering the specified bookmark node. 314 // Creates the button for rendering the specified bookmark node.
388 views::View* CreateBookmarkButton(const BookmarkNode* node); 315 views::View* CreateBookmarkButton(const BookmarkNode* node);
389 316
390 // COnfigures the button from the specified node. This sets the text, 317 // COnfigures the button from the specified node. This sets the text,
391 // and icon. 318 // and icon.
392 void ConfigureButton(const BookmarkNode* node, views::TextButton* button); 319 void ConfigureButton(const BookmarkNode* node, views::TextButton* button);
393 320
394 // Used when showing the menu allowing the user to choose when the bar is 321 // Implementation for BookmarkNodeAddedImpl.
395 // visible. Return value corresponds to the users preference for when the 322 void BookmarkNodeAddedImpl(BookmarkModel* model,
396 // bar is visible. 323 const BookmarkNode* parent,
397 virtual bool IsItemChecked(int id) const; 324 int index);
398 325
399 // Used when showing the menu allowing the user to choose when the bar is 326 // Implementation for BookmarkNodeRemoved.
400 // visible. Updates the preferences to match the users choice as appropriate. 327 void BookmarkNodeRemovedImpl(BookmarkModel* model,
401 virtual void ExecuteCommand(int id); 328 const BookmarkNode* parent,
329 int index);
402 330
403 // NotificationService method. 331 // If the node is a child of the root node, the button is updated
404 virtual void Observe(NotificationType type, 332 // appropriately.
405 const NotificationSource& source, 333 void BookmarkNodeChangedImpl(BookmarkModel* model, const BookmarkNode* node);
406 const NotificationDetails& details);
407
408 // Overridden from views::View.
409 virtual void OnThemeChanged();
410
411 // If the ModelChangedListener is non-null, ModelChanged is invoked on it.
412 void NotifyModelChanged();
413 334
414 // Shows the menu used during drag and drop for the specified node. 335 // Shows the menu used during drag and drop for the specified node.
415 void ShowDropFolderForNode(const BookmarkNode* node); 336 void ShowDropFolderForNode(const BookmarkNode* node);
416 337
417 // Cancels the timer used to show a drop menu. 338 // Cancels the timer used to show a drop menu.
418 void StopShowFolderDropMenuTimer(); 339 void StopShowFolderDropMenuTimer();
419 340
420 // Stars the timer used to show a drop menu for node. 341 // Stars the timer used to show a drop menu for node.
421 void StartShowFolderDropMenuTimer(const BookmarkNode* node); 342 void StartShowFolderDropMenuTimer(const BookmarkNode* node);
422 343
423 // Returns the drop operation and index for the drop based on the event 344 // Returns the drop operation and index for the drop based on the event
424 // and data. Returns ui::DragDropTypes::DRAG_NONE if not a valid location. 345 // and data. Returns ui::DragDropTypes::DRAG_NONE if not a valid location.
425 int CalculateDropOperation(const views::DropTargetEvent& event, 346 int CalculateDropOperation(const views::DropTargetEvent& event,
426 const BookmarkNodeData& data, 347 const BookmarkNodeData& data,
427 int* index, 348 int* index,
428 bool* drop_on, 349 bool* drop_on,
429 bool* is_over_overflow, 350 bool* is_over_overflow,
430 bool* is_over_other); 351 bool* is_over_other);
431 352
353 // Writes a BookmarkNodeData for node to data.
354 void WriteBookmarkDragData(const BookmarkNode* node,
355 ui::OSExchangeData* data);
356
432 // Returns the index of the first hidden bookmark button. If all buttons are 357 // Returns the index of the first hidden bookmark button. If all buttons are
433 // visible, this returns GetBookmarkButtonCount(). 358 // visible, this returns GetBookmarkButtonCount().
434 int GetFirstHiddenNodeIndex(); 359 int GetFirstHiddenNodeIndex();
435 360
436 // This determines which view should throb and starts it 361 // This determines which view should throb and starts it
437 // throbbing (e.g when the bookmark bubble is showing). 362 // throbbing (e.g when the bookmark bubble is showing).
438 // If |overflow_only| is true, start throbbing only if |node| is hidden in 363 // If |overflow_only| is true, start throbbing only if |node| is hidden in
439 // the overflow menu. 364 // the overflow menu.
440 void StartThrobbing(const BookmarkNode* node, bool overflow_only); 365 void StartThrobbing(const BookmarkNode* node, bool overflow_only);
441 366
(...skipping 10 matching lines...) Expand all
452 // Updates the visibility of |other_bookmarked_button_| and 377 // Updates the visibility of |other_bookmarked_button_| and
453 // |bookmarks_separator_view_|. 378 // |bookmarks_separator_view_|.
454 void UpdateOtherBookmarksVisibility(); 379 void UpdateOtherBookmarksVisibility();
455 380
456 // This method computes the bounds for the bookmark bar items. If 381 // This method computes the bounds for the bookmark bar items. If
457 // |compute_bounds_only| = TRUE, the bounds for the items are just computed, 382 // |compute_bounds_only| = TRUE, the bounds for the items are just computed,
458 // but are not set. This mode is used by GetPreferredSize() to obtain the 383 // but are not set. This mode is used by GetPreferredSize() to obtain the
459 // desired bounds. If |compute_bounds_only| = FALSE, the bounds are set. 384 // desired bounds. If |compute_bounds_only| = FALSE, the bounds are set.
460 gfx::Size LayoutItems(bool compute_bounds_only); 385 gfx::Size LayoutItems(bool compute_bounds_only);
461 386
462 // Creates the sync error button and adds it as a child view.
463 views::TextButton* CreateSyncErrorButton();
464
465 NotificationRegistrar registrar_; 387 NotificationRegistrar registrar_;
466 388
467 Profile* profile_; 389 Profile* profile_;
468 390
469 // Used for opening urls. 391 // Used for opening urls.
470 PageNavigator* page_navigator_; 392 PageNavigator* page_navigator_;
471 393
472 // Model providing details as to the starred entries/folders that should be 394 // Model providing details as to the starred entries/folders that should be
473 // shown. This is owned by the Profile. 395 // shown. This is owned by the Profile.
474 BookmarkModel* model_; 396 BookmarkModel* model_;
475 397
476 // Used to manage showing a Menu, either for the most recently bookmarked 398 // Used to manage showing a Menu, either for the most recently bookmarked
477 // entries, or for the starred folder. 399 // entries, or for the starred folder.
478 BookmarkMenuController* bookmark_menu_; 400 BookmarkMenuController* bookmark_menu_;
479 401
480 // Used when showing a menu for drag and drop. That is, if the user drags 402 // Used when showing a menu for drag and drop. That is, if the user drags
481 // over a folder this becomes non-null and manages the menu showing the 403 // over a folder this becomes non-null and manages the menu showing the
482 // contents of the node. 404 // contents of the node.
483 BookmarkMenuController* bookmark_drop_menu_; 405 BookmarkMenuController* bookmark_drop_menu_;
484 406
485 // Shows the other bookmark entries. 407 // Shows the other bookmark entries.
486 views::MenuButton* other_bookmarked_button_; 408 views::MenuButton* other_bookmarked_button_;
487 409
488 // ModelChangeListener.
489 ModelChangedListener* model_changed_listener_;
490
491 // Task used to delay showing of the drop menu. 410 // Task used to delay showing of the drop menu.
492 ShowFolderDropMenuTask* show_folder_drop_menu_task_; 411 ShowFolderDropMenuTask* show_folder_drop_menu_task_;
493 412
494 // Used to track drops on the bookmark bar view. 413 // Used to track drops on the bookmark bar view.
495 scoped_ptr<DropInfo> drop_info_; 414 scoped_ptr<DropInfo> drop_info_;
496 415
497 // The sync re-login indicator which appears when the user needs to re-enter 416 // The sync re-login indicator which appears when the user needs to re-enter
498 // credentials in order to continue syncing. 417 // credentials in order to continue syncing.
499 views::TextButton* sync_error_button_; 418 views::TextButton* sync_error_button_;
500 419
(...skipping 23 matching lines...) Expand all
524 // overflow_button_ or a button on the bar. 443 // overflow_button_ or a button on the bar.
525 views::CustomButton* throbbing_view_; 444 views::CustomButton* throbbing_view_;
526 445
527 // Background for extension toolstrips. 446 // Background for extension toolstrips.
528 SkBitmap toolstrip_background_; 447 SkBitmap toolstrip_background_;
529 448
530 DISALLOW_COPY_AND_ASSIGN(BookmarkBarView); 449 DISALLOW_COPY_AND_ASSIGN(BookmarkBarView);
531 }; 450 };
532 451
533 #endif // CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_BAR_VIEW_H_ 452 #endif // CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_BAR_VIEW_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ui/views/bookmarks/bookmark_bar_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698