1 // Copyright (c) 2016 Marshall A. Greenblatt. All rights reserved. 2 // 3 // Redistribution and use in source and binary forms, with or without 4 // modification, are permitted provided that the following conditions are 5 // met: 6 // 7 // * Redistributions of source code must retain the above copyright 8 // notice, this list of conditions and the following disclaimer. 9 // * Redistributions in binary form must reproduce the above 10 // copyright notice, this list of conditions and the following disclaimer 11 // in the documentation and/or other materials provided with the 12 // distribution. 13 // * Neither the name of Google Inc. nor the name Chromium Embedded 14 // Framework nor the names of its contributors may be used to endorse 15 // or promote products derived from this software without specific prior 16 // written permission. 17 // 18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 // 30 // --------------------------------------------------------------------------- 31 // 32 // The contents of this file must follow a specific format in order to 33 // support the CEF translator tool. See the translator.README.txt file in the 34 // tools directory for more information. 35 // 36 37 #ifndef CEF_INCLUDE_VIEWS_CEF_SCROLL_VIEW_H_ 38 #define CEF_INCLUDE_VIEWS_CEF_SCROLL_VIEW_H_ 39 #pragma once 40 41 #include "include/views/cef_view.h" 42 43 /// 44 // A ScrollView will show horizontal and/or vertical scrollbars when necessary 45 // based on the size of the attached content view. Methods must be called on the 46 // browser process UI thread unless otherwise indicated. 47 /// 48 /*--cef(source=library)--*/ 49 class CefScrollView : public CefView { 50 public: 51 /// 52 // Create a new ScrollView. 53 /// 54 /*--cef(optional_param=delegate)--*/ 55 static CefRefPtr<CefScrollView> CreateScrollView( 56 CefRefPtr<CefViewDelegate> delegate); 57 58 /// 59 // Set the content View. The content View must have a specified size (e.g. 60 // via CefView::SetBounds or CefViewDelegate::GetPreferredSize). 61 /// 62 /*--cef()--*/ 63 virtual void SetContentView(CefRefPtr<CefView> view) = 0; 64 65 /// 66 // Returns the content View. 67 /// 68 /*--cef()--*/ 69 virtual CefRefPtr<CefView> GetContentView() = 0; 70 71 /// 72 // Returns the visible region of the content View. 73 /// 74 /*--cef()--*/ 75 virtual CefRect GetVisibleContentRect() = 0; 76 77 /// 78 // Returns true if the horizontal scrollbar is currently showing. 79 /// 80 /*--cef()--*/ 81 virtual bool HasHorizontalScrollbar() = 0; 82 83 /// 84 // Returns the height of the horizontal scrollbar. 85 /// 86 /*--cef()--*/ 87 virtual int GetHorizontalScrollbarHeight() = 0; 88 89 /// 90 // Returns true if the vertical scrollbar is currently showing. 91 /// 92 /*--cef()--*/ 93 virtual bool HasVerticalScrollbar() = 0; 94 95 /// 96 // Returns the width of the vertical scrollbar. 97 /// 98 /*--cef()--*/ 99 virtual int GetVerticalScrollbarWidth() = 0; 100 }; 101 102 #endif // CEF_INCLUDE_VIEWS_CEF_SCROLL_VIEW_H_ 103