browser_non_client_frame_view_factory_aura.cc revision f2477e01787aa58f445919b809d89e252beef54f
1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/ui/views/frame/browser_view.h"
6
7#include "base/command_line.h"
8#include "chrome/browser/ui/views/frame/opaque_browser_frame_view.h"
9
10#if defined(USE_ASH)
11#include "chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.h"
12#endif
13
14#if defined(OS_WIN)
15#include "chrome/browser/ui/views/frame/glass_browser_frame_view.h"
16#endif
17
18namespace chrome {
19
20BrowserNonClientFrameView* CreateBrowserNonClientFrameView(
21    BrowserFrame* frame, BrowserView* browser_view) {
22#if defined(USE_AURA) && defined(OS_WIN)
23  if (browser_view->browser()->
24          host_desktop_type() == chrome::HOST_DESKTOP_TYPE_NATIVE) {
25    if (frame->ShouldUseNativeFrame())
26      return new GlassBrowserFrameView(frame, browser_view);
27    return new OpaqueBrowserFrameView(frame, browser_view);
28  }
29#endif
30#if defined(USE_ASH)
31  BrowserNonClientFrameViewAsh* frame_view =
32      new BrowserNonClientFrameViewAsh(frame, browser_view);
33  frame_view->Init();
34  return frame_view;
35#else
36  return new OpaqueBrowserFrameView(frame, browser_view);
37#endif
38}
39
40}  // namespace chrome
41