summaryrefslogtreecommitdiffstats
path: root/chrome/browser/history_view.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/history_view.h')
-rw-r--r--chrome/browser/history_view.h217
1 files changed, 0 insertions, 217 deletions
diff --git a/chrome/browser/history_view.h b/chrome/browser/history_view.h
deleted file mode 100644
index 35c9db3..0000000
--- a/chrome/browser/history_view.h
+++ /dev/null
@@ -1,217 +0,0 @@
-// Copyright (c) 2006-2008 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.
-
-// This view displays a list of historical page visits. It requires a
-// BaseHistoryModel to provide the information that will be shown.
-
-#ifndef CHROME_BROWSER_HISTORY_VIEW_H_
-#define CHROME_BROWSER_HISTORY_VIEW_H_
-
-#include <vector>
-
-#include "chrome/browser/history_model.h"
-#include "chrome/views/link.h"
-#include "chrome/views/scroll_view.h"
-
-class PageNavigator;
-class HistoryItemRenderer;
-class BaseHistoryModel;
-class SearchableUIContainer;
-
-class HistoryView : public views::View,
- public BaseHistoryModelObserver,
- public views::LinkController,
- views::VariableRowHeightScrollHelper::Controller {
- public:
- HistoryView(SearchableUIContainer* container,
- BaseHistoryModel* model,
- PageNavigator* navigator);
- virtual ~HistoryView();
-
- // Returns true if this view is currently visible to the user.
- bool IsVisible();
-
- // Overridden for layout purposes.
- virtual void DidChangeBounds(const gfx::Rect& previous,
- const gfx::Rect& current);
- virtual void Layout();
-
- virtual bool GetFloatingViewIDForPoint(int x, int y, int* id);
-
- // Overriden for focus traversal.
- virtual bool EnumerateFloatingViews(
- views::View::FloatingViewPosition position,
- int starting_id, int* id);
- virtual views::View* ValidateFloatingViewForID(int id);
-
- // Render the visible area.
- virtual void Paint(ChromeCanvas* canvas);
-
- // BaseHistoryModelObserver implementation.
- void ModelChanged(bool result_set_changed);
- void ModelBeginWork();
- void ModelEndWork();
-
- // Returns the entry height, varies with font-height to prevent clipping.
- int GetEntryHeight();
-
- // Sets whether the delete controls are visible.
- void SetShowDeleteControls(bool show_delete_controls);
-
- // We expose the PageNavigator so history entries can cause navigations
- // directly.
- PageNavigator* navigator() const { return navigator_; }
-
- // Scrolling.
- virtual int GetPageScrollIncrement(views::ScrollView* scroll_view,
- bool is_horizontal, bool is_positive);
- virtual int GetLineScrollIncrement(views::ScrollView* scroll_view,
- bool is_horizontal, bool is_positive);
- virtual views::VariableRowHeightScrollHelper::RowInfo GetRowInfo(int y);
-
- private:
- // For any given break (see comments for BreakOffsets, below), we store the
- // index of the item following the break, and whether or not the break
- // corresponds to a day break or session break.
- struct BreakValue {
- int index;
- bool day;
- };
-
- // The map of our breaks (see comments for BreakOffsets, below).
- typedef std::map<int, BreakValue> BreakOffsets;
-
- // Ensures the renderers are valid.
- void EnsureRenderer();
-
- // Returns the bottom of the last entry.
- int GetLastEntryMaxY();
-
- // Returns the max view id.
- int GetMaxViewID();
-
- // Returns the y coordinate for the view with the specified floating view id,
- // the index into the model of the specified view and whether the view is
- // a delete control.
- int GetYCoordinateForViewID(int view_id,
- int* model_index,
- bool* is_delete_control);
-
- // Invoked when the user clicks the delete previous visits link.
- virtual void LinkActivated(views::Link* source, int event_flags);
-
- // Prompts the user to make sure they really want to delete, and if so
- // deletes the day at the specified model index.
- void DeleteDayAtModelIndex(int index);
-
- // Returns the number of delete controls shown before the specified iterator.
- int CalculateDeleteOffset(const BreakOffsets::const_iterator& it);
-
- // Returns the width of the delete control, calculating if necessary.
- int GetDeleteControlWidth();
-
- // Calculates the bounds for the delete control given the specified y
- // location.
- gfx::Rect CalculateDeleteControlBounds(int base_y);
-
- // The "searchable view" container for this view.
- SearchableUIContainer* container_;
-
- // The font used for the "n days" ago heading.
- ChromeFont day_break_font_;
-
- // A "stamper"-style renderer for only painting the things that are
- // in the current view.
- HistoryItemRenderer* renderer_;
-
- // Used to render 'delete' controls.
- scoped_ptr<views::Link> delete_renderer_;
-
- // Class that performs the navigation when the user clicks on a page.
- PageNavigator* navigator_;
-
- // Pointer to the model that provides the contents of this view.
- scoped_ptr<BaseHistoryModel> model_;
-
- // For laying out the potentially huge list of history entries, we
- // cache the offsets of session and day breaks.
- //
- // Each entry in BreakOffsets is a pair, where the key is the y
- // coordinate of a day heading and the value is a struct containing
- // both the index of the first history entry after that day
- // heading and a boolean value indicating whether the offset
- // represents a day or session break (these display differently).
- //
- // This lets us quickly compute, for a given y value, how to lay out
- // entries in the vicinity of that y value.
- //
- // Here's an example:
- // 4 days ago <- key: the y coordinate of the top of this block
- // +----------------
- // | history item #7 <- index: 7, the index of this history item
- // +----------------
- // +----------------
- // | history item #8
- // +----------------
- // <- key: the y coordinate of this separator
- // +----------------
- // | history item #9 <- index: 9, the index of this history item
- // +----------------
- // +----------------
- // | history item #10
- // +----------------
- // 5 days ago <- key: the y coordinate of this block
- // +----------------
- // | history item #11 <- index: 11
- // +----------------
-
- // Each history item is represented as a floating view. In addition the
- // the delete controls are represented as floating views. A ramification
- // of this is that when the delete controls are displayed the view ids do
- // not necessarily directly correspond to a model index. The following
- // example shows the view ids and corresponding model index.
- //
- // delete <- view_id=10
- // +----------------
- // | history item #7 <- view_id=11, model_index=10
- // +----------------
- // +----------------
- // | history item #8 <- view_id=12, model_index=11
- // +----------------
- // delete <- view_id=13
- // +----------------
- // | history item #9 <- view_id=14, model_index=12
- // +----------------
- //
- BreakOffsets break_offsets_;
-
- // Retrieve the nearest BreakOffsets less than or equal to the given y.
- // Another way of looking at this is that it fetches the BreakOffsets
- // entry that heads the section containing y.
- BreakOffsets::iterator GetBreakOffsetIteratorForY(int y);
-
- int GetBreakOffsetHeight(BreakValue value);
-
- views::VariableRowHeightScrollHelper scroll_helper_;
-
- // Whether we are showing search results.
- bool show_results_;
-
- // The loading state of the model.
- bool loading_;
-
- // Whether we're showing delete controls.
- bool show_delete_controls_;
-
- // How tall a single line of text is.
- int line_height_;
-
- // Width needed for the delete control. Calculated in GetDeleteControlWidth.
- int delete_control_width_;
-
- DISALLOW_EVIL_CONSTRUCTORS(HistoryView);
-};
-
-#endif // CHROME_BROWSER_HISTORY_VIEW_H_
-