{"id":933,"date":"2010-06-19T11:24:53","date_gmt":"2010-06-19T09:24:53","guid":{"rendered":"http:\/\/linux.leunen.com\/?p=933"},"modified":"2010-06-19T11:24:53","modified_gmt":"2010-06-19T09:24:53","slug":"applications-indicators","status":"publish","type":"post","link":"https:\/\/www.leunen.com\/linux\/2010\/06\/applications-indicators\/","title":{"rendered":"Applications Indicators"},"content":{"rendered":"<p>Dans les prochaines versions d&rsquo;Ubuntu, la <em>zone de notification<\/em> sera remplac\u00e9e par deux zones appel\u00e9es <em>System Indicators<\/em> et <em>Applications Indicators<\/em>.<br \/>\nLa zone <em>System Indicators<\/em> contiendra les applets syst\u00e8me du genre gestion de session, du son ou de la batterie pour les portables. La zone <em>Applications Indicators<\/em> contiendra les applications (ic\u00f4nes et menus) qui s&rsquo;installent en partie dans le tableau de bord et qui traditionnellement se trouvaient dans la <em>zone de notification<\/em>.<br \/>\nCe changement a \u00e9t\u00e9 initi\u00e9 pour des raisons d&rsquo;accessibilit\u00e9, d&rsquo;unit\u00e9 de pr\u00e9sentation et de facilit\u00e9 pour l&rsquo;utilisateur.<br \/>\nDans Lucid lynx, appindicator existe d\u00e9j\u00e0. Vous pouvez l&rsquo;installer dans le tableau de bord en ajoutant \u00e0 celui-ci l&rsquo;applet appel\u00e9e <em>Applet de notification<\/em>. <\/p>\n<p>Il est tr\u00e8s facile de cr\u00e9er une petite application qui va placer une ic\u00f4ne dans la zone <em>Applications Indicators<\/em>. Si vous avez install\u00e9 l&rsquo;<em>Applet de notification<\/em> dans votre tableau de bord, l&rsquo;ic\u00f4ne de votre application ira se loger dans celle-ci sinon, elle ira se mettre dans l&rsquo;ancienne zone de notification.<br \/>\nVoici un exemple de code en python:<\/p>\n<pre class=\"codesource\">\r\n<span class=\"codecomment\">#!\/usr\/bin\/env python\r\n<\/span><span class=\"codecomment\"># -*- coding: utf-8 -*-\r\n<\/span>\r\n<span class=\"codecomment\"># https:\/\/wiki.ubuntu.com\/DesktopExperienceTeam\/ApplicationIndicators\r\n<\/span>\r\n<span class=\"reservedname\">import<\/span> appindicator\r\n<span class=\"reservedname\">import<\/span> gtk\r\n<span class=\"reservedname\">import<\/span> os\r\n\r\n<span class=\"reservedname\">class<\/span> IndicatorSample:\r\n  <span class=\"reservedname\">def<\/span> __init__(self):\r\n    \r\n    self.ind = appindicator.Indicator (<span class=\"quotedstring\">\"System Tools\"<\/span>,<span class=\"quotedstring\">\"applications-system\"<\/span>, appindicator.CATEGORY_SYSTEM_SERVICES)\r\n    self.ind.set_status (appindicator.STATUS_ACTIVE)\r\n    self.ind.set_attention_icon (<span class=\"quotedstring\">\"indicator-messages-new\"<\/span>)\r\n    \r\n    <span class=\"codecomment\"># Cr\u00e9ation d'un drop-down menu\r\n<\/span>    self.menu = gtk.Menu()\r\n    \r\n    <span class=\"codecomment\"># Cr\u00e9ation des \u00e9l\u00e9ments du menu\r\n<\/span>    self.menu_item1 = gtk.MenuItem(<span class=\"quotedstring\">\"Firefox\"<\/span>)\r\n    self.menu_item1.connect(<span class=\"quotedstring\">\"activate\"<\/span>, self.on_launch, <span class=\"quotedstring\">\"firefox\"<\/span>)\r\n    self.menu_item2 = gtk.MenuItem(<span class=\"quotedstring\">\"Calculatrice\"<\/span>)\r\n    self.menu_item2.connect(<span class=\"quotedstring\">\"activate\"<\/span>, self.on_launch, <span class=\"quotedstring\">\"gcalctool\"<\/span>)\r\n    \r\n    self.menu.append(self.menu_item1)\r\n    self.menu.append(self.menu_item2)\r\n    self.menu_item1.show()\r\n    self.menu_item2.show()\r\n    \r\n    self.image = gtk.ImageMenuItem(gtk.STOCK_QUIT)\r\n    self.image.connect(<span class=\"quotedstring\">\"activate\"<\/span>, self.on_quit)\r\n    self.image.show()\r\n    self.menu.append(self.image)\r\n    \r\n    <span class=\"codecomment\"># Associe le menu cr\u00e9\u00e9 avec appindicator\r\n<\/span>    self.ind.set_menu(self.menu)\r\n    \r\n  <span class=\"reservedname\">def<\/span> on_launch(self, widget, data):\r\n    os.system(data)\r\n    \r\n  <span class=\"reservedname\">def<\/span> on_quit(self, widget, data = None):\r\n    gtk.main_quit() \r\n    \r\n<span class=\"reservedname\">if<\/span> __name__ == <span class=\"quotedstring\">\"__main__\"<\/span>:\r\n  indicator = IndicatorSample()\r\n  gtk.main()\r\n<\/pre>\n<p>Auparavant, on pla\u00e7ait une ic\u00f4ne dans la <em>zone de notification<\/em> en utilisant l&rsquo;objet <em>gtk.StatusIcon<\/em> et on pouvait sp\u00e9cifier l&rsquo;ic\u00f4ne en la chargeant depuis un fichier avec <em>gtk.status_icon_new_from_file()<\/em>. Il semble que ce ne soit pas, plus ou pas encore possible avec <em>appindicator<\/em> et qu&rsquo;on soit donc oblig\u00e9 de choisir une ic\u00f4ne dans le stock. On peut lire dans le wiki d&rsquo;Ubuntu sur la page consacr\u00e9e \u00e0 <a href=\"https:\/\/wiki.ubuntu.com\/DesktopExperienceTeam\/ApplicationIndicators\">appindicator<\/a>:<\/p>\n<blockquote><p>The icons need to use icon names from themes, direct paths to icon files are not supported. For example, icon names used with gtk_status_icon_new_from_file() won&rsquo;t work.<\/p><\/blockquote>\n<p>Si jamais vous avez une solution \u00e0 ce probl\u00e8me, laiss\u00e9 un commentaire \u00e0 ce billet. Merci d&rsquo;avance.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans les prochaines versions d&rsquo;Ubuntu, la zone de notification sera remplac\u00e9e par deux zones appel\u00e9es System Indicators et Applications Indicators. La zone System Indicators contiendra les applets syst\u00e8me du genre gestion de session, du son ou de la batterie pour les portables. La zone Applications Indicators contiendra les applications (ic\u00f4nes et menus) qui s&rsquo;installent en [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[15,5],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts\/933"}],"collection":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/comments?post=933"}],"version-history":[{"count":3,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts\/933\/revisions"}],"predecessor-version":[{"id":936,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts\/933\/revisions\/936"}],"wp:attachment":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/media?parent=933"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/categories?post=933"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/tags?post=933"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}