Index: ash/common/system/tray/tray_popup_utils.cc |
diff --git a/ash/common/system/tray/tray_popup_layout_factory.cc b/ash/common/system/tray/tray_popup_utils.cc |
similarity index 60% |
rename from ash/common/system/tray/tray_popup_layout_factory.cc |
rename to ash/common/system/tray/tray_popup_utils.cc |
index 16941c23835d874ac235768e8b51fb82837c5614..dc707d81198713cbea59ab5d604e546173358936 100644 |
--- a/ash/common/system/tray/tray_popup_layout_factory.cc |
+++ b/ash/common/system/tray/tray_popup_utils.cc |
@@ -2,12 +2,16 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "ash/common/system/tray/tray_popup_layout_factory.h" |
+#include "ash/common/system/tray/tray_popup_utils.h" |
#include "ash/common/material_design/material_design_controller.h" |
+#include "ash/common/system/tray/fixed_sized_image_view.h" |
#include "ash/common/system/tray/tray_constants.h" |
-#include "ash/common/system/tray/tri_view.h" |
+#include "ash/common/system/tray/tray_popup_label_button.h" |
+#include "ui/views/border.h" |
#include "ui/views/controls/button/label_button.h" |
+#include "ui/views/controls/image_view.h" |
+#include "ui/views/controls/label.h" |
#include "ui/views/layout/box_layout.h" |
namespace ash { |
@@ -41,7 +45,7 @@ std::unique_ptr<views::LayoutManager> CreateDefaultEndsLayoutManager() { |
} // namespace |
-TriView* TrayPopupLayoutFactory::CreateDefaultRowView() { |
+TriView* TrayPopupUtils::CreateDefaultRowView() { |
TriView* tri_view = new TriView(0 /* padding_between_items */); |
tri_view->SetInsets( |
@@ -56,30 +60,62 @@ TriView* TrayPopupLayoutFactory::CreateDefaultRowView() { |
return tri_view; |
} |
-void TrayPopupLayoutFactory::ConfigureDefaultLayout( |
- TriView* tri_view, |
+std::unique_ptr<views::LayoutManager> TrayPopupUtils::CreateLayoutManager( |
TriView::Container container) { |
switch (container) { |
case TriView::Container::START: |
- tri_view->SetContainerLayout(TriView::Container::START, |
- CreateDefaultEndsLayoutManager()); |
+ case TriView::Container::END: |
+ return CreateDefaultEndsLayoutManager(); |
+ case TriView::Container::CENTER: |
+ return CreateDefaultCenterLayoutManager(); |
+ } |
+ // Required by some compilers. |
+ NOTREACHED(); |
+ return nullptr; |
+} |
+ |
+views::Label* TrayPopupUtils::CreateDefaultLabel() { |
+ views::Label* label = new views::Label(); |
+ label->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
+ label->SetBorder( |
+ views::Border::CreateEmptyBorder(0, kTrayPopupLabelHorizontalPadding, 0, |
+ kTrayPopupLabelHorizontalPadding)); |
+ return label; |
+} |
+ |
+views::ImageView* TrayPopupUtils::CreateMainImageView() { |
+ return new FixedSizedImageView( |
+ GetTrayConstant(TRAY_POPUP_ITEM_MAIN_IMAGE_CONTAINER_WIDTH), |
+ GetTrayConstant(TRAY_POPUP_ITEM_HEIGHT)); |
+} |
+ |
+views::ImageView* TrayPopupUtils::CreateMoreImageView() { |
+ views::ImageView* image = new FixedSizedImageView( |
+ GetTrayConstant(TRAY_POPUP_ITEM_MORE_IMAGE_CONTAINER_WIDTH), |
+ GetTrayConstant(TRAY_POPUP_ITEM_HEIGHT)); |
+ image->EnableCanvasFlippingForRTLUI(true); |
+ return image; |
+} |
+ |
+void TrayPopupUtils::ConfigureDefaultLayout(TriView* tri_view, |
+ TriView::Container container) { |
+ switch (container) { |
+ case TriView::Container::START: |
tri_view->SetMinSize( |
TriView::Container::START, |
gfx::Size(GetTrayConstant(TRAY_POPUP_ITEM_MIN_START_WIDTH), 0)); |
break; |
case TriView::Container::CENTER: |
- tri_view->SetContainerLayout(TriView::Container::CENTER, |
- CreateDefaultCenterLayoutManager()); |
tri_view->SetFlexForContainer(TriView::Container::CENTER, 1.f); |
break; |
case TriView::Container::END: |
- tri_view->SetContainerLayout(TriView::Container::END, |
- CreateDefaultEndsLayoutManager()); |
tri_view->SetMinSize( |
TriView::Container::END, |
gfx::Size(GetTrayConstant(TRAY_POPUP_ITEM_MIN_END_WIDTH), 0)); |
break; |
} |
+ |
+ tri_view->SetContainerLayout(container, CreateLayoutManager(container)); |
} |
} // namespace ash |