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

Unified Diff: ash/common/popup_message.cc

Issue 2684313004: Additional cleanup of pre-md system menu user row code. (Closed)
Patch Set: Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/common/popup_message.h ('k') | ash/common/popup_message_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/common/popup_message.cc
diff --git a/ash/common/popup_message.cc b/ash/common/popup_message.cc
deleted file mode 100644
index f745499d8c991a329afec6065c8f34c33221e83d..0000000000000000000000000000000000000000
--- a/ash/common/popup_message.cc
+++ /dev/null
@@ -1,233 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/common/popup_message.h"
-
-#include "ash/common/wm_lookup.h"
-#include "ash/common/wm_window.h"
-#include "grit/ash_resources.h"
-#include "ui/base/resource/resource_bundle.h"
-#include "ui/gfx/geometry/insets.h"
-#include "ui/views/bubble/bubble_dialog_delegate.h"
-#include "ui/views/bubble/bubble_frame_view.h"
-#include "ui/views/controls/image_view.h"
-#include "ui/views/controls/label.h"
-#include "ui/views/layout/box_layout.h"
-#include "ui/views/widget/widget.h"
-#include "ui/wm/core/window_animations.h"
-
-namespace ash {
-namespace {
-const int kMessageTopBottomMargin = 10;
-const int kMessageLeftRightMargin = 10;
-const int kMessageMinHeight = 29 - 2 * kMessageTopBottomMargin;
-const SkColor kMessageTextColor = SkColorSetRGB(0x22, 0x22, 0x22);
-
-// The maximum width of the Message bubble. Borrowed the value from
-// ash/message/message_controller.cc
-const int kMessageMaxWidth = 250;
-
-// The offset for the Message bubble - making sure that the bubble is flush
-// with the shelf. The offset includes the arrow size in pixels as well as
-// the activation bar and other spacing elements.
-const int kArrowOffsetLeftRight = 11;
-const int kArrowOffsetTopBottom = 7;
-
-// The number of pixels between the icon and the text.
-const int kHorizontalPopupPaddingBetweenItems = 10;
-
-// The number of pixels between the text items.
-const int kVerticalPopupPaddingBetweenItems = 10;
-} // namespace
-
-// The implementation of Message of the launcher.
-class PopupMessage::MessageBubble : public views::BubbleDialogDelegateView {
- public:
- MessageBubble(const base::string16& caption,
- const base::string16& message,
- IconType message_type,
- views::View* anchor,
- views::BubbleBorder::Arrow arrow_orientation,
- const gfx::Size& size_override,
- int arrow_offset);
-
- void ClosePopup();
-
- private:
- // views::BubbleDialogDelegateView overrides:
- gfx::Size GetPreferredSize() const override;
- int GetDialogButtons() const override;
-
- // Each component (width/height) can force a size override for that component
- // if not 0.
- gfx::Size size_override_;
-
- DISALLOW_COPY_AND_ASSIGN(MessageBubble);
-};
-
-// static
-const int PopupMessage::kCaptionLabelID = 1000;
-const int PopupMessage::kMessageLabelID = 1001;
-
-PopupMessage::MessageBubble::MessageBubble(const base::string16& caption,
- const base::string16& message,
- IconType message_type,
- views::View* anchor,
- views::BubbleBorder::Arrow arrow,
- const gfx::Size& size_override,
- int arrow_offset)
- : views::BubbleDialogDelegateView(anchor, arrow),
- size_override_(size_override) {
- gfx::Insets insets =
- gfx::Insets(kArrowOffsetTopBottom, kArrowOffsetLeftRight,
- kArrowOffsetTopBottom, kArrowOffsetLeftRight);
- // An anchor can have an asymmetrical border for spacing reasons. Adjust the
- // anchor location for this.
- if (anchor->border())
- insets += anchor->border()->GetInsets();
-
- set_anchor_view_insets(insets);
- set_close_on_deactivate(false);
- set_can_activate(false);
- set_accept_events(false);
-
- set_margins(gfx::Insets(kMessageTopBottomMargin, kMessageLeftRightMargin,
- kMessageTopBottomMargin, kMessageLeftRightMargin));
- set_shadow(views::BubbleBorder::SMALL_SHADOW);
-
- ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
- SetLayoutManager(new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0,
- kHorizontalPopupPaddingBetweenItems));
-
- // Here is the layout:
- // arrow_offset (if not 0)
- // |-------------|
- // | ^
- // +-------------------------------------------------+
- // -| |-
- // icon | [!] Caption in bold which can be multi line | caption_label
- // -| |-
- // | Message text which can be multi line | message_label
- // | as well. |
- // | |-
- // +-------------------------------------------------+
- // |------------details container--------------|
- // Note that the icon, caption and message are optional.
-
- // Add the icon to the first column (if there is one).
- if (message_type != ICON_NONE) {
- views::ImageView* icon = new views::ImageView();
- icon->SetImage(bundle.GetImageNamed(IDR_AURA_WARNING_ICON).ToImageSkia());
- icon->SetVerticalAlignment(views::ImageView::LEADING);
- AddChildView(icon);
- }
-
- // Create a container for the text items and use it as second column.
- views::View* details = new views::View();
- AddChildView(details);
- details->SetLayoutManager(new views::BoxLayout(
- views::BoxLayout::kVertical, 0, 0, kVerticalPopupPaddingBetweenItems));
-
- // The caption label.
- if (!caption.empty()) {
- views::Label* caption_label = new views::Label(caption);
- caption_label->set_id(kCaptionLabelID);
- caption_label->SetMultiLine(true);
- caption_label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
- caption_label->SetFontList(
- bundle.GetFontList(ui::ResourceBundle::BoldFont));
- caption_label->SetEnabledColor(kMessageTextColor);
- details->AddChildView(caption_label);
- }
-
- // The message label.
- if (!message.empty()) {
- views::Label* message_label = new views::Label(message);
- message_label->set_id(kMessageLabelID);
- message_label->SetMultiLine(true);
- message_label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
- message_label->SetEnabledColor(kMessageTextColor);
- details->AddChildView(message_label);
- }
- views::BubbleDialogDelegateView::CreateBubble(this);
-
- // Change the arrow offset if needed.
- if (arrow_offset) {
- // With the creation of the bubble, the bubble got already placed (and
- // possibly re-oriented to fit on the screen). Since it is not possible to
- // set the arrow offset before the creation, we need to set the offset,
- // and the orientation variables again and force a re-placement.
- GetBubbleFrameView()->bubble_border()->set_arrow_offset(arrow_offset);
- GetBubbleFrameView()->bubble_border()->set_arrow(arrow);
- SetAlignment(views::BubbleBorder::ALIGN_ARROW_TO_MID_ANCHOR);
- }
-}
-
-void PopupMessage::MessageBubble::ClosePopup() {
- if (GetWidget())
- GetWidget()->Close();
-}
-
-gfx::Size PopupMessage::MessageBubble::GetPreferredSize() const {
- gfx::Size pref_size = views::BubbleDialogDelegateView::GetPreferredSize();
- // Override the size with either the provided size or adjust it to not
- // violate our minimum / maximum sizes.
- if (size_override_.height())
- pref_size.set_height(size_override_.height());
- else if (pref_size.height() < kMessageMinHeight)
- pref_size.set_height(kMessageMinHeight);
-
- if (size_override_.width())
- pref_size.set_width(size_override_.width());
- else if (pref_size.width() > kMessageMaxWidth)
- pref_size.set_width(kMessageMaxWidth);
-
- return pref_size;
-}
-
-int PopupMessage::MessageBubble::GetDialogButtons() const {
- return ui::DIALOG_BUTTON_NONE;
-}
-
-PopupMessage::PopupMessage(const base::string16& caption,
- const base::string16& message,
- IconType message_type,
- views::View* anchor,
- views::BubbleBorder::Arrow arrow,
- const gfx::Size& size_override,
- int arrow_offset)
- : view_(NULL) {
- view_ = new MessageBubble(caption, message, message_type, anchor, arrow,
- size_override, arrow_offset);
- widget_ = view_->GetWidget();
- WmWindow* window = WmLookup::Get()->GetWindowForWidget(widget_);
- window->SetVisibilityAnimationType(
- ::wm::WINDOW_VISIBILITY_ANIMATION_TYPE_VERTICAL);
- window->SetVisibilityAnimationTransition(::wm::ANIMATE_HIDE);
- view_->GetWidget()->Show();
-}
-
-PopupMessage::~PopupMessage() {
- CancelHidingAnimation();
- Close();
-}
-
-void PopupMessage::Close() {
- if (view_) {
- view_->ClosePopup();
- view_ = NULL;
- widget_ = NULL;
- }
-}
-
-void PopupMessage::CancelHidingAnimation() {
- if (!widget_)
- return;
-
- WmWindow* window = WmLookup::Get()->GetWindowForWidget(widget_);
- if (window)
- window->SetVisibilityAnimationTransition(::wm::ANIMATE_NONE);
-}
-
-} // namespace ash
« no previous file with comments | « ash/common/popup_message.h ('k') | ash/common/popup_message_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698