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

Side by Side Diff: chrome/browser/ui/views/website_settings/chosen_object_row.cc

Issue 2744933002: Move Views Page Info UI code to its own folder. (Closed)
Patch Set: *shakes other fist at mass-rename.py* Created 3 years, 9 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 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.
4
5 #include "chrome/browser/ui/views/website_settings/chosen_object_row.h"
6
7 #include "chrome/browser/ui/views/website_settings/chosen_object_row_observer.h"
8 #include "chrome/browser/ui/views/website_settings/website_settings_popup_view.h "
9 #include "ui/base/l10n/l10n_util.h"
10 #include "ui/base/resource/resource_bundle.h"
11 #include "ui/resources/grit/ui_resources.h"
12 #include "ui/views/controls/button/image_button.h"
13 #include "ui/views/controls/image_view.h"
14 #include "ui/views/controls/label.h"
15 #include "ui/views/layout/grid_layout.h"
16
17 ChosenObjectRow::ChosenObjectRow(
18 std::unique_ptr<WebsiteSettingsUI::ChosenObjectInfo> info)
19 : info_(std::move(info)) {
20 views::GridLayout* layout = new views::GridLayout(this);
21 SetLayoutManager(layout);
22 const int column_set_id = 0;
23 views::ColumnSet* column_set = layout->AddColumnSet(column_set_id);
24 column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 1,
25 views::GridLayout::FIXED, kPermissionIconColumnWidth,
26 0);
27 column_set->AddPaddingColumn(0, kPermissionIconMarginLeft);
28 column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 1,
29 views::GridLayout::USE_PREF, 0, 0);
30 column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 1,
31 views::GridLayout::USE_PREF, 0, 0);
32
33 layout->StartRow(1, column_set_id);
34 // Create the permission icon.
35 icon_ = new views::ImageView();
36 const gfx::Image& image =
37 WebsiteSettingsUI::GetChosenObjectIcon(*info_, false);
38 icon_->SetImage(image.ToImageSkia());
39 layout->AddView(icon_, 1, 1, views::GridLayout::CENTER,
40 views::GridLayout::CENTER);
41 // Create the label that displays the permission type.
42 views::Label* label = new views::Label(l10n_util::GetStringFUTF16(
43 info_->ui_info.label_string_id,
44 WebsiteSettingsUI::ChosenObjectToUIString(*info_)));
45 layout->AddView(label, 1, 1, views::GridLayout::LEADING,
46 views::GridLayout::CENTER);
47 // Create the delete button.
48 delete_button_ = new views::ImageButton(this);
49 delete_button_->SetFocusForPlatform();
50 delete_button_->set_request_focus_on_press(true);
51 delete_button_->SetTooltipText(
52 l10n_util::GetStringUTF16(info_->ui_info.delete_tooltip_string_id));
53 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
54 delete_button_->SetImage(views::ImageButton::STATE_NORMAL,
55 rb.GetImageSkiaNamed(IDR_CLOSE_2));
56 delete_button_->SetImage(views::ImageButton::STATE_HOVERED,
57 rb.GetImageSkiaNamed(IDR_CLOSE_2_H));
58 delete_button_->SetImage(views::ImageButton::STATE_PRESSED,
59 rb.GetImageSkiaNamed(IDR_CLOSE_2_P));
60 layout->AddView(delete_button_, 1, 1, views::GridLayout::LEADING,
61 views::GridLayout::CENTER);
62 }
63
64 void ChosenObjectRow::AddObserver(ChosenObjectRowObserver* observer) {
65 observer_list_.AddObserver(observer);
66 }
67
68 ChosenObjectRow::~ChosenObjectRow() {}
69
70 void ChosenObjectRow::ButtonPressed(views::Button* sender,
71 const ui::Event& event) {
72 // Change the icon to reflect the selected setting.
73 const gfx::Image& image =
74 WebsiteSettingsUI::GetChosenObjectIcon(*info_, true);
75 icon_->SetImage(image.ToImageSkia());
76
77 RemoveChildView(delete_button_);
78 delete delete_button_;
79 delete_button_ = nullptr;
80
81 for (ChosenObjectRowObserver& observer : observer_list_)
82 observer.OnChosenObjectDeleted(*info_);
83 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698