Chromium Code Reviews| OLD | NEW |
|---|---|
| 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_FRAME_BROWSER_VIEW_H_ | 5 #ifndef CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_VIEW_H_ |
| 6 #define CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_VIEW_H_ | 6 #define CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_VIEW_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 28 matching lines...) Expand all Loading... | |
| 39 #include "chrome/browser/hang_monitor/hung_window_detector.h" | 39 #include "chrome/browser/hang_monitor/hung_window_detector.h" |
| 40 #endif | 40 #endif |
| 41 | 41 |
| 42 // NOTE: For more information about the objects and files in this directory, | 42 // NOTE: For more information about the objects and files in this directory, |
| 43 // view: http://dev.chromium.org/developers/design-documents/browser-window | 43 // view: http://dev.chromium.org/developers/design-documents/browser-window |
| 44 | 44 |
| 45 class BookmarkBarView; | 45 class BookmarkBarView; |
| 46 class Browser; | 46 class Browser; |
| 47 class BrowserViewLayout; | 47 class BrowserViewLayout; |
| 48 class ContentsContainer; | 48 class ContentsContainer; |
| 49 class DevToolsContainer; | |
| 49 class DownloadShelfView; | 50 class DownloadShelfView; |
| 50 class FullscreenExitBubbleViews; | 51 class FullscreenExitBubbleViews; |
| 51 class InfoBarContainerView; | 52 class InfoBarContainerView; |
| 52 class LocationBarView; | 53 class LocationBarView; |
| 53 class StatusBubbleViews; | 54 class StatusBubbleViews; |
| 54 class SearchViewController; | 55 class SearchViewController; |
| 55 class TabStrip; | 56 class TabStrip; |
| 56 class TabStripModel; | 57 class TabStripModel; |
| 57 class ToolbarView; | 58 class ToolbarView; |
| 58 class TopContainerView; | 59 class TopContainerView; |
| (...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 451 virtual void ChildPreferredSizeChanged(View* child) OVERRIDE; | 452 virtual void ChildPreferredSizeChanged(View* child) OVERRIDE; |
| 452 virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE; | 453 virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE; |
| 453 | 454 |
| 454 // Overridden from ui::AcceleratorTarget: | 455 // Overridden from ui::AcceleratorTarget: |
| 455 virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) OVERRIDE; | 456 virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) OVERRIDE; |
| 456 | 457 |
| 457 // OmniboxPopupModelObserver overrides | 458 // OmniboxPopupModelObserver overrides |
| 458 virtual void OnOmniboxPopupShownOrHidden() OVERRIDE; | 459 virtual void OnOmniboxPopupShownOrHidden() OVERRIDE; |
| 459 | 460 |
| 460 // Testing interface: | 461 // Testing interface: |
| 461 views::SingleSplitView* GetContentsSplitForTest() { return contents_split_; } | |
| 462 ContentsContainer* GetContentsContainerForTest() { | 462 ContentsContainer* GetContentsContainerForTest() { |
| 463 return contents_container_; | 463 return contents_container_; |
| 464 } | 464 } |
| 465 views::WebView* GetContentsWebViewForTest() { return contents_web_view_; } | 465 views::WebView* GetContentsWebViewForTest() { return contents_web_view_; } |
| 466 | 466 |
| 467 private: | 467 private: |
| 468 // Do not friend BrowserViewLayout. Use the BrowserViewLayoutDelegate | 468 // Do not friend BrowserViewLayout. Use the BrowserViewLayoutDelegate |
| 469 // interface to keep these two classes decoupled and testable. | 469 // interface to keep these two classes decoupled and testable. |
| 470 friend class BrowserViewLayoutDelegateImpl; | 470 friend class BrowserViewLayoutDelegateImpl; |
| 471 FRIEND_TEST_ALL_PREFIXES(BrowserViewTest, BrowserView); | 471 FRIEND_TEST_ALL_PREFIXES(BrowserViewTest, BrowserView); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 513 // type, and there should be a subsequent re-layout to show it. | 513 // type, and there should be a subsequent re-layout to show it. |
| 514 // |contents| can be NULL. | 514 // |contents| can be NULL. |
| 515 bool MaybeShowInfoBar(content::WebContents* contents); | 515 bool MaybeShowInfoBar(content::WebContents* contents); |
| 516 | 516 |
| 517 // Updates devtools window for given contents. This method will show docked | 517 // Updates devtools window for given contents. This method will show docked |
| 518 // devtools window for inspected |web_contents| that has docked devtools | 518 // devtools window for inspected |web_contents| that has docked devtools |
| 519 // and hide it for NULL or not inspected |web_contents|. It will also make | 519 // and hide it for NULL or not inspected |web_contents|. It will also make |
| 520 // sure devtools window size and position are restored for given tab. | 520 // sure devtools window size and position are restored for given tab. |
| 521 void UpdateDevToolsForContents(content::WebContents* web_contents); | 521 void UpdateDevToolsForContents(content::WebContents* web_contents); |
| 522 | 522 |
| 523 // Shows docked devtools. | |
| 524 void ShowDevToolsContainer(); | |
| 525 | |
| 526 // Hides docked devtools. | |
| 527 void HideDevToolsContainer(); | |
| 528 | |
| 529 // Reads split position from the current tab's devtools window and applies | |
| 530 // it to the devtools split. | |
| 531 void UpdateDevToolsSplitPosition(); | |
| 532 | |
| 533 // Updates various optional child Views, e.g. Bookmarks Bar, Info Bar or the | 523 // Updates various optional child Views, e.g. Bookmarks Bar, Info Bar or the |
| 534 // Download Shelf in response to a change notification from the specified | 524 // Download Shelf in response to a change notification from the specified |
| 535 // |contents|. |contents| can be NULL. In this case, all optional UI will be | 525 // |contents|. |contents| can be NULL. In this case, all optional UI will be |
| 536 // removed. | 526 // removed. |
| 537 void UpdateUIForContents(content::WebContents* contents); | 527 void UpdateUIForContents(content::WebContents* contents); |
| 538 | 528 |
| 539 // Invoked to update the necessary things when our fullscreen state changes | 529 // Invoked to update the necessary things when our fullscreen state changes |
| 540 // to |fullscreen|. On Windows this is invoked immediately when we toggle the | 530 // to |fullscreen|. On Windows this is invoked immediately when we toggle the |
| 541 // full screen state. On Linux changing the fullscreen state is async, so we | 531 // full screen state. On Linux changing the fullscreen state is async, so we |
| 542 // ask the window to change its fullscreen state, then when we get | 532 // ask the window to change its fullscreen state, then when we get |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 606 // | -------------------------------------------------------------- | | 596 // | -------------------------------------------------------------- | |
| 607 // | | Tabs (tabstrip_) | | | 597 // | | Tabs (tabstrip_) | | |
| 608 // | |------------------------------------------------------------| | | 598 // | |------------------------------------------------------------| | |
| 609 // | | Navigation buttons, address bar, menu (toolbar_) | | | 599 // | | Navigation buttons, address bar, menu (toolbar_) | | |
| 610 // | -------------------------------------------------------------- | | 600 // | -------------------------------------------------------------- | |
| 611 // |------------------------------------------------------------------| | 601 // |------------------------------------------------------------------| |
| 612 // | All infobars (infobar_container_) [1] | | 602 // | All infobars (infobar_container_) [1] | |
| 613 // |------------------------------------------------------------------| | 603 // |------------------------------------------------------------------| |
| 614 // | Bookmarks (bookmark_bar_view_) [1] | | 604 // | Bookmarks (bookmark_bar_view_) [1] | |
| 615 // |------------------------------------------------------------------| | 605 // |------------------------------------------------------------------| |
| 616 // | Debugger splitter (contents_split_) | | 606 // | Contents (contents_container_) | |
|
pfeldman
2013/11/18 14:18:27
Now contents_container only contains devtools_cont
dgozman
2013/11/18 14:37:14
Contents container has top offset, which is used f
| |
| 617 // | -------------------------------------------------------------- | | 607 // | -------------------------------------------------------------- | |
| 618 // | | Page content (contents_container_) | | | 608 // | | DevTools container (devtools_container_) | | |
| 619 // | | -------------------------------------------------------- | | | 609 // | | -------------------------------------------------------- | | |
| 620 // | | | contents_web_view_ | | | | 610 // | | | contents_web_view_ | | | |
| 621 // | | -------------------------------------------------------- | | | 611 // | | -------------------------------------------------------- | | |
| 622 // | -------------------------------------------------------------- | | 612 // | | | devtools_web_view_ | | | |
| 623 // | -------------------------------------------------------------- | | 613 // | | -------------------------------------------------------- | | |
| 624 // | | Debugger (devtools_container_) | | | |
| 625 // | | | | | |
| 626 // | -------------------------------------------------------------- | | 614 // | -------------------------------------------------------------- | |
| 627 // |------------------------------------------------------------------| | 615 // |------------------------------------------------------------------| |
| 628 // | Active downloads (download_shelf_) | | 616 // | Active downloads (download_shelf_) | |
| 629 // -------------------------------------------------------------------- | 617 // -------------------------------------------------------------------- |
| 630 // | 618 // |
| 631 // [1] The bookmark bar and info bar are swapped when on the new tab page. | 619 // [1] The bookmark bar and info bar are swapped when on the new tab page. |
| 632 // Additionally when the bookmark bar is detached, contents_container_ is | 620 // Additionally when the bookmark bar is detached, contents_container_ is |
| 633 // positioned on top of the bar while the tab's contents are placed below | 621 // positioned on top of the bar while the tab's contents are placed below |
| 634 // the bar. This allows the find bar to always align with the top of | 622 // the bar. This allows the find bar to always align with the top of |
| 635 // contents_container_ regardless if there's bookmark or info bars. | 623 // contents_container_ regardless if there's bookmark or info bars. |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 662 // The download shelf view (view at the bottom of the page). | 650 // The download shelf view (view at the bottom of the page). |
| 663 scoped_ptr<DownloadShelfView> download_shelf_; | 651 scoped_ptr<DownloadShelfView> download_shelf_; |
| 664 | 652 |
| 665 // The InfoBarContainerView that contains InfoBars for the current tab. | 653 // The InfoBarContainerView that contains InfoBars for the current tab. |
| 666 InfoBarContainerView* infobar_container_; | 654 InfoBarContainerView* infobar_container_; |
| 667 | 655 |
| 668 // The view that contains the selected WebContents. | 656 // The view that contains the selected WebContents. |
| 669 views::WebView* contents_web_view_; | 657 views::WebView* contents_web_view_; |
| 670 | 658 |
| 671 // The view that contains devtools window for the selected WebContents. | 659 // The view that contains devtools window for the selected WebContents. |
| 672 views::WebView* devtools_container_; | 660 views::WebView* devtools_web_view_; |
| 673 | 661 |
| 674 // The view managing the |contents_web_view_|. | 662 // The view managing devtools and contents windows relative positions. |
| 663 DevToolsContainer* devtools_container_; | |
| 664 | |
| 665 // The view managing the |devtools_container_|. | |
| 675 ContentsContainer* contents_container_; | 666 ContentsContainer* contents_container_; |
| 676 | 667 |
| 677 // Split view containing the contents container and devtools container. | |
| 678 views::SingleSplitView* contents_split_; | |
| 679 | |
| 680 // Side to dock devtools to. | |
| 681 DevToolsDockSide devtools_dock_side_; | |
| 682 | |
| 683 // Docked devtools window instance. NULL when current tab is not inspected | 668 // Docked devtools window instance. NULL when current tab is not inspected |
| 684 // or is inspected with undocked version of DevToolsWindow. | 669 // or is inspected with undocked version of DevToolsWindow. |
| 685 DevToolsWindow* devtools_window_; | 670 DevToolsWindow* devtools_window_; |
| 686 | 671 |
| 687 // Tracks and stores the last focused view which is not the | 672 // Tracks and stores the last focused view which is not the |
| 688 // devtools_container_ or any of its children. Used to restore focus once | 673 // devtools_web_view_ or any of its children. Used to restore focus once |
| 689 // the devtools_container_ is hidden. | 674 // the devtools_web_view_ is hidden. |
| 690 scoped_ptr<views::ExternalFocusTracker> devtools_focus_tracker_; | 675 scoped_ptr<views::ExternalFocusTracker> devtools_focus_tracker_; |
| 691 | 676 |
| 692 // The Status information bubble that appears at the bottom of the window. | 677 // The Status information bubble that appears at the bottom of the window. |
| 693 scoped_ptr<StatusBubbleViews> status_bubble_; | 678 scoped_ptr<StatusBubbleViews> status_bubble_; |
| 694 | 679 |
| 695 // A mapping between accelerators and commands. | 680 // A mapping between accelerators and commands. |
| 696 std::map<ui::Accelerator, int> accelerator_table_; | 681 std::map<ui::Accelerator, int> accelerator_table_; |
| 697 | 682 |
| 698 // True if we have already been initialized. | 683 // True if we have already been initialized. |
| 699 bool initialized_; | 684 bool initialized_; |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 743 scoped_ptr<ScrollEndEffectController> scroll_end_effect_controller_; | 728 scoped_ptr<ScrollEndEffectController> scroll_end_effect_controller_; |
| 744 | 729 |
| 745 gfx::ScopedSysColorChangeListener color_change_listener_; | 730 gfx::ScopedSysColorChangeListener color_change_listener_; |
| 746 | 731 |
| 747 mutable base::WeakPtrFactory<BrowserView> activate_modal_dialog_factory_; | 732 mutable base::WeakPtrFactory<BrowserView> activate_modal_dialog_factory_; |
| 748 | 733 |
| 749 DISALLOW_COPY_AND_ASSIGN(BrowserView); | 734 DISALLOW_COPY_AND_ASSIGN(BrowserView); |
| 750 }; | 735 }; |
| 751 | 736 |
| 752 #endif // CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_VIEW_H_ | 737 #endif // CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_VIEW_H_ |
| OLD | NEW |