summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos/status_area_view.h
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-03 00:07:37 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-03 00:07:37 +0000
commit88180287e690a33fb64da4bf011ee7c06afa0c32 (patch)
treeaae0a2e89d88d7671c8d0cde5c273bf17dad1340 /chrome/browser/chromeos/status_area_view.h
parentd3ba7727bab47266a43ba17790be43eaf4c7961f (diff)
downloadchromium_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.h74
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_