ElementScroll.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef ROCKETCOREELEMENTSCROLL_H
00029 #define ROCKETCOREELEMENTSCROLL_H
00030
00031 #include <Rocket/Core/Header.h>
00032 #include <Rocket/Core/EventListener.h>
00033
00034 namespace Rocket {
00035 namespace Core {
00036
00037 class Element;
00038 class WidgetSliderScroll;
00039
00046 class ROCKETCORE_API ElementScroll : public EventListener
00047 {
00048 public:
00049 enum Orientation
00050 {
00051 VERTICAL = 0,
00052 HORIZONTAL = 1
00053 };
00054
00055 ElementScroll(Element* element);
00056 virtual ~ElementScroll();
00057
00059 void Update();
00060
00064 void EnableScrollbar(Orientation orientation, float element_width);
00067 void DisableScrollbar(Orientation orientation);
00068
00071 void UpdateScrollbar(Orientation orientation);
00072
00076 Element* GetScrollbar(Orientation orientation);
00080 float GetScrollbarSize(Orientation orientation);
00081
00083 void FormatScrollbars();
00084
00085 protected:
00087 void ProcessEvent(Event& event);
00088
00089 private:
00090 struct Scrollbar
00091 {
00092 Scrollbar();
00093 ~Scrollbar();
00094
00095 Element* element;
00096 WidgetSliderScroll* widget;
00097 bool enabled;
00098 float size;
00099 };
00100
00101
00102 bool CreateScrollbar(Orientation orientation);
00103
00104 bool CreateCorner();
00105
00106 Element* element;
00107
00108 Scrollbar scrollbars[2];
00109 Element* corner;
00110 };
00111
00112 }
00113 }
00114
00115 #endif