sure of their origin or license. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34322 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			140 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			140 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
 | |
| import wx
 | |
| import images
 | |
| 
 | |
| #----------------------------------------------------------------------
 | |
| 
 | |
| CUSTOMID = 1111
 | |
| 
 | |
| cursors = {
 | |
|     "wx.CURSOR_ARROW" : wx.CURSOR_ARROW,
 | |
|     "wx.CURSOR_RIGHT_ARROW" : wx.CURSOR_RIGHT_ARROW,
 | |
|     "wx.CURSOR_BULLSEYE" : wx.CURSOR_BULLSEYE,
 | |
|     "wx.CURSOR_CHAR" : wx.CURSOR_CHAR,
 | |
|     "wx.CURSOR_CROSS" : wx.CURSOR_CROSS,
 | |
|     "wx.CURSOR_HAND" : wx.CURSOR_HAND,
 | |
|     "wx.CURSOR_IBEAM" : wx.CURSOR_IBEAM,
 | |
|     "wx.CURSOR_LEFT_BUTTON" : wx.CURSOR_LEFT_BUTTON,
 | |
|     "wx.CURSOR_MAGNIFIER" : wx.CURSOR_MAGNIFIER,
 | |
|     "wx.CURSOR_MIDDLE_BUTTON" : wx.CURSOR_MIDDLE_BUTTON,
 | |
|     "wx.CURSOR_NO_ENTRY" : wx.CURSOR_NO_ENTRY,
 | |
|     "wx.CURSOR_PAINT_BRUSH" : wx.CURSOR_PAINT_BRUSH,
 | |
|     "wx.CURSOR_PENCIL" : wx.CURSOR_PENCIL,
 | |
|     "wx.CURSOR_POINT_LEFT" : wx.CURSOR_POINT_LEFT,
 | |
|     "wx.CURSOR_POINT_RIGHT" : wx.CURSOR_POINT_RIGHT,
 | |
|     "wx.CURSOR_QUESTION_ARROW" : wx.CURSOR_QUESTION_ARROW,
 | |
|     "wx.CURSOR_RIGHT_BUTTON" : wx.CURSOR_RIGHT_BUTTON,
 | |
|     "wx.CURSOR_SIZENESW" : wx.CURSOR_SIZENESW,
 | |
|     "wx.CURSOR_SIZENS" : wx.CURSOR_SIZENS,
 | |
|     "wx.CURSOR_SIZENWSE" : wx.CURSOR_SIZENWSE,
 | |
|     "wx.CURSOR_SIZEWE" : wx.CURSOR_SIZEWE,
 | |
|     "wx.CURSOR_SIZING" : wx.CURSOR_SIZING,
 | |
|     "wx.CURSOR_SPRAYCAN" : wx.CURSOR_SPRAYCAN,
 | |
|     "wx.CURSOR_WAIT" : wx.CURSOR_WAIT,
 | |
|     "wx.CURSOR_WATCH" : wx.CURSOR_WATCH,
 | |
|     "wx.CURSOR_BLANK" : wx.CURSOR_BLANK,
 | |
|     "wx.CURSOR_DEFAULT" : wx.CURSOR_DEFAULT,
 | |
|     "wx.CURSOR_COPY_ARROW" : wx.CURSOR_COPY_ARROW,
 | |
|     "wx.CURSOR_ARROWWAIT" : wx.CURSOR_ARROWWAIT,
 | |
| 
 | |
|     "zz [custom cursor]"  : CUSTOMID,
 | |
| }
 | |
| 
 | |
| 
 | |
| class TestPanel(wx.Panel):
 | |
|     def __init__(self, parent, log):
 | |
|         self.log = log
 | |
|         wx.Panel.__init__(self, parent, -1)
 | |
| 
 | |
|         # create a list of choices from the dictionary above
 | |
|         choices = cursors.keys()
 | |
|         choices.sort()
 | |
| 
 | |
|         # create the controls
 | |
|         self.cb = wx.ComboBox(self, -1, "wx.CURSOR_DEFAULT", choices=choices,
 | |
|                               style=wx.CB_READONLY)
 | |
|         self.tx = wx.StaticText(self, -1,                                
 | |
|              "This sample allows you to see all the stock cursors \n"
 | |
|              "available to wxPython.  Simply select a name from the \n"
 | |
|              "wx.Choice and then move the mouse into the window \n"
 | |
|              "below to see the cursor.  NOTE: not all stock cursors \n"
 | |
|              "have a specific representaion on all platforms.")
 | |
|         
 | |
|         self.win = wx.Window(self, -1, size=(200,200), style=wx.SIMPLE_BORDER)
 | |
|         self.win.SetBackgroundColour("white")
 | |
| 
 | |
|         # bind an event or two
 | |
|         self.Bind(wx.EVT_COMBOBOX, self.OnChooseCursor, self.cb)
 | |
|         self.win.Bind(wx.EVT_LEFT_DOWN, self.OnDrawDot)
 | |
|         
 | |
| 
 | |
|         # Setup the layout
 | |
|         gbs = wx.GridBagSizer()
 | |
|         gbs.Add(self.cb, (2,1))
 | |
|         gbs.Add(self.tx, (2,3))
 | |
|         gbs.Add(self.win, (5,0), (1, 6), wx.ALIGN_CENTER)
 | |
|         self.SetSizer(gbs)
 | |
| 
 | |
| 
 | |
|     def OnChooseCursor(self, evt):
 | |
|         # clear the dots
 | |
|         self.win.Refresh()
 | |
| 
 | |
|         choice = evt.GetString() #self.cb.GetStringSelection()
 | |
|         self.log.write("Selecting the %s cursor\n" % choice)
 | |
| 
 | |
|         cnum = cursors[choice]
 | |
|         
 | |
|         if cnum == CUSTOMID:
 | |
|             image = images.getPointyImage()
 | |
| 
 | |
|             # since this image didn't come from a .cur file, tell it where the hotspot is
 | |
|             image.SetOptionInt(wx.IMAGE_OPTION_CUR_HOTSPOT_X, 1)
 | |
|             image.SetOptionInt(wx.IMAGE_OPTION_CUR_HOTSPOT_Y, 1)
 | |
| 
 | |
|             # make the image into a cursor
 | |
|             cursor = wx.CursorFromImage(image)
 | |
| 
 | |
|         else:
 | |
|             # create one of the stock (built-in) cursors
 | |
|             cursor = wx.StockCursor(cnum)
 | |
| 
 | |
|         # set the cursor for the window
 | |
|         self.win.SetCursor(cursor)
 | |
| 
 | |
| 
 | |
|     def OnDrawDot(self, evt):
 | |
|         # Draw a dot so the user can see where the hotspot is
 | |
|         dc = wx.ClientDC(self.win)
 | |
|         dc.SetPen(wx.Pen("RED"))
 | |
|         dc.SetBrush(wx.Brush("RED"))
 | |
|         pos = evt.GetPosition()
 | |
|         dc.DrawCircle(pos.x, pos.y, 4)
 | |
|         
 | |
| 
 | |
| #----------------------------------------------------------------------
 | |
| 
 | |
| def runTest(frame, nb, log):
 | |
|     win = TestPanel(nb, log)
 | |
|     return win
 | |
| 
 | |
| #----------------------------------------------------------------------
 | |
| 
 | |
| 
 | |
| 
 | |
| overview = """<html><body>
 | |
| <h2><center>wx.Cursor</center></h2>
 | |
| 
 | |
| This demo shows the stock mouse cursors that are available to wxPython.
 | |
| 
 | |
| </body></html>
 | |
| """
 | |
| 
 | |
| 
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     import sys,os
 | |
|     import run
 | |
|     run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
 | |
| 
 |