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

Unified Diff: chrome/browser/ui/views/frame/browser_non_client_frame_view_aura.h

Issue 9580001: Aura: Update window frames, allow resize from outside window (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix caption for maximized windows, new resize cursor tweak Created 8 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/ui/views/frame/browser_non_client_frame_view_aura.h
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_aura.h b/chrome/browser/ui/views/frame/browser_non_client_frame_view_aura.h
index 4655c41d8930b30abace75339d098c71e6f40c14..21ef45b3310100f3001857aeb7a63e672672dfca 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_aura.h
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_aura.h
@@ -6,43 +6,24 @@
#define CHROME_BROWSER_UI_VIEWS_FRAME_BROWSER_NON_CLIENT_FRAME_VIEW_AURA_H_
#pragma once
-#include "ash/wm/window_frame.h"
#include "base/memory/scoped_ptr.h"
#include "chrome/browser/ui/views/frame/browser_non_client_frame_view.h"
-#include "ui/views/controls/button/button.h"
-#include "ui/views/widget/widget.h"
+#include "chrome/browser/ui/views/tab_icon_view.h"
+#include "ui/views/controls/button/button.h" // ButtonListener
-class BrowserFrame;
-class BrowserView;
-class FrameBackgroundView;
-class WindowControlButton;
+namespace views {
+class FrameBackground;
+class ImageButton;
+}
class BrowserNonClientFrameViewAura : public BrowserNonClientFrameView,
public views::ButtonListener,
- public views::Widget::Observer,
- public ash::WindowFrame {
+ public TabIconView::TabIconViewModel {
public:
BrowserNonClientFrameViewAura(BrowserFrame* frame, BrowserView* browser_view);
virtual ~BrowserNonClientFrameViewAura();
- // Control the slide-in animation of the frame background.
- void ShowFrameBackground();
- void HideFrameBackground();
-
- private:
- // Returns a HitTest code.
- int NonClientHitTestImpl(const gfx::Point& point);
-
- // Returns the target rectangle for the frame background, based on a mouse
- // position from |hittest_code| and the window's active/inactive state.
- // Pass HTNOWHERE to get default bounds.
- gfx::Rect GetFrameBackgroundBounds(int hittest_code, bool active_window);
-
- // Recomputes the bounds of the semi-transparent frame background.
- void UpdateFrameBackground(bool active_window);
-
- // Invoked when the active state changes.
- void ActiveStateChanged();
+ void Init();
// BrowserNonClientFrameView overrides:
virtual gfx::Rect GetBoundsForTabStrip(views::View* tabstrip) const OVERRIDE;
@@ -58,32 +39,57 @@ class BrowserNonClientFrameViewAura : public BrowserNonClientFrameView,
gfx::Path* window_mask) OVERRIDE;
virtual void ResetWindowControls() OVERRIDE;
virtual void UpdateWindowIcon() OVERRIDE;
- virtual void ShouldPaintAsActiveChanged() OVERRIDE;
// views::View overrides:
+ virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE;
virtual void Layout() OVERRIDE;
- virtual views::View* GetEventHandlerForPoint(
- const gfx::Point& point) OVERRIDE;
- virtual bool HitTest(const gfx::Point& p) const OVERRIDE;
- virtual void OnMouseMoved(const views::MouseEvent& event) OVERRIDE;
- virtual void OnMouseExited(const views::MouseEvent& event) OVERRIDE;
- virtual gfx::NativeCursor GetCursor(const views::MouseEvent& event) OVERRIDE;
+ virtual bool HitTest(const gfx::Point& l) const OVERRIDE;
+ virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
// views::ButtonListener overrides:
virtual void ButtonPressed(views::Button* sender,
const views::Event& event) OVERRIDE;
- // views::Widget::Observer overrides:
- virtual void OnWidgetActivationChanged(views::Widget* widget,
- bool active) OVERRIDE;
-
- // ash::WindowFrame overrides:
- virtual void OnWindowHoverChanged(bool hovered) OVERRIDE;
+ // Overridden from TabIconView::TabIconViewModel:
+ virtual bool ShouldTabIconViewAnimate() const OVERRIDE;
+ virtual SkBitmap GetFaviconForTabIconView() OVERRIDE;
- int last_hittest_code_;
- WindowControlButton* maximize_button_;
- WindowControlButton* close_button_;
- FrameBackgroundView* frame_background_;
+ private:
+ // Sets the images for a button base on IDs from the frame's theme provider.
+ void SetButtonImages(views::ImageButton* button,
+ int normal_bitmap_id,
+ int hot_bitmap_id,
+ int pushed_bitmap_id);
+
+ // Distance between top of window and client area.
+ int NonClientTopBorderHeight(bool restored) const;
+
+ void PaintHeader(gfx::Canvas* canvas);
+ void PaintTitleBar(gfx::Canvas* canvas);
+
+ // Returns the correct bitmap for the frame header based on activation state
+ // and incognito mode.
+ SkBitmap* GetThemeFrameBitmap() const;
+ SkBitmap* GetThemeFrameOverlayBitmap() const;
+
+ // Returns the theme image bitmap for |bitmap_id| if the user has a custom
+ // theme image, or the bitmap for |fallback_bitmap_id| if not.
+ SkBitmap* GetCustomBitmap(int bitmap_id, int fallback_bitmap_id) const;
+
+ // Window controls.
+ views::ImageButton* maximize_button_;
+ views::ImageButton* close_button_;
+
+ // For popups, the window icon.
+ TabIconView* window_icon_;
+
+ // Window frame header/caption parts.
+ SkBitmap* button_separator_;
+ SkBitmap* top_left_corner_;
+ SkBitmap* top_edge_;
+ SkBitmap* top_right_corner_;
+ SkBitmap* header_left_edge_;
+ SkBitmap* header_right_edge_;
DISALLOW_COPY_AND_ASSIGN(BrowserNonClientFrameViewAura);
};

Powered by Google App Engine
This is Rietveld 408576698