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

Unified Diff: chrome/browser/views/frame/browser_frame.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/browser_frame.h
===================================================================
--- chrome/browser/views/frame/browser_frame.h (revision 10646)
+++ chrome/browser/views/frame/browser_frame.h (working copy)
@@ -2,43 +2,55 @@
// 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_FRAME_H_
-#define CHROME_BROWSER_VIEWS_FRAME_AERO_GLASS_FRAME_H_
+#ifndef CHROME_BROWSER_VIEWS_FRAME_BROWSER_FRAME_
+#define CHROME_BROWSER_VIEWS_FRAME_BROWSER_FRAME_
-#include "chrome/browser/views/frame/browser_frame.h"
#include "chrome/views/window.h"
class AeroGlassNonClientView;
class BrowserView;
+class NonClientFrameView;
+class TabStrip;
+// A specialization of the NonClientFrameView object that provides additional
+// Browser-specific methods.
+class BrowserNonClientFrameView : public views::NonClientFrameView {
+ public:
+ BrowserNonClientFrameView() : NonClientFrameView() {}
+ virtual ~BrowserNonClientFrameView() {}
+
+ // Returns the bounds within which the TabStrip should be laid out.
+ virtual gfx::Rect GetBoundsForTabStrip(TabStrip* tabstrip) const = 0;
+
+ // Updates the throbber.
+ virtual void UpdateThrobber(bool running) = 0;
+};
+
///////////////////////////////////////////////////////////////////////////////
-// AeroGlassFrame
+// BrowserFrame
//
-// AeroGlassFrame is a Window subclass that provides the window frame on
-// Windows Vista with DWM desktop compositing enabled. The window's non-client
-// areas are drawn by the system.
+// BrowserFrame is a Window subclass that provides the window frame for the
+// Chrome browser window.
//
-class AeroGlassFrame : public BrowserFrame,
- public views::Window {
+class BrowserFrame : public views::Window {
public:
- explicit AeroGlassFrame(BrowserView* browser_view);
- virtual ~AeroGlassFrame();
+ explicit BrowserFrame(BrowserView* browser_view);
+ virtual ~BrowserFrame();
+ // Initialize the frame. Creates the Window.
void Init();
// Determine the distance of the left edge of the minimize button from the
// left edge of the window. Used in our Non-Client View's Layout.
int GetMinimizeButtonOffset() const;
- // Overridden from BrowserFrame:
- virtual gfx::Rect GetWindowBoundsForClientBounds(
- const gfx::Rect& client_bounds);
- virtual void SizeToContents(const gfx::Rect& contents_bounds) {}
- virtual gfx::Rect GetBoundsForTabStrip(TabStrip* tabstrip) const;
- virtual void UpdateThrobber(bool running);
- virtual views::Window* GetWindow();
- virtual const views::Window* GetWindow() const;
+ // Retrieves the bounds, in non-client view coordinates for the specified
+ // TabStrip.
+ gfx::Rect GetBoundsForTabStrip(TabStrip* tabstrip) const;
+ // Tells the frame to update the throbber.
+ void UpdateThrobber(bool running);
+
protected:
// Overridden from views::WidgetWin:
virtual bool AcceleratorPressed(views::Accelerator* accelerator);
@@ -58,38 +70,23 @@
// Overridden from views::Window:
virtual int GetShowState() const;
virtual bool IsAppWindow() const { return true; }
+ virtual views::NonClientFrameView* CreateFrameViewForWindow();
+ virtual void UpdateFrameAfterFrameChange();
private:
// Updates the DWM with the frame bounds.
void UpdateDWMFrame();
- // Return a pointer to the concrete type of our non-client view.
- AeroGlassNonClientView* GetAeroGlassNonClientView() const;
-
- // Starts/Stops the window throbber running.
- void StartThrobber();
- void StopThrobber();
-
- // Displays the next throbber frame.
- void DisplayNextThrobberFrame();
-
// The BrowserView is our ClientView. This is a pointer to it.
BrowserView* browser_view_;
+ // A pointer to our NonClientFrameView as a BrowserNonClientFrameView.
+ BrowserNonClientFrameView* browser_frame_view_;
+
bool frame_initialized_;
- // 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 const int kThrobberIconCount = 24;
- static HICON throbber_icons_[kThrobberIconCount];
- static void InitThrobberIcons();
-
- DISALLOW_EVIL_CONSTRUCTORS(AeroGlassFrame);
+ DISALLOW_EVIL_CONSTRUCTORS(BrowserFrame);
};
-#endif // #ifndef CHROME_BROWSER_VIEWS_FRAME_AERO_GLASS_FRAME_H_
+#endif // #ifndef CHROME_BROWSER_VIEWS_FRAME_BROWSER_FRAME_
Property changes on: chrome\browser\views\frame\browser_frame.h
___________________________________________________________________
Added: svn:mergeinfo
Merged /branches/chrome_webkit_merge_branch/chrome/browser/views/frame/aero_glass_frame.h:r69-2775
« no previous file with comments | « chrome/browser/views/frame/aero_glass_non_client_view.cc ('k') | chrome/browser/views/frame/browser_frame.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698