summaryrefslogtreecommitdiffstats
path: root/views/controls/scrollbar/base_scroll_bar.h
diff options
context:
space:
mode:
Diffstat (limited to 'views/controls/scrollbar/base_scroll_bar.h')
-rw-r--r--views/controls/scrollbar/base_scroll_bar.h156
1 files changed, 0 insertions, 156 deletions
diff --git a/views/controls/scrollbar/base_scroll_bar.h b/views/controls/scrollbar/base_scroll_bar.h
deleted file mode 100644
index 7a88459..0000000
--- a/views/controls/scrollbar/base_scroll_bar.h
+++ /dev/null
@@ -1,156 +0,0 @@
-// Copyright (c) 2011 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 VIEWS_CONTROLS_SCROLLBAR_BASE_SCROLL_BAR_H_
-#define VIEWS_CONTROLS_SCROLLBAR_BASE_SCROLL_BAR_H_
-#pragma once
-
-#include "views/context_menu_controller.h"
-#include "views/controls/button/image_button.h"
-#include "views/controls/menu/menu.h"
-#include "views/controls/scrollbar/scroll_bar.h"
-#include "views/repeat_controller.h"
-
-namespace views {
-
-class BaseScrollBarThumb;
-
-///////////////////////////////////////////////////////////////////////////////
-//
-// BaseScrollBar
-//
-///////////////////////////////////////////////////////////////////////////////
-class BaseScrollBar : public ScrollBar,
- public ContextMenuController,
- public Menu::Delegate {
- public:
- BaseScrollBar(bool horizontal, BaseScrollBarThumb* thumb);
- virtual ~BaseScrollBar() { }
-
- // Get the bounds of the "track" area that the thumb is free to slide within.
- virtual gfx::Rect GetTrackBounds() const = 0;
-
- // An enumeration of different amounts of incremental scroll, representing
- // events sent from different parts of the UI/keyboard.
- enum ScrollAmount {
- SCROLL_NONE = 0,
- SCROLL_START,
- SCROLL_END,
- SCROLL_PREV_LINE,
- SCROLL_NEXT_LINE,
- SCROLL_PREV_PAGE,
- SCROLL_NEXT_PAGE,
- };
-
- // Scroll the contents by the specified type (see ScrollAmount above).
- void ScrollByAmount(ScrollAmount amount);
-
- // Scroll the contents to the appropriate position given the supplied
- // position of the thumb (thumb track coordinates). If |scroll_to_middle| is
- // true, then the conversion assumes |thumb_position| is in the middle of the
- // thumb rather than the top.
- void ScrollToThumbPosition(int thumb_position, bool scroll_to_middle);
-
- // Scroll the contents by the specified offset (contents coordinates).
- void ScrollByContentsOffset(int contents_offset);
-
- // View overrides:
- virtual gfx::Size GetPreferredSize() OVERRIDE = 0;
- virtual void Layout() OVERRIDE = 0;
- virtual bool OnMousePressed(const MouseEvent& event) OVERRIDE;
- virtual void OnMouseReleased(const MouseEvent& event) OVERRIDE;
- virtual void OnMouseCaptureLost() OVERRIDE;
- virtual bool OnKeyPressed(const KeyEvent& event) OVERRIDE;
- virtual bool OnMouseWheel(const MouseWheelEvent& event) OVERRIDE;
-
- // ScrollBar overrides:
- virtual void Update(int viewport_size,
- int content_size,
- int contents_scroll_offset) OVERRIDE;
- virtual int GetLayoutSize() const OVERRIDE = 0;
- virtual int GetPosition() const OVERRIDE;
-
- // ContextMenuController overrides.
- virtual void ShowContextMenuForView(View* source,
- const gfx::Point& p,
- bool is_mouse_gesture) OVERRIDE;
-
- // Menu::Delegate overrides:
- virtual std::wstring GetLabel(int id) const OVERRIDE;
- virtual bool IsCommandEnabled(int id) const OVERRIDE;
- virtual void ExecuteCommand(int id) OVERRIDE;
-
- protected:
- // View overrides:
- virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE = 0;
-
- BaseScrollBarThumb* GetThumb() const;
-
- CustomButton::ButtonState GetThumbTrackState() const;
-
- // Wrapper functions that calls the controller. We need this since native
- // scrollbars wrap around a different scrollbar. When calling the controller
- // we need to pass in the appropriate scrollbar. For normal scrollbars it's
- // the |this| scrollbar, for native scrollbars it's the native scrollbar used
- // to create this.
- virtual void ScrollToPosition(int position);
- virtual int GetScrollIncrement(bool is_page, bool is_positive);
-
- private:
- // Called when the mouse is pressed down in the track area.
- void TrackClicked();
-
- // Responsible for scrolling the contents and also updating the UI to the
- // current value of the Scroll Offset.
- void ScrollContentsToOffset();
-
- // Returns the size (width or height) of the track area of the ScrollBar.
- int GetTrackSize() const;
-
- // Calculate the position of the thumb within the track based on the
- // specified scroll offset of the contents.
- int CalculateThumbPosition(int contents_scroll_offset) const;
-
- // Calculates the current value of the contents offset (contents coordinates)
- // based on the current thumb position (thumb track coordinates). See
- // |ScrollToThumbPosition| for an explanation of |scroll_to_middle|.
- int CalculateContentsOffset(int thumb_position,
- bool scroll_to_middle) const;
-
- // Called when the state of the thumb track changes (e.g. by the user
- // pressing the mouse button down in it).
- void SetThumbTrackState(CustomButton::ButtonState state);
-
- BaseScrollBarThumb* thumb_;
-
- // The size of the scrolled contents, in pixels.
- int contents_size_;
-
- // The current amount the contents is offset by in the viewport.
- int contents_scroll_offset_;
-
- // The state of the scrollbar track. Typically, the track will highlight when
- // the user presses the mouse on them (during page scrolling).
- CustomButton::ButtonState thumb_track_state_;
-
- // The last amount of incremental scroll that this scrollbar performed. This
- // is accessed by the callbacks for the auto-repeat up/down buttons to know
- // what direction to repeatedly scroll in.
- ScrollAmount last_scroll_amount_;
-
- // An instance of a RepeatController which scrolls the scrollbar continuously
- // as the user presses the mouse button down on the up/down buttons or the
- // track.
- RepeatController repeater_;
-
- // The position of the mouse within the scroll bar when the context menu
- // was invoked.
- int context_menu_mouse_position_;
-
- DISALLOW_COPY_AND_ASSIGN(BaseScrollBar);
-};
-
-} // namespace views
-
-#endif // VIEWS_CONTROLS_SCROLLBAR_BASE_SCROLL_BAR_H_