def createBottom(image, color='white', backfile=None): backfilebase = None if backfile is not None: backfilebase = os.path.basename(backfile) logging.info("createBottom: %s | %s" % (color, backfilebase)) # print('createBottom:',image) # th = 1 # thickness # size = (w - th * 2, h - th * 2) # original: zeichnet noch eine outline um die karte - können wir nicht. tmp0 = _createImageMask(image.texture, color) if backfile: tmp1 = CoreImage(backfile) txtre = _scaleTextureToSize(tmp1.texture, image.texture.size) tmp = _pasteTextureTo(txtre, tmp0) else: tmp = tmp0 img = LImage(texture=tmp) img.size[0] = image.getWidth() img.size[1] = image.getHeight() return img '''
def __init__(self, id, deck, suit, rank, game, x=0, y=0): _HideableCard.__init__(self, id, deck, suit, rank, game, x=x, y=y) fimage = game.getCardFaceImage(deck, suit, rank) bimage = game.getCardBackImage(deck, suit, rank) self._face_image = LImage(texture=fimage.texture) self._back_image = LImage(texture=bimage.texture) # self._face_image = Image(source=fimage.source) # self._back_image = Image(source=bimage.source) self._shade_image = game.getCardShadeImage() aimage = LImageItem(pos=(x, -y), size=self._face_image.size, game=game, card=self) aimage.add_widget(self._back_image) self._active_image = aimage self.item = MfxCanvasImage(game.canvas, self.x, self.y, image=aimage, anchor="nw") self.shade_item = None
def __init__(self, app, parent, title, **kw): logging.info('PysolAboutDialog:') super(PysolAboutDialog, self).__init__() self._url = kw['url'] logging.info('PysolAboutDialog: txt=%s' % title) text = kw['text'] text = text + '\n' + self._url logging.info('PysolAboutDialog: txt=%s' % text) text = text + '\n\n' + 'Adaptation to Kivy/Android\n' + \ ' Copyright (C) (2016-17) LB' self.parent = parent self.app = app self.window = None self.running = False self.status = 1 # -> von help.py so benötigt self.button = 0 # -> von help.py so benötigt # bestehenden Dialog rezyklieren. logging.info('PysolAboutDialog: 1') onlyone = PysolAboutDialog.AboutDialog if (onlyone and onlyone.running): return if (onlyone): onlyone.parent.pushWork('AboutDialog', onlyone.window) onlyone.running = True return # neuen Dialog aufbauen. window = LTopLevel(parent, title, size_hint=(1.0, 1.0)) window.titleline.bind(on_press=self.onClick) self.parent.pushWork('AboutDialog', window) self.window = window self.running = True PysolAboutDialog.AboutDialog = self if kw['image']: image = LImage(texture=kw['image'].texture) image.size_hint = (1, 0.8) al = AnchorLayout() al.add_widget(image) al.size_hint = (1, 0.3) window.content.add_widget(al) label = FText(text=text, halign='center', size_hint=(1, 1)) window.content.add_widget(label) '''
def __init__(self, canvas, *args, **kwargs): # print ('MfxCanvasImage: %s | %s | %s' % (canvas, args, kwargs)) group = None if 'group' in kwargs: group = kwargs['group'] del kwargs['group'] self._image = None if 'image' in kwargs: self._image = kwargs['image'] self._anchor = None if 'anchor' in kwargs: self._anchor = kwargs['anchor'] super(MfxCanvasImage, self).__init__() self.canvas = canvas self.animation = None ed = kwargs['image'] size = ed.size if type(ed) is LImageItem: aimage = ed else: if (ed.source is None): image = LImage(texture=ed.texture) image.size = [ed.getWidth(), ed.getHeight()] aimage = LImageItem(size=image.size, group=group) aimage.add_widget(image) size = image.size else: image = LImage(texture=ed.texture) # image = LImage(source=ed.source) image.size = [ed.getWidth(), ed.getHeight()] aimage = LImageItem(size=ed.size, group=group) aimage.add_widget(image) size = image.size xy = addAnchorOffset(args, self._anchor, size) aimage.coreSize = (aimage.size[0], aimage.size[1]) aimage.corePos = (xy[0], xy[1]) aimage.pos, aimage.size = canvas.CoreToKivy(xy, aimage.size) self.canvas.add_widget(aimage) self.image = aimage self.widget = aimage if group: self.addtag(group)
def __init__(self, parent, title, app, player, gameid, **kw): kw['size_hint'] = (0.5, 1) self.app = app self.selected_game = None kw = self.initKw(kw) print('SingleGame_StatsDialog: p=%s, g=%s, kw=%s' % (player, gameid, kw)) if isinstance(kw, KwStruct): print('kw=%s' % kw.getKw()) MfxDialog.__init__(self, parent, title, kw.resizable, kw.default) top_frame, bottom_frame = self.createFrames(kw) self.top_frame = top_frame # self.createBitmaps(top_frame, kw) # self.player = player or _("Demo games") self.top.wm_minsize(200, 200) self.button = kw.default # # createChart = self.create3DBarChart # createChart = self.createPieChart # createChart = self.createSimpleChart # if parent.winfo_screenwidth() < 800 # or parent.winfo_screenheight() < 600: # createChart = self.createPieChart # createChart = self.createSimpleChart # self.font = self.app.getFont("default") # self.tk_font = tkFont.Font(self.top, self.font) # self.font_metrics = self.tk_font.metrics() self._calc_tabs() if (kw.image): image = LImage(texture=kw.image.texture, size_hint=(1, 1)) self.top.add_widget(image) # won, lost = app.stats.getStats(player, gameid) pwon, plost = self._getPwon(won, lost) print('Stats(p): won=%s, lost=%s' % (won, lost)) text1 = 'Total:\n won: %s ... %s%%\n lost: %s ... %s%%\n\n' % ( won, int(round(100.0 * pwon)), lost, int(round(100.0 * plost))) # createChart(app, won, lost, _("Total")) won, lost = app.stats.getSessionStats(player, gameid) pwon, plost = self._getPwon(won, lost) print('Stats(s): won=%s, lost=%s' % (won, lost)) text2 = \ 'Current Session:\n won: %s ... %s%%\n lost: %s ... %s%%\n' % \ (won, int(round(100.0 * pwon)), lost, int(round(100.0 * plost))) # text2 = 'Current Session:\n won=%s, lost=%s\n' % (won, lost) # createChart(app, won, lost, _("Current session")) self.top.add_widget(Label(text=text1 + text2))
def setTopImage(self, image, cw=0, ch=0): print('MfxCanvas: setTopImage %s' % image) if self.topImage: self.clear_widgets([self.topImage]) self.topImage = None if image: tex = LImage(texture=image.texture) tex.size_hint = (0.4, 0.4) lay = AnchorLayout(anchor_y='bottom') lay.size = self.size lay.add_widget(tex) self.topImage = lay self.add_widget(self.topImage) return 1
def setTopImage(self, image, cw=0, ch=0): print('MfxCanvas: setTopImage %s' % image) if self.topImage: self.clear_widgets([self.topImage]) self.topImage = None if image: tex = LImage(texture=image.texture) tex.size_hint = (0.4, 0.4) lay = AnchorLayout(anchor_y='bottom') lay.size = self.size lay.add_widget(tex) self.topImage = lay self.add_widget(self.topImage) return 1
def _loadImage(self, name): file = os.path.join(self.dir, name) image = None for ext in IMAGE_EXTENSIONS: file = os.path.join(self.dir, name + ext) if os.path.isfile(file): image = LImage(source=file) # print('_loadImage: file=%s' % file) # image = Tkinter.PhotoImage(file=file) break return image
def __init__(self, parent, title, **kw): kw = self.initKw(kw) MfxDialog.__init__(self, parent, title, kw.resizable, kw.default) if (kw.image): image = LImage(texture=kw.image.texture, size_hint=(1, 1)) self.top.add_widget(image) label = FText(text=kw.text, halign='center') self.top.add_widget(label) # LB # nicht automatisch ein neues spiel laden. if (title == _("Game won")): self.status = 1 # self.button = 0 if (title == _("Game finished")): self.status = 1
def __init__(self, canvas, *args, **kwargs): # print ('MfxCanvasImage: %s | %s | %s' % (canvas, args, kwargs)) group = None if 'group' in kwargs: group = kwargs['group'] del kwargs['group'] self._image = None if 'image' in kwargs: self._image = kwargs['image'] self._anchor = None if 'anchor' in kwargs: self._anchor = kwargs['anchor'] super(MfxCanvasImage, self).__init__() self.canvas = canvas self.animation = None ed = kwargs['image'] size = ed.size if type(ed) is LImageItem: aimage = ed else: if (ed.source is None): image = LImage(texture=ed.texture) image.size = [ed.getWidth(), ed.getHeight()] aimage = LImageItem(size=image.size, group=group) aimage.add_widget(image) size = image.size else: image = LImage(texture=ed.texture) # image = LImage(source=ed.source) image.size = [ed.getWidth(), ed.getHeight()] aimage = LImageItem(size=ed.size, group=group) aimage.add_widget(image) size = image.size xy = addAnchorOffset(args, self._anchor, size) aimage.coreSize = (aimage.size[0], aimage.size[1]) aimage.corePos = (xy[0], xy[1]) aimage.pos, aimage.size = canvas.CoreToKivy(xy, aimage.size) self.canvas.add_widget(aimage) self.image = aimage self.widget = aimage if group: self.addtag(group)
def createImage(width, height, fill, outline=None, outwidth=1): logging.info("createImage: w=%s, h=%s, f=%s, o=%s, ow=%s" % (width, height, fill, outline, outwidth)) # test stellungen: # if (fill==None): # fill = '#00cc00' # if (outline==None): # outline = '#ff00ff' # if (fill is None and (outline is None or outline == '')): # outline = '#fff000' # outwidth = 1 texture = Texture.create(size=(width, height), colorfmt='rgba') fillTexture(texture, fill, outline, outwidth) image = LImage(texture=texture) # logging.info("createImage: LImage create %s" % image) return image
def makeImage(file=None, data=None, dither=None, alpha=None): kw = {} if data is None: assert file is not None kw["source"] = file # print('makeImage: source = %s' % file) # if (file=='/home/lb/PRG/Python/Kivy/pysolfc/data/images/redeal.gif'): # y = self.yy else: assert data is not None kw["texture"] = data # ob das geht ?? - kommt das vor ? # yy = self.yy ''' if 'source' in kw: logging.info ("makeImage: " + kw["source"]) if 'texture' in kw: logging.info ("makeImage: " + str(kw["texture"])) ''' return LImage(**kw)
def updateCardBackground(self, image): print('card: updateCardBackground = %s' % image.source) self._back_image = LImage(texture=image.texture) if not self.face_up: self._setImage(image=self._back_image)