]> git.saurik.com Git - wxWidgets.git/blob - wxPython/demo/DragScroller.py
Add more sanity checks to virtual list item nums as the native control sometimes...
[wxWidgets.git] / wxPython / demo / DragScroller.py
1 import wx
2 import wx.lib.dragscroller
3
4 #-------------------------------------------------------------------------------
5
6 def runTest(frame, nb, log):
7 win = DragScrollerExample(nb, -1)
8 return win
9
10 class DragScrollerExample(wx.ScrolledWindow):
11 def __init__(self, parent, id=-1):
12 wx.ScrolledWindow.__init__(self, parent, id)
13 self.Bind(wx.EVT_PAINT, self.OnPaint)
14 self.Bind(wx.EVT_RIGHT_DOWN, self.OnRightDown)
15 self.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)
16
17 self.SetScrollbars(1, 1, 2000, 2000, 0, 0)
18
19 self.scroller = wx.lib.dragscroller.DragScroller(self)
20
21 def OnPaint(self, event):
22 dc = wx.PaintDC(self)
23 self.DoPrepareDC(dc)
24
25 pen = wx.Pen(wx.BLACK, 5)
26 dc.SetPen(pen)
27
28 for y in range(10):
29 for x in range(10):
30 dc.DrawCircle(x*400+20, y*400+20, 200)
31
32 dc.DrawText('Right click and drag in the direction you want to scroll.',
33 20, 20)
34 dc.DrawText('The distance from the start of the drag determines the speed.',
35 20, 50)
36
37 def OnRightDown(self, event):
38 self.scroller.Start(event.GetPosition())
39
40 def OnRightUp(self, event):
41 self.scroller.Stop()
42
43
44 #-------------------------------------------------------------------------------
45
46 overview = """<html><body>
47 <h2>DragScroller</h2>
48 <p>
49 A helper class that adds scrolling to a wx.ScrolledWindow in the direction
50 of the drag.
51 </body></html>
52 """
53
54 if __name__ == '__main__':
55 import sys,os
56 import run
57 run.main(['', os.path.basename(sys.argv[0])])