| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef APPS_UI_VIEWS_APP_WINDOW_FRAME_VIEW_H_ | 5 #ifndef APPS_UI_VIEWS_APP_WINDOW_FRAME_VIEW_H_ |
| 6 #define APPS_UI_VIEWS_APP_WINDOW_FRAME_VIEW_H_ | 6 #define APPS_UI_VIEWS_APP_WINDOW_FRAME_VIEW_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "third_party/skia/include/core/SkColor.h" | 10 #include "third_party/skia/include/core/SkColor.h" |
| 11 #include "ui/gfx/path.h" | 11 #include "ui/gfx/path.h" |
| 12 #include "ui/gfx/rect.h" | 12 #include "ui/gfx/rect.h" |
| 13 #include "ui/gfx/size.h" | 13 #include "ui/gfx/size.h" |
| 14 #include "ui/views/controls/button/button.h" | 14 #include "ui/views/controls/button/button.h" |
| 15 #include "ui/views/window/non_client_view.h" | 15 #include "ui/views/window/non_client_view.h" |
| 16 | 16 |
| 17 class SkRegion; | 17 class SkRegion; |
| 18 | 18 |
| 19 namespace extensions { | |
| 20 class NativeAppWindow; | |
| 21 } | |
| 22 | |
| 23 namespace gfx { | 19 namespace gfx { |
| 24 class Canvas; | 20 class Canvas; |
| 25 class Point; | 21 class Point; |
| 26 } | 22 } |
| 27 | 23 |
| 24 namespace native_app_window { |
| 25 class NativeAppWindow; |
| 26 } |
| 27 |
| 28 namespace ui { | 28 namespace ui { |
| 29 class Event; | 29 class Event; |
| 30 } | 30 } |
| 31 | 31 |
| 32 namespace views { | 32 namespace views { |
| 33 class ImageButton; | 33 class ImageButton; |
| 34 class Widget; | 34 class Widget; |
| 35 } | 35 } |
| 36 | 36 |
| 37 namespace apps { | 37 namespace apps { |
| 38 | 38 |
| 39 // A frameless or non-Ash, non-panel NonClientFrameView for app windows. | 39 // A frameless or non-Ash, non-panel NonClientFrameView for app windows. |
| 40 class AppWindowFrameView : public views::NonClientFrameView, | 40 class AppWindowFrameView : public views::NonClientFrameView, |
| 41 public views::ButtonListener { | 41 public views::ButtonListener { |
| 42 public: | 42 public: |
| 43 static const char kViewClassName[]; | 43 static const char kViewClassName[]; |
| 44 | 44 |
| 45 // AppWindowFrameView is used to draw frames for app windows when a non | 45 // AppWindowFrameView is used to draw frames for app windows when a non |
| 46 // standard frame is needed. This occurs if there is no frame needed, or if | 46 // standard frame is needed. This occurs if there is no frame needed, or if |
| 47 // there is a frame color. | 47 // there is a frame color. |
| 48 // If |draw_frame| is true, the view draws its own window title area and | 48 // If |draw_frame| is true, the view draws its own window title area and |
| 49 // controls, using |frame_color|. If |draw_frame| is not true, no frame is | 49 // controls, using |frame_color|. If |draw_frame| is not true, no frame is |
| 50 // drawn. | 50 // drawn. |
| 51 // TODO(benwells): Refactor this to split out frameless and colored frame | 51 // TODO(benwells): Refactor this to split out frameless and colored frame |
| 52 // views. See http://crbug.com/359432. | 52 // views. See http://crbug.com/359432. |
| 53 AppWindowFrameView(views::Widget* widget, | 53 AppWindowFrameView(views::Widget* widget, |
| 54 extensions::NativeAppWindow* window, | 54 native_app_window::NativeAppWindow* window, |
| 55 bool draw_frame, | 55 bool draw_frame, |
| 56 const SkColor& active_frame_color, | 56 const SkColor& active_frame_color, |
| 57 const SkColor& inactive_frame_color); | 57 const SkColor& inactive_frame_color); |
| 58 virtual ~AppWindowFrameView(); | 58 virtual ~AppWindowFrameView(); |
| 59 | 59 |
| 60 void Init(); | 60 void Init(); |
| 61 | 61 |
| 62 void SetResizeSizes(int resize_inside_bounds_size, | 62 void SetResizeSizes(int resize_inside_bounds_size, |
| 63 int resize_outside_bounds_size, | 63 int resize_outside_bounds_size, |
| 64 int resize_area_corner_size); | 64 int resize_area_corner_size); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 92 const ui::Event& event) OVERRIDE; | 92 const ui::Event& event) OVERRIDE; |
| 93 | 93 |
| 94 // Some button images we use depend on the color of the frame. This | 94 // Some button images we use depend on the color of the frame. This |
| 95 // will set these images based on the color of the frame. | 95 // will set these images based on the color of the frame. |
| 96 void SetButtonImagesForFrame(); | 96 void SetButtonImagesForFrame(); |
| 97 | 97 |
| 98 // Return the current frame color based on the active state of the window. | 98 // Return the current frame color based on the active state of the window. |
| 99 SkColor CurrentFrameColor(); | 99 SkColor CurrentFrameColor(); |
| 100 | 100 |
| 101 views::Widget* widget_; | 101 views::Widget* widget_; |
| 102 extensions::NativeAppWindow* window_; | 102 native_app_window::NativeAppWindow* window_; |
| 103 bool draw_frame_; | 103 bool draw_frame_; |
| 104 SkColor active_frame_color_; | 104 SkColor active_frame_color_; |
| 105 SkColor inactive_frame_color_; | 105 SkColor inactive_frame_color_; |
| 106 views::ImageButton* close_button_; | 106 views::ImageButton* close_button_; |
| 107 views::ImageButton* maximize_button_; | 107 views::ImageButton* maximize_button_; |
| 108 views::ImageButton* restore_button_; | 108 views::ImageButton* restore_button_; |
| 109 views::ImageButton* minimize_button_; | 109 views::ImageButton* minimize_button_; |
| 110 | 110 |
| 111 // Allow resize for clicks this many pixels inside the bounds. | 111 // Allow resize for clicks this many pixels inside the bounds. |
| 112 int resize_inside_bounds_size_; | 112 int resize_inside_bounds_size_; |
| 113 | 113 |
| 114 // Allow resize for clicks this many pixels outside the bounds. | 114 // Allow resize for clicks this many pixels outside the bounds. |
| 115 int resize_outside_bounds_size_; | 115 int resize_outside_bounds_size_; |
| 116 | 116 |
| 117 // Size in pixels of the lower-right corner resize handle. | 117 // Size in pixels of the lower-right corner resize handle. |
| 118 int resize_area_corner_size_; | 118 int resize_area_corner_size_; |
| 119 | 119 |
| 120 DISALLOW_COPY_AND_ASSIGN(AppWindowFrameView); | 120 DISALLOW_COPY_AND_ASSIGN(AppWindowFrameView); |
| 121 }; | 121 }; |
| 122 | 122 |
| 123 } // namespace apps | 123 } // namespace apps |
| 124 | 124 |
| 125 #endif // APPS_UI_VIEWS_APP_WINDOW_FRAME_VIEW_H_ | 125 #endif // APPS_UI_VIEWS_APP_WINDOW_FRAME_VIEW_H_ |
| OLD | NEW |