diff options
author | davemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-30 17:19:52 +0000 |
---|---|---|
committer | davemoore@chromium.org <davemoore@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-30 17:19:52 +0000 |
commit | aa5131a6e4943d858be2e8723094035571c80132 (patch) | |
tree | 9a0b663f6dd9c568360dc0a9a216803054f9cb9b /chrome | |
parent | fce76afcfa48a01ebcbd05c8e9277b3bd242c6b6 (diff) | |
download | chromium_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-x | chrome/browser/views/about_chrome_view.cc | 42 | ||||
-rw-r--r-- | chrome/browser/views/about_chrome_view.h | 19 |
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); }; |