frameless_view.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. // Copyright (c) 2014 GitHub, Inc.
  2. // Use of this source code is governed by the MIT license that can be
  3. // found in the LICENSE file.
  4. #ifndef ATOM_BROWSER_UI_VIEWS_FRAMELESS_VIEW_H_
  5. #define ATOM_BROWSER_UI_VIEWS_FRAMELESS_VIEW_H_
  6. #include "ui/views/window/non_client_view.h"
  7. namespace views {
  8. class Widget;
  9. }
  10. namespace atom {
  11. class NativeWindowViews;
  12. class FramelessView : public views::NonClientFrameView {
  13. public:
  14. static const char kViewClassName[];
  15. FramelessView();
  16. ~FramelessView() override;
  17. virtual void Init(NativeWindowViews* window, views::Widget* frame);
  18. // Returns whether the |point| is on frameless window's resizing border.
  19. int ResizingBorderHitTest(const gfx::Point& point);
  20. protected:
  21. // views::NonClientFrameView:
  22. gfx::Rect GetBoundsForClientView() const override;
  23. gfx::Rect GetWindowBoundsForClientBounds(
  24. const gfx::Rect& client_bounds) const override;
  25. int NonClientHitTest(const gfx::Point& point) override;
  26. void GetWindowMask(const gfx::Size& size, gfx::Path* window_mask) override;
  27. void ResetWindowControls() override;
  28. void UpdateWindowIcon() override;
  29. void UpdateWindowTitle() override;
  30. void SizeConstraintsChanged() override;
  31. // Overridden from View:
  32. gfx::Size CalculatePreferredSize() const override;
  33. gfx::Size GetMinimumSize() const override;
  34. gfx::Size GetMaximumSize() const override;
  35. const char* GetClassName() const override;
  36. // Not owned.
  37. NativeWindowViews* window_ = nullptr;
  38. views::Widget* frame_ = nullptr;
  39. private:
  40. DISALLOW_COPY_AND_ASSIGN(FramelessView);
  41. };
  42. } // namespace atom
  43. #endif // ATOM_BROWSER_UI_VIEWS_FRAMELESS_VIEW_H_