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 __init_themes(self):
        print "system start"
        system_themes = theme_manager.get_system_themes()
        if system_themes:
            self.add_themes(system_themes)

        for item in self.items:
            if theme_manager.is_current_theme(item.theme):
                self.__single_click_item = item
                self.set_highlight(self.__single_click_item)
                break
        print "system end"
    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()