# Searching the best provider MTWindow = None if not "PYMT_DOC" in os.environ: if "pygame" in pymt.pymt_options["window"]: try: import win_pygame MTWindow = win_pygame.MTWindowPygame pymt_logger.info("Window: use Pygame as window provider.") except ImportError: pymt_logger.debug("Window: Unable to use Pygame as provider.") if MTWindow is None and "glut" in pymt.pymt_options["window"]: try: import win_glut MTWindow = win_glut.MTWindowGlut pymt_logger.info("Window: use GLUT as window provider.") except ImportError: pymt_logger.debug("Window: Unable to use GLUT as provider.") # No window provider ? if MTWindow is None: pymt_logger.critical("Window: No provider found (configuration is %s)" % str(pymt.pymt_options["window"])) # Register all base widgets MTWidgetFactory.register("MTWindow", MTWindow) MTWidgetFactory.register("MTDisplay", MTDisplay)
for touch in getCurrentTouches(): drawCircle(pos=(touch.x, touch.y), radius=self.radius) # Searching the best provider MTWindow = None if not 'PYMT_DOC' in os.environ: if 'pygame' in pymt.pymt_options['window']: try: import win_pygame MTWindow = win_pygame.MTWindowPygame pymt_logger.info('Window: use Pygame as window provider.') except ImportError: pymt_logger.debug('Window: Unable to use Pygame as provider.') if MTWindow is None and 'glut' in pymt.pymt_options['window']: try: import win_glut MTWindow = win_glut.MTWindowGlut pymt_logger.info('Window: use GLUT as window provider.') except ImportError: pymt_logger.debug('Window: Unable to use GLUT as provider.') # No window provider ? if MTWindow is None: pymt_logger.critical('Window: No provider found (configuration is %s)' % str(pymt.pymt_options['window'])) # Register all base widgets MTWidgetFactory.register('MTWindow', MTWindow) MTWidgetFactory.register('MTDisplay', MTDisplay)
self.close() else: self.hide() def on_select(self, filelist): pass def reset_selection(self): self.view.selection = [] self.view.update() # Register Default File types with their icons FileTypeFactory.register(['jpg','jpeg'], os.path.join(icons_filetype_dir, 'image-jpeg.png')) FileTypeFactory.register(['svg'], os.path.join(icons_filetype_dir, 'image-svg.png')) FileTypeFactory.register(['png'], os.path.join(icons_filetype_dir, 'image-png.png')) FileTypeFactory.register(['bmp'], os.path.join(icons_filetype_dir, 'image-bmp.png')) FileTypeFactory.register(['mpg','mpeg','avi','mkv','flv'], os.path.join(icons_filetype_dir, 'video.png')) FileTypeFactory.register(['folder'], os.path.join(icons_filetype_dir, 'folder.png')) FileTypeFactory.register(['unknown'], os.path.join(icons_filetype_dir, 'unknown.png')) # Register all bases widgets MTWidgetFactory.register('MTFileBrowser', MTFileBrowser) MTWidgetFactory.register('MTFileBrowserView', MTFileBrowserView)
if self.slayout.dispatch_event('on_touch_down', touch): touch.pop() return True touch.pop() return super(MTSpellVKeyboard, self).on_touch_down(touch) def on_text_change(self, text): self._clear_suggestions() if len(text) == 0: return l = text.replace('\r\n,.:; ', ' ') self.last_word = l.split(' ')[-1] if self.last_word == '': return self._add_suggestion(self.last_word) self.suggests = self.spelling.suggest(self.last_word)[:10] for word in self.suggests: self._add_suggestion(word) def on_update(self): # ensure the layout position self.slayout.pos = (5, self.height + 5) super(MTSpellVKeyboard, self).on_update() MTWidgetFactory.register('MTSpellVKeyboard', MTSpellVKeyboard)
def draw_trajectory(self, trajectory, close = False): for i in range(len(trajectory)): with gx_begin(GL_LINES): glVertex2f(trajectory[i][0], trajectory[i][1]) if i < len(trajectory) - 1: glVertex2f(trajectory[i+1][0], trajectory[i+1][1]) if close: glVertex2f(trajectory[0][0], trajectory[0][1]) glVertex2f(trajectory[len(trajectory)-1][0], trajectory[len(trajectory)-1][1]) def on_touch_down(self, touch): self.trajectory_dict[touch.id] = [] def on_touch_move(self, touch): self.trajectory_dict[touch.id].append((touch.x,touch.y)) def on_touch_up(self, touch): self.trajectory_dict_compiled[touch.id] = GlDisplayList() with self.trajectory_dict_compiled[touch.id]: self.draw_trajectory(self.trajectory_dict[touch.id], self.close) MTWidgetFactory.register('MTTrajectory', MTTrajectory) if __name__ == '__main__': from pymt import * w = MTWindow() mms = MTTrajectory() w.add_widget(mms) runTouchApp()
def __init__(mcs, name, bases, attrs): super(MTWidgetMetaclass, mcs).__init__(name, bases, attrs) # auto registration in factory MTWidgetFactory.register(name, mcs)
for _wid in ktouch.grab_list[:]: wid = _wid() if wid is None: ktouch.grab_list.remove(_wid) continue ktouch.push() ktouch.x, ktouch.y = self.to_window(*ktouch.pos) if wid.parent: ktouch.x, ktouch.y = wid.parent.to_widget(ktouch.x, ktouch.y) else: ktouch.x, ktouch.y = wid.to_parent(*wid.to_widget(ktouch.x, ktouch.y)) ktouch.grab_current = wid ktouch.grab_state = True if type == 'move': wid.dispatch_event('on_touch_move', ktouch) else: wid.dispatch_event('on_touch_up', ktouch) ktouch.grab_state = False ktouch.grab_current = None ktouch.pop() # remove finished event for touchID in todelete: del self.touch[touchID] def draw(self): self.process_kinetic() MTWidgetFactory.register('MTKinetic', MTKinetic)
''' MTImage: MTImage displays an image on the screen that can be repositioned. If you want to rotate it, use MTScatterImage instead. ''' __all__ = ('MTImage', ) from pymt.core.image import Image from pymt.ui.factory import MTWidgetFactory from pymt.ui.widgets.container import MTContainer def MTImage(arg, **kwargs): ''' Convenience wrapper for MTContainer(Image(...)). Allows to easily display an image. For a full reference on the parameters accepted, please refer to the documentation of the `Image` class: ''' return MTContainer(Image(arg, **kwargs)) MTImage.__doc__ += Image.__doc__ MTWidgetFactory.register('MTImage', MTImage)
else: self.hide() def on_select(self, filelist): pass def reset_selection(self): self.view.selection = [] self.view.update() # Register Default File types with their icons FileTypeFactory.register(['jpg', 'jpeg'], os.path.join(icons_filetype_dir, 'image-jpeg.png')) FileTypeFactory.register(['svg'], os.path.join(icons_filetype_dir, 'image-svg.png')) FileTypeFactory.register(['png'], os.path.join(icons_filetype_dir, 'image-png.png')) FileTypeFactory.register(['bmp'], os.path.join(icons_filetype_dir, 'image-bmp.png')) FileTypeFactory.register(['mpg', 'mpeg', 'avi', 'mkv', 'flv'], os.path.join(icons_filetype_dir, 'video.png')) FileTypeFactory.register(['folder'], os.path.join(icons_filetype_dir, 'folder.png')) FileTypeFactory.register(['unknown'], os.path.join(icons_filetype_dir, 'unknown.png')) # Register all bases widgets MTWidgetFactory.register('MTFileBrowser', MTFileBrowser) MTWidgetFactory.register('MTFileBrowserView', MTFileBrowserView)
def draw(self): self.size = self.image.size self.image.opacity = self.opacity self.image.draw() class MTScatterSvg(MTScatterWidget): '''Render an svg image into a scatter widget :Parameters: `filename` : str Filename of image `rawdata` : str Raw data of the image. If given, the filename property is used only for cache purposes. ''' def __init__(self, **kwargs): kwargs.setdefault('filename', None) if kwargs.get('filename') is None: raise Exception('No filename given to MTSvg') kwargs.setdefault('rawdata', None) super(MTScatterSvg, self).__init__(**kwargs) self.squirt = MTSvg(filename=kwargs.get('filename'), rawdata=kwargs.get('rawdata')) self.size = (self.squirt.svg.width, self.squirt.svg.height) def draw(self): self.squirt.draw() MTWidgetFactory.register('MTScatterImage', MTScatterImage) MTWidgetFactory.register('MTScatterPlane', MTScatterPlane) MTWidgetFactory.register('MTScatterSvg', MTScatterSvg) MTWidgetFactory.register('MTScatterWidget', MTScatterWidget)
# Searching the best provider MTWindow = None if not 'PYMT_DOC' in os.environ: if 'pygame' in pymt.pymt_options['window']: try: import win_pygame MTWindow = win_pygame.MTWindowPygame pymt_logger.info('Window: use Pygame as window provider.') except ImportError: pymt_logger.debug('Window: Unable to use Pygame as provider.') if MTWindow is None and 'glut' in pymt.pymt_options['window']: try: import win_glut MTWindow = win_glut.MTWindowGlut pymt_logger.info('Window: use GLUT as window provider.') except ImportError: pymt_logger.debug('Window: Unable to use GLUT as provider.') # No window provider ? if MTWindow is None: pymt_logger.critical( 'Window: No provider found (configuration is %s)' % str(pymt.pymt_options['window'])) # Register all base widgets MTWidgetFactory.register('MTWindow', MTWindow) MTWidgetFactory.register('MTDisplay', MTDisplay)