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

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

Issue 331343002: Misc. cleanup: (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove parens Created 6 years, 6 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_VIEWS_TABS_TAB_STRIP_H_ 5 #ifndef CHROME_BROWSER_UI_VIEWS_TABS_TAB_STRIP_H_
6 #define CHROME_BROWSER_UI_VIEWS_TABS_TAB_STRIP_H_ 6 #define CHROME_BROWSER_UI_VIEWS_TABS_TAB_STRIP_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 // in response to dragged tabs. 49 // in response to dragged tabs.
50 // 50 //
51 /////////////////////////////////////////////////////////////////////////////// 51 ///////////////////////////////////////////////////////////////////////////////
52 class TabStrip : public views::View, 52 class TabStrip : public views::View,
53 public views::ButtonListener, 53 public views::ButtonListener,
54 public views::MouseWatcherListener, 54 public views::MouseWatcherListener,
55 public TabController { 55 public TabController {
56 public: 56 public:
57 static const char kViewClassName[]; 57 static const char kViewClassName[];
58 58
59 // Horizontal offset for the new tab button to bring it closer to the
60 // rightmost tab.
61 static const int kNewTabButtonHorizontalOffset;
62
63 // The vertical offset of the tab strip button. This offset applies only to
64 // restored windows.
65 static const int kNewTabButtonVerticalOffset;
66
59 explicit TabStrip(TabStripController* controller); 67 explicit TabStrip(TabStripController* controller);
60 virtual ~TabStrip(); 68 virtual ~TabStrip();
61 69
62 // Add and remove observers to changes within this TabStrip. 70 // Add and remove observers to changes within this TabStrip.
63 void AddObserver(TabStripObserver* observer); 71 void AddObserver(TabStripObserver* observer);
64 void RemoveObserver(TabStripObserver* observer); 72 void RemoveObserver(TabStripObserver* observer);
65 73
66 // If |adjust_layout| is true the stacked layout changes based on whether the 74 // If |adjust_layout| is true the stacked layout changes based on whether the
67 // user uses a mouse or a touch device with the tabstrip. 75 // user uses a mouse or a touch device with the tabstrip.
68 void set_adjust_layout(bool adjust_layout) { adjust_layout_ = adjust_layout; } 76 void set_adjust_layout(bool adjust_layout) { adjust_layout_ = adjust_layout; }
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 126
119 // Invoked when the title of a tab changes and the tab isn't loading. 127 // Invoked when the title of a tab changes and the tab isn't loading.
120 void TabTitleChangedNotLoading(int model_index); 128 void TabTitleChangedNotLoading(int model_index);
121 129
122 // Retrieves the ideal bounds for the Tab at the specified index. 130 // Retrieves the ideal bounds for the Tab at the specified index.
123 const gfx::Rect& ideal_bounds(int tab_data_index) { 131 const gfx::Rect& ideal_bounds(int tab_data_index) {
124 return tabs_.ideal_bounds(tab_data_index); 132 return tabs_.ideal_bounds(tab_data_index);
125 } 133 }
126 134
127 // Returns the Tab at |index|. 135 // Returns the Tab at |index|.
128 Tab* tab_at(int index) const; 136 Tab* tab_at(int index) const {
137 return static_cast<Tab*>(tabs_.view_at(index));
138 }
129 139
130 // Returns the index of the specified tab in the model coordinate system, or 140 // Returns the index of the specified tab in the model coordinate system, or
131 // -1 if tab is closing or not valid. 141 // -1 if tab is closing or not valid.
132 int GetModelIndexOfTab(const Tab* tab) const; 142 int GetModelIndexOfTab(const Tab* tab) const;
133 143
134 // Gets the number of Tabs in the tab strip. 144 // Gets the number of Tabs in the tab strip.
135 int tab_count() const { return tabs_.view_size(); } 145 int tab_count() const { return tabs_.view_size(); }
136 146
137 // Cover method for TabStripController::GetCount. 147 // Cover method for TabStripController::GetCount.
138 int GetModelCount() const; 148 int GetModelCount() const;
(...skipping 26 matching lines...) Expand all
165 // window caption area of the browser window. 175 // window caption area of the browser window.
166 bool IsPositionInWindowCaption(const gfx::Point& point); 176 bool IsPositionInWindowCaption(const gfx::Point& point);
167 177
168 // Returns true if the specified rect (in TabStrip coordinates) intersects 178 // Returns true if the specified rect (in TabStrip coordinates) intersects
169 // the window caption area of the browser window. 179 // the window caption area of the browser window.
170 bool IsRectInWindowCaption(const gfx::Rect& rect); 180 bool IsRectInWindowCaption(const gfx::Rect& rect);
171 181
172 // Set the background offset used by inactive tabs to match the frame image. 182 // Set the background offset used by inactive tabs to match the frame image.
173 void SetBackgroundOffset(const gfx::Point& offset); 183 void SetBackgroundOffset(const gfx::Point& offset);
174 184
175 // Returns the new tab button. This is never NULL.
176 views::View* newtab_button();
177
178 // Sets a painting style with miniature "tab indicator" rectangles at the top. 185 // Sets a painting style with miniature "tab indicator" rectangles at the top.
179 void SetImmersiveStyle(bool enable); 186 void SetImmersiveStyle(bool enable);
180 187
181 // Returns true if Tabs in this TabStrip are currently changing size or 188 // Returns true if Tabs in this TabStrip are currently changing size or
182 // position. 189 // position.
183 bool IsAnimating() const; 190 bool IsAnimating() const;
184 191
185 // Stops any ongoing animations. If |layout| is true and an animation is 192 // Stops any ongoing animations. If |layout| is true and an animation is
186 // ongoing this does a layout. 193 // ongoing this does a layout.
187 void StopAnimating(bool layout); 194 void StopAnimating(bool layout);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 virtual void OnDragExited() OVERRIDE; 240 virtual void OnDragExited() OVERRIDE;
234 virtual int OnPerformDrop(const ui::DropTargetEvent& event) OVERRIDE; 241 virtual int OnPerformDrop(const ui::DropTargetEvent& event) OVERRIDE;
235 virtual void GetAccessibleState(ui::AXViewState* state) OVERRIDE; 242 virtual void GetAccessibleState(ui::AXViewState* state) OVERRIDE;
236 virtual views::View* GetEventHandlerForRect(const gfx::Rect& rect) OVERRIDE; 243 virtual views::View* GetEventHandlerForRect(const gfx::Rect& rect) OVERRIDE;
237 virtual views::View* GetTooltipHandlerForPoint( 244 virtual views::View* GetTooltipHandlerForPoint(
238 const gfx::Point& point) OVERRIDE; 245 const gfx::Point& point) OVERRIDE;
239 246
240 // Returns preferred height in immersive style. 247 // Returns preferred height in immersive style.
241 static int GetImmersiveHeight(); 248 static int GetImmersiveHeight();
242 249
243 protected:
244 // Horizontal gap between mini and non-mini-tabs.
245 static const int kMiniToNonMiniGap;
246
247 void set_ideal_bounds(int index, const gfx::Rect& bounds) {
248 tabs_.set_ideal_bounds(index, bounds);
249 }
250
251 // Returns the number of mini-tabs.
252 int GetMiniTabCount() const;
253
254 // views::ButtonListener implementation:
255 virtual void ButtonPressed(views::Button* sender,
256 const ui::Event& event) OVERRIDE;
257
258 // View overrides.
259 virtual const views::View* GetViewByID(int id) const OVERRIDE;
260 virtual bool OnMousePressed(const ui::MouseEvent& event) OVERRIDE;
261 virtual bool OnMouseDragged(const ui::MouseEvent& event) OVERRIDE;
262 virtual void OnMouseReleased(const ui::MouseEvent& event) OVERRIDE;
263 virtual void OnMouseCaptureLost() OVERRIDE;
264 virtual void OnMouseMoved(const ui::MouseEvent& event) OVERRIDE;
265 virtual void OnMouseEntered(const ui::MouseEvent& event) OVERRIDE;
266
267 // ui::EventHandler overrides.
268 virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE;
269
270 private: 250 private:
271 typedef std::map<int, std::vector<Tab*> > TabsClosingMap; 251 typedef std::vector<Tab*> Tabs;
252 typedef std::map<int, Tabs> TabsClosingMap;
253 typedef std::pair<TabsClosingMap::iterator,
254 Tabs::iterator> FindClosingTabResult;
272 255
273 class RemoveTabDelegate; 256 class RemoveTabDelegate;
274 257
275 friend class TabDragController; 258 friend class TabDragController;
276 friend class TabDragControllerTest; 259 friend class TabDragControllerTest;
277 FRIEND_TEST_ALL_PREFIXES(TabDragControllerTest, GestureEndShouldEndDragTest); 260 FRIEND_TEST_ALL_PREFIXES(TabDragControllerTest, GestureEndShouldEndDragTest);
278 friend class TabStripTest; 261 friend class TabStripTest;
279 FRIEND_TEST_ALL_PREFIXES(TabStripTest, TabHitTestMaskWhenStacked); 262 FRIEND_TEST_ALL_PREFIXES(TabStripTest, TabHitTestMaskWhenStacked);
280 FRIEND_TEST_ALL_PREFIXES(TabStripTest, ClippedTabCloseButton); 263 FRIEND_TEST_ALL_PREFIXES(TabStripTest, ClippedTabCloseButton);
281 264
(...skipping 25 matching lines...) Expand all
307 // The URL for the drop event. 290 // The URL for the drop event.
308 GURL url; 291 GURL url;
309 292
310 // Whether the MIME type of the file pointed to by |url| is supported. 293 // Whether the MIME type of the file pointed to by |url| is supported.
311 bool file_supported; 294 bool file_supported;
312 295
313 private: 296 private:
314 DISALLOW_COPY_AND_ASSIGN(DropInfo); 297 DISALLOW_COPY_AND_ASSIGN(DropInfo);
315 }; 298 };
316 299
300 // Horizontal gap between mini and non-mini-tabs.
301 static const int kMiniToNonMiniGap;
302
303 // The size of the new tab button must be hardcoded because we need to be
304 // able to lay it out before we are able to get its image from the
305 // ui::ThemeProvider. It also makes sense to do this, because the size of the
306 // new tab button should not need to be calculated dynamically.
307 static const int kNewTabButtonAssetWidth;
308 static const int kNewTabButtonAssetHeight;
309
317 void Init(); 310 void Init();
318 311
319 // Creates and returns a new tab. The caller owners the returned tab. 312 // Creates and returns a new tab. The caller owners the returned tab.
320 Tab* CreateTab(); 313 Tab* CreateTab();
321 314
322 // Invoked from |AddTabAt| after the newly created tab has been inserted. 315 // Invoked from |AddTabAt| after the newly created tab has been inserted.
323 void StartInsertTabAnimation(int model_index); 316 void StartInsertTabAnimation(int model_index);
324 317
325 // Invoked from |MoveTab| after |tab_data_| has been updated to animate the 318 // Invoked from |MoveTab| after |tab_data_| has been updated to animate the
326 // move. 319 // move.
(...skipping 18 matching lines...) Expand all
345 void DoLayout(); 338 void DoLayout();
346 339
347 // Drags the active tab by |delta|. |initial_positions| is the x-coordinates 340 // Drags the active tab by |delta|. |initial_positions| is the x-coordinates
348 // of the tabs when the drag started. 341 // of the tabs when the drag started.
349 void DragActiveTab(const std::vector<int>& initial_positions, int delta); 342 void DragActiveTab(const std::vector<int>& initial_positions, int delta);
350 343
351 // Sets the ideal bounds x-coordinates to |positions|. 344 // Sets the ideal bounds x-coordinates to |positions|.
352 void SetIdealBoundsFromPositions(const std::vector<int>& positions); 345 void SetIdealBoundsFromPositions(const std::vector<int>& positions);
353 346
354 // Stacks the dragged tabs. This is used if the drag operation is 347 // Stacks the dragged tabs. This is used if the drag operation is
355 // MOVE_VISIBILE_TABS and the tabs don't fill the tabstrip. When this happens 348 // MOVE_VISIBLE_TABS and the tabs don't fill the tabstrip. When this happens
356 // the active tab follows the mouse and the other tabs stack around it. 349 // the active tab follows the mouse and the other tabs stack around it.
357 void StackDraggedTabs(int delta); 350 void StackDraggedTabs(int delta);
358 351
359 // Returns true if dragging has resulted in temporarily stacking the tabs. 352 // Returns true if dragging has resulted in temporarily stacking the tabs.
360 bool IsStackingDraggedTabs() const; 353 bool IsStackingDraggedTabs() const;
361 354
362 // Invoked during drag to layout the tabs being dragged in |tabs| at 355 // Invoked during drag to layout the tabs being dragged in |tabs| at
363 // |location|. If |initial_drag| is true, this is the initial layout after the 356 // |location|. If |initial_drag| is true, this is the initial layout after the
364 // user moved the mouse far enough to trigger a drag. 357 // user moved the mouse far enough to trigger a drag.
365 void LayoutDraggedTabsAt(const std::vector<Tab*>& tabs, 358 void LayoutDraggedTabsAt(const Tabs& tabs,
366 Tab* active_tab, 359 Tab* active_tab,
367 const gfx::Point& location, 360 const gfx::Point& location,
368 bool initial_drag); 361 bool initial_drag);
369 362
370 // Calculates the bounds needed for each of the tabs, placing the result in 363 // Calculates the bounds needed for each of the tabs, placing the result in
371 // |bounds|. 364 // |bounds|.
372 void CalculateBoundsForDraggedTabs(const std::vector<Tab*>& tabs, 365 void CalculateBoundsForDraggedTabs(const Tabs& tabs,
373 std::vector<gfx::Rect>* bounds); 366 std::vector<gfx::Rect>* bounds);
374 367
375 // Returns the size needed for the specified tabs. This is invoked during drag 368 // Returns the size needed for the specified tabs. This is invoked during drag
376 // and drop to calculate offsets and positioning. 369 // and drop to calculate offsets and positioning.
377 int GetSizeNeededForTabs(const std::vector<Tab*>& tabs); 370 int GetSizeNeededForTabs(const Tabs& tabs);
371
372 // Returns the number of mini-tabs.
373 int GetMiniTabCount() const;
374
375 // Returns the last tab in the strip.
376 const Tab* GetLastVisibleTab() const;
378 377
379 // Adds the tab at |index| to |tabs_closing_map_| and removes the tab from 378 // Adds the tab at |index| to |tabs_closing_map_| and removes the tab from
380 // |tabs_|. 379 // |tabs_|.
381 void RemoveTabFromViewModel(int index); 380 void RemoveTabFromViewModel(int index);
382 381
383 // Cleans up the Tab from the TabStrip. This is called from the tab animation 382 // Cleans up the Tab from the TabStrip. This is called from the tab animation
384 // code and is not a general-purpose method. 383 // code and is not a general-purpose method.
385 void RemoveAndDeleteTab(Tab* tab); 384 void RemoveAndDeleteTab(Tab* tab);
386 385
387 // Adjusts the indices of all tabs in |tabs_closing_map_| whose index is 386 // Adjusts the indices of all tabs in |tabs_closing_map_| whose index is
388 // >= |index| to have a new index of |index + delta|. 387 // >= |index| to have a new index of |index + delta|.
389 void UpdateTabsClosingMap(int index, int delta); 388 void UpdateTabsClosingMap(int index, int delta);
390 389
391 // Used by TabDragController when the user starts or stops dragging tabs. 390 // Used by TabDragController when the user starts or stops dragging tabs.
392 void StartedDraggingTabs(const std::vector<Tab*>& tabs); 391 void StartedDraggingTabs(const Tabs& tabs);
393 392
394 // Invoked when TabDragController detaches a set of tabs. 393 // Invoked when TabDragController detaches a set of tabs.
395 void DraggedTabsDetached(); 394 void DraggedTabsDetached();
396 395
397 // Used by TabDragController when the user stops dragging tabs. |move_only| is 396 // Used by TabDragController when the user stops dragging tabs. |move_only| is
398 // true if the move behavior is TabDragController::MOVE_VISIBILE_TABS. 397 // true if the move behavior is TabDragController::MOVE_VISIBILE_TABS.
399 // |completed| is true if the drag operation completed successfully, false if 398 // |completed| is true if the drag operation completed successfully, false if
400 // it was reverted. 399 // it was reverted.
401 void StoppedDraggingTabs(const std::vector<Tab*>& tabs, 400 void StoppedDraggingTabs(const Tabs& tabs,
402 const std::vector<int>& initial_positions, 401 const std::vector<int>& initial_positions,
403 bool move_only, 402 bool move_only,
404 bool completed); 403 bool completed);
405 404
406 // Invoked from StoppedDraggingTabs to cleanup |tab|. If |tab| is known 405 // Invoked from StoppedDraggingTabs to cleanup |tab|. If |tab| is known
407 // |is_first_tab| is set to true. 406 // |is_first_tab| is set to true.
408 void StoppedDraggingTab(Tab* tab, bool* is_first_tab); 407 void StoppedDraggingTab(Tab* tab, bool* is_first_tab);
409 408
410 // Takes ownership of |controller|. 409 // Takes ownership of |controller|.
411 void OwnDragController(TabDragController* controller); 410 void OwnDragController(TabDragController* controller);
412 411
413 // Destroys the current TabDragController. This cancel the existing drag 412 // Destroys the current TabDragController. This cancel the existing drag
414 // operation. 413 // operation.
415 void DestroyDragController(); 414 void DestroyDragController();
416 415
417 // Releases ownership of the current TabDragController. 416 // Releases ownership of the current TabDragController.
418 TabDragController* ReleaseDragController(); 417 TabDragController* ReleaseDragController();
419 418
419 // Finds |tab| in the |tab_closing_map_| and returns a pair of iterators
420 // indicating precisely where it is.
421 FindClosingTabResult FindClosingTab(const Tab* tab);
422
420 // Paints all the tabs in |tabs_closing_map_[index]|. 423 // Paints all the tabs in |tabs_closing_map_[index]|.
421 void PaintClosingTabs(gfx::Canvas* canvas, 424 void PaintClosingTabs(gfx::Canvas* canvas,
422 int index, 425 int index,
423 const views::CullSet& cull_set); 426 const views::CullSet& cull_set);
424 427
425 // Invoked when a mouse event occurs over |source|. Potentially switches the 428 // Invoked when a mouse event occurs over |source|. Potentially switches the
426 // |stacked_layout_|. 429 // |stacked_layout_|.
427 void UpdateStackedLayoutFromMouseEvent(views::View* source, 430 void UpdateStackedLayoutFromMouseEvent(views::View* source,
428 const ui::MouseEvent& event); 431 const ui::MouseEvent& event);
429 432
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
491 // Generates the ideal bounds for each of the tabs as well as the new tab 494 // Generates the ideal bounds for each of the tabs as well as the new tab
492 // button. 495 // button.
493 void GenerateIdealBounds(); 496 void GenerateIdealBounds();
494 497
495 // Generates the ideal bounds for the mini tabs. Returns the index to position 498 // Generates the ideal bounds for the mini tabs. Returns the index to position
496 // the first non-mini tab and sets |first_non_mini_index| to the index of the 499 // the first non-mini tab and sets |first_non_mini_index| to the index of the
497 // first non-mini tab. 500 // first non-mini tab.
498 int GenerateIdealBoundsForMiniTabs(int* first_non_mini_index); 501 int GenerateIdealBoundsForMiniTabs(int* first_non_mini_index);
499 502
500 // Returns the width needed for the new tab button (and padding). 503 // Returns the width needed for the new tab button (and padding).
501 static int new_tab_button_width(); 504 static int new_tab_button_width() {
502 505 return kNewTabButtonAssetWidth + kNewTabButtonHorizontalOffset;
503 // Returns the vertical offset of the tab strip button. This offset applies 506 }
504 // only to restored windows.
505 static int button_v_offset();
506 507
507 // Returns the width of the area that contains tabs. This does not include 508 // Returns the width of the area that contains tabs. This does not include
508 // the width of the new tab button. 509 // the width of the new tab button.
509 int tab_area_width() const; 510 int tab_area_width() const { return width() - new_tab_button_width(); }
510 511
511 // Starts various types of TabStrip animations. 512 // Starts various types of TabStrip animations.
512 void StartResizeLayoutAnimation(); 513 void StartResizeLayoutAnimation();
513 void StartMiniTabAnimation(); 514 void StartMiniTabAnimation();
514 void StartMouseInitiatedRemoveTabAnimation(int model_index); 515 void StartMouseInitiatedRemoveTabAnimation(int model_index);
515 516
516 // Returns true if the specified point in TabStrip coords is within the 517 // Returns true if the specified point in TabStrip coords is within the
517 // hit-test region of the specified Tab. 518 // hit-test region of the specified Tab.
518 bool IsPointInTab(Tab* tab, const gfx::Point& point_in_tabstrip_coords); 519 bool IsPointInTab(Tab* tab, const gfx::Point& point_in_tabstrip_coords);
519 520
(...skipping 24 matching lines...) Expand all
544 void SwapLayoutIfNecessary(); 545 void SwapLayoutIfNecessary();
545 546
546 // Returns true if |touch_layout_| is needed. 547 // Returns true if |touch_layout_| is needed.
547 bool NeedsTouchLayout() const; 548 bool NeedsTouchLayout() const;
548 549
549 // Sets the value of |reset_to_shrink_on_exit_|. If true |mouse_watcher_| is 550 // Sets the value of |reset_to_shrink_on_exit_|. If true |mouse_watcher_| is
550 // used to track when the mouse truly exits the tabstrip and the stacked 551 // used to track when the mouse truly exits the tabstrip and the stacked
551 // layout is reset. 552 // layout is reset.
552 void SetResetToShrinkOnExit(bool value); 553 void SetResetToShrinkOnExit(bool value);
553 554
555 // views::ButtonListener implementation:
556 virtual void ButtonPressed(views::Button* sender,
557 const ui::Event& event) OVERRIDE;
558
559 // View overrides.
560 virtual const views::View* GetViewByID(int id) const OVERRIDE;
561 virtual bool OnMousePressed(const ui::MouseEvent& event) OVERRIDE;
562 virtual bool OnMouseDragged(const ui::MouseEvent& event) OVERRIDE;
563 virtual void OnMouseReleased(const ui::MouseEvent& event) OVERRIDE;
564 virtual void OnMouseCaptureLost() OVERRIDE;
565 virtual void OnMouseMoved(const ui::MouseEvent& event) OVERRIDE;
566 virtual void OnMouseEntered(const ui::MouseEvent& event) OVERRIDE;
567
568 // ui::EventHandler overrides.
569 virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE;
570
554 // -- Member Variables ------------------------------------------------------ 571 // -- Member Variables ------------------------------------------------------
555 572
556 // There is a one-to-one mapping between each of the tabs in the 573 // There is a one-to-one mapping between each of the tabs in the
557 // TabStripController (TabStripModel) and |tabs_|. Because we animate tab 574 // TabStripController (TabStripModel) and |tabs_|. Because we animate tab
558 // removal there exists a period of time where a tab is displayed but not in 575 // removal there exists a period of time where a tab is displayed but not in
559 // the model. When this occurs the tab is removed from |tabs_| and placed in 576 // the model. When this occurs the tab is removed from |tabs_| and placed in
560 // |tabs_closing_map_|. When the animation completes the tab is removed from 577 // |tabs_closing_map_|. When the animation completes the tab is removed from
561 // |tabs_closing_map_|. The painting code ensures both sets of tabs are 578 // |tabs_closing_map_|. The painting code ensures both sets of tabs are
562 // painted, and the event handling code ensures only tabs in |tabs_| are used. 579 // painted, and the event handling code ensures only tabs in |tabs_| are used.
563 views::ViewModel tabs_; 580 views::ViewModel tabs_;
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
643 bool immersive_style_; 660 bool immersive_style_;
644 661
645 // Our observers. 662 // Our observers.
646 typedef ObserverList<TabStripObserver> TabStripObservers; 663 typedef ObserverList<TabStripObserver> TabStripObservers;
647 TabStripObservers observers_; 664 TabStripObservers observers_;
648 665
649 DISALLOW_COPY_AND_ASSIGN(TabStrip); 666 DISALLOW_COPY_AND_ASSIGN(TabStrip);
650 }; 667 };
651 668
652 #endif // CHROME_BROWSER_UI_VIEWS_TABS_TAB_STRIP_H_ 669 #endif // CHROME_BROWSER_UI_VIEWS_TABS_TAB_STRIP_H_
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/tabs/tab_drag_controller.cc ('k') | chrome/browser/ui/views/tabs/tab_strip.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698