open_pdf_in_reader_bubble_view.cc revision a1401311d1ab56c4ed0a474bd38c108f75cb0cd9
1e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola// Use of this source code is governed by a BSD-style license that can be 35fbe5e783ee0c5ae27c17490a752d7e603e84ed2Evan Cheng// found in the LICENSE file. 45fbe5e783ee0c5ae27c17490a752d7e603e84ed2Evan Cheng 55fbe5e783ee0c5ae27c17490a752d7e603e84ed2Evan Cheng#include "chrome/browser/ui/views/open_pdf_in_reader_bubble_view.h" 6dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines 75fbe5e783ee0c5ae27c17490a752d7e603e84ed2Evan Cheng#include "chrome/browser/ui/pdf/open_pdf_in_reader_prompt_delegate.h" 85fbe5e783ee0c5ae27c17490a752d7e603e84ed2Evan Cheng#include "grit/generated_resources.h" 95fbe5e783ee0c5ae27c17490a752d7e603e84ed2Evan Cheng#include "ui/base/l10n/l10n_util.h" 10e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola#include "ui/views/controls/button/label_button.h" 11e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola#include "ui/views/controls/label.h" 12e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola#include "ui/views/controls/link.h" 13e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola#include "ui/views/controls/separator.h" 14e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola#include "ui/views/layout/grid_layout.h" 15e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola#include "ui/views/layout/layout_constants.h" 16e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola 17e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael EspindolaOpenPDFInReaderBubbleView::~OpenPDFInReaderBubbleView() {} 18e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola 19e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael EspindolaOpenPDFInReaderBubbleView::OpenPDFInReaderBubbleView( 20e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola views::View* anchor_view, 21e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola OpenPDFInReaderPromptDelegate* model) 22e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola : views::BubbleDelegateView(anchor_view, views::BubbleBorder::TOP_RIGHT), 23e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola model_(model), 24e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola open_in_reader_link_(NULL), 25e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola close_button_(NULL) { 26e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola DCHECK(model); 27e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola} 28e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola 29e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindolavoid OpenPDFInReaderBubbleView::Init() { 30e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola using views::GridLayout; 31e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola 325fbe5e783ee0c5ae27c17490a752d7e603e84ed2Evan Cheng GridLayout* layout = new views::GridLayout(this); 33e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola SetLayoutManager(layout); 34e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola 355fbe5e783ee0c5ae27c17490a752d7e603e84ed2Evan Cheng const int single_column_set_id = 0; 365fbe5e783ee0c5ae27c17490a752d7e603e84ed2Evan Cheng views::ColumnSet* column_set = layout->AddColumnSet(single_column_set_id); 37e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola column_set->AddColumn(GridLayout::LEADING, GridLayout::FILL, 1, 38e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola GridLayout::USE_PREF, 0, 0); 39e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola 40e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola base::string16 title = model_->GetMessageText(); 41e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola views::Label* title_label = new views::Label(title); 42e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola layout->StartRow(0, single_column_set_id); 435fbe5e783ee0c5ae27c17490a752d7e603e84ed2Evan Cheng layout->AddView(title_label); 445fbe5e783ee0c5ae27c17490a752d7e603e84ed2Evan Cheng 455fbe5e783ee0c5ae27c17490a752d7e603e84ed2Evan Cheng layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); 46e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola 47e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola base::string16 accept_text = model_->GetAcceptButtonText(); 48e3a0e987f3d4f07512cdb64b9034369f966cb448Rafael Espindola open_in_reader_link_ = new views::Link(accept_text); 49 open_in_reader_link_->SetEnabled(true); 50 open_in_reader_link_->set_listener(this); 51 layout->StartRow(0, single_column_set_id); 52 layout->AddView(open_in_reader_link_); 53 54 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); 55 layout->StartRow(0, single_column_set_id); 56 layout->AddView(new views::Separator(views::Separator::HORIZONTAL), 1, 1, 57 GridLayout::FILL, GridLayout::FILL); 58 layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); 59 60 close_button_ = new views::LabelButton(this, model_->GetCancelButtonText()); 61 close_button_->SetStyle(views::Button::STYLE_BUTTON); 62 layout->StartRow(0, single_column_set_id); 63 layout->AddView(close_button_); 64} 65 66void OpenPDFInReaderBubbleView::ButtonPressed(views::Button* sender, 67 const ui::Event& event) { 68 DCHECK_EQ(close_button_, sender); 69 70 model_->Cancel(); 71 GetWidget()->Close(); 72} 73 74void OpenPDFInReaderBubbleView::LinkClicked(views::Link* source, 75 int event_flags) { 76 DCHECK_EQ(open_in_reader_link_, source); 77 78 model_->Accept(); 79 GetWidget()->Close(); 80} 81 82