summaryrefslogtreecommitdiffstats
path: root/ash/system/tray/tray_views.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ash/system/tray/tray_views.cc')
-rw-r--r--ash/system/tray/tray_views.cc50
1 files changed, 50 insertions, 0 deletions
diff --git a/ash/system/tray/tray_views.cc b/ash/system/tray/tray_views.cc
index 84f5f16..50aa8aa 100644
--- a/ash/system/tray/tray_views.cc
+++ b/ash/system/tray/tray_views.cc
@@ -8,14 +8,17 @@
#include "third_party/skia/include/core/SkBitmap.h"
#include "grit/ash_strings.h"
#include "grit/ui_resources.h"
+#include "grit/ui_resources_standard.h"
#include "ui/base/accessibility/accessible_view_state.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/gfx/canvas.h"
#include "ui/gfx/image/image.h"
#include "ui/views/border.h"
+#include "ui/views/controls/button/image_button.h"
#include "ui/views/controls/label.h"
#include "ui/views/layout/box_layout.h"
#include "ui/views/layout/fill_layout.h"
+#include "ui/views/layout/grid_layout.h"
#include "ui/views/painter.h"
namespace ash {
@@ -33,6 +36,7 @@ views::View* CreatePopupHeaderButtonsContainer() {
return view;
}
+const int kNotificationCloseButtonWidth = 60;
}
////////////////////////////////////////////////////////////////////////////////
@@ -448,5 +452,51 @@ void SetupLabelForTray(views::Label* label) {
label->SetShadowOffset(0, 1);
}
+////////////////////////////////////////////////////////////////////////////////
+// TrayNotificationView
+
+TrayNotificationView::TrayNotificationView() {
+}
+
+void TrayNotificationView::InitView(views::View* contents) {
+ set_background(views::Background::CreateSolidBackground(kBackgroundColor));
+
+ views::GridLayout* layout = new views::GridLayout(this);
+ SetLayoutManager(layout);
+
+ AddChildView(contents);
+
+ views::ImageButton* close_button = new views::ImageButton(this);
+ close_button->SetImage(views::CustomButton::BS_NORMAL,
+ ResourceBundle::GetSharedInstance().GetBitmapNamed(
+ IDR_AURA_WINDOW_CLOSE));
+ AddChildView(close_button);
+
+ int contents_width = kTrayPopupWidth - kNotificationCloseButtonWidth;
+ views::ColumnSet* columns = layout->AddColumnSet(0);
+ columns->AddColumn(views::GridLayout::TRAILING, views::GridLayout::FILL,
+ 0, /* resize percent */
+ views::GridLayout::FIXED,
+ contents_width,
+ contents_width);
+ columns->AddColumn(views::GridLayout::CENTER, views::GridLayout::CENTER,
+ 0, /* resize percent */
+ views::GridLayout::FIXED,
+ kNotificationCloseButtonWidth,
+ kNotificationCloseButtonWidth);
+
+ layout->StartRow(0, 0);
+ layout->AddView(contents);
+ layout->AddView(close_button);
+}
+
+TrayNotificationView::~TrayNotificationView() {
+}
+
+void TrayNotificationView::ButtonPressed(views::Button* sender,
+ const views::Event& event) {
+ OnClose();
+}
+
} // namespace internal
} // namespace ash