toplevel_window.h revision 558790d6acca3451cf3a6b497803a5f07d0bec58
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#ifndef ASH_SHELL_TOPLEVEL_WINDOW_H_
6#define ASH_SHELL_TOPLEVEL_WINDOW_H_
7
8#include "ui/views/widget/widget_delegate.h"
9
10namespace ash {
11namespace shell {
12
13class ToplevelWindow : public views::WidgetDelegateView {
14 public:
15  struct CreateParams {
16    CreateParams();
17
18    bool can_resize;
19    bool can_maximize;
20  };
21  static void CreateToplevelWindow(const CreateParams& params);
22
23 private:
24  explicit ToplevelWindow(const CreateParams& params);
25  virtual ~ToplevelWindow();
26
27  // Overridden from views::View:
28  virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE;
29
30  // Overridden from views::WidgetDelegate:
31  virtual base::string16 GetWindowTitle() const OVERRIDE;
32  virtual View* GetContentsView() OVERRIDE;
33  virtual bool CanResize() const OVERRIDE;
34  virtual bool CanMaximize() const OVERRIDE;
35
36  const CreateParams params_;
37
38  DISALLOW_COPY_AND_ASSIGN(ToplevelWindow);
39};
40
41}  // namespace shell
42}  // namespace ash
43
44#endif  // ASH_SHELL_TOPLEVEL_WINDOW_H_
45