browser_frame_chromeos.cc revision 21d179b334e59e9a3bfcaed4c4430bef1bc5759d
1// Copyright (c) 2010 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/chromeos/frame/browser_frame_chromeos.h" 6 7#include "base/command_line.h" 8#include "chrome/browser/ui/views/frame/browser_view.h" 9#include "chrome/browser/ui/views/frame/browser_non_client_frame_view.h" 10#include "chrome/common/chrome_switches.h" 11 12// static (Factory method.) 13BrowserFrame* BrowserFrame::Create(BrowserView* browser_view, 14 Profile* profile) { 15 chromeos::BrowserFrameChromeos* frame = 16 new chromeos::BrowserFrameChromeos(browser_view, profile); 17 frame->Init(); 18 return frame; 19} 20 21namespace chromeos { 22 23BrowserFrameChromeos::BrowserFrameChromeos( 24 BrowserView* browser_view, Profile* profile) 25 : BrowserFrameGtk(browser_view, profile) { 26} 27 28BrowserFrameChromeos::~BrowserFrameChromeos() { 29} 30 31void BrowserFrameChromeos::Init() { 32 // NOTE: This logic supersedes the logic in BrowserFrameGtk::Init() 33 // by always setting browser_frame_view_. 34 set_browser_frame_view( 35 browser::CreateBrowserNonClientFrameView(this, browser_view())); 36 37 BrowserFrameGtk::Init(); 38 39 if (!browser_view()->IsBrowserTypePopup()) { 40 // On chromeos we want windows to always render as active. 41 GetNonClientView()->DisableInactiveRendering(true); 42 } 43} 44 45bool BrowserFrameChromeos::IsMaximized() const { 46 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kChromeosFrame)) 47 return WindowGtk::IsMaximized(); 48 bool is_popup = browser_view()->IsBrowserTypePopup(); 49 return !IsFullscreen() && (!is_popup || WindowGtk::IsMaximized()); 50} 51 52} // namespace chromeos 53