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