shell_native_app_window.h 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. // Copyright 2014 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 EXTENSIONS_SHELL_BROWSER_SHELL_NATIVE_APP_WINDOW_H_
  5. #define EXTENSIONS_SHELL_BROWSER_SHELL_NATIVE_APP_WINDOW_H_
  6. #include "base/memory/raw_ptr.h"
  7. #include "extensions/browser/app_window/app_window.h"
  8. #include "extensions/browser/app_window/native_app_window.h"
  9. namespace extensions {
  10. // app_shell's NativeAppWindow implementation.
  11. class ShellNativeAppWindow : public NativeAppWindow {
  12. public:
  13. ShellNativeAppWindow(AppWindow* app_window,
  14. const AppWindow::CreateParams& params);
  15. ShellNativeAppWindow(const ShellNativeAppWindow&) = delete;
  16. ShellNativeAppWindow& operator=(const ShellNativeAppWindow&) = delete;
  17. ~ShellNativeAppWindow() override;
  18. AppWindow* app_window() const { return app_window_; }
  19. // ui::BaseWindow overrides:
  20. bool IsMaximized() const override;
  21. bool IsMinimized() const override;
  22. bool IsFullscreen() const override;
  23. gfx::Rect GetRestoredBounds() const override;
  24. ui::WindowShowState GetRestoredState() const override;
  25. void ShowInactive() override;
  26. void Close() override;
  27. void Maximize() override;
  28. void Minimize() override;
  29. void Restore() override;
  30. void FlashFrame(bool flash) override;
  31. ui::ZOrderLevel GetZOrderLevel() const override;
  32. void SetZOrderLevel(ui::ZOrderLevel order) override;
  33. // web_modal::ModalDialogHost overrides:
  34. gfx::NativeView GetHostView() const override;
  35. gfx::Point GetDialogPosition(const gfx::Size& size) override;
  36. void AddObserver(web_modal::ModalDialogHostObserver* observer) override;
  37. void RemoveObserver(web_modal::ModalDialogHostObserver* observer) override;
  38. // web_modal::WebContentsModalDialogHost overrides:
  39. gfx::Size GetMaximumDialogSize() override;
  40. // NativeAppWindow overrides:
  41. void SetFullscreen(int fullscreen_types) override;
  42. bool IsFullscreenOrPending() const override;
  43. void UpdateWindowIcon() override;
  44. void UpdateWindowTitle() override;
  45. void UpdateDraggableRegions(
  46. const std::vector<DraggableRegion>& regions) override;
  47. SkRegion* GetDraggableRegion() override;
  48. void UpdateShape(std::unique_ptr<ShapeRects> rects) override;
  49. bool HandleKeyboardEvent(
  50. const content::NativeWebKeyboardEvent& event) override;
  51. bool IsFrameless() const override;
  52. bool HasFrameColor() const override;
  53. SkColor ActiveFrameColor() const override;
  54. SkColor InactiveFrameColor() const override;
  55. gfx::Insets GetFrameInsets() const override;
  56. void SetContentSizeConstraints(const gfx::Size& min_size,
  57. const gfx::Size& max_size) override;
  58. void SetVisibleOnAllWorkspaces(bool always_visible) override;
  59. bool CanHaveAlphaEnabled() const override;
  60. void SetActivateOnPointer(bool activate_on_pointer) override;
  61. private:
  62. raw_ptr<AppWindow> app_window_;
  63. };
  64. } // namespace extensions
  65. #endif // EXTENSIONS_SHELL_BROWSER_SHELL_NATIVE_APP_WINDOW_H_