- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / views / frame / browser_non_client_frame_view_factory_aura.cc
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/app_non_client_frame_view_ash.h"
12 #include "chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.h"
13 #endif
14
15 #if defined(OS_WIN)
16 #include "chrome/browser/ui/views/frame/glass_browser_frame_view.h"
17 #endif
18
19 namespace chrome {
20
21 BrowserNonClientFrameView* CreateBrowserNonClientFrameView(
22     BrowserFrame* frame, BrowserView* browser_view) {
23 #if defined(USE_AURA) && defined(OS_WIN)
24   if (browser_view->browser()->
25           host_desktop_type() == chrome::HOST_DESKTOP_TYPE_NATIVE) {
26     if (frame->ShouldUseNativeFrame())
27       return new GlassBrowserFrameView(frame, browser_view);
28     return new OpaqueBrowserFrameView(frame, browser_view);
29   }
30 #endif
31 #if defined(USE_ASH)
32   // If this is an app window and it's maximized, use the special frame_view.
33   if (browser_view->browser()->is_app() &&
34       browser_view->browser()->app_type() != Browser::APP_TYPE_CHILD &&
35       browser_view->IsMaximized())
36     return new AppNonClientFrameViewAsh(frame, browser_view);
37
38   // Default is potentially translucent fancy frames.
39   BrowserNonClientFrameViewAsh* frame_view =
40       new BrowserNonClientFrameViewAsh(frame, browser_view);
41   frame_view->Init();
42   return frame_view;
43 #else
44   return new OpaqueBrowserFrameView(frame, browser_view);
45 #endif
46 }
47
48 }  // namespace chrome