| OLD | NEW |
| 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_BUBBLE_VIEW_H_ | 5 #ifndef CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_BUBBLE_VIEW_H_ |
| 6 #define CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_BUBBLE_VIEW_H_ | 6 #define CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_BUBBLE_VIEW_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include "base/string16.h" | 9 #include "base/string16.h" |
| 10 #include "chrome/browser/bookmarks/recently_used_folders_combo_model.h" | 10 #include "chrome/browser/bookmarks/recently_used_folders_combo_model.h" |
| 11 #include "chrome/browser/ui/views/bubble/bubble.h" | |
| 12 #include "googleurl/src/gurl.h" | 11 #include "googleurl/src/gurl.h" |
| 13 #include "ui/gfx/rect.h" | 12 #include "views/bubble/bubble_delegate.h" |
| 14 #include "views/controls/button/button.h" | 13 #include "views/controls/button/button.h" |
| 15 #include "views/controls/combobox/combobox.h" | 14 #include "views/controls/combobox/combobox.h" |
| 16 #include "views/controls/link_listener.h" | 15 #include "views/controls/link_listener.h" |
| 17 #include "views/view.h" | |
| 18 | 16 |
| 19 class Profile; | 17 class Profile; |
| 20 | 18 |
| 21 class BookmarkModel; | |
| 22 class BookmarkNode; | |
| 23 | |
| 24 namespace views { | 19 namespace views { |
| 25 class TextButton; | 20 class TextButton; |
| 26 class Textfield; | 21 class Textfield; |
| 27 } | 22 } |
| 28 | 23 |
| 29 // BookmarkBubbleView is a view intended to be used as the content of an | 24 // BookmarkBubbleView is a view intended to be used as the content of an |
| 30 // Bubble. BookmarkBubbleView provides views for unstarring and editing the | 25 // Bubble. BookmarkBubbleView provides views for unstarring and editing the |
| 31 // bookmark it is created with. Don't create a BookmarkBubbleView directly, | 26 // bookmark it is created with. Don't create a BookmarkBubbleView directly, |
| 32 // instead use the static Show method. | 27 // instead use the static Show method. |
| 33 class BookmarkBubbleView : public views::View, | 28 class BookmarkBubbleView : public views::BubbleDelegateView, |
| 34 public views::LinkListener, | 29 public views::LinkListener, |
| 35 public views::ButtonListener, | 30 public views::ButtonListener, |
| 36 public views::Combobox::Listener, | 31 public views::Combobox::Listener { |
| 37 public BubbleDelegate { | |
| 38 public: | 32 public: |
| 39 static void Show(views::Widget* widget, | 33 static void ShowBubble(views::View* anchor_view, |
| 40 const gfx::Rect& bounds, | 34 Profile* profile, |
| 41 BubbleDelegate* delegate, | 35 const GURL& url, |
| 42 Profile* profile, | 36 bool newly_bookmarked); |
| 43 const GURL& url, | |
| 44 bool newly_bookmarked); | |
| 45 | 37 |
| 46 static bool IsShowing(); | 38 static bool IsShowing(); |
| 47 | 39 |
| 48 static void Hide(); | 40 static void Hide(); |
| 49 | 41 |
| 50 virtual ~BookmarkBubbleView(); | 42 virtual ~BookmarkBubbleView(); |
| 51 | 43 |
| 52 void set_bubble(Bubble* bubble) { bubble_ = bubble; } | 44 // views::BubbleDelegateView methods. |
| 45 virtual views::View* GetInitiallyFocusedView() OVERRIDE; |
| 46 virtual gfx::Point GetAnchorPoint() OVERRIDE; |
| 53 | 47 |
| 54 // Override to close on return. | 48 // views::WidgetDelegate method. |
| 49 virtual void WindowClosing() OVERRIDE; |
| 50 |
| 51 // views::View method. |
| 55 virtual bool AcceleratorPressed( | 52 virtual bool AcceleratorPressed( |
| 56 const views::Accelerator& accelerator) OVERRIDE; | 53 const views::Accelerator& accelerator) OVERRIDE; |
| 57 | 54 |
| 58 virtual void ViewHierarchyChanged( | 55 protected: |
| 59 bool is_add, View* parent, View* child) OVERRIDE; | 56 // views::BubbleDelegateView method. |
| 57 virtual void Init() OVERRIDE; |
| 60 | 58 |
| 61 private: | 59 private: |
| 62 // Creates a BookmarkBubbleView. | 60 // Creates a BookmarkBubbleView. |
| 63 // |title| is the title of the page. If newly_bookmarked is false, title is | 61 BookmarkBubbleView(views::View* anchor_view, |
| 64 // ignored and the title of the bookmark is fetched from the database. | |
| 65 BookmarkBubbleView(BubbleDelegate* delegate, | |
| 66 Profile* profile, | 62 Profile* profile, |
| 67 const GURL& url, | 63 const GURL& url, |
| 68 bool newly_bookmarked); | 64 bool newly_bookmarked); |
| 69 // Creates the child views. | |
| 70 void Init(); | |
| 71 | 65 |
| 72 // Returns the title to display. | 66 // Returns the title to display. |
| 73 string16 GetTitle(); | 67 string16 GetTitle(); |
| 74 | 68 |
| 75 // views::LinkListener method, either unstars the item or shows the bookmark | 69 // views::LinkListener method, either unstars the item or shows the bookmark |
| 76 // editor (depending upon which link was clicked). | 70 // editor (depending upon which link was clicked). |
| 77 virtual void LinkClicked(views::Link* source, int event_flags) OVERRIDE; | 71 virtual void LinkClicked(views::Link* source, int event_flags) OVERRIDE; |
| 78 | 72 |
| 79 // ButtonListener method, closes the bubble or opens the edit dialog. | 73 // ButtonListener method, closes the bubble or opens the edit dialog. |
| 80 virtual void ButtonPressed(views::Button* sender, | 74 virtual void ButtonPressed(views::Button* sender, |
| 81 const views::Event& event) OVERRIDE; | 75 const views::Event& event) OVERRIDE; |
| 82 | 76 |
| 83 // Combobox::Listener method. Changes the parent of the bookmark. | 77 // Combobox::Listener method. Changes the parent of the bookmark. |
| 84 virtual void ItemChanged(views::Combobox* combobox, | 78 virtual void ItemChanged(views::Combobox* combobox, |
| 85 int prev_index, | 79 int prev_index, |
| 86 int new_index) OVERRIDE; | 80 int new_index) OVERRIDE; |
| 87 | 81 |
| 88 // BubbleDelegate methods. These forward to the BubbleDelegate supplied in the | |
| 89 // constructor as well as sending out the necessary notification. | |
| 90 virtual void BubbleShown() OVERRIDE; | |
| 91 virtual void BubbleClosing(Bubble* bubble, bool closed_by_escape) OVERRIDE; | |
| 92 virtual bool CloseOnEscape() OVERRIDE; | |
| 93 virtual bool FadeInOnShow() OVERRIDE; | |
| 94 virtual string16 GetAccessibleName() OVERRIDE; | |
| 95 | |
| 96 // Closes the bubble. | |
| 97 void Close(); | |
| 98 | |
| 99 // Handle the message when the user presses a button. | 82 // Handle the message when the user presses a button. |
| 100 void HandleButtonPressed(views::Button* sender); | 83 void HandleButtonPressed(views::Button* sender); |
| 101 | 84 |
| 102 // Shows the BookmarkEditor. | 85 // Shows the BookmarkEditor. |
| 103 void ShowEditor(); | 86 void ShowEditor(); |
| 104 | 87 |
| 105 // Sets the title and parent of the node. | 88 // Sets the title and parent of the node. |
| 106 void ApplyEdits(); | 89 void ApplyEdits(); |
| 107 | 90 |
| 108 // The bookmark bubble, if we're showing one. | 91 // The bookmark bubble, if we're showing one. |
| 109 static BookmarkBubbleView* bookmark_bubble_; | 92 static BookmarkBubbleView* bookmark_bubble_; |
| 110 | 93 |
| 111 // The Bubble showing us. | |
| 112 Bubble* bubble_; | |
| 113 | |
| 114 // Delegate for the bubble, may be null. | |
| 115 BubbleDelegate* delegate_; | |
| 116 | |
| 117 // The profile. | 94 // The profile. |
| 118 Profile* profile_; | 95 Profile* profile_; |
| 119 | 96 |
| 120 // The bookmark URL. | 97 // The bookmark URL. |
| 121 const GURL url_; | 98 const GURL url_; |
| 122 | 99 |
| 123 // Title of the bookmark. This is initially the title supplied to the | 100 // Title of the bookmark. This is initially the title supplied to the |
| 124 // constructor, which is typically the title of the page. | 101 // constructor, which is typically the title of the page. |
| 125 std::wstring title_; | 102 std::wstring title_; |
| 126 | 103 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 148 // When the destructor is invoked should the bookmark be removed? | 125 // When the destructor is invoked should the bookmark be removed? |
| 149 bool remove_bookmark_; | 126 bool remove_bookmark_; |
| 150 | 127 |
| 151 // When the destructor is invoked should edits be applied? | 128 // When the destructor is invoked should edits be applied? |
| 152 bool apply_edits_; | 129 bool apply_edits_; |
| 153 | 130 |
| 154 DISALLOW_COPY_AND_ASSIGN(BookmarkBubbleView); | 131 DISALLOW_COPY_AND_ASSIGN(BookmarkBubbleView); |
| 155 }; | 132 }; |
| 156 | 133 |
| 157 #endif // CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_BUBBLE_VIEW_H_ | 134 #endif // CHROME_BROWSER_UI_VIEWS_BOOKMARKS_BOOKMARK_BUBBLE_VIEW_H_ |
| OLD | NEW |