summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authordavemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-30 17:19:52 +0000
committerdavemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-30 17:19:52 +0000
commitaa5131a6e4943d858be2e8723094035571c80132 (patch)
tree9a0b663f6dd9c568360dc0a9a216803054f9cb9b /chrome
parentfce76afcfa48a01ebcbd05c8e9277b3bd242c6b6 (diff)
downloadchromium_src-aa5131a6e4943d858be2e8723094035571c80132.zip
chromium_src-aa5131a6e4943d858be2e8723094035571c80132.tar.gz
chromium_src-aa5131a6e4943d858be2e8723094035571c80132.tar.bz2
Show chromium os version in about panel
Review URL: http://codereview.chromium.org/440008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33293 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rwxr-xr-xchrome/browser/views/about_chrome_view.cc42
-rw-r--r--chrome/browser/views/about_chrome_view.h19
2 files changed, 61 insertions, 0 deletions
diff --git a/chrome/browser/views/about_chrome_view.cc b/chrome/browser/views/about_chrome_view.cc
index f86b588..4f3400e 100755
--- a/chrome/browser/views/about_chrome_view.cc
+++ b/chrome/browser/views/about_chrome_view.cc
@@ -83,6 +83,9 @@ AboutChromeView::AboutChromeView(Profile* profile)
about_dlg_background_logo_(NULL),
about_title_label_(NULL),
version_label_(NULL),
+#if defined(OS_CHROMEOS)
+ os_version_label_(NULL),
+#endif
copyright_label_(NULL),
main_text_label_(NULL),
main_text_label_height_(0),
@@ -93,6 +96,10 @@ AboutChromeView::AboutChromeView(Profile* profile)
chromium_url_appears_first_(true),
text_direction_is_rtl_(false) {
DCHECK(profile);
+#if defined(OS_CHROMEOS)
+ loader_.GetVersion(&consumer_,
+ NewCallback(this, &AboutChromeView::OnOSVersion));
+#endif
Init();
#if defined(OS_WIN)
@@ -188,6 +195,17 @@ void AboutChromeView::Init() {
ResourceBundle::BaseFont));
AddChildView(version_label_);
+#if defined(OS_CHROMEOS)
+ os_version_label_ = new views::Textfield();
+ os_version_label_->SetReadOnly(true);
+ os_version_label_->RemoveBorder();
+ os_version_label_->SetTextColor(SK_ColorBLACK);
+ os_version_label_->SetBackgroundColor(SK_ColorWHITE);
+ os_version_label_->SetFont(ResourceBundle::GetSharedInstance().GetFont(
+ ResourceBundle::BaseFont));
+ AddChildView(os_version_label_);
+#endif
+
// The copyright URL portion of the main label.
copyright_label_ = new views::Label(
l10n_util::GetString(IDS_ABOUT_VERSION_COPYRIGHT));
@@ -313,6 +331,18 @@ void AboutChromeView::Layout() {
kVersionFieldWidth,
sz.height());
+#if defined(OS_CHROMEOS)
+ // Then we have the version number right below it.
+ sz = os_version_label_->GetPreferredSize();
+ os_version_label_->SetBounds(
+ kPanelHorizMargin,
+ version_label_->y() +
+ version_label_->height() +
+ kRelatedControlVerticalSpacing,
+ kVersionFieldWidth,
+ sz.height());
+#endif
+
// For the width of the main text label we want to use up the whole panel
// width and remaining height, minus a little margin on each side.
int y_pos = background_image_height + kRelatedControlVerticalSpacing;
@@ -735,9 +765,21 @@ void AboutChromeView::LinkActivated(views::Link* source,
NOTREACHED() << "Unknown link source";
Browser* browser = BrowserList::GetLastActive();
+#if defined(OS_CHROMEOS)
+ browser->OpenURL(url, GURL(), NEW_FOREGROUND_TAB, PageTransition::LINK);
+#else
browser->OpenURL(url, GURL(), NEW_WINDOW, PageTransition::LINK);
+#endif
}
+#if defined(OS_CHROMEOS)
+void AboutChromeView::OnOSVersion(
+ chromeos::VersionLoader::Handle handle,
+ std::string version) {
+ os_version_label_->SetText(UTF8ToUTF16(version));
+}
+#endif
+
#if defined(OS_WIN)
////////////////////////////////////////////////////////////////////////////////
// AboutChromeView, GoogleUpdateStatusListener implementation:
diff --git a/chrome/browser/views/about_chrome_view.h b/chrome/browser/views/about_chrome_view.h
index cfb8a03..83ba099 100644
--- a/chrome/browser/views/about_chrome_view.h
+++ b/chrome/browser/views/about_chrome_view.h
@@ -13,6 +13,8 @@
#if defined(OS_WIN)
#include "chrome/browser/google_update.h"
+#elif defined(OS_CHROMEOS)
+#include "chrome/browser/chromeos/version_loader.h"
#endif
namespace views {
@@ -92,6 +94,12 @@ class AboutChromeView : public views::View,
GoogleUpdateErrorCode error_code);
#endif
+#if defined(OS_CHROMEOS)
+ // Callback from chromeos::VersionLoader giving the version.
+ void OnOSVersion(chromeos::VersionLoader::Handle handle,
+ std::string version);
+#endif
+
// Draws a string onto the canvas (wrapping if needed) while also keeping
// track of where it ends so we can position a URL after the text. The
// parameter |bounds| represents the boundary we have to work with, |position|
@@ -137,6 +145,9 @@ class AboutChromeView : public views::View,
views::ImageView* about_dlg_background_logo_;
views::Label* about_title_label_;
views::Textfield* version_label_;
+#if defined(OS_CHROMEOS)
+ views::Textfield* os_version_label_;
+#endif
views::Label* copyright_label_;
views::Label* main_text_label_;
int main_text_label_height_;
@@ -185,6 +196,14 @@ class AboutChromeView : public views::View,
// Whether text direction is left-to-right or right-to-left.
bool text_direction_is_rtl_;
+#if defined(OS_CHROMEOS)
+ // Handles asynchronously loading the version.
+ chromeos::VersionLoader loader_;
+
+ // Used to request the version.
+ CancelableRequestConsumer consumer_;
+#endif
+
DISALLOW_COPY_AND_ASSIGN(AboutChromeView);
};