diff options
author | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-03 00:07:37 +0000 |
---|---|---|
committer | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-03 00:07:37 +0000 |
commit | 88180287e690a33fb64da4bf011ee7c06afa0c32 (patch) | |
tree | aae0a2e89d88d7671c8d0cde5c273bf17dad1340 /chrome/browser/chromeos/status_area_view.h | |
parent | d3ba7727bab47266a43ba17790be43eaf4c7961f (diff) | |
download | chromium_src-88180287e690a33fb64da4bf011ee7c06afa0c32.zip chromium_src-88180287e690a33fb64da4bf011ee7c06afa0c32.tar.gz chromium_src-88180287e690a33fb64da4bf011ee7c06afa0c32.tar.bz2 |
Move status area view to the chromeos directory.
TEST=none
BUG=none
Review URL: http://codereview.chromium.org/192001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@25279 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos/status_area_view.h')
-rw-r--r-- | chrome/browser/chromeos/status_area_view.h | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/chrome/browser/chromeos/status_area_view.h b/chrome/browser/chromeos/status_area_view.h new file mode 100644 index 0000000..2db2886 --- /dev/null +++ b/chrome/browser/chromeos/status_area_view.h @@ -0,0 +1,74 @@ +// Copyright (c) 2009 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. + +#ifndef CHROME_BROWSER_CHROMEOS_STATUS_AREA_VIEW_H_ +#define CHROME_BROWSER_CHROMEOS_STATUS_AREA_VIEW_H_ + +#include "base/basictypes.h" +#include "views/controls/menu/simple_menu_model.h" +#include "views/controls/menu/view_menu_delegate.h" +#include "views/view.h" + +class Browser; + +namespace views { +class MenuButton; +class ImageView; +} + +// This class is used to wrap the small informative widgets in the upper-right +// of the window title bar. It is used on ChromeOS only. +class StatusAreaView : public views::View, + public views::SimpleMenuModel::Delegate, + public views::ViewMenuDelegate { + public: + enum OpenTabsMode { + OPEN_TABS_ON_LEFT = 1, + OPEN_TABS_CLOBBER, + OPEN_TABS_ON_RIGHT + }; + + StatusAreaView(Browser* browser); + virtual ~StatusAreaView(); + + void Init(); + + // views::View* overrides. + virtual gfx::Size GetPreferredSize(); + virtual void Layout(); + virtual void Paint(gfx::Canvas* canvas); + + static OpenTabsMode GetOpenTabsMode(); + static void SetOpenTabsMode(OpenTabsMode mode); + + private: + void CreateAppMenu(); + + // views::SimpleMenuModel::Delegate implementation. + virtual bool IsCommandIdChecked(int command_id) const; + virtual bool IsCommandIdEnabled(int command_id) const; + virtual bool GetAcceleratorForCommandId(int command_id, + views::Accelerator* accelerator); + virtual void ExecuteCommand(int command_id); + + // views::ViewMenuDelegate implementation. + virtual void RunMenu(views::View* source, const gfx::Point& pt, + gfx::NativeView hwnd); + + // The browser window that owns us. + Browser* browser_; + + views::ImageView* battery_view_; + views::MenuButton* menu_view_; + + scoped_ptr<views::SimpleMenuModel> app_menu_contents_; + scoped_ptr<views::SimpleMenuModel> options_menu_contents_; + scoped_ptr<views::Menu2> app_menu_menu_; + + static OpenTabsMode open_tabs_mode_; + + DISALLOW_COPY_AND_ASSIGN(StatusAreaView); +}; + +#endif // CHROME_BROWSER_CHROMEOS_STATUS_AREA_VIEW_H_ |