// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_CHROMEOS_FRAME_BUBBLE_WINDOW_H_ #define CHROME_BROWSER_CHROMEOS_FRAME_BUBBLE_WINDOW_H_ #pragma once #include "chrome/browser/chromeos/frame/bubble_window_style.h" #include "chrome/browser/ui/dialog_style.h" #if defined(TOOLKIT_USES_GTK) // TODO(msw): While I dislike the includes and code to be mixed into the same // preprocessor conditional, this seems okay as I can hopefully fix this up // in a matter of days / crbug.com/98322. #include "views/widget/native_widget_gtk.h" #else // TOOLKIT_USES_GTK #include "views/view.h" #endif namespace views { class WidgetDelegate; } #if defined(TOOLKIT_USES_GTK) // TODO(msw): To fix as explained above (crbug.com/98322). namespace chromeos { // A window that uses BubbleFrameView as its frame. class BubbleWindow : public views::NativeWidgetGtk { public: static views::Widget* Create(gfx::NativeWindow parent, DialogStyle style, views::WidgetDelegate* widget_delegate); protected: BubbleWindow(views::Widget* window, DialogStyle style); // Overridden from views::NativeWidgetGtk: virtual void InitNativeWidget( const views::Widget::InitParams& params) OVERRIDE; virtual views::NonClientFrameView* CreateNonClientFrameView() OVERRIDE; private: DialogStyle style_; DISALLOW_COPY_AND_ASSIGN(BubbleWindow); }; } // namespace chromeos #else // TOOLKIT_USES_GTK namespace chromeos { class BubbleWindow { public: static views::Widget* Create(gfx::NativeWindow parent, DialogStyle style, views::WidgetDelegate* widget_delegate) { NOTIMPLEMENTED(); return NULL; } }; } // namespace chromeos #endif // TOOLKIT_USES_GTK #endif // CHROME_BROWSER_CHROMEOS_FRAME_BUBBLE_WINDOW_H_