blob: 2ef206396bcff574ac2c04127472bfd9d416fce8 [file] [log] [blame]
// Copyright 2014 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_APPS_APP_WINDOW_DESKTOP_WINDOW_TREE_HOST_WIN_H_
#define CHROME_BROWSER_UI_VIEWS_APPS_APP_WINDOW_DESKTOP_WINDOW_TREE_HOST_WIN_H_
#include "ui/views/widget/desktop_aura/desktop_window_tree_host_win.h"
namespace views {
class DesktopNativeWidgetAura;
}
class ChromeNativeAppWindowViewsWin;
// AppWindowDesktopWindowTreeHostWin handles updating the glass of app frames on
// Windows. It is used for all desktop app windows on Windows, but is only
// actively doing anything when a glass window frame is being used.
class AppWindowDesktopWindowTreeHostWin
: public views::DesktopWindowTreeHostWin {
public:
AppWindowDesktopWindowTreeHostWin(
ChromeNativeAppWindowViewsWin* app_window,
views::DesktopNativeWidgetAura* desktop_native_widget_aura);
virtual ~AppWindowDesktopWindowTreeHostWin();
private:
// Overridden from DesktopWindowTreeHostWin:
virtual bool GetClientAreaInsets(gfx::Insets* insets) const override;
virtual void HandleFrameChanged() override;
virtual void PostHandleMSG(UINT message,
WPARAM w_param,
LPARAM l_param) override;
// Updates the glass frame area by calling the DwmExtendFrameIntoClientArea
// Windows function.
void UpdateDWMFrame();
ChromeNativeAppWindowViewsWin* app_window_;
DISALLOW_COPY_AND_ASSIGN(AppWindowDesktopWindowTreeHostWin);
};
#endif // CHROME_BROWSER_UI_VIEWS_APPS_APP_WINDOW_DESKTOP_WINDOW_TREE_HOST_WIN_H_