C++程序  |  45行  |  1.3 KB

// Copyright (c) 2013 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_VALIDATION_MESSAGE_BUBBLE_H_
#define CHROME_BROWSER_UI_VALIDATION_MESSAGE_BUBBLE_H_

#include "base/memory/scoped_ptr.h"
#include "base/strings/string16.h"

namespace content {
class RenderWidgetHost;
}

namespace gfx {
class Rect;
}

namespace chrome {

class ValidationMessageBubble {
 public:
  // Open a tooltip-like window to show the specified messages.  The window
  // should not change focus state.
  static scoped_ptr<ValidationMessageBubble> CreateAndShow(
      content::RenderWidgetHost* widget_host,
      const gfx::Rect& anchor_in_root_view,
      const base::string16& main_text,
      const base::string16& sub_text);

  // Close the window and destruct the object.
  virtual ~ValidationMessageBubble() {}

  // Move the window to a position such that the bubble arrow points to the
  // specified anchor.  |anchor_in_root_view| is in DIP unit, and relative to
  // RWHV for |widget_host|.
  virtual void SetPositionRelativeToAnchor(
      content::RenderWidgetHost* widget_host,
      const gfx::Rect& anchor_in_root_view) = 0;
};

}  // namespace chrome

#endif  // CHROME_BROWSER_UI_VALIDATION_MESSAGE_BUBBLE_H_