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

Side by Side Diff: chrome/browser/chromeos/status/status_area_view.cc

Issue 4154002: New statusbar images for ChromeOS (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/chromeos/status/status_area_button.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/chromeos/status/status_area_view.h" 5 #include "chrome/browser/chromeos/status/status_area_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "chrome/browser/chromeos/status/clock_menu_button.h" 9 #include "chrome/browser/chromeos/status/clock_menu_button.h"
10 #include "chrome/browser/chromeos/status/feedback_menu_button.h" 10 #include "chrome/browser/chromeos/status/feedback_menu_button.h"
11 #include "chrome/browser/chromeos/status/input_method_menu_button.h" 11 #include "chrome/browser/chromeos/status/input_method_menu_button.h"
12 #include "chrome/browser/chromeos/status/network_menu_button.h" 12 #include "chrome/browser/chromeos/status/network_menu_button.h"
13 #include "chrome/browser/chromeos/status/power_menu_button.h" 13 #include "chrome/browser/chromeos/status/power_menu_button.h"
14 #include "chrome/browser/chromeos/status/status_area_host.h" 14 #include "chrome/browser/chromeos/status/status_area_host.h"
15 #include "gfx/canvas.h" 15 #include "gfx/canvas.h"
16 16
17 namespace chromeos { 17 namespace chromeos {
18 18
19 // Number of pixels to separate each icon. 19 // Number of pixels to separate each icon.
20 const int kSeparation = 6; 20 const int kSeparation = 3;
21 21
22 StatusAreaView::StatusAreaView(StatusAreaHost* host) 22 StatusAreaView::StatusAreaView(StatusAreaHost* host)
23 : host_(host), 23 : host_(host),
24 clock_view_(NULL), 24 clock_view_(NULL),
25 feedback_view_(NULL), 25 feedback_view_(NULL),
26 input_method_view_(NULL), 26 input_method_view_(NULL),
27 network_view_(NULL), 27 network_view_(NULL),
28 power_view_(NULL) { 28 power_view_(NULL) {
29 } 29 }
30 30
31 void StatusAreaView::Init() { 31 void StatusAreaView::Init() {
32 // Clock.
33 clock_view_ = new ClockMenuButton(host_);
34 AddChildView(clock_view_);
35
32 // InputMethod. 36 // InputMethod.
33 input_method_view_ = new InputMethodMenuButton(host_); 37 input_method_view_ = new InputMethodMenuButton(host_);
34 AddChildView(input_method_view_); 38 AddChildView(input_method_view_);
35 39
36 // Feedback. 40 // Feedback.
37 feedback_view_ = new FeedbackMenuButton(host_); 41 feedback_view_ = new FeedbackMenuButton(host_);
38 AddChildView(feedback_view_); 42 AddChildView(feedback_view_);
39 43
40 // Network. 44 // Network.
41 network_view_ = new NetworkMenuButton(host_); 45 network_view_ = new NetworkMenuButton(host_);
42 AddChildView(network_view_); 46 AddChildView(network_view_);
43 47
44 // Power. 48 // Power.
45 power_view_ = new PowerMenuButton(); 49 power_view_ = new PowerMenuButton();
46 AddChildView(power_view_); 50 AddChildView(power_view_);
47
48 // Clock.
49 clock_view_ = new ClockMenuButton(host_);
50 AddChildView(clock_view_);
51 } 51 }
52 52
53 gfx::Size StatusAreaView::GetPreferredSize() { 53 gfx::Size StatusAreaView::GetPreferredSize() {
54 int result_w = kSeparation; 54 int result_w = kSeparation;
55 int result_h = 0; 55 int result_h = 0;
56 for (int i = 0; i < GetChildViewCount(); i++) { 56 for (int i = 0; i < GetChildViewCount(); i++) {
57 views::View* cur = GetChildViewAt(i); 57 views::View* cur = GetChildViewAt(i);
58 if (cur->IsVisible()) { 58 if (cur->IsVisible()) {
59 gfx::Size cur_size = cur->GetPreferredSize(); 59 gfx::Size cur_size = cur->GetPreferredSize();
60 // Add each width. 60 // Add each width.
(...skipping 12 matching lines...) Expand all
73 if (cur->IsVisible()) { 73 if (cur->IsVisible()) {
74 gfx::Size cur_size = cur->GetPreferredSize(); 74 gfx::Size cur_size = cur->GetPreferredSize();
75 int cur_y = (height() - cur_size.height()) / 2; 75 int cur_y = (height() - cur_size.height()) / 2;
76 76
77 // Handle odd number of pixels. 77 // Handle odd number of pixels.
78 cur_y += (height() - cur_size.height()) % 2; 78 cur_y += (height() - cur_size.height()) % 2;
79 79
80 // Put next in row horizontally, and center vertically. 80 // Put next in row horizontally, and center vertically.
81 cur->SetBounds(cur_x, cur_y, cur_size.width(), cur_size.height()); 81 cur->SetBounds(cur_x, cur_y, cur_size.width(), cur_size.height());
82 82
83 cur_x += cur_size.width() + kSeparation; 83 if (cur_size.width() > 0)
84 cur_x += cur_size.width() + kSeparation;
84 } 85 }
85 } 86 }
86 } 87 }
87 88
88 void StatusAreaView::ChildPreferredSizeChanged(View* child) { 89 void StatusAreaView::ChildPreferredSizeChanged(View* child) {
89 // When something like the clock menu button's size changes, we need to 90 // When something like the clock menu button's size changes, we need to
90 // relayout. Also mark that this view's size has changed. This will let 91 // relayout. Also mark that this view's size has changed. This will let
91 // BrowserView know to relayout, which will reset the bounds of this view. 92 // BrowserView know to relayout, which will reset the bounds of this view.
92 Layout(); 93 Layout();
93 PreferredSizeChanged(); 94 PreferredSizeChanged();
94 } 95 }
95 96
96 } // namespace chromeos 97 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/status/status_area_button.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698