MyGUI
3.2.1
|
00001 /* 00002 * This source file is part of MyGUI. For the latest info, see http://mygui.info/ 00003 * Distributed under the MIT License 00004 * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT) 00005 */ 00006 00007 #ifndef __MYGUI_SCROLL_VIEW_BASE_H__ 00008 #define __MYGUI_SCROLL_VIEW_BASE_H__ 00009 00010 #include "MyGUI_Prerequest.h" 00011 #include "MyGUI_Types.h" 00012 00013 namespace MyGUI 00014 { 00015 00016 class MYGUI_EXPORT ScrollViewBase 00017 { 00018 protected: 00019 ScrollViewBase(); 00020 virtual ~ScrollViewBase(); 00021 00022 void updateScrollSize(); 00023 void updateScrollPosition(); 00024 00025 // размер данных 00026 virtual IntSize getContentSize(); 00027 00028 // смещение данных 00029 virtual IntPoint getContentPosition(); 00030 virtual void setContentPosition(const IntPoint& _value); 00031 00032 // размер окна, через которые видно данные 00033 virtual IntSize getViewSize(); 00034 00035 // размер на который прокручиваются данные при щелчке по скролу 00036 virtual size_t getHScrollPage(); 00037 virtual size_t getVScrollPage(); 00038 00039 virtual Align getContentAlign(); 00040 00041 virtual void eraseContent(); 00042 00043 protected: 00044 ScrollBar* mVScroll; 00045 ScrollBar* mHScroll; 00046 Widget* mClient; 00047 00048 bool mVisibleHScroll; 00049 bool mVisibleVScroll; 00050 00051 size_t mVRange; 00052 size_t mHRange; 00053 00054 // изменяется ли содержимое при ресайзе 00055 bool mChangeContentByResize; 00056 }; 00057 00058 } // namespace MyGUI 00059 00060 #endif // __MYGUI_SCROLL_VIEW_BASE_H__