1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef UI_VIEWS_CONTROLS_SCROLLBAR_NATIVE_SCROLL_BAR_WRAPPER_H_
6 #define UI_VIEWS_CONTROLS_SCROLLBAR_NATIVE_SCROLL_BAR_WRAPPER_H_
8 #include "ui/views/views_export.h"
16 class NativeScrollBar
;
19 // A specialization of NativeControlWrapper that hosts a platform-native
21 class VIEWS_EXPORT NativeScrollBarWrapper
{
23 virtual ~NativeScrollBarWrapper() {}
25 // Updates the scroll bar appearance given a viewport size, content size and
27 virtual void Update(int viewport_size
, int content_size
, int current_pos
) = 0;
29 // Retrieves the views::View that hosts the native control.
30 virtual View
* GetView() = 0;
32 // Returns the position of the scrollbar.
33 virtual int GetPosition() const = 0;
35 // Creates an appropriate NativeScrollBarWrapper for the platform.
36 static NativeScrollBarWrapper
* CreateWrapper(NativeScrollBar
* button
);
38 // Returns the system sizes of vertical/horizontal scroll bars.
39 static int GetVerticalScrollBarWidth(const ui::NativeTheme
* theme
);
40 static int GetHorizontalScrollBarHeight(const ui::NativeTheme
* theme
);
45 #endif // UI_VIEWS_CONTROLS_SCROLLBAR_NATIVE_SCROLL_BAR_WRAPPER_H_