using Cairo;\r
using System.Xml.Serialization;\r
using OpenTK.Input;\r
+using System.ComponentModel;\r
\r
namespace go\r
{\r
{\r
bool _verticalScrolling;\r
bool _horizontalScrolling;\r
+ bool _scrollbarVisible;\r
+ int _scrollX = 0;\r
+ int _scrollY = 0;\r
+\r
\r
#region public properties\r
\r
- [System.Xml.Serialization.XmlAttributeAttribute()]\r
- [System.ComponentModel.DefaultValue(false)]\r
+ [XmlAttributeAttribute][DefaultValue(false)]\r
public bool VerticalScrolling {\r
get { return _verticalScrolling; }\r
set { _verticalScrolling = value; }\r
}\r
\r
- [System.Xml.Serialization.XmlAttributeAttribute()]\r
- [System.ComponentModel.DefaultValue(false)]\r
+ [XmlAttributeAttribute][DefaultValue(false)]\r
public bool HorizontalScrolling {\r
get { return _horizontalScrolling; }\r
set { _horizontalScrolling = value; }\r
}\r
+ [XmlAttributeAttribute][DefaultValue(true)]\r
+ public bool ScrollbarVisible {\r
+ get { return _scrollbarVisible; }\r
+ set { _scrollbarVisible = value; }\r
+ }\r
\r
- [XmlIgnore] \r
- public int scrollX = 0;\r
- [XmlIgnore]\r
- public int scrollY = 0;\r
+\r
+ [XmlIgnore] \r
+ public int ScrollX {\r
+ get {\r
+ return _scrollX;\r
+ }\r
+ set {\r
+ _scrollX = value;\r
+ }\r
+ }\r
+\r
+\r
+ [XmlIgnore]\r
+ public int ScrollY {\r
+ get {\r
+ return _scrollY;\r
+ }\r
+ set {\r
+ _scrollY = value;\r
+ }\r
+ }\r
\r
public static int ScrollSpeed = 10;\r
\r
}\r
public override void onMouseMove (object sender, MouseMoveEventArgs e)\r
{\r
- Point m = e.Position + new Point (scrollX, scrollY);\r
+ Point m = e.Position - new Point (ScrollX, ScrollY);\r
base.onMouseMove (sender, new MouseMoveEventArgs(m.X,m.Y,e.XDelta,e.YDelta));\r
}\r
public override void onMouseWheel (object sender, MouseWheelEventArgs e)\r
//add redraw call with old bounds to errase old position\r
RegisterForRedraw();\r
\r
- scrollY += e.Delta * ScrollSpeed;\r
+ ScrollY -= e.Delta * ScrollSpeed;\r
\r
- if (scrollY > 0)\r
- scrollY = 0;\r
- else if (scrollY < -Child.Slot.Height + ClientRectangle.Height)\r
- scrollY = -Child.Slot.Height + ClientRectangle.Height;\r
+ if (ScrollY < 0)\r
+ ScrollY = 0;\r
+ else if (ScrollY > Child.Slot.Height - ClientRectangle.Height)\r
+ ScrollY = Child.Slot.Height - ClientRectangle.Height;\r
\r
}\r
if (HorizontalScrolling )\r
//add redraw call with old bounds to errase old position\r
RegisterForRedraw();\r
\r
- scrollX += e.Delta * ScrollSpeed;\r
+ ScrollX -= e.Delta * ScrollSpeed;\r
\r
- if (scrollX > 0)\r
- scrollX = 0;\r
- else if (scrollX < -Child.Slot.Width + ClientRectangle.Width)\r
- scrollX = -Child.Slot.Width + ClientRectangle.Width;\r
+ if (ScrollX < 0)\r
+ ScrollX = 0;\r
+ else if (ScrollX > Child.Slot.Width - ClientRectangle.Width)\r
+ ScrollX = Child.Slot.Width - ClientRectangle.Width;\r
}\r
\r
\r
\r
public override Rectangle ContextCoordinates (Rectangle r)\r
{\r
- return base.ContextCoordinates (r) + new Point(scrollX,scrollY);\r
+ return base.ContextCoordinates (r) - new Point(ScrollX,ScrollY);\r
}\r
public override Rectangle ScreenCoordinates (Rectangle r)\r
{\r
- return base.ScreenCoordinates (r) + new Point(scrollX,scrollY);\r
+ return base.ScreenCoordinates (r) - new Point(ScrollX,ScrollY);\r
}\r
\r
public override void registerClipRect ()\r