summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorbenwells@chromium.org <benwells@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-08 21:49:23 +0000
committerbenwells@chromium.org <benwells@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-08 21:49:23 +0000
commit2b4abbd67748f3238a05ab18c87489c82c18c0fa (patch)
tree1aa6235dcc56e5060ef261e17f0fa070adc3b676 /apps
parent15e547f5c490281e8b3ff6071636f196563cde52 (diff)
downloadchromium_src-2b4abbd67748f3238a05ab18c87489c82c18c0fa.zip
chromium_src-2b4abbd67748f3238a05ab18c87489c82c18c0fa.tar.gz
chromium_src-2b4abbd67748f3238a05ab18c87489c82c18c0fa.tar.bz2
Remove title and icon from chrome apps native style title bars.
These windows aren't meant to have titles or icons, but still need to get a proper title as far as the OS is concerned. This means using a custom but glass frame, similarly to how unthemed browser windows look. BUG=339558 TEST=Try out frame:chrome app windows windows on Windows 7, 8 and XP. Use the windows in various states (maximised, fullscreen, normal). Make sure they work after switching in and out of aero mode. Review URL: https://codereview.chromium.org/213743017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262516 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'apps')
-rw-r--r--apps/ui/views/app_window_frame_view.cc47
-rw-r--r--apps/ui/views/app_window_frame_view.h34
-rw-r--r--apps/ui/views/native_app_window_views.h3
3 files changed, 46 insertions, 38 deletions
diff --git a/apps/ui/views/app_window_frame_view.cc b/apps/ui/views/app_window_frame_view.cc
index 5fcef42..ef4302c 100644
--- a/apps/ui/views/app_window_frame_view.cc
+++ b/apps/ui/views/app_window_frame_view.cc
@@ -29,8 +29,11 @@
#endif
namespace {
-// Height of the chrome-style caption, in pixels.
+
+const int kDefaultResizeInsideBoundsSize = 5;
+const int kDefaultResizeAreaCornerSize = 16;
const int kCaptionHeight = 25;
+
} // namespace
namespace apps {
@@ -38,36 +41,26 @@ namespace apps {
const char AppWindowFrameView::kViewClassName[] =
"browser/ui/views/extensions/AppWindowFrameView";
-AppWindowFrameView::AppWindowFrameView()
- : widget_(NULL),
- window_(NULL),
+AppWindowFrameView::AppWindowFrameView(views::Widget* widget,
+ NativeAppWindow* window,
+ bool draw_frame,
+ const SkColor& frame_color)
+ : widget_(widget),
+ window_(window),
+ draw_frame_(draw_frame),
+ frame_color_(frame_color),
close_button_(NULL),
maximize_button_(NULL),
restore_button_(NULL),
minimize_button_(NULL),
- resize_inside_bounds_size_(0),
+ resize_inside_bounds_size_(kDefaultResizeInsideBoundsSize),
resize_outside_bounds_size_(0),
- resize_area_corner_size_(0) {}
+ resize_area_corner_size_(kDefaultResizeAreaCornerSize) {}
AppWindowFrameView::~AppWindowFrameView() {}
-void AppWindowFrameView::Init(views::Widget* widget,
- NativeAppWindow* window,
- bool draw_frame,
- const SkColor& frame_color,
- int resize_inside_bounds_size,
- int resize_outside_bounds_size,
- int resize_outside_scale_for_touch,
- int resize_area_corner_size) {
- widget_ = widget;
- window_ = window;
- draw_frame_ = draw_frame;
- frame_color_ = frame_color;
- resize_inside_bounds_size_ = resize_inside_bounds_size;
- resize_outside_bounds_size_ = resize_outside_bounds_size;
- resize_area_corner_size_ = resize_area_corner_size;
-
- if (draw_frame) {
+void AppWindowFrameView::Init() {
+ if (draw_frame_) {
ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
close_button_ = new views::ImageButton(this);
close_button_->SetImage(
@@ -127,6 +120,14 @@ void AppWindowFrameView::Init(views::Widget* widget,
}
}
+void AppWindowFrameView::SetResizeSizes(int resize_inside_bounds_size,
+ int resize_outside_bounds_size,
+ int resize_area_corner_size) {
+ resize_inside_bounds_size_ = resize_inside_bounds_size;
+ resize_outside_bounds_size_ = resize_outside_bounds_size;
+ resize_area_corner_size_ = resize_area_corner_size;
+}
+
// views::NonClientFrameView implementation.
gfx::Rect AppWindowFrameView::GetBoundsForClientView() const {
diff --git a/apps/ui/views/app_window_frame_view.h b/apps/ui/views/app_window_frame_view.h
index 1781476..5f15431 100644
--- a/apps/ui/views/app_window_frame_view.h
+++ b/apps/ui/views/app_window_frame_view.h
@@ -40,22 +40,28 @@ class AppWindowFrameView : public views::NonClientFrameView,
public:
static const char kViewClassName[];
- explicit AppWindowFrameView();
+ // AppWindowFrameView is used to draw frames for app windows when a non
+ // standard frame is needed. This occurs if there is no frame needed, or if
+ // there is a frame color.
+ // If |draw_frame| is true, the view draws its own window title area and
+ // controls, using |frame_color|. If |draw_frame| is not true, no frame is
+ // drawn.
+ // TODO(benwells): Refactor this to split out frameless and colored frame
+ // views. See http://crbug.com/359432.
+ AppWindowFrameView(views::Widget* widget,
+ NativeAppWindow* window,
+ bool draw_frame,
+ const SkColor& frame_color);
virtual ~AppWindowFrameView();
- // Initializes this for |widget|. Sets the number of pixels for which a click
- // is interpreted as a resize for the inner and outer border of the window
- // and the lower-right corner resize handle. If |draw_frame|, the view draws
- // its own window title area and controls, using |frame_color| (otherwise
- // |frame_color| is ignored).
- void Init(views::Widget* widget,
- NativeAppWindow* window,
- bool draw_frame,
- const SkColor& frame_color,
- int resize_inside_bounds_size,
- int resize_outside_bounds_size,
- int resize_outside_scale_for_touch,
- int resize_area_corner_size);
+ void Init();
+
+ void SetResizeSizes(int resize_inside_bounds_size,
+ int resize_outside_bounds_size,
+ int resize_area_corner_size);
+ int resize_inside_bounds_size() const {
+ return resize_inside_bounds_size_;
+ };
private:
// views::NonClientFrameView implementation.
diff --git a/apps/ui/views/native_app_window_views.h b/apps/ui/views/native_app_window_views.h
index 283e7c1..47f4ba1 100644
--- a/apps/ui/views/native_app_window_views.h
+++ b/apps/ui/views/native_app_window_views.h
@@ -52,6 +52,8 @@ class NativeAppWindowViews : public NativeAppWindow,
void Init(AppWindow* app_window,
const AppWindow::CreateParams& create_params);
+ views::Widget* widget() { return widget_; }
+
void set_window_for_testing(views::Widget* window) { widget_ = window; }
void set_web_view_for_testing(views::WebView* view) { web_view_ = view; }
@@ -59,7 +61,6 @@ class NativeAppWindowViews : public NativeAppWindow,
AppWindow* app_window() { return app_window_; }
const AppWindow* app_window() const { return app_window_; }
- views::Widget* widget() { return widget_; }
const views::Widget* widget() const { return widget_; }
views::WebView* web_view() { return web_view_; }