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

Side by Side Diff: chrome/browser/views/frame/opaque_browser_frame_view.h

Issue 3137019: Fix numerous alignment problems, both horizontal and vertical, in drawing the... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 4 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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_FRAME_OPAQUE_BROWSER_FRAME_VIEW_H_ 5 #ifndef CHROME_BROWSER_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_H_
6 #define CHROME_BROWSER_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_H_ 6 #define CHROME_BROWSER_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_H_
7 #pragma once 7 #pragma once
8 8
9 #include "chrome/browser/views/frame/browser_frame.h" 9 #include "chrome/browser/views/frame/browser_frame.h"
10 #include "chrome/browser/views/frame/browser_non_client_frame_view.h" 10 #include "chrome/browser/views/frame/browser_non_client_frame_view.h"
(...skipping 15 matching lines...) Expand all
26 class OpaqueBrowserFrameView : public BrowserNonClientFrameView, 26 class OpaqueBrowserFrameView : public BrowserNonClientFrameView,
27 public views::ButtonListener, 27 public views::ButtonListener,
28 public TabIconView::TabIconViewModel { 28 public TabIconView::TabIconViewModel {
29 public: 29 public:
30 // Constructs a non-client view for an BrowserFrame. 30 // Constructs a non-client view for an BrowserFrame.
31 OpaqueBrowserFrameView(BrowserFrame* frame, BrowserView* browser_view); 31 OpaqueBrowserFrameView(BrowserFrame* frame, BrowserView* browser_view);
32 virtual ~OpaqueBrowserFrameView(); 32 virtual ~OpaqueBrowserFrameView();
33 33
34 // Overridden from BrowserNonClientFrameView: 34 // Overridden from BrowserNonClientFrameView:
35 virtual gfx::Rect GetBoundsForTabStrip(BaseTabStrip* tabstrip) const; 35 virtual gfx::Rect GetBoundsForTabStrip(BaseTabStrip* tabstrip) const;
36 virtual int GetHorizontalTabStripVerticalOffset(bool restored) const;
36 virtual void UpdateThrobber(bool running); 37 virtual void UpdateThrobber(bool running);
37 virtual gfx::Size GetMinimumSize(); 38 virtual gfx::Size GetMinimumSize();
38 39
39 protected: 40 protected:
40 // Overridden from views::NonClientFrameView: 41 // Overridden from views::NonClientFrameView:
41 virtual gfx::Rect GetBoundsForClientView() const; 42 virtual gfx::Rect GetBoundsForClientView() const;
42 virtual bool AlwaysUseNativeFrame() const; 43 virtual bool AlwaysUseNativeFrame() const;
43 virtual bool AlwaysUseCustomFrame() const; 44 virtual bool AlwaysUseCustomFrame() const;
44 virtual gfx::Rect GetWindowBoundsForClientBounds( 45 virtual gfx::Rect GetWindowBoundsForClientBounds(
45 const gfx::Rect& client_bounds) const; 46 const gfx::Rect& client_bounds) const;
46 virtual int NonClientHitTest(const gfx::Point& point); 47 virtual int NonClientHitTest(const gfx::Point& point);
47 virtual void GetWindowMask(const gfx::Size& size, gfx::Path* window_mask); 48 virtual void GetWindowMask(const gfx::Size& size, gfx::Path* window_mask);
48 virtual void EnableClose(bool enable); 49 virtual void EnableClose(bool enable);
49 virtual void ResetWindowControls(); 50 virtual void ResetWindowControls();
50 51
51 // Overridden from views::View: 52 // Overridden from views::View:
52 virtual void Paint(gfx::Canvas* canvas); 53 virtual void Paint(gfx::Canvas* canvas);
53 virtual void PaintChildren(gfx::Canvas* canvas);
54 virtual void Layout(); 54 virtual void Layout();
55 virtual bool HitTest(const gfx::Point& l) const; 55 virtual bool HitTest(const gfx::Point& l) const;
56 virtual bool GetAccessibleRole(AccessibilityTypes::Role* role); 56 virtual bool GetAccessibleRole(AccessibilityTypes::Role* role);
57 57
58 // Overridden from views::ButtonListener: 58 // Overridden from views::ButtonListener:
59 virtual void ButtonPressed(views::Button* sender, const views::Event& event); 59 virtual void ButtonPressed(views::Button* sender, const views::Event& event);
60 60
61 // Overridden from TabIconView::TabIconViewModel: 61 // Overridden from TabIconView::TabIconViewModel:
62 virtual bool ShouldTabIconViewAnimate() const; 62 virtual bool ShouldTabIconViewAnimate() const;
63 virtual SkBitmap GetFavIconForTabIconView(); 63 virtual SkBitmap GetFavIconForTabIconView();
64 64
65 private: 65 private:
66 // Returns the thickness of the border that makes up the window frame edges. 66 // Returns the thickness of the border that makes up the window frame edges.
67 // This does not include any client edge. 67 // This does not include any client edge. If |restored| is true, acts as if
68 int FrameBorderThickness() const; 68 // the window is restored regardless of the real mode.
69 int FrameBorderThickness(bool restored) const;
69 70
70 // Returns the height of the top resize area. This is smaller than the frame 71 // Returns the height of the top resize area. This is smaller than the frame
71 // border height in order to increase the window draggable area. 72 // border height in order to increase the window draggable area.
72 int TopResizeHeight() const; 73 int TopResizeHeight() const;
73 74
74 // Returns the thickness of the entire nonclient left, right, and bottom 75 // Returns the thickness of the entire nonclient left, right, and bottom
75 // borders, including both the window frame and any client edge. 76 // borders, including both the window frame and any client edge.
76 int NonClientBorderThickness() const; 77 int NonClientBorderThickness() const;
77 78
78 // Returns the height of the entire nonclient top border, including the window 79 // Returns the height of the entire nonclient top border, including the window
79 // frame, any title area, and any connected client edge. 80 // frame, any title area, and any connected client edge. If |restored| is
80 int NonClientTopBorderHeight() const; 81 // true, acts as if the window is restored regardless of the real mode. If
82 // |ignore_vertical_tabs| is true, acts as if vertical tabs are off regardless
83 // of the real state.
84 int NonClientTopBorderHeight(bool restored, bool ignore_vertical_tabs) const;
81 85
82 // Returns the y-coordinate of the caption buttons. 86 // Returns the y-coordinate of the caption buttons. If |restored| is true,
83 int CaptionButtonY() const; 87 // acts as if the window is restored regardless of the real mode.
88 int CaptionButtonY(bool restored) const;
84 89
85 // Returns the thickness of the nonclient portion of the 3D edge along the 90 // Returns the thickness of the 3D edge along the bottom of the titlebar. If
86 // bottom of the titlebar. 91 // |restored| is true, acts as if the window is restored regardless of the
87 int TitlebarBottomThickness() const; 92 // real mode.
93 int TitlebarBottomThickness(bool restored) const;
88 94
89 // Returns the size of the titlebar icon. This is used even when the icon is 95 // Returns the size of the titlebar icon. This is used even when the icon is
90 // not shown, e.g. to set the titlebar height. 96 // not shown, e.g. to set the titlebar height.
91 int IconSize() const; 97 int IconSize() const;
92 98
93 // Returns the bounds of the titlebar icon (or where the icon would be if 99 // Returns the bounds of the titlebar icon (or where the icon would be if
94 // there was one). 100 // there was one).
95 gfx::Rect IconBounds() const; 101 gfx::Rect IconBounds() const;
96 102
97 // Paint various sub-components of this view. The *FrameBorder() functions 103 // Paint various sub-components of this view. The *FrameBorder() functions
98 // also paint the background of the titlebar area, since the top frame border 104 // also paint the background of the titlebar area, since the top frame border
99 // and titlebar background are a contiguous component. 105 // and titlebar background are a contiguous component.
100 void PaintRestoredFrameBorder(gfx::Canvas* canvas); 106 void PaintRestoredFrameBorder(gfx::Canvas* canvas);
101 void PaintMaximizedFrameBorder(gfx::Canvas* canvas); 107 void PaintMaximizedFrameBorder(gfx::Canvas* canvas);
102 void PaintTitleBar(gfx::Canvas* canvas); 108 void PaintTitleBar(gfx::Canvas* canvas);
103 void PaintToolbarBackground(gfx::Canvas* canvas); 109 void PaintToolbarBackground(gfx::Canvas* canvas);
110 void PaintOTRAvatar(gfx::Canvas* canvas);
104 void PaintRestoredClientEdge(gfx::Canvas* canvas); 111 void PaintRestoredClientEdge(gfx::Canvas* canvas);
105 112
106 // Layout various sub-components of this view. 113 // Layout various sub-components of this view.
107 void LayoutWindowControls(); 114 void LayoutWindowControls();
108 void LayoutTitleBar(); 115 void LayoutTitleBar();
109 void LayoutOTRAvatar(); 116 void LayoutOTRAvatar();
110 117
111 // Returns the bounds of the client area for the specified view size. 118 // Returns the bounds of the client area for the specified view size.
112 gfx::Rect CalculateClientAreaBounds(int width, int height) const; 119 gfx::Rect CalculateClientAreaBounds(int width, int height) const;
113 120
114 // Returns the bounds of |src| in the coordinate system of |dst|.
115 // TODO(sky): promote this to view.
116 static gfx::Rect GetViewBounds(views::View* src, views::View* dst);
117
118 // The layout rect of the title, if visible. 121 // The layout rect of the title, if visible.
119 gfx::Rect title_bounds_; 122 gfx::Rect title_bounds_;
120 123
121 // Off the record avatar icon. 124 // The layout rect of the OTR avatar icon, if visible.
122 views::ImageView* otr_avatar_icon_; 125 gfx::Rect otr_avatar_bounds_;
123 126
124 // Window controls. 127 // Window controls.
125 views::ImageButton* minimize_button_; 128 views::ImageButton* minimize_button_;
126 views::ImageButton* maximize_button_; 129 views::ImageButton* maximize_button_;
127 views::ImageButton* restore_button_; 130 views::ImageButton* restore_button_;
128 views::ImageButton* close_button_; 131 views::ImageButton* close_button_;
129 132
130 // The Window icon. 133 // The Window icon.
131 TabIconView* window_icon_; 134 TabIconView* window_icon_;
132 135
133 // The frame that hosts this view. 136 // The frame that hosts this view.
134 BrowserFrame* frame_; 137 BrowserFrame* frame_;
135 138
136 // The BrowserView hosted within this View. 139 // The BrowserView hosted within this View.
137 BrowserView* browser_view_; 140 BrowserView* browser_view_;
138 141
139 // The bounds of the ClientView. 142 // The bounds of the ClientView.
140 gfx::Rect client_view_bounds_; 143 gfx::Rect client_view_bounds_;
141 144
142 DISALLOW_COPY_AND_ASSIGN(OpaqueBrowserFrameView); 145 DISALLOW_COPY_AND_ASSIGN(OpaqueBrowserFrameView);
143 }; 146 };
144 147
145 #endif // CHROME_BROWSER_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_H_ 148 #endif // CHROME_BROWSER_VIEWS_FRAME_OPAQUE_BROWSER_FRAME_VIEW_H_
OLDNEW
« no previous file with comments | « chrome/browser/views/frame/glass_browser_frame_view.cc ('k') | chrome/browser/views/frame/opaque_browser_frame_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698