| Index: chrome/browser/ui/views/frame/app_non_client_frame_view_aura.h
 | 
| diff --git a/chrome/browser/ui/views/frame/app_non_client_frame_view_aura.h b/chrome/browser/ui/views/frame/app_non_client_frame_view_aura.h
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..5810c323933593aa59ca00176ba5a645e96d8931
 | 
| --- /dev/null
 | 
| +++ b/chrome/browser/ui/views/frame/app_non_client_frame_view_aura.h
 | 
| @@ -0,0 +1,76 @@
 | 
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved.
 | 
| +// Use of this source code is governed by a BSD-style license that can be
 | 
| +// found in the LICENSE file.
 | 
| +
 | 
| +#ifndef CHROME_BROWSER_UI_VIEWS_FRAME_APP_NON_CLIENT_FRAME_VIEW_AURA_H_
 | 
| +#define CHROME_BROWSER_UI_VIEWS_FRAME_APP_NON_CLIENT_FRAME_VIEW_AURA_H_
 | 
| +#pragma once
 | 
| +
 | 
| +#include "chrome/browser/ui/views/frame/browser_non_client_frame_view.h"
 | 
| +#include "ui/base/animation/animation_delegate.h"
 | 
| +#include "ui/views/controls/button/button.h"
 | 
| +#include "ui/views/mouse_watcher.h"
 | 
| +
 | 
| +namespace aura {
 | 
| +class Window;
 | 
| +}
 | 
| +
 | 
| +namespace ui {
 | 
| +class SlideAnimation;
 | 
| +}
 | 
| +
 | 
| +// NonClientFrameViewAura implementation for apps.
 | 
| +class AppNonClientFrameViewAura : public BrowserNonClientFrameView,
 | 
| +                                  public views::MouseWatcherListener {
 | 
| + public:
 | 
| +  AppNonClientFrameViewAura(
 | 
| +      BrowserFrame* frame, BrowserView* browser_view);
 | 
| +  virtual ~AppNonClientFrameViewAura();
 | 
| +
 | 
| +  // NonClientFrameView:
 | 
| +  virtual gfx::Rect GetBoundsForClientView() const OVERRIDE;
 | 
| +  virtual gfx::Rect GetWindowBoundsForClientBounds(
 | 
| +      const gfx::Rect& client_bounds) const OVERRIDE;
 | 
| +  virtual int NonClientHitTest(const gfx::Point& point) OVERRIDE;
 | 
| +  virtual void GetWindowMask(
 | 
| +      const gfx::Size& size,
 | 
| +      gfx::Path* window_mask) OVERRIDE;
 | 
| +  virtual void ResetWindowControls() OVERRIDE;
 | 
| +  virtual void UpdateWindowIcon() OVERRIDE;
 | 
| +
 | 
| +  // BrowserNonClientFrameView:
 | 
| +  virtual gfx::Rect GetBoundsForTabStrip(
 | 
| +      views::View* tabstrip) const OVERRIDE;
 | 
| +  virtual int GetHorizontalTabStripVerticalOffset(
 | 
| +      bool restored) const OVERRIDE;
 | 
| +  virtual void UpdateThrobber(bool running) OVERRIDE;
 | 
| +
 | 
| +  // View:
 | 
| +  virtual void OnMouseEntered(const views::MouseEvent& event) OVERRIDE;
 | 
| +
 | 
| +  // views::MouseWatcherListener.
 | 
| +  virtual void MouseMovedOutOfHost() OVERRIDE;
 | 
| +
 | 
| +  // Close the app window.
 | 
| +  void Close();
 | 
| +
 | 
| +  // Restore the app window (will result in switching the frame_view back).
 | 
| +  void Restore();
 | 
| +
 | 
| + private:
 | 
| +  class ControlView;
 | 
| +  class Host;
 | 
| +
 | 
| +  gfx::Rect GetControlBounds() const;
 | 
| +
 | 
| +  // The View containing the restore and close buttons.
 | 
| +  ControlView* control_view_;
 | 
| +  // The widget holding the control_view_.
 | 
| +  views::Widget* control_widget_;
 | 
| +  // Tracks the mouse and causes the controls to slide back up when it exits.
 | 
| +  views::MouseWatcher mouse_watcher_;
 | 
| +
 | 
| +  DISALLOW_COPY_AND_ASSIGN(AppNonClientFrameViewAura);
 | 
| +};
 | 
| +
 | 
| +#endif  // CHROME_BROWSER_UI_VIEWS_FRAME_APP_NON_CLIENT_FRAME_VIEW_AURA_H_
 | 
| 
 |