示例#1
0
    def __init__(self, sink, path):
        DockManagerItem.__init__(self, sink, path)

        self.player = None
        self.shell = None

        self.elapsed_secs = 0
        self.duration_secs = 0
        self.songinfo = None
        self.cover_basename = ""
        self.current_arturl = ""
        self.current_arturl_mtime = 0

        self.bus.add_signal_receiver(self.name_owner_changed_cb,
                                     dbus_interface='org.freedesktop.DBus',
                                     signal_name='NameOwnerChanged')

        obj = self.bus.get_object("org.freedesktop.DBus",
                                  "/org/freedesktop/DBus")
        self.bus_interface = dbus.Interface(obj, "org.freedesktop.DBus")

        self.bus_interface.ListNames(
            reply_handler=self.list_names_handler,
            error_handler=self.list_names_error_handler)

        self.bus.add_signal_receiver(self.signal_playingChanged,
                                     "playingChanged", playeriface,
                                     rhythmboxbus, playerpath)
        self.bus.add_signal_receiver(self.signal_elapsedChanged,
                                     "elapsedChanged", playeriface,
                                     rhythmboxbus, playerpath)
        self.bus.add_signal_receiver(self.signal_playingUriChanged,
                                     "playingUriChanged", playeriface,
                                     rhythmboxbus, playerpath)
示例#2
0
    def __init__(self, sink, path):
        DockManagerItem.__init__(self, sink, path)

        # Initialize our dbus interface
        self.__dbus = dbus.SessionBus()

        watcher.set_item(self)
示例#3
0
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)
		self.monitor = None 
		self.recent = []
		self.most = []
		self.ids = {}

		self.has_uri = True
		self.uri = self.iface.Get(DOCKITEM_IFACE, "Uri", dbus_interface="org.freedesktop.DBus.Properties")
		if not self.uri:
			self.has_uri = False
			self.uri = self.iface.Get(DOCKITEM_IFACE, "DesktopFile", dbus_interface="org.freedesktop.DBus.Properties")
			self.uri = 'application://%s' % self.uri[self.uri.rfind('/')+1:]

		self.app_info = None
		app_uri = self.iface.Get(DOCKITEM_IFACE, "DesktopFile", dbus_interface="org.freedesktop.DBus.Properties")
		apps = gio.app_info_get_all()
		app = None
		t_app = app_uri.split("/")[-1].replace(".desktop", "")
		if t_app:
			for app in apps:
				if t_app in app.get_executable():
					self.app_info = app
					break
		self.update_entries()
示例#4
0
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)

		self.player = None
		self.shell = None

		self.elapsed_secs = 0
		self.duration_secs = 0
		self.songinfo = None
		self.cover_basename = ""
		self.current_arturl = ""
		self.current_arturl_mtime = 0

		self.bus.add_signal_receiver(self.name_owner_changed_cb,
                                             dbus_interface='org.freedesktop.DBus',
                                             signal_name='NameOwnerChanged')
                                             
		obj = self.bus.get_object ("org.freedesktop.DBus", "/org/freedesktop/DBus")
		self.bus_interface = dbus.Interface(obj, "org.freedesktop.DBus")
		
		self.bus_interface.ListNames (reply_handler=self.list_names_handler, error_handler=self.list_names_error_handler)

		self.bus.add_signal_receiver(self.signal_playingChanged, "playingChanged",  playeriface, rhythmboxbus, playerpath)
		self.bus.add_signal_receiver(self.signal_elapsedChanged, "elapsedChanged",  playeriface, rhythmboxbus, playerpath)
		self.bus.add_signal_receiver(self.signal_playingUriChanged, "playingUriChanged",  playeriface, rhythmboxbus, playerpath)
示例#5
0
    def __init__(self, sink, path):
        DockManagerItem.__init__(self, sink, path)

        # Initialize our dbus interface
        self.__dbus = dbus.SessionBus()

        watcher.set_item(self)
    def __init__(self, sink, path):
        DockManagerItem.__init__(self, sink, path)

        self.player = dbus.SessionBus().get_object(amarokbus, playerpath)
        self.add_menu_item("Play/Pause", "media-playback-start", "Controls")
        self.add_menu_item("Previous", "media-skip-backward", "Controls")
        self.add_menu_item("Next", "media-skip-forward", "Controls")
示例#7
0
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)
		menu_id = self.add_menu_item("Journal", "document-open-recent")
		self.id_map[menu_id] = "Journal"
		self.uri = self.iface.Get(DOCKITEM_IFACE, "Uri", dbus_interface="org.freedesktop.DBus.Properties")
		if not self.uri:
			self.uri = self.iface.Get(DOCKITEM_IFACE, "DesktopFile", dbus_interface="org.freedesktop.DBus.Properties")
			self.uri = 'application://%s' % self.uri[self.uri.rfind('/')+1:]
  def __init__(self, sink, path):
    DockManagerItem.__init__(self, sink, path)

    
    self.player = dbus.SessionBus().get_object(amarokbus, playerpath)
    self.add_menu_item("Play/Pause", "media-playback-start", "Controls")
    self.add_menu_item("Previous", "media-skip-backward", "Controls")
    self.add_menu_item("Next", "media-skip-forward", "Controls")
示例#9
0
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)
		
		self.timer = 0
		
		if not self.timer > 0:
			self.timer = timeout_add (2000, self.update_badge)
		
		self.set_menu_buttons()
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)

		self.map = {} #k,v => action_name, action_method
		self.items = []
                self.sessionBus = dbus.SessionBus()

                self.kmail_connect()
		self.add_options() #add to the menu the list of quick links for mail
示例#11
0
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)

		self.add_menu_item("Previous", "media-skip-backward", "MPD Controls")
		self.add_menu_item("Play/Pause", "media-playback-start", "MPD Controls")
		self.add_menu_item("Next", "media-skip-forward", "MPD Controls")

		# add a timed function that updates the item tooltip
		gobject.timeout_add(1000, self.update_title)
示例#12
0
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)
		self.file_map = {}
		self.read_files()

		if monitor_with_inotify:
			wm = pyinotify.WatchManager()
			handler = TsclientMonitor(item=self)
			notifier = GobjectNotifier(wm, default_proc_fun=handler)
			wm.add_watch(rdp_bookmark_dir, pyinotify.ALL_EVENTS)
示例#13
0
    def __init__(self, sink, path):
        DockManagerItem.__init__(self, sink, path)

        self.add_menu_item("Previous", "media-skip-backward", "MPD Controls")
        self.add_menu_item("Play/Pause", "media-playback-start",
                           "MPD Controls")
        self.add_menu_item("Next", "media-skip-forward", "MPD Controls")

        # add a timed function that updates the item tooltip
        gobject.timeout_add(1000, self.update_title)
示例#14
0
    def __init__(self, sink, path):
        DockManagerItem.__init__(self, sink, path)
        self.file_map = {}
        self.read_files()

        if monitor_with_inotify:
            wm = pyinotify.WatchManager()
            handler = TsclientMonitor(item=self)
            notifier = GobjectNotifier(wm, default_proc_fun=handler)
            wm.add_watch(rdp_bookmark_dir, pyinotify.ALL_EVENTS)
示例#15
0
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)
		self.emesene = None

		self.bus.add_signal_receiver(self.name_owner_changed_cb, dbus_interface='org.freedesktop.DBus', signal_name = 'NameOwnerChanged')
		obj = self.bus.get_object("org.freedesktop.DBus", "/org/freedesktop/DBus")
		self.bus_interface = dbus.Interface(obj, "org.freedesktop.DBus")

		self.bus_interface.ListNames (reply_handler=self.list_names_handler, error_handler=self.list_names_error_handler)

		self.bus.add_signal_receiver(self.conversation_updated, "unread_messages", emeseneiface, emesenebus, emesenepath)
示例#16
0
    def __init__(self, sink, path):
        DockManagerItem.__init__(self, sink, path)

        self.add_menu_item("Show", None, "Hotot Controls")
        self.add_menu_item("Hide", None, "Hotot Controls")
        self.add_menu_item("Update unread", "reload", "Hotot Controls")
        self.add_menu_item("Quit", "gtk-delete", "Hotot Controls")

        self.hotot = HototDBus()

        self.update_badge()
示例#17
0
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)

		self.add_menu_item("Show", None, "Hotot Controls")
		self.add_menu_item("Hide", None, "Hotot Controls")
		self.add_menu_item("Update unread", "reload", "Hotot Controls")
		self.add_menu_item("Quit", "gtk-delete", "Hotot Controls")

		self.hotot = HototDBus()

		self.update_badge()
    def __init__(self, sink, path):
        DockManagerItem.__init__(self, sink, path)

        self.storage = client.Storage()
        self.storage.connect("facts-changed", lambda storage: self.refresh_hamster())
        self.storage.connect("activities-changed", lambda storage: self.refresh_hamster())

        self.id_map = {} #menu items

        self.update_text()
        self.add_actions()
        gobject.timeout_add_seconds(60, self.refresh_hamster)
示例#19
0
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)
		self.gtg = None
		
		self.bus.add_signal_receiver(self.name_owner_changed_cb,
                                             dbus_interface='org.freedesktop.DBus',
                                             signal_name='NameOwnerChanged')
                                             
		obj = self.bus.get_object ("org.freedesktop.DBus", "/org/freedesktop/DBus")
		self.bus_interface = dbus.Interface(obj, "org.freedesktop.DBus")
		
		self.bus_interface.ListNames (reply_handler=self.list_names_handler, error_handler=self.list_names_error_handler)
示例#20
0
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)
		
		client = gconf.client_get_default()
		self.terminal = client.get_string("/desktop/gnome/applications/terminal/exec")
		if self.terminal == None:
			self.terminal = "gnome-terminal"
		
		self.path = urllib.unquote(str(self.iface.Get(DOCKITEM_IFACE, "Uri", dbus_interface="org.freedesktop.DBus.Properties")[7:]))
		if not os.path.isdir (self.path):
			self.path = os.path.dirname (self.path)
		
		self.add_menu_item("Open Terminal Here", "terminal", "actions")
示例#21
0
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)
		self.timer = 0
		
		self.down_speed = ""
		self.up_speed = ""
		self.progress = -1
		
		self.bus.add_signal_receiver(self.name_owner_changed_cb,
		                             dbus_interface='org.freedesktop.DBus',
		                             signal_name='NameOwnerChanged',
		                             arg0=transmissionbus)
		
		self.start_polling()
示例#22
0
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)
		import Globals as Globals
		self.Globals = Globals
		import utils
		self.utils = utils
		if self.Globals.Settings['Distributor_Logo']:
			import IconFactory as iconfactory
			self.iconfactory = iconfactory
			self.set_icon(self.iconfactory.GetSystemIcon('distributor-logo'))
		else: self.set_icon(self.Globals.Applogo)
		self.add_menu_item(_("Preferences"),gtk.STOCK_PREFERENCES)
		self.add_menu_item( _("About"),gtk.STOCK_ABOUT)
		self.add_menu_item( _("Edit Menus"),gtk.STOCK_EDIT)
示例#23
0
    def __init__(self, sink, path):
        DockManagerItem.__init__(self, sink, path)

        self.timer = None

        self.synch_counter = 0
        self.pos = 0

        self.clementine = ClementineDBusFacade(self.turn_helper_on,
                                               self.turn_helper_off,
                                               self.on_playback_status_changed,
                                               self.on_song_changed,
                                               self.on_cover_art_changed,
                                               self.on_seeked)
示例#24
0
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)

		self.timer = None

		self.synch_counter = 0
		self.pos = 0

		self.clementine = ClementineDBusFacade(self.turn_helper_on,
											   self.turn_helper_off,
											   self.on_playback_status_changed,
											   self.on_song_changed,
											   self.on_cover_art_changed,
											   self.on_seeked)
示例#25
0
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)
		self.pidgin = None
		
		self.bus.add_signal_receiver(self.name_owner_changed_cb,
				dbus_interface='org.freedesktop.DBus',
				signal_name='NameOwnerChanged')
		
		obj = self.bus.get_object ("org.freedesktop.DBus", "/org/freedesktop/DBus")
		self.bus_interface = dbus.Interface(obj, "org.freedesktop.DBus")
		
		self.bus_interface.ListNames (reply_handler=self.list_names_handler, error_handler=self.list_names_error_handler)
		
		self.bus.add_signal_receiver(self.status_changed, "AccountStatusChanged", pidginitem, pidginbus, pidginpath)
		self.bus.add_signal_receiver(self.conversation_updated, "ConversationUpdated", pidginitem, pidginbus, pidginpath)
示例#26
0
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)
		self.items_unread = 0
		self.skype = None
		self.skype_in = SkypeNotify(self.bus, self.notify_cb)

		self.owner_changed_signal = self.bus.add_signal_receiver(
					handler_function = self.name_owner_changed_cb,
					dbus_interface = 'org.freedesktop.DBus', 
					signal_name = 'NameOwnerChanged')
		
		obj = self.bus.get_object ("org.freedesktop.DBus", "/org/freedesktop/DBus")
		self.bus_interface = dbus.Interface(obj, "org.freedesktop.DBus")
		self.bus_interface.ListNames (reply_handler = self.list_names_handler, 
					      error_handler = self.list_names_error_handler)
示例#27
0
    def __init__(self, sink, path):
        DockManagerItem.__init__(self, sink, path)
        self.gtg = None

        self.bus.add_signal_receiver(self.name_owner_changed_cb,
                                     dbus_interface='org.freedesktop.DBus',
                                     signal_name='NameOwnerChanged')

        obj = self.bus.get_object("org.freedesktop.DBus",
                                  "/org/freedesktop/DBus")
        self.bus_interface = dbus.Interface(obj, "org.freedesktop.DBus")

        self.bus_interface.ListNames(
            reply_handler=self.list_names_handler,
            error_handler=self.list_names_error_handler)
示例#28
0
    def __init__(self, sink, path):
        DockManagerItem.__init__(self, sink, path)
        self.items_unread = 0
        self.skype = None
        self.skype_in = SkypeNotify(self.bus, self.notify_cb)

        self.owner_changed_signal = self.bus.add_signal_receiver(
            handler_function=self.name_owner_changed_cb,
            dbus_interface='org.freedesktop.DBus',
            signal_name='NameOwnerChanged')

        obj = self.bus.get_object("org.freedesktop.DBus",
                                  "/org/freedesktop/DBus")
        self.bus_interface = dbus.Interface(obj, "org.freedesktop.DBus")
        self.bus_interface.ListNames(
            reply_handler=self.list_names_handler,
            error_handler=self.list_names_error_handler)
示例#29
0
    def __init__(self, sink, path):
        DockManagerItem.__init__(self, sink, path)
        self.emesene = None

        self.bus.add_signal_receiver(self.name_owner_changed_cb,
                                     dbus_interface='org.freedesktop.DBus',
                                     signal_name='NameOwnerChanged')
        obj = self.bus.get_object("org.freedesktop.DBus",
                                  "/org/freedesktop/DBus")
        self.bus_interface = dbus.Interface(obj, "org.freedesktop.DBus")

        self.bus_interface.ListNames(
            reply_handler=self.list_names_handler,
            error_handler=self.list_names_error_handler)

        self.bus.add_signal_receiver(self.conversation_updated,
                                     "unread_messages", emeseneiface,
                                     emesenebus, emesenepath)
示例#30
0
    def __init__(self, sink, path):
        DockManagerItem.__init__(self, sink, path)

        client = gconf.client_get_default()
        self.terminal = client.get_string(
            "/desktop/gnome/applications/terminal/exec")
        if self.terminal == None:
            self.terminal = "gnome-terminal"

        self.path = urllib.unquote(
            str(
                self.iface.Get(
                    DOCKITEM_IFACE,
                    "Uri",
                    dbus_interface="org.freedesktop.DBus.Properties")[7:]))
        if not os.path.isdir(self.path):
            self.path = os.path.dirname(self.path)

        self.add_menu_item("Open Terminal Here", "terminal", "actions")
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)

		self.system_bus = dbus.SystemBus()
		obj = self.system_bus.get_object(udiskbus, udiskpath)
		self.udisk = dbus.Interface(obj, udiskiface)
		self.system_bus.add_signal_receiver(self.add_disk, "DeviceAdded",  udiskiface, udiskbus, udiskpath)
		self.system_bus.add_signal_receiver(self.remove_disk, "DeviceRemoved",  udiskiface, udiskbus, udiskpath)

		self.map = {}
		self.items = []
		self.read_places()
		self.read_disks()

		if monitor_with_inotify:
			wm = pyinotify.WatchManager()
			handler = clientMonitor(item=self)
			notifier = GobjectNotifier(wm, default_proc_fun=handler)
			wm.add_watch(places, pyinotify.ALL_EVENTS)
			wm.add_watch(remotes, pyinotify.ALL_EVENTS)
示例#32
0
    def __init__(self, sink, name, path):
        global desktop_cache
        DockManagerItem.__init__(self, sink, path)

        if name in desktop_cache:
            cfg = desktop_cache[name]
        else:
            cfg = ConfigParser()
            cfg.read(name)
            desktop_cache[name] = cfg

        try:
            icon = cfg.get('Desktop Entry', 'Icon')
        except:
            icon = os.path.split(name)[1].split('.')[0]

        self.items = {}

        lc = locale.getdefaultlocale()[0]
        names = [
            'Name[%s]' % lc,
            'Name[%s]' % lc.split('_')[0],
            'Name',
        ]

        for section in cfg.sections():
            if section.endswith('Shortcut Group'):
                name = None
                for n in names:
                    try:
                        name = cfg.get(section, n)
                        break
                    except:
                        pass

                self.add_menu_item(
                    name,
                    icon,
                    'Quicklist',
                )
                self.items[name] = cfg.get(section, 'Exec')
示例#33
0
    def __init__(self, sink, name, path):
        global desktop_cache
        DockManagerItem.__init__(self, sink, path)

        if name in desktop_cache:
            cfg = desktop_cache[name]
        else:
            cfg = ConfigParser()
            cfg.read(name)
            desktop_cache[name] = cfg
            
        try:
            icon = cfg.get('Desktop Entry', 'Icon')
        except:
            icon = os.path.split(name)[1].split('.')[0]

        self.items = {}
        
        lc = locale.getdefaultlocale()[0]
        names = [
            'Name[%s]'%lc,
            'Name[%s]'%lc.split('_')[0],
            'Name',
        ]
        
        for section in cfg.sections():
            if section.endswith('Shortcut Group'):
                name = None
                for n in names:
                    try:
                        name = cfg.get(section, n)
                        break
                    except:
                        pass
                        
                self.add_menu_item(
                    name,
                    icon, 
                    'Quicklist',
                )
                self.items[name] = cfg.get(section, 'Exec')
示例#34
0
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)
		self.timer = 0
		self.player = None
		self.control = None
		
		self.duration_secs = 0
		self.songinfo = None
		self.current_arturl = ""
		self.current_arturl_mtime = 0
				
		self.bus.add_signal_receiver(self.name_owner_changed_cb,
                                             dbus_interface='org.freedesktop.DBus',
                                             signal_name='NameOwnerChanged')
                                             
		obj = self.bus.get_object ("org.freedesktop.DBus", "/org/freedesktop/DBus")
		self.bus_interface = dbus.Interface(obj, "org.freedesktop.DBus")
		
		self.bus_interface.ListNames (reply_handler=self.list_names_handler, error_handler=self.list_names_error_handler)
	
		self.bus.add_signal_receiver(self.signal_EventChanged, "EventChanged",  playeriface, bansheebus, playerpath)
		self.bus.add_signal_receiver(self.signal_StateChanged, "StateChanged",  playeriface, bansheebus, playerpath)
示例#35
0
    def __init__(self, sink, path):
        DockManagerItem.__init__(self, sink, path)
        self.pidgin = None

        self.bus.add_signal_receiver(self.name_owner_changed_cb,
                                     dbus_interface='org.freedesktop.DBus',
                                     signal_name='NameOwnerChanged')

        obj = self.bus.get_object("org.freedesktop.DBus",
                                  "/org/freedesktop/DBus")
        self.bus_interface = dbus.Interface(obj, "org.freedesktop.DBus")

        self.bus_interface.ListNames(
            reply_handler=self.list_names_handler,
            error_handler=self.list_names_error_handler)

        self.bus.add_signal_receiver(self.status_changed,
                                     "AccountStatusChanged", pidginitem,
                                     pidginbus, pidginpath)
        self.bus.add_signal_receiver(self.conversation_updated,
                                     "ConversationUpdated", pidginitem,
                                     pidginbus, pidginpath)
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)
		self.pidgin = None

		#Menu Items

		self.add_menu_item ("Available", "/usr/share/pixmaps/pidgin/status/16/available.png","Status")
		self.add_menu_item ("Away", "/usr/share/pixmaps/pidgin/status/16/away.png","Status")
		self.add_menu_item ("Busy", "/usr/share/pixmaps/pidgin/status/16/busy.png","Status")
		self.add_menu_item ("Invisible", "/usr/share/pixmaps/pidgin/status/16/invisible.png","Status")
		self.add_menu_item ("Disconnect", "/usr/share/pixmaps/pidgin/status/16/offline.png","Status")
		
		self.bus.add_signal_receiver(self.name_owner_changed_cb,
				dbus_interface='org.freedesktop.DBus',
				signal_name='NameOwnerChanged')
		
		obj = self.bus.get_object ("org.freedesktop.DBus", "/org/freedesktop/DBus")
		self.bus_interface = dbus.Interface(obj, "org.freedesktop.DBus")
		
		self.bus_interface.ListNames (reply_handler=self.list_names_handler, error_handler=self.list_names_error_handler)
		
		self.bus.add_signal_receiver(self.status_changed, "AccountStatusChanged", pidginitem, pidginbus, pidginpath)
		self.bus.add_signal_receiver(self.conversation_updated, "ConversationUpdated", pidginitem, pidginbus, pidginpath)
示例#37
0
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)
		self.menu_items_count = 0
		self.pithos = None
		self.song_info = None
		self.song_url = None

		self.owner_changed_signal = self.bus.add_signal_receiver(
					handler_function = self.name_owner_changed_cb,
					dbus_interface = 'org.freedesktop.DBus', 
					signal_name = 'NameOwnerChanged')
		
		obj = self.bus.get_object ("org.freedesktop.DBus", "/")
		self.bus_interface = dbus.Interface(obj, "org.freedesktop.DBus")
		self.bus_interface.ListNames (reply_handler = self.list_names_handler, 
					      error_handler = self.list_names_error_handler)
	
		#listen for media key presses and act on them
		try:
			self.gnomeSettingsListner = self.bus.get_object('org.gnome.SettingsDaemon', '/org/gnome/SettingsDaemon/MediaKeys')
			self.gnomeSettingsListner.connect_to_signal("MediaPlayerKeyPressed", self.gnomesettings_signal_handler, dbus_interface='org.gnome.SettingsDaemon.MediaKeys')
		except:
			self.gnomeSettingsListner = None
示例#38
0
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)

		for profile in sink.profiles:
			self.add_profile_menuitem(profile)
	def __init__(self, sink, path):
		DockManagerItem.__init__(self, sink, path)
		
		self.clear_menu_buttons()
		self.readvms()
示例#40
0
    def __init__(self, sink, path):
        DockManagerItem.__init__(self, sink, path)

        for profile in sink.profiles:
            self.add_profile_menuitem(profile)