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

Unified Diff: chrome/browser/views/frame/glass_browser_frame_view.h

Issue 27317: Support DWM switching.... (Closed) Base URL: svn://chrome-svn.corp.google.com/chrome/trunk/src/
Patch Set: '' Created 11 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/views/frame/glass_browser_frame_view.h
===================================================================
--- chrome/browser/views/frame/glass_browser_frame_view.h (revision 10646)
+++ chrome/browser/views/frame/glass_browser_frame_view.h (working copy)
@@ -2,43 +2,40 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_VIEWS_FRAME_AERO_GLASS_NON_CLIENT_VIEW_H_
-#define CHROME_BROWSER_VIEWS_FRAME_AERO_GLASS_NON_CLIENT_VIEW_H_
+#ifndef CHROME_BROWSER_VIEWS_FRAME_GLASS_BROWSER_FRAME_VIEW_H_
+#define CHROME_BROWSER_VIEWS_FRAME_GLASS_BROWSER_FRAME_VIEW_H_
-#include "chrome/browser/views/frame/aero_glass_frame.h"
+#include "chrome/browser/views/frame/browser_frame.h"
#include "chrome/views/non_client_view.h"
#include "chrome/views/button.h"
class BrowserView;
-class AeroGlassWindowResources;
+class GlassBrowserWindowResources;
-class AeroGlassNonClientView : public views::NonClientView {
+class GlassBrowserFrameView : public BrowserNonClientFrameView {
public:
- // Constructs a non-client view for an AeroGlassFrame.
- AeroGlassNonClientView(AeroGlassFrame* frame, BrowserView* browser_view);
- virtual ~AeroGlassNonClientView();
+ // Constructs a non-client view for an BrowserFrame.
+ GlassBrowserFrameView(BrowserFrame* frame, BrowserView* browser_view);
+ virtual ~GlassBrowserFrameView();
- // Retrieve the bounds for the specified |tabstrip|, in the coordinate system
- // of the non-client view (which whould be window coordinates).
- gfx::Rect GetBoundsForTabStrip(TabStrip* tabstrip);
+ // Overridden from BrowserNonClientFrameView:
+ virtual gfx::Rect GetBoundsForTabStrip(TabStrip* tabstrip) const;
+ virtual void UpdateThrobber(bool running);
- protected:
- // Overridden from views::NonClientView:
- virtual gfx::Rect CalculateClientAreaBounds(int width, int height) const;
- virtual gfx::Size CalculateWindowSizeForClientSize(int width,
- int height) const;
+ // Overridden from views::NonClientFrameView:
+ virtual gfx::Rect GetBoundsForClientView() const;
+ virtual gfx::Rect GetWindowBoundsForClientBounds(
+ const gfx::Rect& client_bounds) const;
virtual gfx::Point GetSystemMenuPoint() const;
virtual int NonClientHitTest(const gfx::Point& point);
virtual void GetWindowMask(const gfx::Size& size, gfx::Path* window_mask) { }
virtual void EnableClose(bool enable) { }
virtual void ResetWindowControls() { }
+ protected:
// Overridden from views::View:
virtual void Paint(ChromeCanvas* canvas);
virtual void Layout();
- virtual void ViewHierarchyChanged(bool is_add,
- views::View* parent,
- views::View* child);
private:
// Returns the thickness of the border that makes up the window frame edges.
@@ -63,7 +60,17 @@
void LayoutDistributorLogo();
void LayoutOTRAvatar();
void LayoutClientView();
+
+ // Returns the bounds of the client area for the specified view size.
+ gfx::Rect CalculateClientAreaBounds(int width, int height) const;
+ // Starts/Stops the window throbber running.
+ void StartThrobber();
+ void StopThrobber();
+
+ // Displays the next throbber frame.
+ void DisplayNextThrobberFrame();
+
// The layout rect of the distributor logo, if visible.
gfx::Rect logo_bounds_;
@@ -71,17 +78,30 @@
gfx::Rect otr_avatar_bounds_;
// The frame that hosts this view.
- AeroGlassFrame* frame_;
+ BrowserFrame* frame_;
// The BrowserView hosted within this View.
BrowserView* browser_view_;
+ // The bounds of the ClientView.
+ gfx::Rect client_view_bounds_;
+
+ // Whether or not the window throbber is currently animating.
+ bool throbber_running_;
+
+ // The index of the current frame of the throbber animation.
+ int throbber_frame_;
+
static void InitClass();
static SkBitmap* distributor_logo_;
- static AeroGlassWindowResources* resources_;
+ static GlassBrowserWindowResources* resources_;
- DISALLOW_EVIL_CONSTRUCTORS(AeroGlassNonClientView);
+ static const int kThrobberIconCount = 24;
+ static HICON throbber_icons_[kThrobberIconCount];
+ static void InitThrobberIcons();
+
+ DISALLOW_EVIL_CONSTRUCTORS(GlassBrowserFrameView);
};
-#endif // #ifndef CHROME_BROWSER_VIEWS_FRAME_AERO_GLASS_NON_CLIENT_VIEW_H_
+#endif // #ifndef CHROME_BROWSER_VIEWS_FRAME_GLASS_BROWSER_FRAME_VIEW_H_
Property changes on: chrome\browser\views\frame\glass_browser_frame_view.h
___________________________________________________________________
Added: svn:mergeinfo
Merged /branches/chrome_webkit_merge_branch/chrome/browser/views/frame/aero_glass_non_client_view.h:r69-2775
« no previous file with comments | « chrome/browser/views/frame/browser_window_factory.cc ('k') | chrome/browser/views/frame/glass_browser_frame_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698