blob: b496b5bbb7a7200b28f3b5c97229f5045f40f7ad [file] [log] [blame]
// Copyright 2015 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_UI_VIEWS_VALIDATION_MESSAGE_BUBBLE_VIEW_H_
#define CHROME_BROWSER_UI_VIEWS_VALIDATION_MESSAGE_BUBBLE_VIEW_H_
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
#include "chrome/browser/ui/validation_message_bubble.h"
#include "ui/gfx/geometry/size.h"
#include "ui/views/bubble/bubble_dialog_delegate.h"
namespace content {
class WebContents;
}
// A ValidationMessageBubble implementation for Views.
class ValidationMessageBubbleView
: public views::BubbleDialogDelegateView,
public ValidationMessageBubble,
public base::SupportsWeakPtr<ValidationMessageBubbleView> {
public:
ValidationMessageBubbleView(content::WebContents* web_contents,
const gfx::Rect& anchor_in_root_view,
const base::string16& main_text,
const base::string16& sub_text);
~ValidationMessageBubbleView() override;
// BubbleDialogDelegateView overrides:
gfx::Size GetPreferredSize() const override;
int GetDialogButtons() const override;
// ValidationMessageBubble overrides:
void SetPositionRelativeToAnchor(
content::RenderWidgetHost* widget_host,
const gfx::Rect& anchor_in_root_view) override;
void CloseValidationMessage() override;
private:
gfx::Size size_;
DISALLOW_COPY_AND_ASSIGN(ValidationMessageBubbleView);
};
#endif // CHROME_BROWSER_UI_VIEWS_VALIDATION_MESSAGE_BUBBLE_VIEW_H_