Esempio n. 1
0

# 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)
Esempio n. 2
0
        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)
Esempio n. 3
0
            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)
Esempio n. 4
0
        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)

Esempio n. 5
0
    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()
Esempio n. 6
0
 def __init__(mcs, name, bases, attrs):
     super(MTWidgetMetaclass, mcs).__init__(name, bases, attrs)
     # auto registration in factory
     MTWidgetFactory.register(name, mcs)
Esempio n. 7
0
            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)
Esempio n. 8
0
'''
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)
Esempio n. 9
0
        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)
Esempio n. 10
0
    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)
Esempio n. 11
0
 def __init__(mcs, name, bases, attrs):
     super(MTWidgetMetaclass, mcs).__init__(name, bases, attrs)
     # auto registration in factory
     MTWidgetFactory.register(name, mcs)
Esempio n. 12
0
'''
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)

Esempio n. 13
0

# 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)
Esempio n. 14
0
        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)