Bob Ippolito wrote:
On Feb 28, 2006, at 2:50 PM, Kamilche wrote:
I tried my app on the Mac today, and everything works fine (go  
me!)  except the cursors. Some of them are cut in half, some of  
them are  wrapping around funny. I'm compiling custom cursors in  
a variety of  sizes, but all multiples of 8x8. Is there a  
limitation on the Mac  platform regarding cursors, that I'm  
unaware of?
It would be useful to come up with a reproducible example of this  
so  that if it is indeed broken, someone can figure out why and  
fix it.
-bob
Here ya go. Run this under Mac and Windows.
--Kamilche
import pygame
arrow = ( "xX                      ",
          "X.X                     ",
          "X..X                    ",
          "X...X                   ",
          "X....X                  ",
          "X.....X                 ",
          "X......X                ",
          "X.......X               ",
          "X........X              ",
          "X.........X             ",
          "X......XXXXX            ",
          "X...X..X                ",
          "X..XX..X                ",
          "X.X XX..X               ",
          "XX   X..X               ",
          "X     X..X              ",
          "      X..X              ",
          "       X..X             ",
          "       X..X             ",
          "        XX              ",
          "                        ",
          "                        ",
          "                        ",
          "                        ")
no = ("                        ",
         "                        ",
         "         XXXXXX         ",
         "       XX......XX       ",
         "      X..........X      ",
         "     X....XXXX....X     ",
         "    X...XX    XX...X    ",
         "   X.....X      X...X   ",
         "   X..X...X      X..X   ",
         "  X...XX...X     X...X  ",
         "  X..X  X...X     X..X  ",
         "  X..X   X...X    X..X  ",
         "  X..X    X.,.X   X..X  ",
         "  X..X     X...X  X..X  ",
         "  X...X     X...XX...X  ",
         "   X..X      X...X..X   ",
         "   X...X      X.....X   ",
         "    X...XX     X...X    ",
         "     X....XXXXX...X     ",
         "      X..........X      ",
         "       XX......XX       ",
         "         XXXXXX         ",
         "                        ",
         "                        ",
        )
def TestCursor(arrow):
    hotspot = None
    for y in range(len(arrow)):
        for x in range(len(arrow[y])):
            if arrow[y][x] in ['x', ',', 'O']:
                hotspot = x,y
                break
        if hotspot != None:
            break
    if hotspot == None:
        raise Exception("No hotspot specified for cursor '%s'!" %  
cursorname)
    s2 = []
    for line in arrow:
        s2.append(line.replace('x', 'X').replace(',', '.').replace 
('O', 'o'))
    cursor, mask = pygame.cursors.compile(s2, 'X', '.', 'o')
    size = len(arrow[0]), len(arrow)
    pygame.mouse.set_cursor(size, hotspot, cursor, mask)
def main():
    pygame.init()
    pygame.font.init()
    font = pygame.font.Font(None, 24)
    bg = pygame.display.set_mode((800, 600), 0, 24)
    bg.fill((255,255,255))
    bg.blit(font.render("Click to advance", 1, (0, 0, 0)), (0, 0))
    pygame.display.update()
    for cursor in [no, arrow]:
        TestCursor(cursor)
        quit = 0
        while not quit:
            pygame.event.pump()
            for e in pygame.event.get():
                if e.type == pygame.MOUSEBUTTONDOWN:
                    quit = 1
    pygame.quit()
main()