123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- /*
- GWEN
- Copyright (c) 2010 Facepunch Studios
- See license in Gwen.h
- */
- #pragma once
- #ifndef GWEN_CONTROLS_SCROLLBAR_H
- #define GWEN_CONTROLS_SCROLLBAR_H
- #include "Gwen/Controls/Base.h"
- #include "Gwen/Controls/ScrollBarBar.h"
- #include "Gwen/Controls/ScrollBarButton.h"
- #include "Gwen/Gwen.h"
- #define SCROLL_BUTTON_UP 0
- #define SCROLL_BUTTON_LEFT 0
- #define SCROLL_BUTTON_DOWN 1
- #define SCROLL_BUTTON_RIGHT 1
- #define NUDGE_DIST 10
- namespace Gwen
- {
- namespace Controls
- {
- class GWEN_EXPORT BaseScrollBar : public Base
- {
- public:
-
- GWEN_CONTROL( BaseScrollBar, Base );
- virtual void Render( Skin::Base* skin );
- virtual void SetBarSize(int size) = 0;
- virtual int GetBarSize() = 0;
- virtual int GetBarPos() = 0;
- virtual void OnBarMoved( Controls::Base* control);
- virtual void OnMouseClickLeft( int /*x*/, int /*y*/, bool /*bDown*/ ){}
- virtual void ScrollToLeft(){}
- virtual void ScrollToRight(){}
- virtual void ScrollToTop(){}
- virtual void ScrollToBottom(){}
- virtual float GetNudgeAmount() { return m_fNudgeAmount / m_fContentSize; }
- virtual void SetNudgeAmount( float nudge ) { m_fNudgeAmount = nudge; }
- virtual void BarMovedNotification();
-
- virtual float CalculateScrolledAmount() { return 0; }
- virtual int CalculateBarSize() { return 0; }
- virtual bool SetScrolledAmount(float amount, bool forceUpdate);
-
- virtual void SetContentSize(float size);
- virtual void SetViewableContentSize(float size);
- virtual int GetButtonSize() { return 0; }
- virtual float GetScrolledAmount() { return m_fScrolledAmount; }
- Gwen::Event::Caller onBarMoved;
- float getContentSize()
- {
- return m_fContentSize;
- }
- float getViewableContentSize() const
- {
-
- return m_fViewableContentSize;
- }
- protected:
- ControlsInternal::ScrollBarButton* m_ScrollButton[2];
- ControlsInternal::ScrollBarBar * m_Bar;
-
- bool m_bDepressed;
- float m_fScrolledAmount;
- float m_fContentSize;
- float m_fViewableContentSize;
- float m_fNudgeAmount;
- };
- }
- }
- #endif
|