예제 #1
0
 def createCardLabel(self, suit, rank, x0, y0):
     dx, dy = self.label_width, self.label_height
     dir = self.images_dir
     canvas = self.canvas
     group = MfxCanvasGroup(canvas)
     #
     im = FindCardDialog.CARD_IMAGES.get((rank, suit))
     if im is None:
         r = '%02d' % (rank+1)
         s = 'cshd'[suit]
         fn = os.path.join(dir, r+s+'.gif')
         im = makeImage(file=fn)
         FindCardDialog.CARD_IMAGES[(rank, suit)] = im
     cim = MfxCanvasImage(canvas, x0, y0, image=im, anchor='nw')
     cim.addtag(group)
     cim.lower()
     #
     rect_width = 4
     x1, y1 = x0+dx, y0+dy
     rect = MfxCanvasRectangle(self.canvas, x0+1, y0+1, x1-1, y1-1,
                               width=rect_width,
                               fill=None,
                               outline='red',
                               state='hidden'
                               )
     rect.addtag(group)
     #
     bind(group, '<Enter>',
          lambda e, suit=suit, rank=rank, rect=rect:
              self.enterEvent(suit, rank, rect, group))
     bind(group, '<Leave>',
          lambda e, suit=suit, rank=rank, rect=rect:
              self.leaveEvent(suit, rank, rect, group))
     self.groups.append(group)
예제 #2
0
파일: card.py 프로젝트: jimsize/PySolFC
 def __init__(self, id, deck, suit, rank, game, x=0, y=0):
     _HideableCard.__init__(self, id, deck, suit, rank, game, x=x, y=y)
     images = game.app.images
     self.item = MfxCanvasGroup(game.canvas)
     self.__face = MfxCanvasImage(game.canvas, self.x, self.y,
                                  image=images.getFace(deck, suit, rank),
                                  anchor='nw')
     self.__back = MfxCanvasImage(game.canvas, self.x, self.y,
                                  image=images.getBack(),
                                  anchor='nw')
     self.__face.addtag(self.item)
     self.__back.addtag(self.item)
     self.__face.hide()
예제 #3
0
파일: card.py 프로젝트: jimsize/PySolFC
class _OneImageCard(_HideableCard):
    def __init__(self, id, deck, suit, rank, game, x=0, y=0):
        _HideableCard.__init__(self, id, deck, suit, rank, game, x=x, y=y)
        images = game.app.images
        self.__face_image = images.getFace(deck, suit, rank)
        self.__back_image = images.getBack()
        self.__image = MfxCanvasImage(game.canvas, self.x, self.y,
                                      image=self.__back_image,
                                      anchor=gtk.ANCHOR_NW)
        if 0:
            # using a group for a single image doesn't gain much
            self.item = MfxCanvasGroup(game.canvas)
            self.__image.addtag(self.item)
        else:
            self.item = self.__image

    def showFace(self, unhide=1):
        if not self.face_up:
            self.__image.config(image=self.__face_image)
            self.tkraise(unhide)
            self.face_up = 1

    def showBack(self, unhide=1):
        if self.face_up:
            self.__image.config(image=self.__back_image)
            self.tkraise(unhide)
            self.face_up = 0

    def updateCardBackground(self, image):
        self.__back_image = image
        if not self.face_up:
            self.__image.config(image=image)
예제 #4
0
class _OneImageCard(_HideableCard):
    def __init__(self, id, deck, suit, rank, game, x=0, y=0):
        _HideableCard.__init__(self, id, deck, suit, rank, game, x=x, y=y)
        images = game.app.images
        self.__face_image = images.getFace(deck, suit, rank)
        self.__back_image = images.getBack()
        self.__image = MfxCanvasImage(game.canvas,
                                      self.x,
                                      self.y,
                                      image=self.__back_image,
                                      anchor=gtk.ANCHOR_NW)
        if 0:
            # using a group for a single image doesn't gain much
            self.item = MfxCanvasGroup(game.canvas)
            self.__image.addtag(self.item)
        else:
            self.item = self.__image

    def showFace(self, unhide=1):
        if not self.face_up:
            self.__image.config(image=self.__face_image)
            self.tkraise(unhide)
            self.face_up = 1

    def showBack(self, unhide=1):
        if self.face_up:
            self.__image.config(image=self.__back_image)
            self.tkraise(unhide)
            self.face_up = 0

    def updateCardBackground(self, image):
        self.__back_image = image
        if not self.face_up:
            self.__image.config(image=image)
예제 #5
0
 def updatePreview(self, key):
     if key == self.preview_key:
         return
     canvas = self.preview
     canvas.deleteAllItems()
     self.preview_images = []
     cs = self.manager.get(key)
     if not cs:
         self.preview_key = -1
         return
     names, columns = cs.getPreviewCardNames()
     try:
         # ???names, columns = cs.getPreviewCardNames()
         for n in names:
             f = os.path.join(cs.dir, n + cs.ext)
             self.preview_images.append(loadImage(file=f))
     except Exception:
         self.preview_key = -1
         self.preview_images = []
         return
     i, x, y, sx, sy, dx, dy = 0, 10, 10, 0, 0, cs.CARDW + 10, cs.CARDH + 10
     for image in self.preview_images:
         MfxCanvasImage(canvas, x, y, anchor="nw", image=image)
         sx, sy = max(x, sx), max(y, sy)
         i += 1
         if i % columns == 0:
             x, y = 10, y + dy
         else:
             x += dx
     canvas.config(width=sx+dx, height=sy+dy)
     canvas.set_scroll_region(0, 0, sx+dx, sy+dy)
     self.preview_key = key
예제 #6
0
 def __init__(self, id, deck, suit, rank, game, x=0, y=0):
     _HideableCard.__init__(self, id, deck, suit, rank, game, x=x, y=y)
     images = game.app.images
     self.__face_image = images.getFace(deck, suit, rank)
     self.__back_image = images.getBack()
     self.__image = MfxCanvasImage(game.canvas,
                                   self.x,
                                   self.y,
                                   image=self.__back_image,
                                   anchor=gtk.ANCHOR_NW)
     if 0:
         # using a group for a single image doesn't gain much
         self.item = MfxCanvasGroup(game.canvas)
         self.__image.addtag(self.item)
     else:
         self.item = self.__image
예제 #7
0
 def __init__(self, id, deck, suit, rank, game, x=0, y=0):
     _HideableCard.__init__(self, id, deck, suit, rank, game, x=x, y=y)
     images = game.app.images
     self.item = MfxCanvasGroup(game.canvas)
     self.__face = MfxCanvasImage(game.canvas,
                                  self.x,
                                  self.y,
                                  image=images.getFace(deck, suit, rank),
                                  anchor='nw')
     self.__back = MfxCanvasImage(game.canvas,
                                  self.x,
                                  self.y,
                                  image=images.getBack(),
                                  anchor='nw')
     self.__face.addtag(self.item)
     self.__back.addtag(self.item)
     self.__face.hide()
예제 #8
0
파일: card.py 프로젝트: jimsize/PySolFC
 def __init__(self, id, deck, suit, rank, game, x=0, y=0):
     _HideableCard.__init__(self, id, deck, suit, rank, game, x=x, y=y)
     images = game.app.images
     self.__face_image = images.getFace(deck, suit, rank)
     self.__back_image = images.getBack()
     self.__image = MfxCanvasImage(game.canvas, self.x, self.y,
                                   image=self.__back_image,
                                   anchor=gtk.ANCHOR_NW)
     if 0:
         # using a group for a single image doesn't gain much
         self.item = MfxCanvasGroup(game.canvas)
         self.__image.addtag(self.item)
     else:
         self.item = self.__image
예제 #9
0
파일: card.py 프로젝트: jimsize/PySolFC
class _TwoImageCard(_HideableCard):
    def __init__(self, id, deck, suit, rank, game, x=0, y=0):
        _HideableCard.__init__(self, id, deck, suit, rank, game, x=x, y=y)
        images = game.app.images
        self.item = MfxCanvasGroup(game.canvas)
        self.__face = MfxCanvasImage(game.canvas, self.x, self.y,
                                     image=images.getFace(deck, suit, rank),
                                     anchor='nw')
        self.__back = MfxCanvasImage(game.canvas, self.x, self.y,
                                     image=images.getBack(),
                                     anchor='nw')
        self.__face.addtag(self.item)
        self.__back.addtag(self.item)
        self.__face.hide()

    def showFace(self, unhide=1):
        if not self.face_up:
            self.__back.hide()
            self.__face.show()
            # self.tkraise(unhide)
            self.face_up = 1

    def showBack(self, unhide=1):
        if self.face_up:
            self.__face.hide()
            self.__back.show()
            # self.tkraise(unhide)
            self.face_up = 0

    def updateCardBackground(self, image):
        self.__back.config(image=image)
예제 #10
0
class _TwoImageCard(_HideableCard):
    def __init__(self, id, deck, suit, rank, game, x=0, y=0):
        _HideableCard.__init__(self, id, deck, suit, rank, game, x=x, y=y)
        images = game.app.images
        self.item = MfxCanvasGroup(game.canvas)
        self.__face = MfxCanvasImage(game.canvas,
                                     self.x,
                                     self.y,
                                     image=images.getFace(deck, suit, rank),
                                     anchor='nw')
        self.__back = MfxCanvasImage(game.canvas,
                                     self.x,
                                     self.y,
                                     image=images.getBack(),
                                     anchor='nw')
        self.__face.addtag(self.item)
        self.__back.addtag(self.item)
        self.__face.hide()

    def showFace(self, unhide=1):
        if not self.face_up:
            self.__back.hide()
            self.__face.show()
            # self.tkraise(unhide)
            self.face_up = 1

    def showBack(self, unhide=1):
        if self.face_up:
            self.__face.hide()
            self.__back.show()
            # self.tkraise(unhide)
            self.face_up = 0

    def updateCardBackground(self, image):
        self.__back.config(image=image)