theme_creator.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:XFWM_theme_creator 作者: Sjc1000 项目源码 文件源码
def load_files(self, folder):
        global files
        new_files = OrderedDict()
        image_files = sorted(os.listdir(folder))
        if 'xfwm4' in image_files:
            self.load_files(folder + '/xfwm4')
            return None
        for name in image_files:
            if name == 'themerc':
                # I might build in themerc support.
                # for now, I skip this.
                continue
            if not name.endswith('.xpm'):
                continue
            with open('{}/{}'.format(folder, name), 'r') as f:
                data = f.read().replace('\n', '')
            content = data.split('{')[1]
            content = content.strip('{};').split(',')
            chars = {}

            # Parse the width / height / number of colors
            width, height, colors, _ = content[0].strip('"').split(' ')
            width = int(width)
            height = int(height)
            for i in range(int(colors)):
                color_info = content[i+1].strip('"')
                char, color = color_info.split('c', 1)
                char = char[0]
                if 's' in color:
                    color, var = color.split('s', 1)
                else:
                    var = None
                color = color.strip()
                if color.lower() == 'none':
                    color = None
                if var is not None:
                    var = var.strip()
                if color is not None:
                    color = color.lstrip('#')
                    color = Gdk.RGBA(*(x/255 for x in bytes.fromhex(color)))
                chars[char] = [color, var]
            image = [[[None, None] for x in range(width)] for y in range(height)]
            for yi, y in enumerate(content[len(chars)+1:]):
                for xi, x in enumerate(y.strip('"')):
                    image[yi][xi] = chars[x]
            filename = name.split('.')[0]
            new_files.update({filename: {'image': image,
                         'size': [width, height]}})
        for name in names:
            if name not in image_files:
                files.update({name: {'image': [[[None, None]]], 'size': [1, 1]}})

        for name in sorted(new_files):
            files.update({name: new_files[name]})

        self.file_selecter.active = None
        return None
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号