示例#1
0
    def __init__(self, indicator, service_control_thread,
                 named_pipe_controller):

        self.service_controller = service_control_thread
        self.named_pipe_controller = named_pipe_controller

        helper = gtk.Button()
        self.paired_service_ico = gtk.gdk.pixbuf_new_from_file(
            RESOURCES + "emblem-default.png")
        self.connected_service_ico = gtk.gdk.pixbuf_new_from_file(
            RESOURCES + "audio-x-generic.png")
        self.play_ico = helper.render_icon(gtk.STOCK_MEDIA_PLAY,
                                           gtk.ICON_SIZE_MENU)
        self.stop_ico = helper.render_icon(gtk.STOCK_MEDIA_STOP,
                                           gtk.ICON_SIZE_MENU)
        self.pause_ico = helper.render_icon(gtk.STOCK_MEDIA_PAUSE,
                                            gtk.ICON_SIZE_MENU)
        self.next_ico = helper.render_icon(gtk.STOCK_MEDIA_NEXT,
                                           gtk.ICON_SIZE_MENU)

        self.play_status = indicate.Indicator()
        self.play_status.connect("user-display",
                                 self.service_controller.toggle_play)

        self.next = indicate.Indicator()
        self.next.set_property_icon("icon", self.next_ico)
        self.next.set_property("name", "Next track")
        self.next.connect("user-display", self.service_controller.next_track)

        self.indicator = indicator
        self.indicator.set_property_icon("icon", self.paired_service_ico)
示例#2
0
 def update_indicators(self, counts):
     if indicate:
         if counts.has_key("private"):
             if not self.private_indicator:
                 self.private_indicator = indicate.Indicator() if hasattr(
                     indicate,
                     "Indicator") else indicate.IndicatorMessage()
                 self.private_indicator.connect("user-display",
                                                self.on_indicator_activate)
                 self.private_indicator.set_property("name", _("Private"))
                 self.private_indicator.set_property("stream", "private")
                 self.private_indicator.show()
             self.private_indicator.set_property("count",
                                                 str(counts["private"]))
             if counts["private"] > 0:
                 self.private_indicator.set_property_bool(
                     "draw-attention", True)
             if self.private_indicator not in self.indicator_items:
                 self.indicator_items["private"] = self.private_indicator
             log.logger.debug(
                 "Private Messages Indicator count updated to %s",
                 counts["private"])
         if counts.has_key("replies"):
             if not self.replies_indicator:
                 self.replies_indicator = indicate.Indicator() if hasattr(
                     indicate,
                     "Indicator") else indicate.IndicatorMessage()
                 self.replies_indicator.connect("user-display",
                                                self.on_indicator_activate)
                 self.replies_indicator.set_property("name", _("Replies"))
                 self.replies_indicator.set_property("stream", "replies")
                 self.replies_indicator.show()
             self.replies_indicator.set_property("count",
                                                 str(counts["replies"]))
             if self.replies_indicator not in self.indicator_items:
                 self.indicator_items["replies"] = self.replies_indicator
             log.logger.debug("Replies Indicator count updated to %s",
                              counts["replies"])
         if counts.has_key("messages"):
             if not self.messages_indicator:
                 self.messages_indicator = indicate.Indicator() if hasattr(
                     indicate,
                     "Indicator") else indicate.IndicatorMessage()
                 self.messages_indicator.connect("user-display",
                                                 self.on_indicator_activate)
                 self.messages_indicator.set_property("name", _("Messages"))
                 self.messages_indicator.set_property("stream", "messages")
                 self.messages_indicator.show()
             self.messages_indicator.set_property("count",
                                                  str(counts["messages"]))
             if self.messages_indicator not in self.indicator_items:
                 self.indicator_items["messages"] = self.messages_indicator
             log.logger.debug("Messages Indicator count updated to %s",
                              counts["messages"])
    def show_indicator(self, conversation):
        log("Updating Indicator", INFO)
        new = False
        if not conversation.indicator_name in self.indicators:
            self.indicators[conversation.indicator_name] = indicate.Indicator()
            self.indicators[conversation.indicator_name].set_property_bool(
                "draw-attention", True)
            self.indicators[conversation.indicator_name].set_property(
                "id", str(conversation.id))
            self.indicators[conversation.indicator_name].set_property(
                "indicator_name", str(conversation.indicator_name))
            self.indicators[conversation.indicator_name].connect(
                "user-display", self.show_conversation)
            new = True
        self.indicators[conversation.indicator_name].set_property(
            "name", str(conversation.display_name))
        self.indicators[conversation.indicator_name].set_property(
            "timestamp", str(conversation.timestamp))
        self.indicators[conversation.indicator_name].set_property_time(
            'time', conversation.timestamp)

        # check if the settings want avatars
        user_avatar = None
        if settings.get_display_indicator_avatars():
            user_avatar = SkypeAvatar(conversation.skypereturn.Sender.Handle)
        if user_avatar and user_avatar.filename:
            bitmapVersion = user_avatar.get_bitmap_version()
            self.indicators[conversation.indicator_name].set_property(
                "icon", str(user_avatar.get_bitmap_version()))
        else:
            self.indicators[conversation.indicator_name].set_property(
                "icon", "")

        if new:
            self.indicators[conversation.indicator_name].show()
示例#4
0
 def create_indicator(self, acc):
     indicator = indicate.Indicator()
     indicator.set_property("name", acc.get_name())
     indicator.set_property("count", str(acc.get_total_unread()))
     indicator.set_property_icon("icon", acc.get_icon())
     indicator.show()
     indicator.connect("user-display", self.on_indicator_display_cb)
     acc.indicator = indicator
     indicator.account = acc
     acc.is_error_icon = False
def addIndicator(indicator_name, handler):
    """
  Add a new indicator to the application's messaging menu entry (the "server").
  @param indicator_name: The label for the indicator in the messaging menu."""

    indicator = indicate.Indicator()
    indicator.set_property("name", indicator_name)
    indicator.set_property("subtype", "mail")

    indicator.label = indicator_name
    indicator.connect("user-display", handler)

    indicators[indicator_name] = indicator
    indicator.show()
示例#6
0
    def _create_indicator(self,
                          subtype,
                          sender,
                          body,
                          extra_text='',
                          icid=None):
        """
        This creates a new indicator item, called by on_message, online & offline.
        """
        if indicate:
            try:
                # Ubuntu 9.10+
                ind = indicate.Indicator()
            except Exception:
                # Ubuntu 9.04
                ind = indicate.IndicatorMessage()

            #Get user icon.
            contact = self.handler.session.contacts.safe_get(body)
            pixbuf = utils.safe_gtk_pixbuf_load(contact.picture or '',
                                                (48, 48))
            if pixbuf is not None:
                ind.set_property_icon("icon", pixbuf)

            ind.set_property("subtype", subtype)
            ind.set_property("sender", sender + extra_text)
            if icid is not None:
                ind.set_property("body", str(icid))
            else:
                ind.set_property("body", body)
            ind.set_property_time("time", time.time())
            ind.set_property("draw-attention", "true")
            ind.connect("user-display", self._display)
            ind.show()

            # Add indicator to the dictionary
            if subtype == "im":
                self.indicator_dict[ind] = icid
                self.r_indicator_dict[icid] = ind

            for old_icid in self.indicator_dict.values():
                if old_icid not in self.handler.session.conversations.keys():
                    # workaround: kill the orphan indicator
                    ind = self.r_indicator_dict[old_icid]
                    del self.indicator_dict[ind]
                    del self.r_indicator_dict[old_icid]
        else:
            return
示例#7
0
 def handle_indicator_item(self, message):
     if not self.indicator_items.has_key(str(message["mid"])):
         indicator = indicate.Indicator() if hasattr(
             indicate, "Indicator") else indicate.IndicatorMessage()
         indicator.connect("user-display", self.on_indicator_reply_activate)
         indicator.set_property("subtype", "im.gwibber")
         indicator.set_property("sender", message["sender"].get("name", ""))
         indicator.set_property("body", message["text"])
         indicator.set_property_time(
             "time",
             mx.DateTime.DateTimeFromTicks(
                 message["time"]).localtime().ticks())
         indicator.show()
         self.indicator_items[message["mid"]] = indicator
         log.logger.debug("Message from %s added to indicator",
                          message["sender"].get("name", ""))
     return False
示例#8
0
    def add_indicator(self, watch):
        icon = self.specto.notifier.get_icon(watch.icon, 0, False)
        try:
            # Ubuntu 9.10 and above
            _indicator = indicate.Indicator()
        except:
            # Ubuntu 9.04
            _indicator = indicate.IndicatorMessage()
        _indicator.set_property("subtype", "im")
        _indicator.set_property("sender", watch.name)
        _indicator.set_property("body", watch.get_balloon_text())
        _indicator.set_property_time("time", time.time())
        if icon:
            _indicator.set_property_icon("icon", icon)
        _indicator.set_property('draw-attention', 'true')
        _indicator.connect("user-display", watch.open_watch)
        _indicator.show()

        self.indicate_db.update({watch.id: _indicator})
示例#9
0
    def service_added(self, interface, protocol, name, type, domain, flags):
        interface, protocol, name, type, domain, host, aprotocol, address, port, txt, flags = server.ResolveService(
            interface, protocol, name, type, domain, avahi.PROTO_UNSPEC,
            dbus.UInt32(0))
        service_id = name + '.' + type + '.' + domain

        properties = {}
        for t in txt:
            # convert the dbus byte arrays into strings, split into KV pairs and store in a map
            as_string = "".join(chr(b) for b in t)
            key_value_pair = as_string.split("=")
            properties[key_value_pair[0]] = key_value_pair[1]

        service_id = properties[SERVICE_ID_PROPERTY].replace("0x", "", 1)

        base = base_service(host, port, indicate.Indicator())
        base.indicator.set_property("name", name)
        self.services.update({service_id: base})
        self.service_available(service_id)
from time import time
import indicate
import gtk

server = indicate.indicate_server_ref_default()
server.set_type("message.im")
#server.connect("server-display", self.on_server_display_cb)
server.set_desktop_file("/usr/local/share/applications/cloudsn.desktop")
server.show()

inds = []

for i in range(10):
    indicator = indicate.Indicator()
    indicator.set_property("name", "Test account")
    indicator.set_property_time("time", time())
    indicator.set_property_int("count", 0)
    """
    if acc.get_provider().get_icon() is not None:
        indicator.set_property_icon("icon", acc.get_provider().get_icon())
    """
    indicator.show()
    inds.append(indicator)

#acc.indicator = indicator
#indicator.account = acc

#indicator.connect("user-display", self.on_indicator_display_cb)

gtk.main()
示例#11
0
 def __init__(self, name):
     self.indicator = indicate.Indicator()
     self.indicator.set_property("subtype", "micro")
     self.indicator.set_property("sender", name)
示例#12
0
    import indicate
except ImportError:
    HAS_MEMENU = False
else:
    HAS_MEMENU = True

    from time import time
    label = "Unread Tweets"

    # Indicator server
    ind_server = indicate.indicate_server_ref_default()
    ind_server.set_type("message.im")
    ind_server.set_desktop_file("/usr/share/applications/hotot.desktop")

    # Indicator
    indicator_unread = indicate.Indicator()
    indicator_unread.set_property("name", label)
    indicator_unread.set_property("count", "0")
    indicator_unread.set_property("draw-attention", "false");
    indicator_unread.label = label
    indicator_unread.show()


try: import i18n
except: from gettext import gettext as _

try:
    import glib
    glib.set_application_name(_("Hotot"))
except:
    pass