summaryrefslogtreecommitdiffstats
path: root/chrome/browser/back_forward_menu_model.h
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-02 17:08:44 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-02 17:08:44 +0000
commit9a80065bad1506ac11163d597ace3295ddbfa8cb (patch)
treed1000277a49442bc02544f47cb18764fbd5d111d /chrome/browser/back_forward_menu_model.h
parent42503b2e20d59c4444268a500d90f7ef22721437 (diff)
downloadchromium_src-9a80065bad1506ac11163d597ace3295ddbfa8cb.zip
chromium_src-9a80065bad1506ac11163d597ace3295ddbfa8cb.tar.gz
chromium_src-9a80065bad1506ac11163d597ace3295ddbfa8cb.tar.bz2
Move a bunch more browser stuff around.
toolbar stuff -> ui/toolbar dock_info -> ui/tabs window_sizer -> ui BUG=none TEST=none TBR=brettw Review URL: http://codereview.chromium.org/5544002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68025 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/back_forward_menu_model.h')
-rw-r--r--chrome/browser/back_forward_menu_model.h171
1 files changed, 0 insertions, 171 deletions
diff --git a/chrome/browser/back_forward_menu_model.h b/chrome/browser/back_forward_menu_model.h
deleted file mode 100644
index b97698d..0000000
--- a/chrome/browser/back_forward_menu_model.h
+++ /dev/null
@@ -1,171 +0,0 @@
-// 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_BACK_FORWARD_MENU_MODEL_H_
-#define CHROME_BROWSER_BACK_FORWARD_MENU_MODEL_H_
-#pragma once
-
-#include <string>
-
-#include "app/menus/menu_model.h"
-#include "base/basictypes.h"
-#include "base/gtest_prod_util.h"
-#include "base/string16.h"
-#include "webkit/glue/window_open_disposition.h"
-
-class Browser;
-class SkBitmap;
-class TabContents;
-class NavigationEntry;
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// BackForwardMenuModel
-//
-// Interface for the showing of the dropdown menu for the Back/Forward buttons.
-// Actual implementations are platform-specific.
-///////////////////////////////////////////////////////////////////////////////
-class BackForwardMenuModel : public menus::MenuModel {
- public:
- // These are IDs used to identify individual UI elements within the
- // browser window using View::GetViewByID.
- enum ModelType {
- FORWARD_MENU = 1,
- BACKWARD_MENU = 2
- };
-
- BackForwardMenuModel(Browser* browser, ModelType model_type);
- virtual ~BackForwardMenuModel() { }
-
- // MenuModel implementation.
- virtual bool HasIcons() const;
- // Returns how many items the menu should show, including history items,
- // chapter-stops, separators and the Show Full History link. This function
- // uses GetHistoryItemCount() and GetChapterStopCount() internally to figure
- // out the total number of items to show.
- virtual int GetItemCount() const;
- virtual ItemType GetTypeAt(int index) const;
- virtual int GetCommandIdAt(int index) const;
- virtual string16 GetLabelAt(int index) const;
- virtual bool IsLabelDynamicAt(int index) const;
- virtual bool GetAcceleratorAt(int index,
- menus::Accelerator* accelerator) const;
- virtual bool IsItemCheckedAt(int index) const;
- virtual int GetGroupIdAt(int index) const;
- virtual bool GetIconAt(int index, SkBitmap* icon) const;
- virtual menus::ButtonMenuItemModel* GetButtonMenuItemAt(int index) const;
- virtual bool IsEnabledAt(int index) const;
- virtual MenuModel* GetSubmenuModelAt(int index) const;
- virtual void HighlightChangedTo(int index);
- virtual void ActivatedAt(int index);
- virtual void ActivatedAtWithDisposition(int index, int disposition);
- virtual void MenuWillShow();
-
- // Is the item at |index| a separator?
- bool IsSeparator(int index) const;
-
- private:
- // Allows the unit test to use its own dummy tab contents.
- void set_test_tab_contents(TabContents* test_tab_contents) {
- test_tab_contents_ = test_tab_contents;
- }
-
- // Returns how many history items the menu should show. For example, if the
- // navigation controller of the current tab has a current entry index of 5 and
- // forward_direction_ is false (we are the back button delegate) then this
- // function will return 5 (representing 0-4). If forward_direction_ is
- // true (we are the forward button delegate), then this function will return
- // the number of entries after 5. Note, though, that in either case it will
- // not report more than kMaxHistoryItems. The number returned also does not
- // include the separator line after the history items (nor the separator for
- // the "Show Full History" link).
- int GetHistoryItemCount() const;
-
- // Returns how many chapter-stop items the menu should show. For the
- // definition of a chapter-stop, see GetIndexOfNextChapterStop(). The number
- // returned does not include the separator lines before and after the
- // chapter-stops.
- int GetChapterStopCount(int history_items) const;
-
- // Finds the next chapter-stop in the NavigationEntryList starting from
- // the index specified in |start_from| and continuing in the direction
- // specified (|forward|) until either a chapter-stop is found or we reach the
- // end, in which case -1 is returned. If |start_from| is out of bounds, -1
- // will also be returned. A chapter-stop is defined as the last page the user
- // browsed to within the same domain. For example, if the user's homepage is
- // Google and she navigates to Google pages G1, G2 and G3 before heading over
- // to WikiPedia for pages W1 and W2 and then back to Google for pages G4 and
- // G5 then G3, W2 and G5 are considered chapter-stops. The return value from
- // this function is an index into the NavigationEntryList vector.
- int GetIndexOfNextChapterStop(int start_from, bool forward) const;
-
- // Finds a given chapter-stop starting at the currently active entry in the
- // NavigationEntryList vector advancing first forward or backward by |offset|
- // (depending on the direction specified in parameter |forward|). It also
- // allows you to skip chapter-stops by specifying a positive value for |skip|.
- // Example: FindChapterStop(5, false, 3) starts with the currently active
- // index, subtracts 5 from it and then finds the fourth chapter-stop before
- // that index (skipping the first 3 it finds).
- // Example: FindChapterStop(0, true, 0) is functionally equivalent to
- // calling GetIndexOfNextChapterStop(GetCurrentEntryIndex(), true).
- //
- // NOTE: Both |offset| and |skip| must be non-negative. The return value from
- // this function is an index into the NavigationEntryList vector. If |offset|
- // is out of bounds or if we skip too far (run out of chapter-stops) this
- // function returns -1.
- int FindChapterStop(int offset, bool forward, int skip) const;
-
- // How many items (max) to show in the back/forward history menu dropdown.
- static const int kMaxHistoryItems;
-
- // How many chapter-stops (max) to show in the back/forward dropdown list.
- static const int kMaxChapterStops;
-
- // Takes a menu item index as passed in through one of the menu delegate
- // functions and converts it into an index into the NavigationEntryList
- // vector. |index| can point to a separator, or the
- // "Show Full History" link in which case this function returns -1.
- int MenuIndexToNavEntryIndex(int index) const;
-
- // Does the item have a command associated with it?
- bool ItemHasCommand(int index) const;
-
- // Returns true if there is an icon for this menu item.
- bool ItemHasIcon(int index) const;
-
- // Allow the unit test to use the "Show Full History" label.
- string16 GetShowFullHistoryLabel() const;
-
- // Looks up a NavigationEntry by menu id.
- NavigationEntry* GetNavigationEntry(int index) const;
-
- // Retrieves the TabContents pointer to use, which is either the one that
- // the unit test sets (using SetTabContentsForUnitTest) or the one from
- // the browser window.
- TabContents* GetTabContents() const;
-
- // Build a string version of a user action on this menu, used as an
- // identifier for logging user behavior.
- // E.g. BuildActionName("Click", 2) returns "BackMenu_Click2".
- // An index of -1 means no index.
- std::string BuildActionName(const std::string& name, int index) const;
-
- Browser* browser_;
-
- // The unit tests will provide their own TabContents to use.
- TabContents* test_tab_contents_;
-
- // Represents whether this is the delegate for the forward button or the
- // back button.
- ModelType model_type_;
-
- friend class BackFwdMenuModelTest;
- FRIEND_TEST_ALL_PREFIXES(BackFwdMenuModelTest, BasicCase);
- FRIEND_TEST_ALL_PREFIXES(BackFwdMenuModelTest, MaxItemsTest);
- FRIEND_TEST_ALL_PREFIXES(BackFwdMenuModelTest, ChapterStops);
-
- DISALLOW_COPY_AND_ASSIGN(BackForwardMenuModel);
-};
-
-#endif // CHROME_BROWSER_BACK_FORWARD_MENU_MODEL_H_