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

Side by Side Diff: chrome/browser/views/tabs/tab_strip.h

Issue 113537: Makes it so tab_strip can compile on linux. Most differences are due... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 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/views/tabs/tab_strip.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) 2006-2008 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_VIEWS_TABS_TAB_STRIP_H__ 5 #ifndef CHROME_BROWSER_VIEWS_TABS_TAB_STRIP_H_
6 #define CHROME_BROWSER_VIEWS_TABS_TAB_STRIP_H__ 6 #define CHROME_BROWSER_VIEWS_TABS_TAB_STRIP_H_
7 7
8 #include "base/gfx/point.h" 8 #include "base/gfx/point.h"
9 #include "base/message_loop.h"
9 #include "chrome/browser/tabs/tab_strip_model.h" 10 #include "chrome/browser/tabs/tab_strip_model.h"
10 #include "chrome/browser/views/tabs/tab.h" 11 #include "chrome/browser/views/tabs/tab.h"
11 #include "views/controls/button/image_button.h" 12 #include "views/controls/button/image_button.h"
12 #include "views/controls/menu/menu.h" 13 #include "views/controls/menu/menu.h"
13 #include "views/view.h" 14 #include "views/view.h"
15 #if defined(OS_WIN)
14 #include "views/widget/widget_win.h" 16 #include "views/widget/widget_win.h"
17 #endif
15 18
16 class DraggedTabController; 19 class DraggedTabController;
17 class ScopedMouseCloseWidthCalculator; 20 class ScopedMouseCloseWidthCalculator;
18 class TabStripModel; 21 class TabStripModel;
19 22
20 namespace views { 23 namespace views {
21 class ImageView; 24 class ImageView;
22 } 25 }
23 26
24 /////////////////////////////////////////////////////////////////////////////// 27 ///////////////////////////////////////////////////////////////////////////////
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 virtual void StopAllHighlighting(); 137 virtual void StopAllHighlighting();
135 virtual void MaybeStartDrag(Tab* tab, const views::MouseEvent& event); 138 virtual void MaybeStartDrag(Tab* tab, const views::MouseEvent& event);
136 virtual void ContinueDrag(const views::MouseEvent& event); 139 virtual void ContinueDrag(const views::MouseEvent& event);
137 virtual bool EndDrag(bool canceled); 140 virtual bool EndDrag(bool canceled);
138 virtual bool HasAvailableDragActions() const; 141 virtual bool HasAvailableDragActions() const;
139 142
140 // views::ButtonListener implementation: 143 // views::ButtonListener implementation:
141 virtual void ButtonPressed(views::Button* sender); 144 virtual void ButtonPressed(views::Button* sender);
142 145
143 // MessageLoop::Observer implementation: 146 // MessageLoop::Observer implementation:
147 #if defined(OS_WIN)
144 virtual void WillProcessMessage(const MSG& msg); 148 virtual void WillProcessMessage(const MSG& msg);
145 virtual void DidProcessMessage(const MSG& msg); 149 virtual void DidProcessMessage(const MSG& msg);
150 #else
151 virtual void WillProcessEvent(GdkEvent* event);
152 #endif
146 153
147 private: 154 private:
155 class InsertTabAnimation;
156 class MoveTabAnimation;
157 class RemoveTabAnimation;
158 class ResizeLayoutAnimation;
159 class TabAnimation;
160
148 friend class DraggedTabController; 161 friend class DraggedTabController;
149 friend class InsertTabAnimation; 162 friend class InsertTabAnimation;
150 friend class MoveTabAnimation; 163 friend class MoveTabAnimation;
151 friend class RemoveTabAnimation; 164 friend class RemoveTabAnimation;
152 friend class ResizeLayoutAnimation; 165 friend class ResizeLayoutAnimation;
153 friend class SuspendAnimationsTask;
154 friend class TabAnimation; 166 friend class TabAnimation;
155 167
156 TabStrip(); 168 TabStrip();
157 void Init(); 169 void Init();
158 170
159 // Retrieves the Tab at the specified index. Take care in using this, you may 171 // Retrieves the Tab at the specified index. Take care in using this, you may
160 // need to use GetTabAtAdjustForAnimation. 172 // need to use GetTabAtAdjustForAnimation.
161 Tab* GetTabAt(int index) const; 173 Tab* GetTabAt(int index) const;
162 174
163 // Returns the tab at the specified index. If a remove animation is on going 175 // Returns the tab at the specified index. If a remove animation is on going
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 void StartMoveTabAnimation(int from_index, int to_index); 256 void StartMoveTabAnimation(int from_index, int to_index);
245 257
246 // Returns true if detach or select changes in the model should be reflected 258 // Returns true if detach or select changes in the model should be reflected
247 // in the TabStrip. This returns false if we're closing all tabs in the 259 // in the TabStrip. This returns false if we're closing all tabs in the
248 // TabStrip and so we should prevent updating. This is not const because we 260 // TabStrip and so we should prevent updating. This is not const because we
249 // use this as a signal to cancel any active animations. 261 // use this as a signal to cancel any active animations.
250 bool CanUpdateDisplay(); 262 bool CanUpdateDisplay();
251 263
252 // Notifies the TabStrip that the specified TabAnimation has completed. 264 // Notifies the TabStrip that the specified TabAnimation has completed.
253 // Optionally a full Layout will be performed, specified by |layout|. 265 // Optionally a full Layout will be performed, specified by |layout|.
254 class TabAnimation;
255 void FinishAnimation(TabAnimation* animation, bool layout); 266 void FinishAnimation(TabAnimation* animation, bool layout);
256 267
257 // Finds the index of the TabContents corresponding to |tab| in our 268 // Finds the index of the TabContents corresponding to |tab| in our
258 // associated TabStripModel, or -1 if there is none (e.g. the specified |tab| 269 // associated TabStripModel, or -1 if there is none (e.g. the specified |tab|
259 // is being animated closed). 270 // is being animated closed).
260 int GetIndexOfTab(const Tab* tab) const; 271 int GetIndexOfTab(const Tab* tab) const;
261 272
262 // Calculates the available width for tabs, assuming a Tab is to be closed. 273 // Calculates the available width for tabs, assuming a Tab is to be closed.
263 int GetAvailableWidthForTabs(Tab* last_tab) const; 274 int GetAvailableWidthForTabs(Tab* last_tab) const;
264 275
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 int drop_index; 335 int drop_index;
325 bool drop_before; 336 bool drop_before;
326 337
327 // Direction the arrow should point in. If true, the arrow is displayed 338 // Direction the arrow should point in. If true, the arrow is displayed
328 // above the tab and points down. If false, the arrow is displayed beneath 339 // above the tab and points down. If false, the arrow is displayed beneath
329 // the tab and points up. 340 // the tab and points up.
330 bool point_down; 341 bool point_down;
331 342
332 // Renders the drop indicator. 343 // Renders the drop indicator.
333 // TODO(beng): should be views::Widget. 344 // TODO(beng): should be views::Widget.
345 #if defined(OS_WIN)
Ben Goodger (Google) 2009/05/18 19:25:23 Move the TODO above under this ifdef
334 views::WidgetWin* arrow_window; 346 views::WidgetWin* arrow_window;
347 #endif
335 views::ImageView* arrow_view; 348 views::ImageView* arrow_view;
336 349
337 private: 350 private:
338 DISALLOW_EVIL_CONSTRUCTORS(DropInfo); 351 DISALLOW_COPY_AND_ASSIGN(DropInfo);
339 }; 352 };
340 353
341 // Valid for the lifetime of a drag over us. 354 // Valid for the lifetime of a drag over us.
342 scoped_ptr<DropInfo> drop_info_; 355 scoped_ptr<DropInfo> drop_info_;
343 356
344 // The controller for a drag initiated from a Tab. Valid for the lifetime of 357 // The controller for a drag initiated from a Tab. Valid for the lifetime of
345 // the drag session. 358 // the drag session.
346 scoped_ptr<DraggedTabController> drag_controller_; 359 scoped_ptr<DraggedTabController> drag_controller_;
347 360
348 // The Tabs we contain, and their last generated "good" bounds. 361 // The Tabs we contain, and their last generated "good" bounds.
349 struct TabData { 362 struct TabData {
350 Tab* tab; 363 Tab* tab;
351 gfx::Rect ideal_bounds; 364 gfx::Rect ideal_bounds;
352 }; 365 };
353 std::vector<TabData> tab_data_; 366 std::vector<TabData> tab_data_;
354 367
355 // The currently running animation. 368 // The currently running animation.
356 scoped_ptr<TabAnimation> active_animation_; 369 scoped_ptr<TabAnimation> active_animation_;
357 370
358 DISALLOW_EVIL_CONSTRUCTORS(TabStrip); 371 DISALLOW_COPY_AND_ASSIGN(TabStrip);
359 }; 372 };
360 373
361 #endif // CHROME_BROWSER_VIEWS_TABS_TAB_STRIP_H__ 374 #endif // CHROME_BROWSER_VIEWS_TABS_TAB_STRIP_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/views/tabs/tab_strip.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698