コード例 #1
0
 def __init__(self):
     
     # Init theme datas.
     self.__init_data()
     argv = ""
     for theme in theme_manager.get_user_themes() + theme_manager.get_system_themes():
         argv += theme.get_name() + ";"
     self.module_frame = ModuleFrame(self.config_file, argv)
     
     # Init slider.
     self.slider = HSlider()
 
     self.all_page = MainBox()
 
     # Add widgets in slider.
     self.all_page.set_size_request(PAGE_WIDTH, PAGE_HEIGHT)
     
     # Connect events.
     event_manager.add_callback("add-local-wallpapers", self.add_local_wallpappers)
     
     # Connect widgets.
     self.module_frame.add(self.slider)
     self.module_frame.connect("realize", lambda w: self.slider.set_to_page(self.all_page))
     self.module_frame.module_message_handler = self.message_handler
     self.module_frame.run()        
コード例 #2
0
class DeepinIndividuation(object):
    
    config_file = os.path.join(get_parent_dir(__file__, 2), "config.ini")
    
    def __init__(self):
        
        # Init theme datas.
        self.__init_data()
        argv = ""
        for theme in theme_manager.get_user_themes() + theme_manager.get_system_themes():
            argv += theme.get_name() + ";"
        self.module_frame = ModuleFrame(self.config_file, argv)
        
        # Init slider.
        self.slider = HSlider()
    
        self.all_page = MainBox()
    
        # Add widgets in slider.
        self.all_page.set_size_request(PAGE_WIDTH, PAGE_HEIGHT)
        
        # Connect events.
        event_manager.add_callback("add-local-wallpapers", self.add_local_wallpappers)
        
        # Connect widgets.
        self.module_frame.add(self.slider)
        self.module_frame.connect("realize", lambda w: self.slider.set_to_page(self.all_page))
        self.module_frame.module_message_handler = self.message_handler
        self.module_frame.run()        

    def add_local_wallpappers(self, name, obj, theme):
        d = gtk.FileChooserDialog(
                "Choose Pictures",
                None,
                gtk.FILE_CHOOSER_ACTION_OPEN,
                (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT,
                 gtk.STOCK_OPEN, gtk.RESPONSE_ACCEPT)
                )
        d.set_select_multiple(True)
        d.set_current_folder(get_images_dir())
        pic_filter = gtk.FileFilter()
        pic_filter.set_name(_("Image files"))
        pic_filter.add_mime_type("image/*")
        d.add_filter(pic_filter)
        response = d.run()
        if(response == gtk.RESPONSE_ACCEPT):
            filenames = d.get_filenames()
            wallpapper_path = get_download_wallpaper_dir()
            for name in filenames:
                shutil.copy2(name, wallpapper_path)
        d.destroy()

    def __init_data(self):
        theme_manager.load()
        theme_manager.untitled_theme(theme_manager.get_default_theme())
    
    def message_handler(self, *message):
        (message_type, message_content) = message
        if message_type == "click_crumb":
            (crumb_index, crumb_label) = message_content
                
        elif message_type == "show_again":
            self.module_frame.send_module_info()

        elif message_type == "switch-theme":
            theme = None

            for item in theme_manager.get_user_themes() + theme_manager.get_system_themes():
                if item.get_name() == message_content:
                    theme = item
                    break

            if theme:
                print "DEBUG", theme
                event_manager.emit("theme-detail", theme)

        elif message_type == "exit":
            self.module_frame.exit()