toplevel_window.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. #ifndef ASH_TEST_TOPLEVEL_WINDOW_H_
  5. #define ASH_TEST_TOPLEVEL_WINDOW_H_
  6. #include "ui/views/widget/widget_delegate.h"
  7. namespace ash {
  8. namespace shell {
  9. class ToplevelWindow : public views::WidgetDelegateView {
  10. public:
  11. struct CreateParams {
  12. CreateParams();
  13. bool can_resize;
  14. bool can_maximize;
  15. bool use_saved_placement;
  16. };
  17. ToplevelWindow(const ToplevelWindow&) = delete;
  18. ToplevelWindow& operator=(const ToplevelWindow&) = delete;
  19. static views::Widget* CreateToplevelWindow(const CreateParams& params);
  20. // Clears saved show state and bounds used to position
  21. // a new window.
  22. static void ClearSavedStateForTest();
  23. private:
  24. explicit ToplevelWindow(const CreateParams& params);
  25. ~ToplevelWindow() override;
  26. // Overridden from views::View:
  27. void OnPaint(gfx::Canvas* canvas) override;
  28. // views::WidgetDelegate:
  29. bool ShouldSaveWindowPlacement() const override;
  30. void SaveWindowPlacement(const gfx::Rect& bounds,
  31. ui::WindowShowState show_state) override;
  32. bool GetSavedWindowPlacement(const views::Widget* widget,
  33. gfx::Rect* bounds,
  34. ui::WindowShowState* show_state) const override;
  35. bool use_saved_placement_ = true;
  36. };
  37. } // namespace shell
  38. } // namespace ash
  39. #endif // ASH_TEST_TOPLEVEL_WINDOW_H_