summaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorerg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-24 22:49:41 +0000
committererg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-24 22:49:41 +0000
commit9137e7343672ce086de636b92c500bf809c96d3e (patch)
tree6e8c5776131eb2b39e5542cda12c335c64434ccc /ui
parent21d5a6b64618bb1c82cfef3aaccb646f1a4fad3b (diff)
downloadchromium_src-9137e7343672ce086de636b92c500bf809c96d3e.zip
chromium_src-9137e7343672ce086de636b92c500bf809c96d3e.tar.gz
chromium_src-9137e7343672ce086de636b92c500bf809c96d3e.tar.bz2
views: Make View::set_border() take a scoped_ptr<>.
This makes the ownership situation much clearer. It also renames the function to SetBorder() (since it is not a simple accessor and can free previous instances of Border), and creates a Border::NullBorder() method (since "SetBorder(scoped_ptr<>())" is not clear). BUG=none R=sky@chromium.org Review URL: https://codereview.chromium.org/145033006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246990 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui')
-rw-r--r--ui/app_list/views/apps_grid_view.cc6
-rw-r--r--ui/app_list/views/folder_header_view.cc4
-rw-r--r--ui/app_list/views/search_box_view.cc4
-rw-r--r--ui/app_list/views/search_result_actions_view.cc2
-rw-r--r--ui/app_list/views/speech_view.cc10
-rw-r--r--ui/message_center/views/message_center_view.cc6
-rw-r--r--ui/message_center/views/message_view.cc9
-rw-r--r--ui/message_center/views/notification_button.cc6
-rw-r--r--ui/message_center/views/notification_view.cc31
-rw-r--r--ui/message_center/views/notifier_settings_view.cc27
-rw-r--r--ui/views/border.cc35
-rw-r--r--ui/views/border.h27
-rw-r--r--ui/views/bubble/bubble_delegate.cc3
-rw-r--r--ui/views/bubble/bubble_frame_view.cc10
-rw-r--r--ui/views/bubble/bubble_frame_view.h4
-rw-r--r--ui/views/bubble/bubble_frame_view_unittest.cc3
-rw-r--r--ui/views/bubble/tray_bubble_view.cc2
-rw-r--r--ui/views/color_chooser/color_chooser_view.cc4
-rw-r--r--ui/views/controls/button/blue_button.cc4
-rw-r--r--ui/views/controls/button/checkbox.cc4
-rw-r--r--ui/views/controls/button/image_button_unittest.cc6
-rw-r--r--ui/views/controls/button/label_button.cc8
-rw-r--r--ui/views/controls/button/label_button.h8
-rw-r--r--ui/views/controls/button/text_button.cc2
-rw-r--r--ui/views/controls/combobox/combobox.cc4
-rw-r--r--ui/views/controls/label_unittest.cc36
-rw-r--r--ui/views/controls/menu/menu_scroll_view_container.cc11
-rw-r--r--ui/views/controls/menu/menu_scroll_view_container.h2
-rw-r--r--ui/views/controls/scroll_view.cc5
-rw-r--r--ui/views/controls/styled_label_unittest.cc2
-rw-r--r--ui/views/controls/textfield/textfield.cc2
-rw-r--r--ui/views/corewm/tooltip_aura.cc5
-rw-r--r--ui/views/examples/button_example.cc11
-rw-r--r--ui/views/examples/label_example.cc2
-rw-r--r--ui/views/examples/multiline_example.cc4
-rw-r--r--ui/views/examples/text_example.cc2
-rw-r--r--ui/views/focus/focus_traversal_unittest.cc6
-rw-r--r--ui/views/linux_ui/linux_ui.h4
-rw-r--r--ui/views/touchui/touch_editing_menu.cc2
-rw-r--r--ui/views/view.cc4
-rw-r--r--ui/views/view.h2
-rw-r--r--ui/views/window/dialog_delegate.cc11
42 files changed, 175 insertions, 165 deletions
diff --git a/ui/app_list/views/apps_grid_view.cc b/ui/app_list/views/apps_grid_view.cc
index ba394d1..3a9285e 100644
--- a/ui/app_list/views/apps_grid_view.cc
+++ b/ui/app_list/views/apps_grid_view.cc
@@ -385,10 +385,8 @@ void AppsGridView::SetLayout(int icon_size, int cols, int rows_per_page) {
cols_ = cols;
rows_per_page_ = rows_per_page;
- set_border(views::Border::CreateEmptyBorder(kTopPadding,
- kLeftRightPadding,
- 0,
- kLeftRightPadding));
+ SetBorder(views::Border::CreateEmptyBorder(
+ kTopPadding, kLeftRightPadding, 0, kLeftRightPadding));
}
void AppsGridView::SetModel(AppListModel* model) {
diff --git a/ui/app_list/views/folder_header_view.cc b/ui/app_list/views/folder_header_view.cc
index 399e599..a06b7b1 100644
--- a/ui/app_list/views/folder_header_view.cc
+++ b/ui/app_list/views/folder_header_view.cc
@@ -37,7 +37,7 @@ const SkColor kHintTextColor = SkColorSetRGB(0xA0, 0xA0, 0xA0);
class FolderHeaderView::FolderNameView : public views::Textfield {
public:
FolderNameView() {
- set_border(views::Border::CreateEmptyBorder(1, 1, 1, 1));
+ SetBorder(views::Border::CreateEmptyBorder(1, 1, 1, 1));
const SkColor kFocusBorderColor = SkColorSetRGB(64, 128, 250);
SetFocusPainter(views::Painter::CreateSolidFocusPainter(
kFocusBorderColor,
@@ -73,7 +73,7 @@ FolderHeaderView::FolderHeaderView(FolderHeaderViewDelegate* delegate)
folder_name_view_->set_placeholder_text_color(kHintTextColor);
folder_name_view_->set_placeholder_text(
rb.GetLocalizedString(IDS_APP_LIST_FOLDER_NAME_PLACEHOLDER));
- folder_name_view_->set_border(NULL);
+ folder_name_view_->SetBorder(views::Border::NullBorder());
folder_name_view_->SetBackgroundColor(kContentsBackgroundColor);
folder_name_view_->set_controller(this);
AddChildView(folder_name_view_);
diff --git a/ui/app_list/views/search_box_view.cc b/ui/app_list/views/search_box_view.cc
index d701766..f7a84f4 100644
--- a/ui/app_list/views/search_box_view.cc
+++ b/ui/app_list/views/search_box_view.cc
@@ -56,7 +56,7 @@ SearchBoxView::SearchBoxView(SearchBoxViewDelegate* delegate,
#if !defined(OS_CHROMEOS)
menu_button_ = new views::MenuButton(NULL, base::string16(), this, false);
- menu_button_->set_border(NULL);
+ menu_button_->SetBorder(views::Border::NullBorder());
menu_button_->SetIcon(*rb.GetImageSkiaNamed(IDR_APP_LIST_TOOLS_NORMAL));
menu_button_->SetHoverIcon(*rb.GetImageSkiaNamed(IDR_APP_LIST_TOOLS_HOVER));
menu_button_->SetPushedIcon(*rb.GetImageSkiaNamed(
@@ -64,7 +64,7 @@ SearchBoxView::SearchBoxView(SearchBoxViewDelegate* delegate,
AddChildView(menu_button_);
#endif
- search_box_->set_border(NULL);
+ search_box_->SetBorder(views::Border::NullBorder());
search_box_->SetFontList(rb.GetFontList(ui::ResourceBundle::MediumFont));
search_box_->set_placeholder_text_color(kHintTextColor);
search_box_->set_controller(this);
diff --git a/ui/app_list/views/search_result_actions_view.cc b/ui/app_list/views/search_result_actions_view.cc
index 691e264..c31b124 100644
--- a/ui/app_list/views/search_result_actions_view.cc
+++ b/ui/app_list/views/search_result_actions_view.cc
@@ -62,7 +62,7 @@ bool SearchResultActionsView::IsValidActionIndex(int action_index) const {
void SearchResultActionsView::CreateImageButton(
const SearchResult::Action& action) {
views::ImageButton* button = new views::ImageButton(this);
- button->set_border(views::Border::CreateEmptyBorder(0, 9, 0, 9));
+ button->SetBorder(views::Border::CreateEmptyBorder(0, 9, 0, 9));
button->SetAccessibleName(action.tooltip_text);
button->SetImageAlignment(views::ImageButton::ALIGN_CENTER,
views::ImageButton::ALIGN_MIDDLE);
diff --git a/ui/app_list/views/speech_view.cc b/ui/app_list/views/speech_view.cc
index 7f59222..c6bad7c 100644
--- a/ui/app_list/views/speech_view.cc
+++ b/ui/app_list/views/speech_view.cc
@@ -94,11 +94,11 @@ bool MicButton::HitTestRect(const gfx::Rect& rect) const {
SpeechView::SpeechView(AppListViewDelegate* delegate)
: delegate_(delegate) {
- set_border(new views::ShadowBorder(
- kShadowBlur,
- kShadowColor,
- kShadowOffset, // Vertical offset.
- 0));
+ SetBorder(scoped_ptr<views::Border>(
+ new views::ShadowBorder(kShadowBlur,
+ kShadowColor,
+ kShadowOffset, // Vertical offset.
+ 0)));
// To keep the painting order of the border and the background, this class
// actually has a single child of 'container' which has white background and
diff --git a/ui/message_center/views/message_center_view.cc b/ui/message_center/views/message_center_view.cc
index 8054a3d..7d8da4a 100644
--- a/ui/message_center/views/message_center_view.cc
+++ b/ui/message_center/views/message_center_view.cc
@@ -256,7 +256,7 @@ MessageListView::MessageListView(MessageCenterView* message_center_view,
gfx::Insets shadow_insets = MessageView::GetShadowInsets();
set_background(views::Background::CreateSolidBackground(
kMessageCenterBackgroundColor));
- set_border(views::Border::CreateEmptyBorder(
+ SetBorder(views::Border::CreateEmptyBorder(
top_down ? 0 : kMarginBetweenItems - shadow_insets.top(), /* top */
kMarginBetweenItems - shadow_insets.left(), /* left */
top_down ? kMarginBetweenItems - shadow_insets.bottom() : 0, /* bottom */
@@ -801,10 +801,10 @@ void MessageCenterView::Layout() {
if (is_scrollable) {
// Draw separator line on the top of the button bar if it is on the bottom
// or draw it at the bottom if the bar is on the top.
- button_bar_->set_border(views::Border::CreateSolidSidedBorder(
+ button_bar_->SetBorder(views::Border::CreateSolidSidedBorder(
top_down_ ? 0 : 1, 0, top_down_ ? 1 : 0, 0, kFooterDelimiterColor));
} else {
- button_bar_->set_border(views::Border::CreateEmptyBorder(
+ button_bar_->SetBorder(views::Border::CreateEmptyBorder(
top_down_ ? 0 : 1, 0, top_down_ ? 1 : 0, 0));
}
button_bar_->SchedulePaint();
diff --git a/ui/message_center/views/message_view.cc b/ui/message_center/views/message_view.cc
index 6c1a681..8657aec 100644
--- a/ui/message_center/views/message_view.cc
+++ b/ui/message_center/views/message_view.cc
@@ -83,10 +83,11 @@ gfx::Insets MessageView::GetShadowInsets() {
}
void MessageView::CreateShadowBorder() {
- set_border(new views::ShadowBorder(kShadowBlur,
- message_center::kShadowColor,
- kShadowOffset, // Vertical offset.
- 0)); // Horizontal offset.
+ SetBorder(scoped_ptr<views::Border>(
+ new views::ShadowBorder(kShadowBlur,
+ message_center::kShadowColor,
+ kShadowOffset, // Vertical offset.
+ 0))); // Horizontal offset.
}
bool MessageView::IsCloseButtonFocused() {
diff --git a/ui/message_center/views/notification_button.cc b/ui/message_center/views/notification_button.cc
index 8fa32f3..3cc0fec 100644
--- a/ui/message_center/views/notification_button.cc
+++ b/ui/message_center/views/notification_button.cc
@@ -48,7 +48,7 @@ void NotificationButton::SetIcon(const gfx::ImageSkia& image) {
icon_->SetImage(image);
icon_->SetHorizontalAlignment(views::ImageView::LEADING);
icon_->SetVerticalAlignment(views::ImageView::LEADING);
- icon_->set_border(views::Border::CreateEmptyBorder(
+ icon_->SetBorder(views::Border::CreateEmptyBorder(
message_center::kButtonIconTopPadding, 0, 0, 0));
AddChildViewAt(icon_, 0);
}
@@ -64,8 +64,8 @@ void NotificationButton::SetTitle(const base::string16& title) {
title_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
title_->SetEnabledColor(message_center::kRegularTextColor);
title_->SetBackgroundColor(kRegularTextBackgroundColor);
- title_->set_border(views::Border::CreateEmptyBorder(
- kButtonTitleTopPadding, 0, 0, 0));
+ title_->SetBorder(
+ views::Border::CreateEmptyBorder(kButtonTitleTopPadding, 0, 0, 0));
AddChildView(title_);
}
SetAccessibleName(title);
diff --git a/ui/message_center/views/notification_view.cc b/ui/message_center/views/notification_view.cc
index aa80bfa..7b258ab 100644
--- a/ui/message_center/views/notification_view.cc
+++ b/ui/message_center/views/notification_view.cc
@@ -54,12 +54,15 @@ const int kExpandIconBottomPadding = 8;
const int kExpandIconRightPadding = 11;
// static
-views::Border* MakeEmptyBorder(int top, int left, int bottom, int right) {
+scoped_ptr<views::Border> MakeEmptyBorder(int top,
+ int left,
+ int bottom,
+ int right) {
return views::Border::CreateEmptyBorder(top, left, bottom, right);
}
// static
-views::Border* MakeTextBorder(int padding, int top, int bottom) {
+scoped_ptr<views::Border> MakeTextBorder(int padding, int top, int bottom) {
// Split the padding between the top and the bottom, then add the extra space.
return MakeEmptyBorder(padding / 2 + top,
message_center::kTextLeftPadding,
@@ -68,7 +71,7 @@ views::Border* MakeTextBorder(int padding, int top, int bottom) {
}
// static
-views::Border* MakeProgressBarBorder(int top, int bottom) {
+scoped_ptr<views::Border> MakeProgressBarBorder(int top, int bottom) {
return MakeEmptyBorder(top,
message_center::kTextLeftPadding,
bottom,
@@ -76,7 +79,9 @@ views::Border* MakeProgressBarBorder(int top, int bottom) {
}
// static
-views::Border* MakeSeparatorBorder(int top, int left, SkColor color) {
+scoped_ptr<views::Border> MakeSeparatorBorder(int top,
+ int left,
+ SkColor color) {
return views::Border::CreateSolidSidedBorder(top, left, 0, 0, color);
}
@@ -182,7 +187,7 @@ views::View* MakeNotificationImage(const gfx::Image& image, gfx::Size size) {
// This calculation determines that the new image would have the correct
// height for width.
if (ideal_size != scaled_size) {
- proportional_image_view->set_border(views::Border::CreateSolidBorder(
+ proportional_image_view->SetBorder(views::Border::CreateSolidBorder(
message_center::kNotificationImageBorderSize, SK_ColorTRANSPARENT));
}
@@ -311,8 +316,8 @@ NotificationView::NotificationView(MessageCenterController* controller,
top_view_ = new views::View();
top_view_->SetLayoutManager(
new views::BoxLayout(views::BoxLayout::kVertical, 0, 0, 0));
- top_view_->set_border(MakeEmptyBorder(
- kTextTopPadding - 8, 0, kTextBottomPadding - 5, 0));
+ top_view_->SetBorder(
+ MakeEmptyBorder(kTextTopPadding - 8, 0, kTextBottomPadding - 5, 0));
const gfx::FontList default_label_font_list = views::Label().font_list();
@@ -331,7 +336,7 @@ NotificationView::NotificationView(MessageCenterController* controller,
message_center::kTitleLineLimit);
title_view_->SetColors(message_center::kRegularTextColor,
kRegularTextBackgroundColor);
- title_view_->set_border(MakeTextBorder(padding, 3, 0));
+ title_view_->SetBorder(MakeTextBorder(padding, 3, 0));
top_view_->AddChildView(title_view_);
accessible_lines.push_back(notification.title());
}
@@ -346,7 +351,7 @@ NotificationView::NotificationView(MessageCenterController* controller,
message_view_->SetVisible(!is_expanded_ || !notification.items().size());
message_view_->SetColors(message_center::kRegularTextColor,
kDimTextBackgroundColor);
- message_view_->set_border(MakeTextBorder(padding, 4, 0));
+ message_view_->SetBorder(MakeTextBorder(padding, 4, 0));
top_view_->AddChildView(message_view_);
accessible_lines.push_back(notification.message());
}
@@ -364,7 +369,7 @@ NotificationView::NotificationView(MessageCenterController* controller,
context_message_view_->SetLineHeight(kMessageLineHeight);
context_message_view_->SetColors(message_center::kDimTextColor,
kContextTextBackgroundColor);
- context_message_view_->set_border(MakeTextBorder(padding, 4, 0));
+ context_message_view_->SetBorder(MakeTextBorder(padding, 4, 0));
top_view_->AddChildView(context_message_view_);
accessible_lines.push_back(notification.context_message());
}
@@ -373,7 +378,7 @@ NotificationView::NotificationView(MessageCenterController* controller,
progress_bar_view_ = NULL;
if (notification.type() == NOTIFICATION_TYPE_PROGRESS) {
progress_bar_view_ = new NotificationProgressBar();
- progress_bar_view_->set_border(MakeProgressBarBorder(
+ progress_bar_view_->SetBorder(MakeProgressBarBorder(
message_center::kProgressBarTopPadding, kProgressBarBottomPadding));
progress_bar_view_->SetValue(notification.progress() / 100.0);
top_view_->AddChildView(progress_bar_view_);
@@ -385,7 +390,7 @@ NotificationView::NotificationView(MessageCenterController* controller,
for (size_t i = 0; i < items.size() && i < kNotificationMaximumItems; ++i) {
ItemView* item_view = new ItemView(items[i]);
item_view->SetVisible(is_expanded_);
- item_view->set_border(MakeTextBorder(padding, i ? 0 : 4, 0));
+ item_view->SetBorder(MakeTextBorder(padding, i ? 0 : 4, 0));
item_views_.push_back(item_view);
top_view_->AddChildView(item_view);
accessible_lines.push_back(
@@ -432,7 +437,7 @@ NotificationView::NotificationView(MessageCenterController* controller,
std::vector<ButtonInfo> buttons = notification.buttons();
for (size_t i = 0; i < buttons.size(); ++i) {
views::View* separator = new views::ImageView();
- separator->set_border(MakeSeparatorBorder(1, 0, kButtonSeparatorColor));
+ separator->SetBorder(MakeSeparatorBorder(1, 0, kButtonSeparatorColor));
bottom_view_->AddChildView(separator);
NotificationButton* button = new NotificationButton(this);
ButtonInfo button_info = buttons[i];
diff --git a/ui/message_center/views/notifier_settings_view.cc b/ui/message_center/views/notifier_settings_view.cc
index a48680a..1796def 100644
--- a/ui/message_center/views/notifier_settings_view.cc
+++ b/ui/message_center/views/notifier_settings_view.cc
@@ -333,7 +333,7 @@ NotifierSettingsView::NotifierButton::NotifierButton(
(settings::kLearnMoreTargetHeight - settings::kLearnMoreSize) / 2;
// The image itself is quite small, this large invisible border creates a
// much bigger click target.
- learn_more_->set_border(
+ learn_more_->SetBorder(
views::Border::CreateEmptyBorder(learn_more_border_height,
learn_more_border_width,
learn_more_border_height,
@@ -496,7 +496,7 @@ NotifierSettingsView::NotifierSettingsView(NotifierSettingsProvider* provider)
ui::ResourceBundle::MediumFont));
title_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
title_label_->SetMultiLine(true);
- title_label_->set_border(
+ title_label_->SetBorder(
views::Border::CreateEmptyBorder(kComputedTitleTopMargin,
settings::kTitleMargin,
kComputedTitleBottomMargin,
@@ -571,7 +571,7 @@ void NotifierSettingsView::UpdateContentsView(
top_label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
top_label->SetMultiLine(true);
- top_label->set_border(views::Border::CreateEmptyBorder(
+ top_label->SetBorder(views::Border::CreateEmptyBorder(
0,
settings::kTitleMargin + kMenuButtonInnateMargin,
0,
@@ -598,7 +598,8 @@ void NotifierSettingsView::UpdateContentsView(
selector_border->SetInsets(gfx::Insets(
kMenuButtonVerticalPadding, kMenuButtonLeftPadding,
kMenuButtonVerticalPadding, kMenuButtonRightPadding));
- notifier_group_selector_->set_border(selector_border.release());
+ notifier_group_selector_->SetBorder(
+ selector_border.PassAs<views::Border>());
notifier_group_selector_->SetFocusPainter(scoped_ptr<views::Painter>());
notifier_group_selector_->set_animate_on_state_change(false);
notifier_group_selector_->SetFocusable(true);
@@ -616,17 +617,17 @@ void NotifierSettingsView::UpdateContentsView(
// border on the last notifier, as the spec leaves a space for it.
scoped_ptr<views::Border> entry_border;
if (i == notifier_count - 1) {
- entry_border.reset(views::Border::CreateEmptyBorder(
- 0, 0, settings::kEntrySeparatorHeight, 0));
+ entry_border = views::Border::CreateEmptyBorder(
+ 0, 0, settings::kEntrySeparatorHeight, 0);
} else {
- entry_border.reset(views::Border::CreateSolidSidedBorder(
- 0,
- 0,
- settings::kEntrySeparatorHeight,
- 0,
- settings::kEntrySeparatorColor));
+ entry_border =
+ views::Border::CreateSolidSidedBorder(0,
+ 0,
+ settings::kEntrySeparatorHeight,
+ 0,
+ settings::kEntrySeparatorColor);
}
- entry->set_border(entry_border.release());
+ entry->SetBorder(entry_border.Pass());
entry->SetFocusable(true);
contents_view->AddChildView(entry);
buttons_.insert(button);
diff --git a/ui/views/border.cc b/ui/views/border.cc
index f347c2a..658a1f1 100644
--- a/ui/views/border.cc
+++ b/ui/views/border.cc
@@ -133,28 +133,37 @@ Border::~Border() {
}
// static
-Border* Border::CreateSolidBorder(int thickness, SkColor color) {
- return new SolidBorder(thickness, color);
+scoped_ptr<Border> Border::NullBorder() {
+ return scoped_ptr<Border>();
}
// static
-Border* Border::CreateEmptyBorder(int top, int left, int bottom, int right) {
- return new EmptyBorder(top, left, bottom, right);
+scoped_ptr<Border> Border::CreateSolidBorder(int thickness, SkColor color) {
+ return scoped_ptr<Border>(new SolidBorder(thickness, color));
}
// static
-Border* Border::CreateSolidSidedBorder(int top,
- int left,
- int bottom,
- int right,
- SkColor color) {
- return new SidedSolidBorder(top, left, bottom, right, color);
+scoped_ptr<Border> Border::CreateEmptyBorder(int top,
+ int left,
+ int bottom,
+ int right) {
+ return scoped_ptr<Border>(new EmptyBorder(top, left, bottom, right));
}
// static
-Border* Border::CreateBorderPainter(Painter* painter,
- const gfx::Insets& insets) {
- return new BorderPainter(painter, insets);
+scoped_ptr<Border> Border::CreateSolidSidedBorder(int top,
+ int left,
+ int bottom,
+ int right,
+ SkColor color) {
+ return scoped_ptr<Border>(
+ new SidedSolidBorder(top, left, bottom, right, color));
+}
+
+// static
+scoped_ptr<Border> Border::CreateBorderPainter(Painter* painter,
+ const gfx::Insets& insets) {
+ return scoped_ptr<Border>(new BorderPainter(painter, insets));
}
TextButtonBorder* Border::AsTextButtonBorder() {
diff --git a/ui/views/border.h b/ui/views/border.h
index 2e9c56b..2467939 100644
--- a/ui/views/border.h
+++ b/ui/views/border.h
@@ -6,6 +6,7 @@
#define UI_VIEWS_BORDER_H_
#include "base/basictypes.h"
+#include "base/memory/scoped_ptr.h"
#include "third_party/skia/include/core/SkColor.h"
#include "ui/gfx/insets.h"
#include "ui/views/views_export.h"
@@ -26,7 +27,7 @@ class View;
//
// The border class is used to display a border around a view.
// To set a border on a view, just call SetBorder on the view, for example:
-// view->set_border(Border::CreateSolidBorder(1, SkColorSetRGB(25, 25, 112));
+// view->SetBorder(Border::CreateSolidBorder(1, SkColorSetRGB(25, 25, 112));
// Once set on a view, the border is owned by the view.
//
// IMPORTANT NOTE: not all views support borders at this point. In order to
@@ -43,27 +44,33 @@ class VIEWS_EXPORT Border {
Border();
virtual ~Border();
+ // Convenience for creating a scoped_ptr with no Border.
+ static scoped_ptr<Border> NullBorder();
+
// Creates a border that is a simple line of the specified thickness and
// color.
- static Border* CreateSolidBorder(int thickness, SkColor color);
+ static scoped_ptr<Border> CreateSolidBorder(int thickness, SkColor color);
// Creates a border for reserving space. The returned border does not
// paint anything.
- static Border* CreateEmptyBorder(int top, int left, int bottom, int right);
+ static scoped_ptr<Border> CreateEmptyBorder(int top,
+ int left,
+ int bottom,
+ int right);
// Creates a border of the specified color, and specified thickness on each
// side.
- static Border* CreateSolidSidedBorder(int top,
- int left,
- int bottom,
- int right,
- SkColor color);
+ static scoped_ptr<Border> CreateSolidSidedBorder(int top,
+ int left,
+ int bottom,
+ int right,
+ SkColor color);
// Creates a Border from the specified Painter. The border owns the painter,
// thus the painter is deleted when the Border is deleted.
// |insets| define size of an area allocated for a Border.
- static Border* CreateBorderPainter(Painter* painter,
- const gfx::Insets& insets);
+ static scoped_ptr<Border> CreateBorderPainter(Painter* painter,
+ const gfx::Insets& insets);
// Renders the border for the specified view.
virtual void Paint(const View& view, gfx::Canvas* canvas) = 0;
diff --git a/ui/views/bubble/bubble_delegate.cc b/ui/views/bubble/bubble_delegate.cc
index dbd0cae8..6c64d22 100644
--- a/ui/views/bubble/bubble_delegate.cc
+++ b/ui/views/bubble/bubble_delegate.cc
@@ -136,7 +136,8 @@ NonClientFrameView* BubbleDelegateView::CreateNonClientFrameView(
BubbleBorder::Arrow adjusted_arrow = arrow();
if (base::i18n::IsRTL())
adjusted_arrow = BubbleBorder::horizontal_mirror(adjusted_arrow);
- frame->SetBubbleBorder(new BubbleBorder(adjusted_arrow, shadow(), color()));
+ frame->SetBubbleBorder(scoped_ptr<BubbleBorder>(
+ new BubbleBorder(adjusted_arrow, shadow(), color())));
return frame;
}
diff --git a/ui/views/bubble/bubble_frame_view.cc b/ui/views/bubble/bubble_frame_view.cc
index 91c94a3..8bad29e 100644
--- a/ui/views/bubble/bubble_frame_view.cc
+++ b/ui/views/bubble/bubble_frame_view.cc
@@ -80,7 +80,7 @@ BubbleFrameView::BubbleFrameView(const gfx::Insets& content_margins)
close_->SetImage(CustomButton::STATE_PRESSED,
*rb.GetImageNamed(IDR_CLOSE_DIALOG_P).ToImageSkia());
close_->SetSize(close_->GetPreferredSize());
- close_->set_border(NULL);
+ close_->SetBorder(scoped_ptr<Border>());
close_->SetVisible(false);
AddChildView(close_);
}
@@ -228,12 +228,12 @@ void BubbleFrameView::ButtonPressed(Button* sender, const ui::Event& event) {
GetWidget()->Close();
}
-void BubbleFrameView::SetBubbleBorder(BubbleBorder* border) {
- bubble_border_ = border;
- set_border(bubble_border_);
+void BubbleFrameView::SetBubbleBorder(scoped_ptr<BubbleBorder> border) {
+ bubble_border_ = border.get();
+ SetBorder(border.PassAs<Border>());
// Update the background, which relies on the border.
- set_background(new views::BubbleBackground(border));
+ set_background(new views::BubbleBackground(bubble_border_));
}
void BubbleFrameView::SetTitlebarExtraView(View* view) {
diff --git a/ui/views/bubble/bubble_frame_view.h b/ui/views/bubble/bubble_frame_view.h
index d033c8d..b72867b 100644
--- a/ui/views/bubble/bubble_frame_view.h
+++ b/ui/views/bubble/bubble_frame_view.h
@@ -55,9 +55,9 @@ class VIEWS_EXPORT BubbleFrameView : public NonClientFrameView,
// Overridden from ButtonListener:
virtual void ButtonPressed(Button* sender, const ui::Event& event) OVERRIDE;
- // Use bubble_border() and SetBubbleBorder(), not border() and set_border().
+ // Use bubble_border() and SetBubbleBorder(), not border() and SetBorder().
BubbleBorder* bubble_border() const { return bubble_border_; }
- void SetBubbleBorder(BubbleBorder* border);
+ void SetBubbleBorder(scoped_ptr<BubbleBorder> border);
gfx::Insets content_margins() const { return content_margins_; }
diff --git a/ui/views/bubble/bubble_frame_view_unittest.cc b/ui/views/bubble/bubble_frame_view_unittest.cc
index ef5d58d..1bd9e34 100644
--- a/ui/views/bubble/bubble_frame_view_unittest.cc
+++ b/ui/views/bubble/bubble_frame_view_unittest.cc
@@ -23,7 +23,8 @@ class TestBubbleFrameView : public BubbleFrameView {
TestBubbleFrameView()
: BubbleFrameView(gfx::Insets(kMargin, kMargin, kMargin, kMargin)),
available_bounds_(gfx::Rect(0, 0, 1000, 1000)) {
- SetBubbleBorder(new BubbleBorder(kArrow, BubbleBorder::NO_SHADOW, kColor));
+ SetBubbleBorder(scoped_ptr<views::BubbleBorder>(
+ new BubbleBorder(kArrow, BubbleBorder::NO_SHADOW, kColor)));
}
virtual ~TestBubbleFrameView() {}
diff --git a/ui/views/bubble/tray_bubble_view.cc b/ui/views/bubble/tray_bubble_view.cc
index 4b67515..7a4209f 100644
--- a/ui/views/bubble/tray_bubble_view.cc
+++ b/ui/views/bubble/tray_bubble_view.cc
@@ -412,7 +412,7 @@ bool TrayBubbleView::CanActivate() const {
NonClientFrameView* TrayBubbleView::CreateNonClientFrameView(Widget* widget) {
BubbleFrameView* frame = new BubbleFrameView(margins());
- frame->SetBubbleBorder(bubble_border_);
+ frame->SetBubbleBorder(scoped_ptr<views::BubbleBorder>(bubble_border_));
return frame;
}
diff --git a/ui/views/color_chooser/color_chooser_view.cc b/ui/views/color_chooser/color_chooser_view.cc
index c35701b..3108228 100644
--- a/ui/views/color_chooser/color_chooser_view.cc
+++ b/ui/views/color_chooser/color_chooser_view.cc
@@ -253,7 +253,7 @@ ColorChooserView::SaturationValueView::SaturationValueView(
: chooser_view_(chooser_view),
hue_(0) {
SetFocusable(false);
- set_border(Border::CreateSolidBorder(kBorderWidth, SK_ColorGRAY));
+ SetBorder(Border::CreateSolidBorder(kBorderWidth, SK_ColorGRAY));
}
void ColorChooserView::SaturationValueView::OnHueChanged(SkScalar hue) {
@@ -349,7 +349,7 @@ class ColorChooserView::SelectedColorPatchView : public views::View {
ColorChooserView::SelectedColorPatchView::SelectedColorPatchView() {
SetFocusable(false);
SetVisible(true);
- set_border(Border::CreateSolidBorder(kBorderWidth, SK_ColorGRAY));
+ SetBorder(Border::CreateSolidBorder(kBorderWidth, SK_ColorGRAY));
}
void ColorChooserView::SelectedColorPatchView::SetColor(SkColor color) {
diff --git a/ui/views/controls/button/blue_button.cc b/ui/views/controls/button/blue_button.cc
index 4da321c..b5c0b15 100644
--- a/ui/views/controls/button/blue_button.cc
+++ b/ui/views/controls/button/blue_button.cc
@@ -30,7 +30,7 @@ BlueButton::BlueButton(ButtonListener* listener, const base::string16& text)
// Insets for splitting the images.
const gfx::Insets insets(5, 5, 5, 5);
- LabelButtonBorder* button_border = new LabelButtonBorder(style());
+ scoped_ptr<LabelButtonBorder> button_border(new LabelButtonBorder(style()));
ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
button_border->SetPainter(false, STATE_NORMAL, Painter::CreateImagePainter(
*rb.GetImageSkiaNamed(IDR_BLUE_BUTTON_NORMAL), insets));
@@ -48,7 +48,7 @@ BlueButton::BlueButton(ButtonListener* listener, const base::string16& text)
*rb.GetImageSkiaNamed(IDR_BLUE_BUTTON_FOCUSED_PRESSED), insets));
button_border->SetPainter(true, STATE_DISABLED, Painter::CreateImagePainter(
*rb.GetImageSkiaNamed(IDR_BLUE_BUTTON_DISABLED), insets));
- set_border(button_border);
+ SetBorder(button_border.PassAs<Border>());
}
BlueButton::~BlueButton() {}
diff --git a/ui/views/controls/button/checkbox.cc b/ui/views/controls/button/checkbox.cc
index a17102f..ed9eaa82 100644
--- a/ui/views/controls/button/checkbox.cc
+++ b/ui/views/controls/button/checkbox.cc
@@ -19,12 +19,12 @@ Checkbox::Checkbox(const base::string16& label)
: LabelButton(NULL, label),
checked_(false) {
SetHorizontalAlignment(gfx::ALIGN_LEFT);
- LabelButtonBorder* button_border = new LabelButtonBorder(style());
+ scoped_ptr<LabelButtonBorder> button_border(new LabelButtonBorder(style()));
button_border->SetPainter(false, STATE_HOVERED, NULL);
button_border->SetPainter(false, STATE_PRESSED, NULL);
// Inset the trailing side by a couple pixels for the focus border.
button_border->set_insets(gfx::Insets(0, 0, 0, 2));
- set_border(button_border);
+ SetBorder(button_border.PassAs<Border>());
SetFocusable(true);
ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
diff --git a/ui/views/controls/button/image_button_unittest.cc b/ui/views/controls/button/image_button_unittest.cc
index 995b205..734ffbd 100644
--- a/ui/views/controls/button/image_button_unittest.cc
+++ b/ui/views/controls/button/image_button_unittest.cc
@@ -116,11 +116,11 @@ TEST_F(ImageButtonTest, ImagePositionWithBorder) {
EXPECT_EQ(gfx::Point().ToString(),
button.ComputeImagePaintPosition(image).ToString());
- button.set_border(views::Border::CreateEmptyBorder(10, 5, 0, 0));
+ button.SetBorder(views::Border::CreateEmptyBorder(10, 5, 0, 0));
EXPECT_EQ(gfx::Point(5, 10).ToString(),
button.ComputeImagePaintPosition(image).ToString());
- button.set_border(NULL);
+ button.SetBorder(Border::NullBorder());
button.SetBounds(0, 0, 50, 50);
EXPECT_EQ(gfx::Point().ToString(),
button.ComputeImagePaintPosition(image).ToString());
@@ -129,7 +129,7 @@ TEST_F(ImageButtonTest, ImagePositionWithBorder) {
ImageButton::ALIGN_MIDDLE);
EXPECT_EQ(gfx::Point(15, 10).ToString(),
button.ComputeImagePaintPosition(image).ToString());
- button.set_border(views::Border::CreateEmptyBorder(10, 10, 0, 0));
+ button.SetBorder(views::Border::CreateEmptyBorder(10, 10, 0, 0));
EXPECT_EQ(gfx::Point(20, 15).ToString(),
button.ComputeImagePaintPosition(image).ToString());
}
diff --git a/ui/views/controls/button/label_button.cc b/ui/views/controls/button/label_button.cc
index 95ec214..23ffa95 100644
--- a/ui/views/controls/button/label_button.cc
+++ b/ui/views/controls/button/label_button.cc
@@ -159,7 +159,7 @@ void LabelButton::SetStyle(ButtonStyle style) {
ResetColorsFromNativeTheme();
- UpdateThemedBorder(new LabelButtonBorder(style_));
+ UpdateThemedBorder(scoped_ptr<Border>(new LabelButtonBorder(style_)));
// Invalidate the layout to pickup the new insets from the border.
InvalidateLayout();
@@ -339,15 +339,15 @@ void LabelButton::UpdateImage() {
image_->SetImage(GetImage(state()));
}
-void LabelButton::UpdateThemedBorder(LabelButtonBorder* label_button_border) {
+void LabelButton::UpdateThemedBorder(scoped_ptr<Border> label_button_border) {
#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
views::LinuxUI* linux_ui = views::LinuxUI::instance();
if (linux_ui) {
- set_border(linux_ui->CreateNativeBorder(this, label_button_border));
+ SetBorder(linux_ui->CreateNativeBorder(this, label_button_border.Pass()));
} else
#endif
{
- set_border(label_button_border);
+ SetBorder(label_button_border.Pass());
}
}
diff --git a/ui/views/controls/button/label_button.h b/ui/views/controls/button/label_button.h
index 1951421..0bbe7fe 100644
--- a/ui/views/controls/button/label_button.h
+++ b/ui/views/controls/button/label_button.h
@@ -96,10 +96,10 @@ class VIEWS_EXPORT LabelButton : public CustomButton,
// Updates the image view to contain the appropriate button state image.
void UpdateImage();
- // Updates our border with a specific LabelButtonBorder instance which has
- // different insets, etc. This may wrap the border in an object which will
- // draw a native style border.
- void UpdateThemedBorder(LabelButtonBorder* label_button_border);
+ // Updates our border with a specific Border instance which has different
+ // insets, etc. This may wrap the border in an object which will draw a
+ // native style border.
+ void UpdateThemedBorder(scoped_ptr<Border> border);
// NativeThemeDelegate:
virtual gfx::Rect GetThemePaintRect() const OVERRIDE;
diff --git a/ui/views/controls/button/text_button.cc b/ui/views/controls/button/text_button.cc
index 03f2fda..3ebd5b7 100644
--- a/ui/views/controls/button/text_button.cc
+++ b/ui/views/controls/button/text_button.cc
@@ -603,7 +603,7 @@ TextButton::TextButton(ButtonListener* listener, const base::string16& text)
icon_text_spacing_(kDefaultIconTextSpacing),
ignore_minimum_size_(true),
full_justification_(false) {
- set_border(new TextButtonDefaultBorder);
+ SetBorder(scoped_ptr<Border>(new TextButtonDefaultBorder));
SetFocusPainter(Painter::CreateDashedFocusPainterWithInsets(
gfx::Insets(kFocusRectInset, kFocusRectInset,
kFocusRectInset, kFocusRectInset)));
diff --git a/ui/views/controls/combobox/combobox.cc b/ui/views/controls/combobox/combobox.cc
index 1f0b9fd..bfbafa5 100644
--- a/ui/views/controls/combobox/combobox.cc
+++ b/ui/views/controls/combobox/combobox.cc
@@ -593,12 +593,12 @@ void Combobox::UpdateFromModel() {
}
void Combobox::UpdateBorder() {
- FocusableBorder* border = new FocusableBorder();
+ scoped_ptr<FocusableBorder> border(new FocusableBorder());
if (style_ == STYLE_NOTIFY_ON_CLICK)
border->SetInsets(8, 13, 8, 13);
if (invalid_)
border->SetColor(kWarningColor);
- set_border(border);
+ SetBorder(border.PassAs<Border>());
}
void Combobox::AdjustBoundsForRTLUI(gfx::Rect* rect) const {
diff --git a/ui/views/controls/label_unittest.cc b/ui/views/controls/label_unittest.cc
index 640b9d6..1376138 100644
--- a/ui/views/controls/label_unittest.cc
+++ b/ui/views/controls/label_unittest.cc
@@ -169,10 +169,8 @@ TEST(LabelTest, SingleLineSizing) {
// Test everything with borders.
gfx::Insets border(10, 20, 30, 40);
- label.set_border(Border::CreateEmptyBorder(border.top(),
- border.left(),
- border.bottom(),
- border.right()));
+ label.SetBorder(Border::CreateEmptyBorder(
+ border.top(), border.left(), border.bottom(), border.right()));
// GetPreferredSize and borders.
label.SetBounds(0, 0, 0, 0);
@@ -250,10 +248,8 @@ TEST(LabelTest, MultiLineSizing) {
// Test everything with borders.
gfx::Insets border(10, 20, 30, 40);
- label.set_border(Border::CreateEmptyBorder(border.top(),
- border.left(),
- border.bottom(),
- border.right()));
+ label.SetBorder(Border::CreateEmptyBorder(
+ border.top(), border.left(), border.bottom(), border.right()));
// SizeToFit and borders.
label.SizeToFit(0);
@@ -391,10 +387,8 @@ TEST(LabelTest, DrawSingleLineString) {
// Test single line drawing with a border.
gfx::Insets border(39, 34, 8, 96);
- label.set_border(Border::CreateEmptyBorder(border.top(),
- border.left(),
- border.bottom(),
- border.right()));
+ label.SetBorder(Border::CreateEmptyBorder(
+ border.top(), border.left(), border.bottom(), border.right()));
gfx::Size required_size_with_border(label.GetPreferredSize());
EXPECT_EQ(required_size.width() + border.width(),
@@ -534,10 +528,8 @@ TEST(LabelTest, DrawMultiLineString) {
// Test multiline drawing with a border.
gfx::Insets border(19, 92, 23, 2);
- label.set_border(Border::CreateEmptyBorder(border.top(),
- border.left(),
- border.bottom(),
- border.right()));
+ label.SetBorder(Border::CreateEmptyBorder(
+ border.top(), border.left(), border.bottom(), border.right()));
label.SizeToFit(0);
label.SetBounds(label.x(),
label.y(),
@@ -668,10 +660,8 @@ TEST(LabelTest, DrawSingleLineStringInRTL) {
// Test single line drawing with a border.
gfx::Insets border(39, 34, 8, 96);
- label.set_border(Border::CreateEmptyBorder(border.top(),
- border.left(),
- border.bottom(),
- border.right()));
+ label.SetBorder(Border::CreateEmptyBorder(
+ border.top(), border.left(), border.bottom(), border.right()));
gfx::Size required_size_with_border(label.GetPreferredSize());
EXPECT_EQ(required_size.width() + border.width(),
@@ -817,10 +807,8 @@ TEST(LabelTest, DrawMultiLineStringInRTL) {
// Test multiline drawing with a border.
gfx::Insets border(19, 92, 23, 2);
- label.set_border(Border::CreateEmptyBorder(border.top(),
- border.left(),
- border.bottom(),
- border.right()));
+ label.SetBorder(Border::CreateEmptyBorder(
+ border.top(), border.left(), border.bottom(), border.right()));
label.SizeToFit(0);
label.SetBounds(label.x(),
label.y(),
diff --git a/ui/views/controls/menu/menu_scroll_view_container.cc b/ui/views/controls/menu/menu_scroll_view_container.cc
index 7b8edbe..5bb0a4a 100644
--- a/ui/views/controls/menu/menu_scroll_view_container.cc
+++ b/ui/views/controls/menu/menu_scroll_view_container.cc
@@ -299,13 +299,14 @@ void MenuScrollViewContainer::CreateDefaultBorder() {
int right = menu_config.menu_horizontal_border_size + padding;
if (use_border) {
- set_border(views::Border::CreateBorderPainter(
- new views::RoundRectPainter(menu_config.native_theme->GetSystemColor(
+ SetBorder(views::Border::CreateBorderPainter(
+ new views::RoundRectPainter(
+ menu_config.native_theme->GetSystemColor(
ui::NativeTheme::kColorId_MenuBorderColor),
menu_config.corner_radius),
- gfx::Insets(top, left, bottom, right)));
+ gfx::Insets(top, left, bottom, right)));
} else {
- set_border(Border::CreateEmptyBorder(top, left, bottom, right));
+ SetBorder(Border::CreateEmptyBorder(top, left, bottom, right));
}
}
@@ -313,7 +314,7 @@ void MenuScrollViewContainer::CreateBubbleBorder() {
bubble_border_ = new BubbleBorder(arrow_,
BubbleBorder::SMALL_SHADOW,
SK_ColorWHITE);
- set_border(bubble_border_);
+ SetBorder(scoped_ptr<Border>(bubble_border_));
set_background(new BubbleBackground(bubble_border_));
}
diff --git a/ui/views/controls/menu/menu_scroll_view_container.h b/ui/views/controls/menu/menu_scroll_view_container.h
index 83baa2a..929b738 100644
--- a/ui/views/controls/menu/menu_scroll_view_container.h
+++ b/ui/views/controls/menu/menu_scroll_view_container.h
@@ -65,7 +65,7 @@ class MenuScrollViewContainer : public View {
// If set the currently set border is a bubble border.
BubbleBorder::Arrow arrow_;
- // The currently set border.
+ // Weak reference to the currently set border.
BubbleBorder* bubble_border_;
DISALLOW_COPY_AND_ASSIGN(MenuScrollViewContainer);
diff --git a/ui/views/controls/scroll_view.cc b/ui/views/controls/scroll_view.cc
index d835c1e..22dbcb0 100644
--- a/ui/views/controls/scroll_view.cc
+++ b/ui/views/controls/scroll_view.cc
@@ -31,8 +31,9 @@ class ScrollViewWithBorder : public views::ScrollView {
private:
void SetThemeSpecificState() {
- set_border(Border::CreateSolidBorder(
- 1, GetNativeTheme()->GetSystemColor(
+ SetBorder(Border::CreateSolidBorder(
+ 1,
+ GetNativeTheme()->GetSystemColor(
ui::NativeTheme::kColorId_UnfocusedBorderColor)));
}
diff --git a/ui/views/controls/styled_label_unittest.cc b/ui/views/controls/styled_label_unittest.cc
index 841f7b7..081f45f 100644
--- a/ui/views/controls/styled_label_unittest.cc
+++ b/ui/views/controls/styled_label_unittest.cc
@@ -109,7 +109,7 @@ TEST_F(StyledLabelTest, BasicWrapping) {
StyledLabelContentHeightForWidth(label_preferred_size.width()));
// Also respect the border.
- styled()->set_border(Border::CreateEmptyBorder(3, 3, 3, 3));
+ styled()->SetBorder(Border::CreateEmptyBorder(3, 3, 3, 3));
styled()->SetBounds(
0,
0,
diff --git a/ui/views/controls/textfield/textfield.cc b/ui/views/controls/textfield/textfield.cc
index 5c6c801..8d91445 100644
--- a/ui/views/controls/textfield/textfield.cc
+++ b/ui/views/controls/textfield/textfield.cc
@@ -90,7 +90,7 @@ Textfield::Textfield()
weak_ptr_factory_(this) {
set_context_menu_controller(this);
set_drag_controller(this);
- set_border(new FocusableBorder());
+ SetBorder(scoped_ptr<Border>(new FocusableBorder()));
SetFocusable(true);
if (ViewsDelegate::views_delegate) {
diff --git a/ui/views/corewm/tooltip_aura.cc b/ui/views/corewm/tooltip_aura.cc
index 186d2db..1214a6b 100644
--- a/ui/views/corewm/tooltip_aura.cc
+++ b/ui/views/corewm/tooltip_aura.cc
@@ -66,9 +66,8 @@ TooltipAura::TooltipAura(gfx::ScreenType screen_type)
label_.set_background(
views::Background::CreateSolidBackground(kTooltipBackground));
if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kNoDropShadows)) {
- label_.set_border(
- views::Border::CreateSolidBorder(kTooltipBorderWidth,
- kTooltipBorder));
+ label_.SetBorder(
+ views::Border::CreateSolidBorder(kTooltipBorderWidth, kTooltipBorder));
}
label_.set_owned_by_client();
label_.SetMultiLine(true);
diff --git a/ui/views/examples/button_example.cc b/ui/views/examples/button_example.cc
index 45b75d1..c4becd3 100644
--- a/ui/views/examples/button_example.cc
+++ b/ui/views/examples/button_example.cc
@@ -126,10 +126,13 @@ void ButtonExample::TextButtonPressed(const ui::Event& event) {
text_button_->text().length() < 50 ? kLongText : kTextButton));
} else {
use_native_theme_border_ = !use_native_theme_border_;
- if (use_native_theme_border_)
- text_button_->set_border(new TextButtonNativeThemeBorder(text_button_));
- else
- text_button_->set_border(new TextButtonDefaultBorder());
+ if (use_native_theme_border_) {
+ text_button_->SetBorder(scoped_ptr<views::Border>(
+ new TextButtonNativeThemeBorder(text_button_)));
+ } else {
+ text_button_->SetBorder(
+ scoped_ptr<views::Border>(new TextButtonDefaultBorder()));
+ }
}
} else if (event.IsAltDown()) {
text_button_->SetIsDefault(!text_button_->is_default());
diff --git a/ui/views/examples/label_example.cc b/ui/views/examples/label_example.cc
index fe7c8f0..f9c8656 100644
--- a/ui/views/examples/label_example.cc
+++ b/ui/views/examples/label_example.cc
@@ -32,7 +32,7 @@ class PreferredSizeLabel : public Label {
};
PreferredSizeLabel::PreferredSizeLabel() : Label() {
- set_border(Border::CreateSolidBorder(2, SK_ColorCYAN));
+ SetBorder(Border::CreateSolidBorder(2, SK_ColorCYAN));
}
PreferredSizeLabel::~PreferredSizeLabel() {}
diff --git a/ui/views/examples/multiline_example.cc b/ui/views/examples/multiline_example.cc
index 30dcd6a..86685a4 100644
--- a/ui/views/examples/multiline_example.cc
+++ b/ui/views/examples/multiline_example.cc
@@ -27,7 +27,7 @@ class MultilineExample::RenderTextView : public View {
render_text_->SetHorizontalAlignment(gfx::ALIGN_CENTER);
render_text_->SetColor(SK_ColorBLACK);
render_text_->SetMultiline(true);
- set_border(Border::CreateSolidBorder(2, SK_ColorGRAY));
+ SetBorder(Border::CreateSolidBorder(2, SK_ColorGRAY));
}
virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE {
@@ -108,7 +108,7 @@ void MultilineExample::CreateExampleView(View* container) {
label_ = new Label();
label_->SetText(ASCIIToUTF16(kTestString));
label_->SetMultiLine(true);
- label_->set_border(Border::CreateSolidBorder(2, SK_ColorCYAN));
+ label_->SetBorder(Border::CreateSolidBorder(2, SK_ColorCYAN));
label_checkbox_ = new Checkbox(ASCIIToUTF16("views::Label:"));
label_checkbox_->SetChecked(true);
diff --git a/ui/views/examples/text_example.cc b/ui/views/examples/text_example.cc
index 64e9107..81e4cfc 100644
--- a/ui/views/examples/text_example.cc
+++ b/ui/views/examples/text_example.cc
@@ -187,7 +187,7 @@ Combobox* TextExample::AddCombobox(GridLayout* layout,
void TextExample::CreateExampleView(View* container) {
text_view_ = new TextExampleView;
- text_view_->set_border(Border::CreateSolidBorder(1, SK_ColorGRAY));
+ text_view_->SetBorder(Border::CreateSolidBorder(1, SK_ColorGRAY));
GridLayout* layout = new GridLayout(container);
container->SetLayoutManager(layout);
diff --git a/ui/views/focus/focus_traversal_unittest.cc b/ui/views/focus/focus_traversal_unittest.cc
index b8c8d3e..a83bbab 100644
--- a/ui/views/focus/focus_traversal_unittest.cc
+++ b/ui/views/focus/focus_traversal_unittest.cc
@@ -296,7 +296,7 @@ void FocusTraversalTest::InitContentView() {
cb->set_id(kTopCheckBoxID);
left_container_ = new PaneView();
- left_container_->set_border(Border::CreateSolidBorder(1, SK_ColorBLACK));
+ left_container_->SetBorder(Border::CreateSolidBorder(1, SK_ColorBLACK));
left_container_->set_background(
Background::CreateSolidBackground(240, 240, 240));
left_container_->set_id(kLeftContainerID);
@@ -381,7 +381,7 @@ void FocusTraversalTest::InitContentView() {
left_container_->AddChildView(combobox);
right_container_ = new PaneView();
- right_container_->set_border(Border::CreateSolidBorder(1, SK_ColorBLACK));
+ right_container_->SetBorder(Border::CreateSolidBorder(1, SK_ColorBLACK));
right_container_->set_background(
Background::CreateSolidBackground(240, 240, 240));
right_container_->set_id(kRightContainerID);
@@ -412,7 +412,7 @@ void FocusTraversalTest::InitContentView() {
y += radio_button_height + gap_between_radio_buttons;
View* inner_container = new View();
- inner_container->set_border(Border::CreateSolidBorder(1, SK_ColorBLACK));
+ inner_container->SetBorder(Border::CreateSolidBorder(1, SK_ColorBLACK));
inner_container->set_background(
Background::CreateSolidBackground(230, 230, 230));
inner_container->set_id(kInnerContainerID);
diff --git a/ui/views/linux_ui/linux_ui.h b/ui/views/linux_ui/linux_ui.h
index 2ae847f..2398634 100644
--- a/ui/views/linux_ui/linux_ui.h
+++ b/ui/views/linux_ui/linux_ui.h
@@ -102,9 +102,9 @@ class VIEWS_EXPORT LinuxUI : public ui::LinuxInputMethodContextFactory,
const std::string& content_type, int size) const = 0;
// Builds a Border which paints the native button style.
- virtual Border* CreateNativeBorder(
+ virtual scoped_ptr<Border> CreateNativeBorder(
views::CustomButton* owning_button,
- views::Border* border) = 0;
+ scoped_ptr<views::Border> border) = 0;
// Notifies the observer about changes about how window buttons should be
// laid out. If the order is anything other than the default min,max,close on
diff --git a/ui/views/touchui/touch_editing_menu.cc b/ui/views/touchui/touch_editing_menu.cc
index 986d01b..0536e74 100644
--- a/ui/views/touchui/touch_editing_menu.cc
+++ b/ui/views/touchui/touch_editing_menu.cc
@@ -141,7 +141,7 @@ Button* TouchEditingMenuView::CreateButton(const base::string16& title,
int h_border = (kMenuButtonWidth - gfx::GetStringWidth(label, font_list)) / 2;
button_border->set_insets(
gfx::Insets(v_border, h_border, v_border, h_border));
- button->set_border(button_border.release());
+ button->SetBorder(button_border.PassAs<Border>());
button->SetFontList(font_list);
button->set_tag(tag);
return button;
diff --git a/ui/views/view.cc b/ui/views/view.cc
index 9e6d59d..c86c4af 100644
--- a/ui/views/view.cc
+++ b/ui/views/view.cc
@@ -804,9 +804,7 @@ void View::set_background(Background* b) {
background_.reset(b);
}
-void View::set_border(Border* b) {
- border_.reset(b);
-}
+void View::SetBorder(scoped_ptr<Border> b) { border_ = b.Pass(); }
ui::ThemeProvider* View::GetThemeProvider() const {
const Widget* widget = GetWidget();
diff --git a/ui/views/view.h b/ui/views/view.h
index aba1194..e2cd1f6 100644
--- a/ui/views/view.h
+++ b/ui/views/view.h
@@ -513,7 +513,7 @@ class VIEWS_EXPORT View : public ui::LayerDelegate,
Background* background() { return background_.get(); }
// The border object is owned by this object and may be NULL.
- void set_border(Border* b);
+ void SetBorder(scoped_ptr<Border> b);
const Border* border() const { return border_.get(); }
Border* border() { return border_.get(); }
diff --git a/ui/views/window/dialog_delegate.cc b/ui/views/window/dialog_delegate.cc
index 824db56..a4849e7 100644
--- a/ui/views/window/dialog_delegate.cc
+++ b/ui/views/window/dialog_delegate.cc
@@ -169,14 +169,11 @@ NonClientFrameView* DialogDelegate::CreateDialogFrameView(
const SkColor color = widget->GetNativeTheme()->GetSystemColor(
ui::NativeTheme::kColorId_DialogBackground);
if (force_opaque_border) {
- frame->SetBubbleBorder(new BubbleBorder(
- BubbleBorder::NONE,
- BubbleBorder::NO_SHADOW_OPAQUE_BORDER,
- color));
+ frame->SetBubbleBorder(scoped_ptr<BubbleBorder>(new BubbleBorder(
+ BubbleBorder::NONE, BubbleBorder::NO_SHADOW_OPAQUE_BORDER, color)));
} else {
- frame->SetBubbleBorder(new BubbleBorder(BubbleBorder::FLOAT,
- BubbleBorder::SMALL_SHADOW,
- color));
+ frame->SetBubbleBorder(scoped_ptr<BubbleBorder>(new BubbleBorder(
+ BubbleBorder::FLOAT, BubbleBorder::SMALL_SHADOW, color)));
}
DialogDelegate* delegate = widget->widget_delegate()->AsDialogDelegate();
if (delegate) {