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

Unified Diff: ash/system/network/tray_network.cc

Issue 9753019: ash: Add a bluetooth entry in the uber tray. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/system/ime/tray_ime.cc ('k') | ash/system/tray/system_tray.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/system/network/tray_network.cc
diff --git a/ash/system/network/tray_network.cc b/ash/system/network/tray_network.cc
index c36b57af24b66ffce1f7cb3235da5325f7a4b47e..009cc7f50b53fe6618ba27c930e0f2fbd75deae7 100644
--- a/ash/system/network/tray_network.cc
+++ b/ash/system/network/tray_network.cc
@@ -8,6 +8,8 @@
#include "ash/system/tray/system_tray.h"
#include "ash/system/tray/system_tray_delegate.h"
#include "ash/system/tray/tray_constants.h"
+#include "ash/system/tray/tray_item_more.h"
+#include "ash/system/tray/tray_views.h"
#include "base/utf_string_conversions.h"
#include "grit/ash_strings.h"
#include "grit/ui_resources.h"
@@ -24,99 +26,9 @@
namespace {
-// Width of the icon, and the padding on the right of the icon. These are used
-// to make sure that all icons are of the same size so that they line up
-// properly, including the items that don't have any icons.
-const int kIconWidth = 27;
-const int kIconPaddingLeft = 5;
-
// Height of the list of networks in the popup.
const int kNetworkListHeight = 160;
-// An image view with that always has a fixed width (kIconWidth) so that
-// all the items line up properly.
-class FixedWidthImageView : public views::ImageView {
- public:
- FixedWidthImageView() {
- SetHorizontalAlignment(views::ImageView::CENTER);
- SetVerticalAlignment(views::ImageView::CENTER);
- }
-
- virtual ~FixedWidthImageView() {}
-
- private:
- virtual gfx::Size GetPreferredSize() OVERRIDE {
- gfx::Size size = views::ImageView::GetPreferredSize();
- return gfx::Size(kIconWidth, size.height());
- }
-
- DISALLOW_COPY_AND_ASSIGN(FixedWidthImageView);
-};
-
-class ViewClickListener {
- public:
- virtual ~ViewClickListener() {}
- virtual void ClickedOn(views::View* sender) = 0;
-};
-
-class HoverHighlightView : public views::View {
- public:
- explicit HoverHighlightView(ViewClickListener* listener)
- : listener_(listener) {
- set_notify_enter_exit_on_child(true);
- }
-
- virtual ~HoverHighlightView() {}
-
- // Convenience function for adding an icon and a label.
- void AddIconAndLabel(const SkBitmap& image,
- const string16& text,
- gfx::Font::FontStyle style) {
- SetLayoutManager(new views::BoxLayout(
- views::BoxLayout::kHorizontal, 0, 3, kIconPaddingLeft));
- views::ImageView* image_view = new FixedWidthImageView;
- image_view->SetImage(image);
- AddChildView(image_view);
-
- views::Label* label = new views::Label(text);
- label->SetFont(label->font().DeriveFont(0, style));
- AddChildView(label);
- }
-
- void AddLabel(const string16& text) {
- SetLayoutManager(new views::FillLayout());
- views::Label* label = new views::Label(text);
- label->set_border(views::Border::CreateEmptyBorder(
- 5, kIconWidth + kIconPaddingLeft, 5, 0));
- label->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
- AddChildView(label);
- }
-
- private:
- // Overridden from views::View.
- virtual bool OnMousePressed(const views::MouseEvent& event) OVERRIDE {
- if (!listener_)
- return false;
- listener_->ClickedOn(this);
- return true;
- }
-
- virtual void OnMouseEntered(const views::MouseEvent& event) OVERRIDE {
- set_background(views::Background::CreateSolidBackground(
- ash::kHoverBackgroundColor));
- SchedulePaint();
- }
-
- virtual void OnMouseExited(const views::MouseEvent& event) OVERRIDE {
- set_background(NULL);
- SchedulePaint();
- }
-
- ViewClickListener* listener_;
-
- DISALLOW_COPY_AND_ASSIGN(HoverHighlightView);
-};
-
// A custom scroll-view that has a specified dimension.
class FixedSizedScrollView : public views::ScrollView {
public:
@@ -198,9 +110,10 @@ class NetworkTrayView : public views::View {
DISALLOW_COPY_AND_ASSIGN(NetworkTrayView);
};
-class NetworkDefaultView : public views::View {
+class NetworkDefaultView : public TrayItemMore {
public:
- explicit NetworkDefaultView(SystemTrayItem* owner) : owner_(owner) {
+ explicit NetworkDefaultView(SystemTrayItem* owner)
+ : TrayItemMore(owner) {
SetLayoutManager(new views::BoxLayout(views::BoxLayout::kHorizontal,
kTrayPopupPaddingHorizontal, 0, kTrayPopupPaddingBetweenItems));
@@ -210,10 +123,7 @@ class NetworkDefaultView : public views::View {
label_ = new views::Label();
AddChildView(label_);
- more_ = new views::ImageView;
- more_->SetImage(ui::ResourceBundle::GetSharedInstance().GetImageNamed(
- IDR_AURA_UBER_TRAY_MORE).ToSkBitmap());
- AddChildView(more_);
+ AddMore();
Update(Shell::GetInstance()->tray_delegate()->
GetMostRelevantNetworkIcon(true));
@@ -227,26 +137,8 @@ class NetworkDefaultView : public views::View {
}
private:
- // Overridden from views::View.
- virtual void Layout() OVERRIDE {
- // Let the box-layout do the layout first. Then move the '>' arrow to right
- // align.
- views::View::Layout();
-
- gfx::Rect bounds = more_->bounds();
- bounds.set_x(width() - more_->width() - kTrayPopupPaddingBetweenItems);
- more_->SetBoundsRect(bounds);
- }
-
- virtual bool OnMousePressed(const views::MouseEvent& event) OVERRIDE {
- owner_->PopupDetailedView(0, true);
- return true;
- }
-
- SystemTrayItem* owner_;
NetworkTrayView* icon_;
views::Label* label_;
- views::ImageView* more_;
DISALLOW_COPY_AND_ASSIGN(NetworkDefaultView);
};
« no previous file with comments | « ash/system/ime/tray_ime.cc ('k') | ash/system/tray/system_tray.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698