| Index: chrome/browser/chromeos/login/message_bubble.h
|
| diff --git a/chrome/browser/chromeos/login/message_bubble.h b/chrome/browser/chromeos/login/message_bubble.h
|
| index 310d1bc5d770cd9394876f6bffb498ce4767ca0b..f29ecf8003fbca277ed3bb9b497bcb0cf726e0cd 100644
|
| --- a/chrome/browser/chromeos/login/message_bubble.h
|
| +++ b/chrome/browser/chromeos/login/message_bubble.h
|
| @@ -8,6 +8,7 @@
|
|
|
| #include "chrome/browser/views/info_bubble.h"
|
| #include "views/controls/button/button.h"
|
| +#include "views/controls/link.h"
|
| #include "views/view.h"
|
| #include "views/widget/widget_gtk.h"
|
|
|
| @@ -21,9 +22,16 @@ class Label;
|
|
|
| namespace chromeos {
|
|
|
| +class MessageBubbleDelegate : public InfoBubbleDelegate {
|
| + public:
|
| + // Called when the user clicked on help link.
|
| + virtual void OnHelpLinkActivated() = 0;
|
| +};
|
| +
|
| // MessageBubble is used to show error and info messages on OOBE screens.
|
| class MessageBubble : public InfoBubble,
|
| - public views::ButtonListener {
|
| + public views::ButtonListener,
|
| + public views::LinkController {
|
| public:
|
| // Create and show bubble. position_relative_to must be in screen coordinates.
|
| static MessageBubble* Show(views::Widget* parent,
|
| @@ -31,7 +39,8 @@ class MessageBubble : public InfoBubble,
|
| BubbleBorder::ArrowLocation arrow_location,
|
| SkBitmap* image,
|
| const std::wstring& text,
|
| - InfoBubbleDelegate* delegate);
|
| + const std::wstring& help,
|
| + MessageBubbleDelegate* delegate);
|
|
|
| // Create and show bubble which does not grab pointer. This creates
|
| // a TYPE_CHILD WidgetGtk and |position_relative_to| must be in parent's
|
| @@ -41,7 +50,8 @@ class MessageBubble : public InfoBubble,
|
| BubbleBorder::ArrowLocation arrow_location,
|
| SkBitmap* image,
|
| const std::wstring& text,
|
| - InfoBubbleDelegate* delegate);
|
| + const std::wstring& help,
|
| + MessageBubbleDelegate* delegate);
|
|
|
| // Overridden from WidgetGtk.
|
| virtual void Close();
|
| @@ -53,23 +63,32 @@ class MessageBubble : public InfoBubble,
|
| }
|
|
|
| protected:
|
| - // views::ButtonListener implmenets.
|
| + // Overridden from views::ButtonListener:
|
| virtual void ButtonPressed(views::Button* sender,
|
| const views::Event& event);
|
|
|
| + // Overridden from views::LinkController:
|
| + virtual void LinkActivated(views::Link* source, int event_flags);
|
| +
|
| // Overridden from WidgetGtk.
|
| virtual void IsActiveChanged();
|
| virtual void DoGrab();
|
|
|
| private:
|
| MessageBubble(views::WidgetGtk::Type type,
|
| - views::Widget* parent, SkBitmap* image,
|
| - const std::wstring& text, bool grab_enabled);
|
| + views::Widget* parent,
|
| + SkBitmap* image,
|
| + const std::wstring& text,
|
| + const std::wstring& help,
|
| + bool grab_enabled,
|
| + MessageBubbleDelegate* delegate);
|
|
|
| views::Widget* parent_;
|
| views::ImageView* icon_;
|
| views::Label* text_;
|
| views::ImageButton* close_button_;
|
| + views::Link* help_link_;
|
| + MessageBubbleDelegate* message_delegate_;
|
| bool grab_enabled_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(MessageBubble);
|
|
|