15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef ASH_SHELL_TOPLEVEL_WINDOW_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ASH_SHELL_TOPLEVEL_WINDOW_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/views/widget/widget_delegate.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ash { 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace shell { 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class ToplevelWindow : public views::WidgetDelegateView { 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct CreateParams { 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CreateParams(); 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool can_resize; 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bool can_maximize; 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 211e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) static views::Widget* CreateToplevelWindow( 221e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) const CreateParams& params); 231e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) 241e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // Clears saved show state and bounds used to position 251e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) // a new window. 261e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) static void ClearSavedStateForTest(); 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) explicit ToplevelWindow(const CreateParams& params); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~ToplevelWindow(); 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Overridden from views::View: 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE; 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Overridden from views::WidgetDelegate: 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual base::string16 GetWindowTitle() const OVERRIDE; 374e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual void SaveWindowPlacement( 384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const gfx::Rect& bounds, 394e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) ui::WindowShowState show_state) OVERRIDE; 404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual bool GetSavedWindowPlacement( 410f1bc08d4cfcc34181b0b5cbf065c40f687bf740Torne (Richard Coles) const views::Widget* widget, 424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) gfx::Rect* bounds, 434e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) ui::WindowShowState* show_state) const OVERRIDE; 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual View* GetContentsView() OVERRIDE; 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool CanResize() const OVERRIDE; 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual bool CanMaximize() const OVERRIDE; 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual bool CanMinimize() const OVERRIDE; 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const CreateParams params_; 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(ToplevelWindow); 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace shell 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace ash 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // ASH_SHELL_TOPLEVEL_WINDOW_H_ 58