panel_window.h revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
1a4b44dd9d30929a35c44d85102e5241ee847b2f2Ted Kremenek// Copyright (c) 2012 The Chromium Authors. All rights reserved. 28588896b4779a617e5d257423ef6178431c8bda3Ted Kremenek// Use of this source code is governed by a BSD-style license that can be 38588896b4779a617e5d257423ef6178431c8bda3Ted Kremenek// found in the LICENSE file. 48588896b4779a617e5d257423ef6178431c8bda3Ted Kremenek 58588896b4779a617e5d257423ef6178431c8bda3Ted Kremenek#ifndef ASH_SHELL_PANEL_WINDOW_H_ 68588896b4779a617e5d257423ef6178431c8bda3Ted Kremenek#define ASH_SHELL_PANEL_WINDOW_H_ 78588896b4779a617e5d257423ef6178431c8bda3Ted Kremenek 88588896b4779a617e5d257423ef6178431c8bda3Ted Kremenek#include "base/basictypes.h" 98588896b4779a617e5d257423ef6178431c8bda3Ted Kremenek#include "ui/aura/aura_export.h" 10a4b44dd9d30929a35c44d85102e5241ee847b2f2Ted Kremenek#include "ui/views/widget/widget.h" 118588896b4779a617e5d257423ef6178431c8bda3Ted Kremenek#include "ui/views/widget/widget_delegate.h" 128588896b4779a617e5d257423ef6178431c8bda3Ted Kremenek 138588896b4779a617e5d257423ef6178431c8bda3Ted Kremeneknamespace ash { 148588896b4779a617e5d257423ef6178431c8bda3Ted Kremenek 15b09f6e15c59b89d5820db8ef40598eb1d1323c1fEli Friedmanclass PanelFrameView; 1610e286aa8d39fb51a21412850265d9dae74613eeChris Lattner 178588896b4779a617e5d257423ef6178431c8bda3Ted Kremenek// Example Class for panel windows (Widget::InitParams::TYPE_PANEL). 1810e286aa8d39fb51a21412850265d9dae74613eeChris Lattner// Instances of PanelWindow will get added to the PanelContainer top level 198588896b4779a617e5d257423ef6178431c8bda3Ted Kremenek// window which manages the panel layout through PanelLayoutManager. 2010e286aa8d39fb51a21412850265d9dae74613eeChris Lattnerclass PanelWindow : public views::WidgetDelegateView { 218588896b4779a617e5d257423ef6178431c8bda3Ted Kremenek public: 228588896b4779a617e5d257423ef6178431c8bda3Ted Kremenek explicit PanelWindow(const std::string& name); 23df5a237b69b5ca74dcbcf9e6306b0f86476f6b32Daniel Dunbar virtual ~PanelWindow(); 24df5a237b69b5ca74dcbcf9e6306b0f86476f6b32Daniel Dunbar 25651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines // Creates the widget for the panel window using |params_|. 26fbfd180495e7800975c6d9bdc6d24e706ef70e34Michael J. Spencer views::Widget* CreateWidget(); 278588896b4779a617e5d257423ef6178431c8bda3Ted Kremenek 286bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines const std::string& name() { return name_; } 2903013fa9a0bf1ef4b907f5fec006c8f4000fdd21Michael J. Spencer views::Widget::InitParams& params() { return params_; } 3055fc873017f10f6f566b182b70f6fc22aefa3464Chandler Carruth 318588896b4779a617e5d257423ef6178431c8bda3Ted Kremenek // Creates a panel window and returns the associated widget. 32ea684e699ea84e61711e279f5fa7a1b9f3d46bc2Cedric Venet static views::Widget* CreatePanelWindow(const gfx::Rect& rect); 33ea684e699ea84e61711e279f5fa7a1b9f3d46bc2Cedric Venet 34ea684e699ea84e61711e279f5fa7a1b9f3d46bc2Cedric Venet private: 35ea684e699ea84e61711e279f5fa7a1b9f3d46bc2Cedric Venet // Overridden from views::View: 36ea684e699ea84e61711e279f5fa7a1b9f3d46bc2Cedric Venet virtual gfx::Size GetPreferredSize() OVERRIDE; 378588896b4779a617e5d257423ef6178431c8bda3Ted Kremenek virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE; 38f0e1f796bc3fc464331badbd40b1888f91566c38Ted Kremenek 39f0e1f796bc3fc464331badbd40b1888f91566c38Ted Kremenek // Overridden from views::WidgetDelegate: 40f0e1f796bc3fc464331badbd40b1888f91566c38Ted Kremenek virtual base::string16 GetWindowTitle() const OVERRIDE; 41f0e1f796bc3fc464331badbd40b1888f91566c38Ted Kremenek virtual View* GetContentsView() OVERRIDE; 42f0e1f796bc3fc464331badbd40b1888f91566c38Ted Kremenek virtual bool CanResize() const OVERRIDE; 436bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines virtual bool CanMaximize() const OVERRIDE; 446bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines virtual views::NonClientFrameView* CreateNonClientFrameView( 45be29533f573f0f3d72401d2ed3b1fb627a97aafeTed Kremenek views::Widget* widget) OVERRIDE; 46bd21828179a61bd0954b082825cfb8a93345f602Benjamin Kramer 471eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump std::string name_; 48be29533f573f0f3d72401d2ed3b1fb627a97aafeTed Kremenek views::Widget::InitParams params_; 491eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 50a4b44dd9d30929a35c44d85102e5241ee847b2f2Ted Kremenek DISALLOW_COPY_AND_ASSIGN(PanelWindow); 51be29533f573f0f3d72401d2ed3b1fb627a97aafeTed Kremenek}; 52a4b44dd9d30929a35c44d85102e5241ee847b2f2Ted Kremenek 53277faca30c9f8f72b79f55695cbe3395ec246e7cTed Kremenek} // namespace ash 541eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 551eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump#endif // ASH_SHELL_PANEL_WINDOW_H_ 56be29533f573f0f3d72401d2ed3b1fb627a97aafeTed Kremenek