コード例 #1
0
 def getTileImage(self, tileNumber, paletteIndex):
     assert(self.TILE_WIDTH > 0)
     assert(self.TILE_HEIGHT > 0)
     assert((tileNumber >= 0) and (tileNumber < self.tileAmount))
     planarTileData = self.getPlanarTileFromBankData(tileNumber)
     linearTileData = ImageEditor.convertPlanarTileToLinearTile(planarTileData)
     coloredTileData = ImageEditor.colorLinearTileWithPalette(linearTileData, self.getPalette(paletteIndex))
     return ImageEditor.createImageFromColoredLinearTile(coloredTileData, self.TILE_WIDTH, self.TILE_HEIGHT)
コード例 #2
0
ファイル: main.py プロジェクト: Danaze/scavenger-cf
    def __init__(self):
        hildon.Program.__init__(self)
        
        # Read in the .glade file.
        self.widgets = gtk.glade.XML(self.GLADEFILE)

        # Set local vars.
        self.config = ConfigParser()
        try:
            self.config.read(Defines.CONFIG_FILE)
        except:
            # If an error occurs reading the config file a fresh config 
            # parser is created - just in case.
            self.config = ConfigParser()
        self.fullscreen = False
        self.image_browser = ImageBrowser(self, self.widgets)
        self.image_editor = ImageEditor(self, self.widgets)
        self.task_monitor = TaskMonitor(self, self.widgets)
        self.config_window = ConfigWindow(self, self.widgets, self.config)
 #       self.about = About(self, self.widgets)
        self.mode = 'browse'

        # Register with DBus.
        self.osso_c = osso.Context('AugIM', '0.1.0', False)
        osso_rpc = osso.Rpc(self.osso_c)
        osso_rpc.set_rpc_callback('edu.daimi.augim',\
                                  'edu/daimi/augim',\
                                  'edu.daimi.augim',\
                                  self.cb_osso, self.osso_c)
        
        # Initialize the image browser. Load in any images in $HOME/MyImages.
        try:
            self.image_browser.load_images_from_path(Defines.IMAGE_PATH)
        except OSError:
            pass
コード例 #3
0
 def updateEditorCanvasImage(self, ui):
     x = 0
     y = 0
     levelPointer = 0
     while (levelPointer < self.level.LEVEL_TILE_AMOUNT):
         for y in range(0, self.EDITORCANVAS_WIDTH, self.TILE_WIDTH):
             for x in range(0, self.EDITORCANVAS_HEIGHT, self.TILE_HEIGHT):
                 tile = self.level.tilemap[levelPointer]
                 prop = self.level.tilemap[levelPointer+1]
                 levelPointer += 2
                 
                 vflip = ((prop & self.AND_TILE_VFLIP) >> self.AND_TILE_VFLIP_SHIFT)
                 hflip = ((prop & self.AND_TILE_HFLIP) >> self.AND_TILE_HFLIP_SHIFT)
                 priority = ((prop & self.AND_TILE_PRIORITY) >> self.AND_TILE_PRIORITY_SHIFT)
                 palette = ((prop & self.AND_TILE_PALETTE) >> self.AND_TILE_PALETTE_SHIFT)
                 bank = ((prop & self.AND_TILE_BANK) >> self.AND_TILE_BANK_SHIFT)
                 tileImg = self.levelBank.getTileImage(tile + (bank * 256), self.level.paletteIndex[palette] - 1)
                 if hflip or vflip:
                     tileImg = ImageEditor.createTransposedImage(tileImg, hflip, vflip, 0)
                 ui.pasteOnLevelCanvas(ImageEditor.convertImageToTkPhotoImage(tileImg), x, y)
コード例 #4
0
ファイル: main.py プロジェクト: Danaze/scavenger-cf
class AugIm_UI(hildon.Program):
    """Maemo (GTK) frontend for the AugIM image handling program."""
    
    GLADEFILE = 'augim_main.glade'

    def __init__(self):
        hildon.Program.__init__(self)
        
        # Read in the .glade file.
        self.widgets = gtk.glade.XML(self.GLADEFILE)

        # Set local vars.
        self.config = ConfigParser()
        try:
            self.config.read(Defines.CONFIG_FILE)
        except:
            # If an error occurs reading the config file a fresh config 
            # parser is created - just in case.
            self.config = ConfigParser()
        self.fullscreen = False
        self.image_browser = ImageBrowser(self, self.widgets)
        self.image_editor = ImageEditor(self, self.widgets)
        self.task_monitor = TaskMonitor(self, self.widgets)
        self.config_window = ConfigWindow(self, self.widgets, self.config)
 #       self.about = About(self, self.widgets)
        self.mode = 'browse'

        # Register with DBus.
        self.osso_c = osso.Context('AugIM', '0.1.0', False)
        osso_rpc = osso.Rpc(self.osso_c)
        osso_rpc.set_rpc_callback('edu.daimi.augim',\
                                  'edu/daimi/augim',\
                                  'edu.daimi.augim',\
                                  self.cb_osso, self.osso_c)
        
        # Initialize the image browser. Load in any images in $HOME/MyImages.
        try:
            self.image_browser.load_images_from_path(Defines.IMAGE_PATH)
        except OSError:
            pass
    
    def __wrap(self, text, width):
        result = []
        while True:
            if width > len(text):
                # The last line has been reached.
                result.append(text)
                break
            x = width
            # Check for newlines within the next piece of text. 
            newline = text[:x].find('\n')
            if newline != -1:
                # There is a newline char in the text.
                result.append(text[:newline+1])
                text = text[newline+1:]
                continue
            while x > 0 and text[x] != ' ':
                x -= 1
            if x == 0:
                # The token is larger than the line.
                result.append(text[:width-2] + '-\n')
                text = text[width-2:]
            else:
                result.append(text[:x] + '\n')
                text = text[x+1:]
        return ''.join(result)

    def popup_message(self, message):
        note = osso.SystemNote(self.osso_c)
        note.system_note_infoprint(self.__wrap(message, 40))
    
    def __get_active_window(self):
        if self.mode == 'browse':
            return self.image_browser
        elif self.mode == 'edit':
            return self.image_editor
        elif self.mode == 'task':
            return self.task_monitor
        elif self.mode == 'config':
            return self.config_window
    
    def __set_active_window(self, mode):
        self.mode = mode
        if self.mode == 'browse':
            self.image_browser.show()
        elif self.mode == 'edit':
            self.image_editor.show(self.image_browser.original_image)
        elif self.mode == 'task':
            self.task_monitor.show()
        elif self.mode == 'config':
            self.config_window.show()
    
    def set_mode(self, mode):
        old_window = self.__get_active_window()
        self.fullscreen = old_window.fullscreen
        self.__set_active_window(mode)
        old_window.hide()

    def cb_osso (self, interface, method, arguments, user_data):
        print 'received an OSSO RPC.'

    def run (self):
        self.image_browser.show()
        gtk.main()