1// Copyright (c) 2010 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 5#ifndef CHROME_BROWSER_CHROMEOS_FRAME_BUBBLE_WINDOW_H_ 6#define CHROME_BROWSER_CHROMEOS_FRAME_BUBBLE_WINDOW_H_ 7#pragma once 8 9#include "third_party/skia/include/core/SkColor.h" 10#include "views/window/window_gtk.h" 11 12namespace gfx { 13class Rect; 14} 15 16namespace views { 17class Throbber; 18class WindowDelegate; 19} 20 21namespace chromeos { 22 23// A window that uses BubbleFrameView as its frame. 24class BubbleWindow : public views::WindowGtk { 25 public: 26 enum Style { 27 STYLE_GENERIC = 0, // Default style. 28 STYLE_XBAR = 1 << 0, // Show close button at the top right (left for RTL). 29 STYLE_THROBBER = 1 << 1, // Show throbber for slow rendering. 30 STYLE_XSHAPE = 1 << 2 // Trim the window margins and round corners. 31 }; 32 33 static views::Window* Create(gfx::NativeWindow parent, 34 const gfx::Rect& bounds, 35 Style style, 36 views::WindowDelegate* window_delegate); 37 38 static const SkColor kBackgroundColor; 39 40 protected: 41 explicit BubbleWindow(views::WindowDelegate* window_delegate); 42 43 // Overidden from views::WindowGtk: 44 virtual void InitWindow(GtkWindow* parent, const gfx::Rect& bounds); 45 46 // Trims the window margins and rounds off the corners. 47 void TrimMargins(int margin_left, int margin_right, int margin_top, 48 int margin_bottom, int border_radius); 49}; 50 51} // namespace chromeos 52 53#endif // CHROME_BROWSER_CHROMEOS_FRAME_BUBBLE_WINDOW_H_ 54