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

Side by Side Diff: chrome/browser/tabs/tab_strip_model.h

Issue 179028: Revert "Fix a ton of compiler warnings." (Closed)
Patch Set: Created 11 years, 3 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
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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_TABS_TAB_STRIP_MODEL_H_ 5 #ifndef CHROME_BROWSER_TABS_TAB_STRIP_MODEL_H_
6 #define CHROME_BROWSER_TABS_TAB_STRIP_MODEL_H_ 6 #define CHROME_BROWSER_TABS_TAB_STRIP_MODEL_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/observer_list.h" 10 #include "base/observer_list.h"
11 #include "chrome/common/notification_registrar.h" 11 #include "chrome/common/notification_registrar.h"
(...skipping 28 matching lines...) Expand all
40 // Add/RemoveObserver methods. 40 // Add/RemoveObserver methods.
41 // 41 //
42 //////////////////////////////////////////////////////////////////////////////// 42 ////////////////////////////////////////////////////////////////////////////////
43 class TabStripModelObserver { 43 class TabStripModelObserver {
44 public: 44 public:
45 // A new TabContents was inserted into the TabStripModel at the specified 45 // A new TabContents was inserted into the TabStripModel at the specified
46 // index. |foreground| is whether or not it was opened in the foreground 46 // index. |foreground| is whether or not it was opened in the foreground
47 // (selected). 47 // (selected).
48 virtual void TabInsertedAt(TabContents* contents, 48 virtual void TabInsertedAt(TabContents* contents,
49 int index, 49 int index,
50 bool foreground) {} 50 bool foreground) { }
51 51
52 // The specified TabContents at |index| is being closed (and eventually 52 // The specified TabContents at |index| is being closed (and eventually
53 // destroyed). 53 // destroyed).
54 virtual void TabClosingAt(TabContents* contents, int index) {} 54 virtual void TabClosingAt(TabContents* contents, int index) { }
55 55
56 // The specified TabContents at |index| is being detached, perhaps to be 56 // The specified TabContents at |index| is being detached, perhaps to be
57 // inserted in another TabStripModel. The implementer should take whatever 57 // inserted in another TabStripModel. The implementer should take whatever
58 // action is necessary to deal with the TabContents no longer being present. 58 // action is necessary to deal with the TabContents no longer being present.
59 virtual void TabDetachedAt(TabContents* contents, int index) {} 59 virtual void TabDetachedAt(TabContents* contents, int index) { }
60 60
61 // The selected TabContents is about to change from |old_contents| at |index|. 61 // The selected TabContents is about to change from |old_contents| at |index|.
62 // This gives observers a chance to prepare for an impending switch before it 62 // This gives observers a chance to prepare for an impending switch before it
63 // happens. 63 // happens.
64 virtual void TabDeselectedAt(TabContents* contents, int index) {} 64 virtual void TabDeselectedAt(TabContents* contents, int index) { }
65 65
66 // The selected TabContents changed from |old_contents| to |new_contents| at 66 // The selected TabContents changed from |old_contents| to |new_contents| at
67 // |index|. |user_gesture| specifies whether or not this was done by a user 67 // |index|. |user_gesture| specifies whether or not this was done by a user
68 // input event (e.g. clicking on a tab, keystroke) or as a side-effect of 68 // input event (e.g. clicking on a tab, keystroke) or as a side-effect of
69 // some other function. 69 // some other function.
70 virtual void TabSelectedAt(TabContents* old_contents, 70 virtual void TabSelectedAt(TabContents* old_contents,
71 TabContents* new_contents, 71 TabContents* new_contents,
72 int index, 72 int index,
73 bool user_gesture) {} 73 bool user_gesture) { }
74 74
75 // The specified TabContents at |from_index| was moved to |to_index|. If 75 // The specified TabContents at |from_index| was moved to |to_index|. If
76 // the pinned state of the tab is changing |pinned_state_changed| is true. 76 // the pinned state of the tab is changing |pinned_state_changed| is true.
77 virtual void TabMoved(TabContents* contents, 77 virtual void TabMoved(TabContents* contents,
78 int from_index, 78 int from_index,
79 int to_index, 79 int to_index,
80 bool pinned_state_changed) {} 80 bool pinned_state_changed) { }
81 81
82 // The specified TabContents at |index| changed in some way. |contents| may 82 // The specified TabContents at |index| changed in some way. |contents| may
83 // be an entirely different object and the old value is no longer available 83 // be an entirely different object and the old value is no longer available
84 // by the time this message is delivered. 84 // by the time this message is delivered.
85 // 85 //
86 // If only the loading state was updated, the loading_only flag should be 86 // If only the loading state was updated, the loading_only flag should be
87 // specified. The tab model will update only the throbber, loading status, 87 // specified. The tab model will update only the throbber, loading status,
88 // and crashed state. 88 // and crashed state.
89 // 89 //
90 // If other things change, set this flag to false to update all state, 90 // If other things change, set this flag to false to update all state,
91 // including the title and favicon. This allows us to start/stop throbbing 91 // including the title and favicon. This allows us to start/stop throbbing
92 // without updating the title (which may be an ugly URL if the real title 92 // without updating the title (which may be an ugly URL if the real title
93 // hasn't come in yet). 93 // hasn't come in yet).
94 virtual void TabChangedAt(TabContents* contents, int index, 94 virtual void TabChangedAt(TabContents* contents, int index,
95 bool loading_only) {} 95 bool loading_only) { }
96 96
97 // Invoked when the pinned state of a tab changes. 97 // Invoked when the pinned state of a tab changes.
98 // NOTE: this is only invoked if the tab doesn't move as a result of its 98 // NOTE: this is only invoked if the tab doesn't move as a result of its
99 // pinned state changing. If the tab moves as a result, the observer is 99 // pinned state changing. If the tab moves as a result, the observer is
100 // notified by way of the TabMoved method with |pinned_state_changed| true. 100 // notified by way of the TabMoved method with |pinned_state_changed| true.
101 virtual void TabPinnedStateChanged(TabContents* contents, int index) {} 101 virtual void TabPinnedStateChanged(TabContents* contents, int index) { }
102 102
103 // The TabStripModel now no longer has any "significant" (user created or 103 // The TabStripModel now no longer has any "significant" (user created or
104 // user manipulated) tabs. The implementer may use this as a trigger to try 104 // user manipulated) tabs. The implementer may use this as a trigger to try
105 // and close the window containing the TabStripModel, for example... 105 // and close the window containing the TabStripModel, for example...
106 virtual void TabStripEmpty() {} 106 virtual void TabStripEmpty() { }
107
108 protected:
109 ~TabStripModelObserver() {}
110 }; 107 };
111 108
112 /////////////////////////////////////////////////////////////////////////////// 109 ///////////////////////////////////////////////////////////////////////////////
113 // 110 //
114 // TabStripModelDelegate 111 // TabStripModelDelegate
115 // 112 //
116 // A delegate interface that the TabStripModel uses to perform work that it 113 // A delegate interface that the TabStripModel uses to perform work that it
117 // can't do itself, such as obtain a container HWND for creating new 114 // can't do itself, such as obtain a container HWND for creating new
118 // TabContents, creating new TabStripModels for detached tabs, etc. 115 // TabContents, creating new TabStripModels for detached tabs, etc.
119 // 116 //
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 virtual bool RunUnloadListenerBeforeClosing(TabContents* contents) = 0; 192 virtual bool RunUnloadListenerBeforeClosing(TabContents* contents) = 0;
196 193
197 // Returns true if a tab can be restored. 194 // Returns true if a tab can be restored.
198 virtual bool CanRestoreTab() = 0; 195 virtual bool CanRestoreTab() = 0;
199 196
200 // Restores the last closed tab if CanRestoreTab would return true. 197 // Restores the last closed tab if CanRestoreTab would return true.
201 virtual void RestoreTab() = 0; 198 virtual void RestoreTab() = 0;
202 199
203 // Returns whether some contents can be closed. 200 // Returns whether some contents can be closed.
204 virtual bool CanCloseContentsAt(int index) = 0; 201 virtual bool CanCloseContentsAt(int index) = 0;
205
206 protected:
207 ~TabStripModelDelegate() {}
208 }; 202 };
209 203
210 //////////////////////////////////////////////////////////////////////////////// 204 ////////////////////////////////////////////////////////////////////////////////
211 // 205 //
212 // TabStripModel 206 // TabStripModel
213 // 207 //
214 // A model & low level controller of a Browser Window tabstrip. Holds a vector 208 // A model & low level controller of a Browser Window tabstrip. Holds a vector
215 // of TabContents, and provides an API for adding, removing and shuffling 209 // of TabContents, and provides an API for adding, removing and shuffling
216 // them, as well as a higher level API for doing specific Browser-related 210 // them, as well as a higher level API for doing specific Browser-related
217 // tasks like adding new Tabs from just a URL, etc. 211 // tasks like adding new Tabs from just a URL, etc.
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after
628 typedef ObserverList<TabStripModelObserver> TabStripModelObservers; 622 typedef ObserverList<TabStripModelObserver> TabStripModelObservers;
629 TabStripModelObservers observers_; 623 TabStripModelObservers observers_;
630 624
631 // A scoped container for notification registries. 625 // A scoped container for notification registries.
632 NotificationRegistrar registrar_; 626 NotificationRegistrar registrar_;
633 627
634 DISALLOW_COPY_AND_ASSIGN(TabStripModel); 628 DISALLOW_COPY_AND_ASSIGN(TabStripModel);
635 }; 629 };
636 630
637 #endif // CHROME_BROWSER_TABS_TAB_STRIP_MODEL_H_ 631 #endif // CHROME_BROWSER_TABS_TAB_STRIP_MODEL_H_
OLDNEW
« no previous file with comments | « chrome/browser/tab_contents/web_contents_unittest.cc ('k') | chrome/browser/webdata/web_data_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698