blob: 5d3ca04afa0bf772b08190cdec098510680af056 [file] [log] [blame]
// 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_