Add a minor text member to ui::MenuModel.
[chromium-blink-merge.git] / chrome / browser / ui / views / bookmarks / bookmark_prompt_view.cc
blobd3ad98d2b430299e27a9d8f3e56054fb564901df
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chrome/browser/ui/views/bookmarks/bookmark_prompt_view.h"
7 #include "chrome/browser/ui/bookmarks/bookmark_prompt_controller.h"
8 #include "grit/generated_resources.h"
9 #include "ui/base/l10n/l10n_util.h"
10 #include "ui/base/resource/resource_bundle.h"
11 #include "ui/views/controls/label.h"
12 #include "ui/views/controls/link.h"
13 #include "ui/views/layout/box_layout.h"
14 #include "ui/views/layout/layout_constants.h"
15 #include "ui/views/widget/widget.h"
17 namespace {
19 // Horizontal padding of bookmark prompt.
20 const int kHorizontalPadding = 20;
24 // static
25 BookmarkPromptView* BookmarkPromptView::bookmark_bubble_ = NULL;
27 // static
28 void BookmarkPromptView::ShowPrompt(views::View* anchor_view,
29 PrefService* prefs) {
30 if (bookmark_bubble_)
31 return;
32 bookmark_bubble_ = new BookmarkPromptView(anchor_view, prefs);
33 views::BubbleDelegateView::CreateBubble(bookmark_bubble_)->Show();
36 BookmarkPromptView::BookmarkPromptView(views::View* anchor_view,
37 PrefService* prefs)
38 : BubbleDelegateView(anchor_view, views::BubbleBorder::TOP_RIGHT),
39 dismiss_link_(NULL),
40 prefs_(prefs) {
41 // Compensate for built-in vertical padding in the anchor view's image.
42 set_anchor_view_insets(gfx::Insets(5, 0, 5, 0));
45 BookmarkPromptView::~BookmarkPromptView() {
46 DCHECK_NE(this, bookmark_bubble_);
49 void BookmarkPromptView::Init() {
50 SetLayoutManager(new views::BoxLayout(views::BoxLayout::kVertical,
51 kHorizontalPadding, 0, 0));
53 views::Label* label = new views::Label(l10n_util::GetStringUTF16(
54 IDS_BOOKMARK_PROMPT_MESSAGE));
55 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
56 label->SetFont(rb.GetFont(ui::ResourceBundle::MediumFont)
57 .DeriveFont(0, gfx::Font::BOLD));
58 AddChildView(label);
60 dismiss_link_ = new views::Link(l10n_util::GetStringUTF16(
61 IDS_BOOKMARK_PROMPT_DISMISS));
62 dismiss_link_->SetHorizontalAlignment(gfx::ALIGN_RIGHT);
63 dismiss_link_->set_listener(this);
64 AddChildView(dismiss_link_);
67 void BookmarkPromptView::LinkClicked(views::Link* source, int event_flags) {
68 DCHECK_EQ(source, dismiss_link_);
69 BookmarkPromptController::DisableBookmarkPrompt(prefs_);
70 StartFade(false);
73 void BookmarkPromptView::WindowClosing() {
74 bookmark_bubble_ = NULL;
75 BookmarkPromptController::ClosingBookmarkPrompt();