Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(362)

Unified Diff: ui/views/bubble/info_bubble.h

Issue 2684343006: Make the account chooser and CVC dialog use the same icon with toolip for Views. (Closed)
Patch Set: comments from msw@ Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/views/BUILD.gn ('k') | ui/views/bubble/info_bubble.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/bubble/info_bubble.h
diff --git a/ui/views/bubble/info_bubble.h b/ui/views/bubble/info_bubble.h
new file mode 100644
index 0000000000000000000000000000000000000000..2b24b77d7aca3df5cfc7bfd825e2b8b80ceed55b
--- /dev/null
+++ b/ui/views/bubble/info_bubble.h
@@ -0,0 +1,60 @@
+// Copyright 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 UI_VIEWS_BUBBLE_INFO_BUBBLE_H_
+#define UI_VIEWS_BUBBLE_INFO_BUBBLE_H_
+
+#include "base/compiler_specific.h"
+#include "base/macros.h"
+#include "base/strings/string16.h"
+#include "ui/views/bubble/bubble_dialog_delegate.h"
+
+namespace views {
+
+class InfoBubbleFrame;
+
+// Class to create and manage an information bubble for errors or tooltips.
+class InfoBubble : public BubbleDialogDelegateView {
+ public:
+ InfoBubble(View* anchor, const base::string16& message);
+ ~InfoBubble() override;
+
+ // Shows the bubble. |widget_| will be NULL until this is called.
+ void Show();
+
+ // Hides and closes the bubble.
+ void Hide();
+
+ // BubbleDialogDelegateView:
+ NonClientFrameView* CreateNonClientFrameView(Widget* widget) override;
+ gfx::Size GetPreferredSize() const override;
+ void OnWidgetDestroyed(Widget* widget) override;
+ void OnWidgetBoundsChanged(Widget* widget,
+ const gfx::Rect& new_bounds) override;
+ int GetDialogButtons() const override;
+
+ View* anchor() { return anchor_; }
+ const View* anchor() const { return anchor_; }
+
+ void set_preferred_width(int preferred_width) {
+ preferred_width_ = preferred_width;
+ }
+
+ private:
+ // Updates the position of the bubble.
+ void UpdatePosition();
+
+ Widget* widget_; // Weak, may be NULL.
+ View* const anchor_; // Weak.
+ InfoBubbleFrame* frame_; // Weak, owned by widget.
+
+ // The width this bubble prefers to be. Default is 0 (no preference).
+ int preferred_width_;
+
+ DISALLOW_COPY_AND_ASSIGN(InfoBubble);
+};
+
+} // namespace views
+
+#endif // UI_VIEWS_BUBBLE_INFO_BUBBLE_H_
« no previous file with comments | « ui/views/BUILD.gn ('k') | ui/views/bubble/info_bubble.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698