~ubuntu-branches/ubuntu/raring/screenlets/raring

« back to all changes in this revision

Viewing changes to docs/epydoc/screenlets.services-pysrc.html

  • Committer: Package Import Robot
  • Author(s): Julien Lavergne
  • Date: 2012-02-12 22:47:27 UTC
  • mto: This revision was merged to the branch mainline in revision 25.
  • Revision ID: package-import@ubuntu.com-20120212224727-kjobpgxp3tmw95qd
Tags: upstream-0.1.6
ImportĀ upstreamĀ versionĀ 0.1.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
34
34
      <th class="navbar" align="right" width="100%">
35
35
        <table border="0" cellpadding="0" cellspacing="0">
36
36
          <tr><th class="navbar" align="center"
37
 
            >Screenlets 0.1.4</th>
 
37
            >Screenlets 0.1.6</th>
38
38
          </tr></table></th>
39
39
  </tr>
40
40
</table>
61
61
</table>
62
62
<h1 class="epydoc">Source Code for <a href="screenlets.services-module.html">Module screenlets.services</a></h1>
63
63
<pre class="py-src">
64
 
<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment"># This application is released under the GNU General Public License </tt> </tt>
65
 
<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"># v3 (or, at your option, any later version). You can find the full </tt> </tt>
66
 
<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"># text of the license under http://www.gnu.org/licenses/gpl.txt. </tt> </tt>
67
 
<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"># By using, editing and/or distributing this software you agree to </tt> </tt>
68
 
<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment"># the terms and conditions of this license. </tt> </tt>
69
 
<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment"># Thank you for using free software!</tt> </tt>
70
 
<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"> </tt>
71
 
<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment"># The services-module contains the ScreenletService-class and a set of utility</tt> </tt>
72
 
<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment"># functions to work with Screenlet-services from within other applications.</tt> </tt>
73
 
<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
74
 
<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"># (c) 2007 by RYX (Rico Pfaus)</tt> </tt>
75
 
<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
76
 
<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-comment"># TODO: </tt> </tt>
77
 
<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-comment"># - add missing default actions and signals (similar for all screenlets)</tt> </tt>
78
 
<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-comment"># - maybe abstract the dbus-related stuff and create subclasses which implement </tt> </tt>
79
 
<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-comment">#   different communication methods? Later.</tt> </tt>
80
 
<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-comment"># - get_available_services() ... get list with names/ids of services</tt> </tt>
81
 
<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-comment"># </tt> </tt>
82
 
<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"> </tt>
83
 
<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"> </tt>
84
 
<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">dbus</tt> </tt>
85
 
<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">dbus</tt><tt class="py-op">.</tt><tt class="py-name">service</tt> </tt>
86
 
<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">dbus</tt><tt class="py-op">,</tt> <tt class="py-string">'version'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;=</tt> <tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">41</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
87
 
<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">dbus</tt><tt class="py-op">,</tt> <tt class="py-string">'version'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;=</tt> <tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">80</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
88
 
<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line">                 </tt>
89
 
<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line">                <tt class="py-keyword">import</tt> <tt class="py-name">dbus</tt><tt class="py-op">.</tt><tt class="py-name">glib</tt> </tt>
90
 
<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
91
 
<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line">                 </tt>
92
 
<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line">                <tt class="py-keyword">from</tt> <tt class="py-name">dbus</tt><tt class="py-op">.</tt><tt class="py-name">mainloop</tt><tt class="py-op">.</tt><tt class="py-name">glib</tt> <tt class="py-keyword">import</tt> <tt class="py-name">DBusGMainLoop</tt> </tt>
93
 
<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">                <tt class="py-name">DBusGMainLoop</tt><tt class="py-op">(</tt><tt class="py-name">set_as_default</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
94
 
<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">gettext</tt> </tt>
95
 
<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Package screenlets=screenlets-module.html"><a title="screenlets" class="py-name" href="#" onclick="return doclink('link-0', 'screenlets', 'link-0');">screenlets</a></tt> </tt>
96
 
<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"> </tt>
97
 
<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"><tt class="py-name">gettext</tt><tt class="py-op">.</tt><tt class="py-name">textdomain</tt><tt class="py-op">(</tt><tt class="py-string">'screenlets'</tt><tt class="py-op">)</tt> </tt>
98
 
<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"><tt class="py-name">gettext</tt><tt class="py-op">.</tt><tt class="py-name">bindtextdomain</tt><tt class="py-op">(</tt><tt class="py-string">'screenlets'</tt><tt class="py-op">,</tt><tt id="link-1" class="py-name"><a title="screenlets" class="py-name" href="#" onclick="return doclink('link-1', 'screenlets', 'link-0');">screenlets</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Variable screenlets.INSTALL_PREFIX=screenlets-module.html#INSTALL_PREFIX"><a title="screenlets.INSTALL_PREFIX" class="py-name" href="#" onclick="return doclink('link-2', 'INSTALL_PREFIX', 'link-2');">INSTALL_PREFIX</a></tt> <tt class="py-op">+</tt>  <tt class="py-string">'/share/locale'</tt><tt class="py-op">)</tt> </tt>
99
 
<a name="_"></a><div id="_-def"><a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"> </tt>
100
 
<a name="L37"></a><tt class="py-lineno"> 37</tt> <a class="py-toggle" href="#" id="_-toggle" onclick="return toggle('_');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services-module.html#_">_</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
101
 
</div><div id="_-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_-expanded"><a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">gettext</tt><tt class="py-op">.</tt><tt class="py-name">gettext</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
102
 
</div><a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"> </tt>
103
 
<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"><tt class="py-comment"># quick access to dbus decorator-method (to avoid importing dbus in screenlets</tt> </tt>
104
 
<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line"><tt class="py-comment"># and keep the possibility to create custom decorators in the future)</tt> </tt>
105
 
<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"><tt class="py-name">action</tt> <tt class="py-op">=</tt> <tt class="py-name">dbus</tt><tt class="py-op">.</tt><tt class="py-name">service</tt><tt class="py-op">.</tt><tt class="py-name">method</tt> </tt>
106
 
<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line"><tt class="py-name">signal</tt> <tt class="py-op">=</tt> <tt class="py-name">dbus</tt><tt class="py-op">.</tt><tt class="py-name">service</tt><tt class="py-op">.</tt><tt class="py-name">signal</tt> </tt>
107
 
<a name="ScreenletService"></a><div id="ScreenletService-def"><a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line"> </tt>
108
 
<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"> </tt>
109
 
<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line"><tt class="py-comment"># service base-class</tt> </tt>
110
 
<a name="L47"></a><tt class="py-lineno"> 47</tt> <a class="py-toggle" href="#" id="ScreenletService-toggle" onclick="return toggle('ScreenletService');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html">ScreenletService</a> <tt class="py-op">(</tt><tt class="py-base-class">dbus</tt><tt class="py-op">.</tt><tt class="py-base-class">service</tt><tt class="py-op">.</tt><tt class="py-base-class">Object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
111
 
</div><div id="ScreenletService-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ScreenletService-expanded"><a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">        <tt class="py-docstring">"""The ScreenletService contains the boilerplate code for creating new</tt> </tt>
112
 
<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line"><tt class="py-docstring">        dbus-objects for Screenlets. Subclasses can easily implement new functions </tt> </tt>
113
 
<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"><tt class="py-docstring">        to allow controlling and managing Screenlets through DBus in any way </tt> </tt>
114
 
<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line"><tt class="py-docstring">        imaginable. This class should implement the default actions available for </tt> </tt>
115
 
<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line"><tt class="py-docstring">        all screenlets - add, delete, get, set, (move?)"""</tt> </tt>
116
 
<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">         </tt>
117
 
<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">        <tt id="link-3" class="py-name" targets="Variable screenlets.services.ScreenletService.BUS=screenlets.services.ScreenletService-class.html#BUS"><a title="screenlets.services.ScreenletService.BUS" class="py-name" href="#" onclick="return doclink('link-3', 'BUS', 'link-3');">BUS</a></tt>     <tt class="py-op">=</tt> <tt class="py-string">'org.screenlets'</tt> <tt class="py-comment">#'org.freedesktop.Screenlets'</tt> </tt>
118
 
<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">        <tt id="link-4" class="py-name" targets="Variable screenlets.Plugins.PATH=screenlets.Plugins-module.html#PATH,Variable screenlets.services.ScreenletService.PATH=screenlets.services.ScreenletService-class.html#PATH"><a title="screenlets.Plugins.PATH
 
64
<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment"># This program is free software: you can redistribute it and/or modify</tt> </tt>
 
65
<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment"># it under the terms of the GNU General Public License as published by</tt> </tt>
 
66
<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"># the Free Software Foundation, either version 3 of the License, or</tt> </tt>
 
67
<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"># (at your option) any later version.</tt> </tt>
 
68
<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment"># </tt> </tt>
 
69
<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment"># This program is distributed in the hope that it will be useful,</tt> </tt>
 
70
<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment"># but WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
 
71
<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</tt> </tt>
 
72
<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment"># GNU General Public License for more details.</tt> </tt>
 
73
<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment"># </tt> </tt>
 
74
<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"># You should have received a copy of the GNU General Public License</tt> </tt>
 
75
<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-comment"># along with this program.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
 
76
<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"> </tt>
 
77
<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-comment"># The services-module contains the ScreenletService-class and a set of utility</tt> </tt>
 
78
<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-comment"># functions to work with Screenlet-services from within other applications.</tt> </tt>
 
79
<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
 
80
<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-comment"># (c) 2007 by RYX (Rico Pfaus)</tt> </tt>
 
81
<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
 
82
<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-comment"># TODO: </tt> </tt>
 
83
<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-comment"># - add missing default actions and signals (similar for all screenlets)</tt> </tt>
 
84
<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-comment"># - maybe abstract the dbus-related stuff and create subclasses which implement </tt> </tt>
 
85
<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-comment">#   different communication methods? Later.</tt> </tt>
 
86
<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-comment"># - get_available_services() ... get list with names/ids of services</tt> </tt>
 
87
<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-comment"># </tt> </tt>
 
88
<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"> </tt>
 
89
<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"> </tt>
 
90
<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">dbus</tt> </tt>
 
91
<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">dbus</tt><tt class="py-op">.</tt><tt class="py-name">service</tt> </tt>
 
92
<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">dbus</tt><tt class="py-op">,</tt> <tt class="py-string">'version'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;=</tt> <tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">41</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
93
<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">dbus</tt><tt class="py-op">,</tt> <tt class="py-string">'version'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;=</tt> <tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">80</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
94
<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">                 </tt>
 
95
<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">                <tt class="py-keyword">import</tt> <tt class="py-name">dbus</tt><tt class="py-op">.</tt><tt class="py-name">glib</tt> </tt>
 
96
<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
97
<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">                 </tt>
 
98
<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">                <tt class="py-keyword">from</tt> <tt class="py-name">dbus</tt><tt class="py-op">.</tt><tt class="py-name">mainloop</tt><tt class="py-op">.</tt><tt class="py-name">glib</tt> <tt class="py-keyword">import</tt> <tt class="py-name">DBusGMainLoop</tt> </tt>
 
99
<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">                <tt class="py-name">DBusGMainLoop</tt><tt class="py-op">(</tt><tt class="py-name">set_as_default</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
 
100
<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">gettext</tt> </tt>
 
101
<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Package screenlets=screenlets-module.html"><a title="screenlets" class="py-name" href="#" onclick="return doclink('link-0', 'screenlets', 'link-0');">screenlets</a></tt> </tt>
 
102
<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"> </tt>
 
103
<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"><tt class="py-name">gettext</tt><tt class="py-op">.</tt><tt class="py-name">textdomain</tt><tt class="py-op">(</tt><tt class="py-string">'screenlets'</tt><tt class="py-op">)</tt> </tt>
 
104
<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line"><tt class="py-name">gettext</tt><tt class="py-op">.</tt><tt class="py-name">bindtextdomain</tt><tt class="py-op">(</tt><tt class="py-string">'screenlets'</tt><tt class="py-op">,</tt><tt id="link-1" class="py-name"><a title="screenlets" class="py-name" href="#" onclick="return doclink('link-1', 'screenlets', 'link-0');">screenlets</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Variable screenlets.INSTALL_PREFIX=screenlets-module.html#INSTALL_PREFIX"><a title="screenlets.INSTALL_PREFIX" class="py-name" href="#" onclick="return doclink('link-2', 'INSTALL_PREFIX', 'link-2');">INSTALL_PREFIX</a></tt> <tt class="py-op">+</tt>  <tt class="py-string">'/share/locale'</tt><tt class="py-op">)</tt> </tt>
 
105
<a name="_"></a><div id="_-def"><a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"> </tt>
 
106
<a name="L43"></a><tt class="py-lineno"> 43</tt> <a class="py-toggle" href="#" id="_-toggle" onclick="return toggle('_');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services-module.html#_">_</a><tt class="py-op">(</tt><tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
107
</div><div id="_-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_-expanded"><a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">gettext</tt><tt class="py-op">.</tt><tt class="py-name">gettext</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
 
108
</div><a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"> </tt>
 
109
<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line"><tt class="py-comment"># quick access to dbus decorator-method (to avoid importing dbus in screenlets</tt> </tt>
 
110
<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line"><tt class="py-comment"># and keep the possibility to create custom decorators in the future)</tt> </tt>
 
111
<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"><tt class="py-name">action</tt> <tt class="py-op">=</tt> <tt class="py-name">dbus</tt><tt class="py-op">.</tt><tt class="py-name">service</tt><tt class="py-op">.</tt><tt class="py-name">method</tt> </tt>
 
112
<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line"><tt class="py-name">signal</tt> <tt class="py-op">=</tt> <tt class="py-name">dbus</tt><tt class="py-op">.</tt><tt class="py-name">service</tt><tt class="py-op">.</tt><tt class="py-name">signal</tt> </tt>
 
113
<a name="ScreenletService"></a><div id="ScreenletService-def"><a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"> </tt>
 
114
<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line"> </tt>
 
115
<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line"><tt class="py-comment"># service base-class</tt> </tt>
 
116
<a name="L53"></a><tt class="py-lineno"> 53</tt> <a class="py-toggle" href="#" id="ScreenletService-toggle" onclick="return toggle('ScreenletService');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html">ScreenletService</a> <tt class="py-op">(</tt><tt class="py-base-class">dbus</tt><tt class="py-op">.</tt><tt class="py-base-class">service</tt><tt class="py-op">.</tt><tt class="py-base-class">Object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
117
</div><div id="ScreenletService-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ScreenletService-expanded"><a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">        <tt class="py-docstring">"""The ScreenletService contains the boilerplate code for creating new</tt> </tt>
 
118
<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"><tt class="py-docstring">        dbus-objects for Screenlets. Subclasses can easily implement new functions </tt> </tt>
 
119
<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"><tt class="py-docstring">        to allow controlling and managing Screenlets through DBus in any way </tt> </tt>
 
120
<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line"><tt class="py-docstring">        imaginable. This class should implement the default actions available for </tt> </tt>
 
121
<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt class="py-docstring">        all screenlets - add, delete, get, set, (move?)"""</tt> </tt>
 
122
<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">         </tt>
 
123
<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">        <tt id="link-3" class="py-name" targets="Variable screenlets.services.ScreenletService.BUS=screenlets.services.ScreenletService-class.html#BUS"><a title="screenlets.services.ScreenletService.BUS" class="py-name" href="#" onclick="return doclink('link-3', 'BUS', 'link-3');">BUS</a></tt>     <tt class="py-op">=</tt> <tt class="py-string">'org.screenlets'</tt> <tt class="py-comment">#'org.freedesktop.Screenlets'</tt> </tt>
 
124
<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">        <tt id="link-4" class="py-name" targets="Variable screenlets.Plugins.PATH=screenlets.Plugins-module.html#PATH,Variable screenlets.services.ScreenletService.PATH=screenlets.services.ScreenletService-class.html#PATH"><a title="screenlets.Plugins.PATH
119
125
screenlets.services.ScreenletService.PATH" class="py-name" href="#" onclick="return doclink('link-4', 'PATH', 'link-4');">PATH</a></tt>    <tt class="py-op">=</tt> <tt class="py-string">'/org/screenlets/'</tt> <tt class="py-comment">#'/org/freedesktop/Screenlets/'</tt> </tt>
120
 
<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">        <tt id="link-5" class="py-name" targets="Variable screenlets.services.ScreenletService.IFACE=screenlets.services.ScreenletService-class.html#IFACE"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-5', 'IFACE', 'link-5');">IFACE</a></tt>   <tt class="py-op">=</tt> <tt class="py-string">'org.screenlets.ScreenletService'</tt> <tt class="py-comment">#'org.freedesktop.ScreenletService'</tt> </tt>
121
 
<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">         </tt>
122
 
<a name="ScreenletService.__init__"></a><div id="ScreenletService.__init__-def"><a name="L58"></a><tt class="py-lineno"> 58</tt> <a class="py-toggle" href="#" id="ScreenletService.__init__-toggle" onclick="return toggle('ScreenletService.__init__');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#__init__">__init__</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">screenlet</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
123
 
</div><div id="ScreenletService.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.__init__-expanded"><a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">                <tt class="py-comment"># check types and vals</tt> </tt>
124
 
<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-6" class="py-name" targets="Variable screenlets.plugins.keyring.KeyRing.Key.name=screenlets.plugins.keyring.KeyRing.Key-class.html#name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-6', 'name', 'link-6');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">''</tt><tt class="py-op">:</tt> </tt>
125
 
<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">                        <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">'No name set in ScreenletService.__init__!'</tt><tt class="py-op">)</tt><tt class="py-op">;</tt> </tt>
126
 
<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">                <tt class="py-comment"># init props</tt> </tt>
127
 
<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt>  <tt class="py-op">=</tt> <tt class="py-name">screenlet</tt> </tt>
128
 
<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-7', 'name', 'link-6');">name</a></tt>               <tt class="py-op">=</tt> <tt id="link-8" class="py-name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-8', 'name', 'link-6');">name</a></tt> </tt>
129
 
<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="screenlets.services.ScreenletService.BUS" class="py-name" href="#" onclick="return doclink('link-9', 'BUS', 'link-3');">BUS</a></tt>                <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="screenlets.services.ScreenletService.BUS" class="py-name" href="#" onclick="return doclink('link-10', 'BUS', 'link-3');">BUS</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'.'</tt> <tt class="py-op">+</tt> <tt id="link-11" class="py-name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-11', 'name', 'link-6');">name</a></tt> </tt>
130
 
<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">objpath</tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="screenlets.Plugins.PATH
 
126
<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">        <tt id="link-5" class="py-name" targets="Variable screenlets.services.ScreenletService.IFACE=screenlets.services.ScreenletService-class.html#IFACE"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-5', 'IFACE', 'link-5');">IFACE</a></tt>   <tt class="py-op">=</tt> <tt class="py-string">'org.screenlets.ScreenletService'</tt> <tt class="py-comment">#'org.freedesktop.ScreenletService'</tt> </tt>
 
127
<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">         </tt>
 
128
<a name="ScreenletService.__init__"></a><div id="ScreenletService.__init__-def"><a name="L64"></a><tt class="py-lineno"> 64</tt> <a class="py-toggle" href="#" id="ScreenletService.__init__-toggle" onclick="return toggle('ScreenletService.__init__');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#__init__">__init__</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">screenlet</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
129
</div><div id="ScreenletService.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.__init__-expanded"><a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">                <tt class="py-comment"># check types and vals</tt> </tt>
 
130
<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-6" class="py-name" targets="Variable screenlets.plugins.keyring.KeyRing.Key.name=screenlets.plugins.keyring.KeyRing.Key-class.html#name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-6', 'name', 'link-6');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">''</tt><tt class="py-op">:</tt> </tt>
 
131
<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">                        <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">'No name set in ScreenletService.__init__!'</tt><tt class="py-op">)</tt><tt class="py-op">;</tt> </tt>
 
132
<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">                <tt class="py-comment"># init props</tt> </tt>
 
133
<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt>  <tt class="py-op">=</tt> <tt class="py-name">screenlet</tt> </tt>
 
134
<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-7', 'name', 'link-6');">name</a></tt>               <tt class="py-op">=</tt> <tt id="link-8" class="py-name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-8', 'name', 'link-6');">name</a></tt> </tt>
 
135
<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-9" class="py-name"><a title="screenlets.services.ScreenletService.BUS" class="py-name" href="#" onclick="return doclink('link-9', 'BUS', 'link-3');">BUS</a></tt>                <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="screenlets.services.ScreenletService.BUS" class="py-name" href="#" onclick="return doclink('link-10', 'BUS', 'link-3');">BUS</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'.'</tt> <tt class="py-op">+</tt> <tt id="link-11" class="py-name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-11', 'name', 'link-6');">name</a></tt> </tt>
 
136
<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">objpath</tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name"><a title="screenlets.Plugins.PATH
131
137
screenlets.services.ScreenletService.PATH" class="py-name" href="#" onclick="return doclink('link-12', 'PATH', 'link-4');">PATH</a></tt> <tt class="py-op">+</tt> <tt id="link-13" class="py-name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-13', 'name', 'link-6');">name</a></tt> </tt>
132
 
<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-14" class="py-name" targets="Variable screenlets.Screenlet.id=screenlets.Screenlet-class.html#id"><a title="screenlets.Screenlet.id" class="py-name" href="#" onclick="return doclink('link-14', 'id', 'link-14');">id</a></tt><tt class="py-op">:</tt> </tt>
133
 
<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">objpath</tt> <tt class="py-op">+=</tt> <tt class="py-string">'/'</tt> <tt class="py-op">+</tt> <tt id="link-15" class="py-name"><a title="screenlets.Screenlet.id" class="py-name" href="#" onclick="return doclink('link-15', 'id', 'link-14');">id</a></tt>                <tt class="py-comment"># add id to path, if set</tt> </tt>
134
 
<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">                <tt class="py-comment"># call super</tt> </tt>
135
 
<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">                <tt class="py-name">dbus</tt><tt class="py-op">.</tt><tt class="py-name">service</tt><tt class="py-op">.</tt><tt class="py-name">Object</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method screenlets.Notify.__init__()=screenlets.Notify-class.html#__init__,Method screenlets.Screenlet.__init__()=screenlets.Screenlet-class.html#__init__,Method screenlets.ScreenletTheme.__init__()=screenlets.ScreenletTheme-class.html#__init__,Method screenlets.ShapedWidget.__init__()=screenlets.ShapedWidget-class.html#__init__,Method screenlets.Tooltip.__init__()=screenlets.Tooltip-class.html#__init__,Method screenlets.WrapLabel.__init__()=screenlets.WrapLabel-class.html#__init__,Method screenlets.backend.CachingBackend.__init__()=screenlets.backend.CachingBackend-class.html#__init__,Method screenlets.backend.GconfBackend.__init__()=screenlets.backend.GconfBackend-class.html#__init__,Method screenlets.backend.ScreenletsBackend.__init__()=screenlets.backend.ScreenletsBackend-class.html#__init__,Method screenlets.install.ScreenletInstaller.__init__()=screenlets.install.ScreenletInstaller-class.html#__init__,Method screenlets.menu.ApplicationMenu.__init__()=screenlets.menu.ApplicationMenu-class.html#__init__,Method screenlets.menu.ImageMenuItem.__init__()=screenlets.menu.ImageMenuItem-class.html#__init__,Method screenlets.options.account_option.AccountOption.__init__()=screenlets.options.account_option.AccountOption-class.html#__init__,Method screenlets.options.base.EditableOptions.__init__()=screenlets.options.base.EditableOptions-class.html#__init__,Method screenlets.options.base.Option.__init__()=screenlets.options.base.Option-class.html#__init__,Method screenlets.options.base.OptionsDialog.__init__()=screenlets.options.base.OptionsDialog-class.html#__init__,Method screenlets.options.list_option.ListOptionDialog.__init__()=screenlets.options.list_option.ListOptionDialog-class.html#__init__,Method screenlets.plugins.Amarok.AmarokAPI.__init__()=screenlets.plugins.Amarok.AmarokAPI-class.html#__init__,Method screenlets.plugins.AmazonCoverArtSearch.AmazonCoverArtSearch.__init__()=screenlets.plugins.AmazonCoverArtSearch.AmazonCoverArtSearch-class.html#__init__,Method screenlets.plugins.Audacious.AudaciousAPI.__init__()=screenlets.plugins.Audacious.AudaciousAPI-class.html#__init__,Method screenlets.plugins.Banshee.BansheeAPI.__init__()=screenlets.plugins.Banshee.BansheeAPI-class.html#__init__,Method screenlets.plugins.Convert.Converter.__init__()=screenlets.plugins.Convert.Converter-class.html#__init__,Method screenlets.plugins.CoverSearch.CoverSearch.__init__()=screenlets.plugins.CoverSearch.CoverSearch-class.html#__init__,Method screenlets.plugins.Exaile.ExaileAPI.__init__()=screenlets.plugins.Exaile.ExaileAPI-class.html#__init__,Method screenlets.plugins.Flickr.Flickr.__init__()=screenlets.plugins.Flickr.Flickr-class.html#__init__,Method screenlets.plugins.GenericPlayer.GenericAPI.__init__()=screenlets.plugins.GenericPlayer.GenericAPI-class.html#__init__,Method screenlets.plugins.Gstreamer.gstreamer.__init__()=screenlets.plugins.Gstreamer.gstreamer-class.html#__init__,Method screenlets.plugins.Juk.JukAPI.__init__()=screenlets.plugins.Juk.JukAPI-class.html#__init__,Method screenlets.plugins.Kaffeine.KaffeineAPI.__init__()=screenlets.plugins.Kaffeine.KaffeineAPI-class.html#__init__,Method screenlets.plugins.LastFMProxy.LastFMProxyAPI.__init__()=screenlets.plugins.LastFMProxy.LastFMProxyAPI-class.html#__init__,Method screenlets.plugins.Listen.ListenAPI.__init__()=screenlets.plugins.Listen.ListenAPI-class.html#__init__,Method screenlets.plugins.Loader.GnomeVFSAsyncSrc.__init__()=screenlets.plugins.Loader.GnomeVFSAsyncSrc-class.html#__init__,Method screenlets.plugins.Mail.IMAPBackend.__init__()=screenlets.plugins.Mail.IMAPBackend-class.html#__init__,Method screenlets.plugins.Mail.MailCheckBackend.__init__()=screenlets.plugins.Mail.MailCheckBackend-class.html#__init__,Method screenlets.plugins.Mail.Mailer.__init__()=screenlets.plugins.Mail.Mailer-class.html#__init__,Method screenlets.plugins.Mail.POP3Backend.__init__()=screenlets.plugins.Mail.POP3Backend-class.html#__init__,Method screenlets.plugins.Mplayer.Mplayer.__init__()=screenlets.plugins.Mplayer.Mplayer-class.html#__init__,Method screenlets.plugins.Proxy.Proxy.__init__()=screenlets.plugins.Proxy.Proxy-class.html#__init__,Method screenlets.plugins.Quodlibet.QuodlibetAPI.__init__()=screenlets.plugins.Quodlibet.QuodlibetAPI-class.html#__init__,Method screenlets.plugins.Rhythmbox.RhythmboxAPI.__init__()=screenlets.plugins.Rhythmbox.RhythmboxAPI-class.html#__init__,Method screenlets.plugins.Sonata.SonataAPI.__init__()=screenlets.plugins.Sonata.SonataAPI-class.html#__init__,Method screenlets.plugins.Songbird.SongbirdAPI.__init__()=screenlets.plugins.Songbird.SongbirdAPI-class.html#__init__,Method screenlets.plugins.TemperatureConverter.TemperatureConverter.__init__()=screenlets.plugins.TemperatureConverter.TemperatureConverter-class.html#__init__,Method screenlets.plugins.iCal.DateSet.__init__()=screenlets.plugins.iCal.DateSet-class.html#__init__,Method screenlets.plugins.iCal.ICalEvent.__init__()=screenlets.plugins.iCal.ICalEvent-class.html#__init__,Method screenlets.plugins.iCal.ICalReader.__init__()=screenlets.plugins.iCal.ICalReader-class.html#__init__,Method screenlets.plugins.keyring.KeyRing.Key.__init__()=screenlets.plugins.keyring.KeyRing.Key-class.html#__init__,Method screenlets.plugins.keyring.KeyRing.__init__()=screenlets.plugins.keyring.KeyRing-class.html#__init__,Method screenlets.plugins.mpdclient2.command_sender.__init__()=screenlets.plugins.mpdclient2.command_sender-class.html#__init__,Method screenlets.plugins.mpdclient2.mpd_connection.__init__()=screenlets.plugins.mpdclient2.mpd_connection-class.html#__init__,Method screenlets.plugins.mpdclient2.response_fetcher.__init__()=screenlets.plugins.mpdclient2.response_fetcher-class.html#__init__,Method screenlets.plugins.mpdclient2.sender_n_fetcher.__init__()=screenlets.plugins.mpdclient2.sender_n_fetcher-class.html#__init__,Method screenlets.plugins.mpdclient2.socket_talker.__init__()=screenlets.plugins.mpdclient2.socket_talker-class.html#__init__,Method screenlets.sensors.CPUSensor.__init__()=screenlets.sensors.CPUSensor-class.html#__init__,Method screenlets.sensors.MemorySensor.__init__()=screenlets.sensors.MemorySensor-class.html#__init__,Method screenlets.sensors.NetSensor.__init__()=screenlets.sensors.NetSensor-class.html#__init__,Method screenlets.sensors.Sensor.__init__()=screenlets.sensors.Sensor-class.html#__init__,Method screenlets.services.ScreenletService.__init__()=screenlets.services.ScreenletService-class.html#__init__,Method screenlets.session.ScreenletSession.__init__()=screenlets.session.ScreenletSession-class.html#__init__,Method screenlets.utils.FileMonitor.__init__()=screenlets.utils.FileMonitor-class.html#__init__,Method screenlets.utils.IniReader.__init__()=screenlets.utils.IniReader-class.html#__init__,Method screenlets.utils.MLStripper.__init__()=screenlets.utils.MLStripper-class.html#__init__,Method screenlets.utils.Notifier.__init__()=screenlets.utils.Notifier-class.html#__init__,Method screenlets.utils.ScreenletInfo.__init__()=screenlets.utils.ScreenletInfo-class.html#__init__"><a title="screenlets.Notify.__init__
 
138
<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-14" class="py-name" targets="Variable screenlets.Screenlet.id=screenlets.Screenlet-class.html#id"><a title="screenlets.Screenlet.id" class="py-name" href="#" onclick="return doclink('link-14', 'id', 'link-14');">id</a></tt><tt class="py-op">:</tt> </tt>
 
139
<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">objpath</tt> <tt class="py-op">+=</tt> <tt class="py-string">'/'</tt> <tt class="py-op">+</tt> <tt id="link-15" class="py-name"><a title="screenlets.Screenlet.id" class="py-name" href="#" onclick="return doclink('link-15', 'id', 'link-14');">id</a></tt>                <tt class="py-comment"># add id to path, if set</tt> </tt>
 
140
<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">                <tt class="py-comment"># call super</tt> </tt>
 
141
<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">                <tt class="py-name">dbus</tt><tt class="py-op">.</tt><tt class="py-name">service</tt><tt class="py-op">.</tt><tt class="py-name">Object</tt><tt class="py-op">.</tt><tt id="link-16" class="py-name" targets="Method screenlets.Notify.__init__()=screenlets.Notify-class.html#__init__,Method screenlets.Screenlet.__init__()=screenlets.Screenlet-class.html#__init__,Method screenlets.ScreenletTheme.__init__()=screenlets.ScreenletTheme-class.html#__init__,Method screenlets.ShapedWidget.__init__()=screenlets.ShapedWidget-class.html#__init__,Method screenlets.Tooltip.__init__()=screenlets.Tooltip-class.html#__init__,Method screenlets.WrapLabel.__init__()=screenlets.WrapLabel-class.html#__init__,Method screenlets.backend.CachingBackend.__init__()=screenlets.backend.CachingBackend-class.html#__init__,Method screenlets.backend.GconfBackend.__init__()=screenlets.backend.GconfBackend-class.html#__init__,Method screenlets.backend.ScreenletsBackend.__init__()=screenlets.backend.ScreenletsBackend-class.html#__init__,Method screenlets.install.ScreenletInstaller.__init__()=screenlets.install.ScreenletInstaller-class.html#__init__,Method screenlets.menu.ApplicationMenu.__init__()=screenlets.menu.ApplicationMenu-class.html#__init__,Method screenlets.menu.ImageMenuItem.__init__()=screenlets.menu.ImageMenuItem-class.html#__init__,Method screenlets.options.account_option.AccountOption.__init__()=screenlets.options.account_option.AccountOption-class.html#__init__,Method screenlets.options.base.EditableOptions.__init__()=screenlets.options.base.EditableOptions-class.html#__init__,Method screenlets.options.base.Option.__init__()=screenlets.options.base.Option-class.html#__init__,Method screenlets.options.base.OptionsDialog.__init__()=screenlets.options.base.OptionsDialog-class.html#__init__,Method screenlets.options.list_option.ListOptionDialog.__init__()=screenlets.options.list_option.ListOptionDialog-class.html#__init__,Method screenlets.plugins.Amarok.AmarokAPI.__init__()=screenlets.plugins.Amarok.AmarokAPI-class.html#__init__,Method screenlets.plugins.AmazonCoverArtSearch.AmazonCoverArtSearch.__init__()=screenlets.plugins.AmazonCoverArtSearch.AmazonCoverArtSearch-class.html#__init__,Method screenlets.plugins.Audacious.AudaciousAPI.__init__()=screenlets.plugins.Audacious.AudaciousAPI-class.html#__init__,Method screenlets.plugins.Banshee.BansheeAPI.__init__()=screenlets.plugins.Banshee.BansheeAPI-class.html#__init__,Method screenlets.plugins.Convert.Converter.__init__()=screenlets.plugins.Convert.Converter-class.html#__init__,Method screenlets.plugins.CoverSearch.CoverSearch.__init__()=screenlets.plugins.CoverSearch.CoverSearch-class.html#__init__,Method screenlets.plugins.Exaile.ExaileAPI.__init__()=screenlets.plugins.Exaile.ExaileAPI-class.html#__init__,Method screenlets.plugins.Flickr.Flickr.__init__()=screenlets.plugins.Flickr.Flickr-class.html#__init__,Method screenlets.plugins.GenericPlayer.GenericAPI.__init__()=screenlets.plugins.GenericPlayer.GenericAPI-class.html#__init__,Method screenlets.plugins.Gstreamer.gstreamer.__init__()=screenlets.plugins.Gstreamer.gstreamer-class.html#__init__,Method screenlets.plugins.Juk.JukAPI.__init__()=screenlets.plugins.Juk.JukAPI-class.html#__init__,Method screenlets.plugins.Kaffeine.KaffeineAPI.__init__()=screenlets.plugins.Kaffeine.KaffeineAPI-class.html#__init__,Method screenlets.plugins.LastFMProxy.LastFMProxyAPI.__init__()=screenlets.plugins.LastFMProxy.LastFMProxyAPI-class.html#__init__,Method screenlets.plugins.Listen.ListenAPI.__init__()=screenlets.plugins.Listen.ListenAPI-class.html#__init__,Method screenlets.plugins.Loader.GnomeVFSAsyncSrc.__init__()=screenlets.plugins.Loader.GnomeVFSAsyncSrc-class.html#__init__,Method screenlets.plugins.Mail.IMAPBackend.__init__()=screenlets.plugins.Mail.IMAPBackend-class.html#__init__,Method screenlets.plugins.Mail.MailCheckBackend.__init__()=screenlets.plugins.Mail.MailCheckBackend-class.html#__init__,Method screenlets.plugins.Mail.Mailer.__init__()=screenlets.plugins.Mail.Mailer-class.html#__init__,Method screenlets.plugins.Mail.POP3Backend.__init__()=screenlets.plugins.Mail.POP3Backend-class.html#__init__,Method screenlets.plugins.Mplayer.Mplayer.__init__()=screenlets.plugins.Mplayer.Mplayer-class.html#__init__,Method screenlets.plugins.Proxy.Proxy.__init__()=screenlets.plugins.Proxy.Proxy-class.html#__init__,Method screenlets.plugins.Quodlibet.QuodlibetAPI.__init__()=screenlets.plugins.Quodlibet.QuodlibetAPI-class.html#__init__,Method screenlets.plugins.Rhythmbox.RhythmboxAPI.__init__()=screenlets.plugins.Rhythmbox.RhythmboxAPI-class.html#__init__,Method screenlets.plugins.Sonata.SonataAPI.__init__()=screenlets.plugins.Sonata.SonataAPI-class.html#__init__,Method screenlets.plugins.Songbird.SongbirdAPI.__init__()=screenlets.plugins.Songbird.SongbirdAPI-class.html#__init__,Method screenlets.plugins.TemperatureConverter.TemperatureConverter.__init__()=screenlets.plugins.TemperatureConverter.TemperatureConverter-class.html#__init__,Method screenlets.plugins.iCal.DateSet.__init__()=screenlets.plugins.iCal.DateSet-class.html#__init__,Method screenlets.plugins.iCal.ICalEvent.__init__()=screenlets.plugins.iCal.ICalEvent-class.html#__init__,Method screenlets.plugins.iCal.ICalReader.__init__()=screenlets.plugins.iCal.ICalReader-class.html#__init__,Method screenlets.plugins.keyring.KeyRing.Key.__init__()=screenlets.plugins.keyring.KeyRing.Key-class.html#__init__,Method screenlets.plugins.keyring.KeyRing.__init__()=screenlets.plugins.keyring.KeyRing-class.html#__init__,Method screenlets.plugins.mpdclient2.command_sender.__init__()=screenlets.plugins.mpdclient2.command_sender-class.html#__init__,Method screenlets.plugins.mpdclient2.mpd_connection.__init__()=screenlets.plugins.mpdclient2.mpd_connection-class.html#__init__,Method screenlets.plugins.mpdclient2.response_fetcher.__init__()=screenlets.plugins.mpdclient2.response_fetcher-class.html#__init__,Method screenlets.plugins.mpdclient2.sender_n_fetcher.__init__()=screenlets.plugins.mpdclient2.sender_n_fetcher-class.html#__init__,Method screenlets.plugins.mpdclient2.socket_talker.__init__()=screenlets.plugins.mpdclient2.socket_talker-class.html#__init__,Method screenlets.sensors.CPUSensor.__init__()=screenlets.sensors.CPUSensor-class.html#__init__,Method screenlets.sensors.MemorySensor.__init__()=screenlets.sensors.MemorySensor-class.html#__init__,Method screenlets.sensors.NetSensor.__init__()=screenlets.sensors.NetSensor-class.html#__init__,Method screenlets.sensors.Sensor.__init__()=screenlets.sensors.Sensor-class.html#__init__,Method screenlets.services.ScreenletService.__init__()=screenlets.services.ScreenletService-class.html#__init__,Method screenlets.session.ScreenletSession.__init__()=screenlets.session.ScreenletSession-class.html#__init__,Method screenlets.utils.FileMonitor.__init__()=screenlets.utils.FileMonitor-class.html#__init__,Method screenlets.utils.IniReader.__init__()=screenlets.utils.IniReader-class.html#__init__,Method screenlets.utils.MLStripper.__init__()=screenlets.utils.MLStripper-class.html#__init__,Method screenlets.utils.Notifier.__init__()=screenlets.utils.Notifier-class.html#__init__,Method screenlets.utils.ScreenletInfo.__init__()=screenlets.utils.ScreenletInfo-class.html#__init__"><a title="screenlets.Notify.__init__
136
142
screenlets.Screenlet.__init__
137
143
screenlets.ScreenletTheme.__init__
138
144
screenlets.ShapedWidget.__init__
196
202
screenlets.utils.MLStripper.__init__
197
203
screenlets.utils.Notifier.__init__
198
204
screenlets.utils.ScreenletInfo.__init__" class="py-name" href="#" onclick="return doclink('link-16', '__init__', 'link-16');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">dbus</tt><tt class="py-op">.</tt><tt class="py-name">service</tt><tt class="py-op">.</tt><tt class="py-name">BusName</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="screenlets.services.ScreenletService.BUS" class="py-name" href="#" onclick="return doclink('link-17', 'BUS', 'link-3');">BUS</a></tt><tt class="py-op">,</tt>  </tt>
199
 
<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">                        <tt class="py-name">bus</tt><tt class="py-op">=</tt><tt class="py-name">dbus</tt><tt class="py-op">.</tt><tt class="py-name">SessionBus</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">do_not_queue</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">objpath</tt><tt class="py-op">)</tt> </tt>
200
 
</div><a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">                 </tt>
201
 
<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">action</tt><tt class="py-op">(</tt><tt id="link-18" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-18', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt> </tt>
202
 
<a name="ScreenletService.test"></a><div id="ScreenletService.test-def"><a name="L74"></a><tt class="py-lineno"> 74</tt> <a class="py-toggle" href="#" id="ScreenletService.test-toggle" onclick="return toggle('ScreenletService.test');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#test">test</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
203
 
</div><div id="ScreenletService.test-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.test-expanded"><a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">                <tt class="py-keyword">print</tt> <tt class="py-string">"TEST: %s"</tt> <tt class="py-op">%</tt> <tt id="link-19" class="py-name" targets="Method screenlets.plugins.Convert.Converter.str()=screenlets.plugins.Convert.Converter-class.html#str"><a title="screenlets.plugins.Convert.Converter.str" class="py-name" href="#" onclick="return doclink('link-19', 'str', 'link-19');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt><tt class="py-op">)</tt> </tt>
204
 
</div><a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"> </tt>
205
 
<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">action</tt><tt class="py-op">(</tt><tt id="link-20" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-20', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt> </tt>
206
 
<a name="ScreenletService.debug"></a><div id="ScreenletService.debug-def"><a name="L78"></a><tt class="py-lineno"> 78</tt> <a class="py-toggle" href="#" id="ScreenletService.debug-toggle" onclick="return toggle('ScreenletService.debug');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#debug">debug</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">string</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
207
 
</div><div id="ScreenletService.debug-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.debug-expanded"><a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">                <tt class="py-docstring">"""Dump a string to the console."""</tt> </tt>
208
 
<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">                <tt class="py-keyword">print</tt> <tt class="py-string">"DEBUG: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">string</tt> </tt>
209
 
</div><a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">         </tt>
210
 
<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">action</tt><tt class="py-op">(</tt><tt id="link-21" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-21', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt> </tt>
211
 
<a name="ScreenletService.add"></a><div id="ScreenletService.add-def"><a name="L83"></a><tt class="py-lineno"> 83</tt> <a class="py-toggle" href="#" id="ScreenletService.add-toggle" onclick="return toggle('ScreenletService.add');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#add">add</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
212
 
</div><div id="ScreenletService.add-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.add-expanded"><a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">                <tt class="py-docstring">"""Ask the assigned Screenlet to add a new instance of itself to </tt> </tt>
213
 
<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line"><tt class="py-docstring">                its session. The new Screenlet will have the ID defined by 'id'.</tt> </tt>
214
 
<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line"><tt class="py-docstring">                The ID of the new instance is returned, so you can auto-generate an ID</tt> </tt>
215
 
<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line"><tt class="py-docstring">                by passing an empty string. The function returns None if adding a </tt> </tt>
216
 
<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line"><tt class="py-docstring">                new instance failed for some reason."""</tt> </tt>
217
 
<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">                <tt class="py-name">sl</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Module screenlets.session=screenlets.session-module.html"><a title="screenlets.session" class="py-name" href="#" onclick="return doclink('link-22', 'session', 'link-22');">session</a></tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Method screenlets.session.ScreenletSession.create_instance()=screenlets.session.ScreenletSession-class.html#create_instance"><a title="screenlets.session.ScreenletSession.create_instance" class="py-name" href="#" onclick="return doclink('link-23', 'create_instance', 'link-23');">create_instance</a></tt><tt class="py-op">(</tt><tt id="link-24" class="py-name"><a title="screenlets.Screenlet.id" class="py-name" href="#" onclick="return doclink('link-24', 'id', 'link-14');">id</a></tt><tt class="py-op">)</tt> </tt>
218
 
<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">                <tt class="py-name">sl</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Method screenlets.Screenlet.finish_loading()=screenlets.Screenlet-class.html#finish_loading"><a title="screenlets.Screenlet.finish_loading" class="py-name" href="#" onclick="return doclink('link-25', 'finish_loading', 'link-25');">finish_loading</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
219
 
<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">sl</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
220
 
<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt class="py-name">sl</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="screenlets.Screenlet.id" class="py-name" href="#" onclick="return doclink('link-26', 'id', 'link-14');">id</a></tt> </tt>
221
 
<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
222
 
</div><a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line"> </tt>
223
 
<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">action</tt><tt class="py-op">(</tt><tt id="link-27" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-27', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt> </tt>
224
 
<a name="ScreenletService.get"></a><div id="ScreenletService.get-def"><a name="L96"></a><tt class="py-lineno"> 96</tt> <a class="py-toggle" href="#" id="ScreenletService.get-toggle" onclick="return toggle('ScreenletService.get');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#get">get</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
225
 
</div><div id="ScreenletService.get-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.get-expanded"><a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">                <tt class="py-docstring">"""Ask the assigned Screenlet to return the given attribute's value. If</tt> </tt>
226
 
<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line"><tt class="py-docstring">                'id' is defined, the instance with the given id will be accessed, </tt> </tt>
227
 
<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line"><tt class="py-docstring">                else the main instance is used. Protected attributes are not returned</tt> </tt>
228
 
<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line"><tt class="py-docstring">                by this function.</tt> </tt>
229
 
<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line"><tt class="py-docstring">                TODO: Throw exception on error? ... could be abused to crash the app"""</tt> </tt>
230
 
<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-28" class="py-name"><a title="screenlets.Screenlet.id" class="py-name" href="#" onclick="return doclink('link-28', 'id', 'link-14');">id</a></tt><tt class="py-op">:</tt> </tt>
231
 
<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">                        <tt class="py-name">sl</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="screenlets.session" class="py-name" href="#" onclick="return doclink('link-29', 'session', 'link-22');">session</a></tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Method screenlets.session.ScreenletSession.get_instance_by_id()=screenlets.session.ScreenletSession-class.html#get_instance_by_id"><a title="screenlets.session.ScreenletSession.get_instance_by_id" class="py-name" href="#" onclick="return doclink('link-30', 'get_instance_by_id', 'link-30');">get_instance_by_id</a></tt><tt class="py-op">(</tt><tt id="link-31" class="py-name"><a title="screenlets.Screenlet.id" class="py-name" href="#" onclick="return doclink('link-31', 'id', 'link-14');">id</a></tt><tt class="py-op">)</tt> </tt>
232
 
<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">sl</tt><tt class="py-op">:</tt> </tt>
233
 
<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">                                <tt class="py-name">sl</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt> </tt>
234
 
<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">                        <tt class="py-name">o</tt> <tt class="py-op">=</tt> <tt class="py-name">sl</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Method screenlets.options.base.EditableOptions.get_option_by_name()=screenlets.options.base.EditableOptions-class.html#get_option_by_name"><a title="screenlets.options.base.EditableOptions.get_option_by_name" class="py-name" href="#" onclick="return doclink('link-32', 'get_option_by_name', 'link-32');">get_option_by_name</a></tt><tt class="py-op">(</tt><tt class="py-name">attrib</tt><tt class="py-op">)</tt> </tt>
235
 
<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">                        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
236
 
<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">                                <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">o</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name" targets="Variable screenlets.options.account_option.AccountOption.protected=screenlets.options.account_option.AccountOption-class.html#protected,Variable screenlets.options.base.Option.protected=screenlets.options.base.Option-class.html#protected"><a title="screenlets.options.account_option.AccountOption.protected
 
205
<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">                        <tt class="py-name">bus</tt><tt class="py-op">=</tt><tt class="py-name">dbus</tt><tt class="py-op">.</tt><tt class="py-name">SessionBus</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">do_not_queue</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">objpath</tt><tt class="py-op">)</tt> </tt>
 
206
</div><a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">                 </tt>
 
207
<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">action</tt><tt class="py-op">(</tt><tt id="link-18" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-18', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt> </tt>
 
208
<a name="ScreenletService.test"></a><div id="ScreenletService.test-def"><a name="L80"></a><tt class="py-lineno"> 80</tt> <a class="py-toggle" href="#" id="ScreenletService.test-toggle" onclick="return toggle('ScreenletService.test');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#test">test</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
209
</div><div id="ScreenletService.test-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.test-expanded"><a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">                <tt class="py-keyword">print</tt> <tt class="py-string">"TEST: %s"</tt> <tt class="py-op">%</tt> <tt id="link-19" class="py-name" targets="Method screenlets.plugins.Convert.Converter.str()=screenlets.plugins.Convert.Converter-class.html#str"><a title="screenlets.plugins.Convert.Converter.str" class="py-name" href="#" onclick="return doclink('link-19', 'str', 'link-19');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt><tt class="py-op">)</tt> </tt>
 
210
</div><a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line"> </tt>
 
211
<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">action</tt><tt class="py-op">(</tt><tt id="link-20" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-20', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt> </tt>
 
212
<a name="ScreenletService.debug"></a><div id="ScreenletService.debug-def"><a name="L84"></a><tt class="py-lineno"> 84</tt> <a class="py-toggle" href="#" id="ScreenletService.debug-toggle" onclick="return toggle('ScreenletService.debug');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#debug">debug</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">string</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
213
</div><div id="ScreenletService.debug-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.debug-expanded"><a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">                <tt class="py-docstring">"""Dump a string to the console."""</tt> </tt>
 
214
<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">                <tt class="py-keyword">print</tt> <tt class="py-string">"DEBUG: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">string</tt> </tt>
 
215
</div><a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">         </tt>
 
216
<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">action</tt><tt class="py-op">(</tt><tt id="link-21" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-21', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt> </tt>
 
217
<a name="ScreenletService.add"></a><div id="ScreenletService.add-def"><a name="L89"></a><tt class="py-lineno"> 89</tt> <a class="py-toggle" href="#" id="ScreenletService.add-toggle" onclick="return toggle('ScreenletService.add');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#add">add</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
218
</div><div id="ScreenletService.add-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.add-expanded"><a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">                <tt class="py-docstring">"""Ask the assigned Screenlet to add a new instance of itself to </tt> </tt>
 
219
<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"><tt class="py-docstring">                its session. The new Screenlet will have the ID defined by 'id'.</tt> </tt>
 
220
<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line"><tt class="py-docstring">                The ID of the new instance is returned, so you can auto-generate an ID</tt> </tt>
 
221
<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line"><tt class="py-docstring">                by passing an empty string. The function returns None if adding a </tt> </tt>
 
222
<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line"><tt class="py-docstring">                new instance failed for some reason."""</tt> </tt>
 
223
<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">                <tt class="py-name">sl</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Module screenlets.session=screenlets.session-module.html"><a title="screenlets.session" class="py-name" href="#" onclick="return doclink('link-22', 'session', 'link-22');">session</a></tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Method screenlets.session.ScreenletSession.create_instance()=screenlets.session.ScreenletSession-class.html#create_instance"><a title="screenlets.session.ScreenletSession.create_instance" class="py-name" href="#" onclick="return doclink('link-23', 'create_instance', 'link-23');">create_instance</a></tt><tt class="py-op">(</tt><tt id="link-24" class="py-name"><a title="screenlets.Screenlet.id" class="py-name" href="#" onclick="return doclink('link-24', 'id', 'link-14');">id</a></tt><tt class="py-op">)</tt> </tt>
 
224
<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">                <tt class="py-name">sl</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Method screenlets.Screenlet.finish_loading()=screenlets.Screenlet-class.html#finish_loading"><a title="screenlets.Screenlet.finish_loading" class="py-name" href="#" onclick="return doclink('link-25', 'finish_loading', 'link-25');">finish_loading</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
225
<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">sl</tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
 
226
<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt class="py-name">sl</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name"><a title="screenlets.Screenlet.id" class="py-name" href="#" onclick="return doclink('link-26', 'id', 'link-14');">id</a></tt> </tt>
 
227
<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
 
228
</div><a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line"> </tt>
 
229
<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">action</tt><tt class="py-op">(</tt><tt id="link-27" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-27', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt> </tt>
 
230
<a name="ScreenletService.get"></a><div id="ScreenletService.get-def"><a name="L102"></a><tt class="py-lineno">102</tt> <a class="py-toggle" href="#" id="ScreenletService.get-toggle" onclick="return toggle('ScreenletService.get');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#get">get</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
231
</div><div id="ScreenletService.get-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.get-expanded"><a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">                <tt class="py-docstring">"""Ask the assigned Screenlet to return the given attribute's value. If</tt> </tt>
 
232
<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"><tt class="py-docstring">                'id' is defined, the instance with the given id will be accessed, </tt> </tt>
 
233
<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line"><tt class="py-docstring">                else the main instance is used. Protected attributes are not returned</tt> </tt>
 
234
<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line"><tt class="py-docstring">                by this function.</tt> </tt>
 
235
<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line"><tt class="py-docstring">                TODO: Throw exception on error? ... could be abused to crash the app"""</tt> </tt>
 
236
<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-28" class="py-name"><a title="screenlets.Screenlet.id" class="py-name" href="#" onclick="return doclink('link-28', 'id', 'link-14');">id</a></tt><tt class="py-op">:</tt> </tt>
 
237
<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">                        <tt class="py-name">sl</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="screenlets.session" class="py-name" href="#" onclick="return doclink('link-29', 'session', 'link-22');">session</a></tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Method screenlets.session.ScreenletSession.get_instance_by_id()=screenlets.session.ScreenletSession-class.html#get_instance_by_id"><a title="screenlets.session.ScreenletSession.get_instance_by_id" class="py-name" href="#" onclick="return doclink('link-30', 'get_instance_by_id', 'link-30');">get_instance_by_id</a></tt><tt class="py-op">(</tt><tt id="link-31" class="py-name"><a title="screenlets.Screenlet.id" class="py-name" href="#" onclick="return doclink('link-31', 'id', 'link-14');">id</a></tt><tt class="py-op">)</tt> </tt>
 
238
<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">sl</tt><tt class="py-op">:</tt> </tt>
 
239
<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">                                <tt class="py-name">sl</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt> </tt>
 
240
<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">                        <tt class="py-name">o</tt> <tt class="py-op">=</tt> <tt class="py-name">sl</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Method screenlets.options.base.EditableOptions.get_option_by_name()=screenlets.options.base.EditableOptions-class.html#get_option_by_name"><a title="screenlets.options.base.EditableOptions.get_option_by_name" class="py-name" href="#" onclick="return doclink('link-32', 'get_option_by_name', 'link-32');">get_option_by_name</a></tt><tt class="py-op">(</tt><tt class="py-name">attrib</tt><tt class="py-op">)</tt> </tt>
 
241
<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">                        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 
242
<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">                                <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">o</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name" targets="Variable screenlets.options.account_option.AccountOption.protected=screenlets.options.account_option.AccountOption-class.html#protected,Variable screenlets.options.base.Option.protected=screenlets.options.base.Option-class.html#protected"><a title="screenlets.options.account_option.AccountOption.protected
237
243
screenlets.options.base.Option.protected" class="py-name" href="#" onclick="return doclink('link-33', 'protected', 'link-33');">protected</a></tt><tt class="py-op">:</tt> </tt>
238
 
<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">                                        <tt class="py-keyword">return</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">sl</tt><tt class="py-op">,</tt> <tt class="py-name">attrib</tt><tt class="py-op">)</tt> </tt>
239
 
<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">                                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
240
 
<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">                                        <tt class="py-keyword">print</tt> <tt class="py-string">"Cannot get/set protected options through service."</tt> </tt>
241
 
<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">                                        <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
242
 
<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">                        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt>  </tt>
243
 
<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">                                <tt class="py-keyword">print</tt> <tt class="py-string">'Error getting attribute'</tt> </tt>
244
 
<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">                                <tt class="py-keyword">return</tt> <tt class="py-name">None</tt>      </tt>
245
 
</div><a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">action</tt><tt class="py-op">(</tt><tt id="link-34" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-34', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt> </tt>
246
 
<a name="ScreenletService.get_first_instance"></a><div id="ScreenletService.get_first_instance-def"><a name="L117"></a><tt class="py-lineno">117</tt> <a class="py-toggle" href="#" id="ScreenletService.get_first_instance-toggle" onclick="return toggle('ScreenletService.get_first_instance');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#get_first_instance">get_first_instance</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
247
 
</div><div id="ScreenletService.get_first_instance-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.get_first_instance-expanded"><a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">                <tt class="py-docstring">"""Get the ID of the first existing instance of the assigned </tt> </tt>
248
 
<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-docstring">                Screenlet (within the screenlet's active session)."""</tt> </tt>
249
 
<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="screenlets.session" class="py-name" href="#" onclick="return doclink('link-35', 'session', 'link-22');">session</a></tt><tt class="py-op">.</tt><tt class="py-name">instances</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
250
 
<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="screenlets.session" class="py-name" href="#" onclick="return doclink('link-36', 'session', 'link-22');">session</a></tt><tt class="py-op">.</tt><tt class="py-name">instances</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="screenlets.Screenlet.id" class="py-name" href="#" onclick="return doclink('link-37', 'id', 'link-14');">id</a></tt> </tt>
251
 
<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
252
 
</div><a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">         </tt>
253
 
<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">action</tt><tt class="py-op">(</tt><tt id="link-38" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-38', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt> </tt>
254
 
<a name="ScreenletService.list_instances"></a><div id="ScreenletService.list_instances-def"><a name="L125"></a><tt class="py-lineno">125</tt> <a class="py-toggle" href="#" id="ScreenletService.list_instances-toggle" onclick="return toggle('ScreenletService.list_instances');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#list_instances">list_instances</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
255
 
</div><div id="ScreenletService.list_instances-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.list_instances-expanded"><a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">                <tt class="py-docstring">"""Return a list with IDs of all existing instances of the assigned </tt> </tt>
256
 
<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line"><tt class="py-docstring">                Screenlet (within the screenlet's active session)."""</tt> </tt>
257
 
<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">                <tt class="py-name">lst</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
258
 
<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">sl</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="screenlets.session" class="py-name" href="#" onclick="return doclink('link-39', 'session', 'link-22');">session</a></tt><tt class="py-op">.</tt><tt class="py-name">instances</tt><tt class="py-op">:</tt> </tt>
259
 
<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">                        <tt class="py-name">lst</tt><tt class="py-op">.</tt><tt class="py-name">append</tt> <tt class="py-op">(</tt><tt class="py-name">sl</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="screenlets.Screenlet.id" class="py-name" href="#" onclick="return doclink('link-40', 'id', 'link-14');">id</a></tt><tt class="py-op">)</tt> </tt>
260
 
<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">lst</tt> </tt>
261
 
</div><a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">         </tt>
262
 
<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">action</tt><tt class="py-op">(</tt><tt id="link-41" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-41', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt> </tt>
263
 
<a name="ScreenletService.quit"></a><div id="ScreenletService.quit-def"><a name="L134"></a><tt class="py-lineno">134</tt> <a class="py-toggle" href="#" id="ScreenletService.quit-toggle" onclick="return toggle('ScreenletService.quit');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#quit">quit</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
264
 
</div><div id="ScreenletService.quit-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.quit-expanded"><a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">                <tt class="py-docstring">"""Quit all instances of the screenlet. Similar to selecting Quit</tt> </tt>
265
 
<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line"><tt class="py-docstring">                from the menu."""</tt> </tt>
266
 
<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name" targets="Method screenlets.Screenlet.destroy()=screenlets.Screenlet-class.html#destroy"><a title="screenlets.Screenlet.destroy" class="py-name" href="#" onclick="return doclink('link-42', 'destroy', 'link-42');">destroy</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name" targets="Variable screenlets.Screenlet.window=screenlets.Screenlet-class.html#window"><a title="screenlets.Screenlet.window" class="py-name" href="#" onclick="return doclink('link-43', 'window', 'link-43');">window</a></tt><tt class="py-op">)</tt> </tt>
 
244
<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">                                        <tt class="py-keyword">return</tt> <tt class="py-name">getattr</tt><tt class="py-op">(</tt><tt class="py-name">sl</tt><tt class="py-op">,</tt> <tt class="py-name">attrib</tt><tt class="py-op">)</tt> </tt>
 
245
<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">                                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
246
<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">                                        <tt class="py-keyword">print</tt> <tt class="py-string">"Cannot get/set protected options through service."</tt> </tt>
 
247
<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">                                        <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
 
248
<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">                        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt>  </tt>
 
249
<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">                                <tt class="py-keyword">print</tt> <tt class="py-string">'Error getting attribute'</tt> </tt>
 
250
<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">                                <tt class="py-keyword">return</tt> <tt class="py-name">None</tt>      </tt>
 
251
</div><a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">action</tt><tt class="py-op">(</tt><tt id="link-34" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-34', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt> </tt>
 
252
<a name="ScreenletService.get_first_instance"></a><div id="ScreenletService.get_first_instance-def"><a name="L123"></a><tt class="py-lineno">123</tt> <a class="py-toggle" href="#" id="ScreenletService.get_first_instance-toggle" onclick="return toggle('ScreenletService.get_first_instance');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#get_first_instance">get_first_instance</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
253
</div><div id="ScreenletService.get_first_instance-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.get_first_instance-expanded"><a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">                <tt class="py-docstring">"""Get the ID of the first existing instance of the assigned </tt> </tt>
 
254
<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"><tt class="py-docstring">                Screenlet (within the screenlet's active session)."""</tt> </tt>
 
255
<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="screenlets.session" class="py-name" href="#" onclick="return doclink('link-35', 'session', 'link-22');">session</a></tt><tt class="py-op">.</tt><tt class="py-name">instances</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
256
<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="screenlets.session" class="py-name" href="#" onclick="return doclink('link-36', 'session', 'link-22');">session</a></tt><tt class="py-op">.</tt><tt class="py-name">instances</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="screenlets.Screenlet.id" class="py-name" href="#" onclick="return doclink('link-37', 'id', 'link-14');">id</a></tt> </tt>
 
257
<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
 
258
</div><a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">         </tt>
 
259
<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">action</tt><tt class="py-op">(</tt><tt id="link-38" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-38', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt> </tt>
 
260
<a name="ScreenletService.list_instances"></a><div id="ScreenletService.list_instances-def"><a name="L131"></a><tt class="py-lineno">131</tt> <a class="py-toggle" href="#" id="ScreenletService.list_instances-toggle" onclick="return toggle('ScreenletService.list_instances');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#list_instances">list_instances</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
261
</div><div id="ScreenletService.list_instances-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.list_instances-expanded"><a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">                <tt class="py-docstring">"""Return a list with IDs of all existing instances of the assigned </tt> </tt>
 
262
<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line"><tt class="py-docstring">                Screenlet (within the screenlet's active session)."""</tt> </tt>
 
263
<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">                <tt class="py-name">lst</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 
264
<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">sl</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="screenlets.session" class="py-name" href="#" onclick="return doclink('link-39', 'session', 'link-22');">session</a></tt><tt class="py-op">.</tt><tt class="py-name">instances</tt><tt class="py-op">:</tt> </tt>
 
265
<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">                        <tt class="py-name">lst</tt><tt class="py-op">.</tt><tt class="py-name">append</tt> <tt class="py-op">(</tt><tt class="py-name">sl</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="screenlets.Screenlet.id" class="py-name" href="#" onclick="return doclink('link-40', 'id', 'link-14');">id</a></tt><tt class="py-op">)</tt> </tt>
 
266
<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">lst</tt> </tt>
267
267
</div><a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">         </tt>
268
 
<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">action</tt><tt class="py-op">(</tt><tt id="link-44" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-44', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt> </tt>
269
 
<a name="ScreenletService.set"></a><div id="ScreenletService.set-def"><a name="L140"></a><tt class="py-lineno">140</tt> <a class="py-toggle" href="#" id="ScreenletService.set-toggle" onclick="return toggle('ScreenletService.set');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#set">set</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
270
 
</div><div id="ScreenletService.set-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.set-expanded"><a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">                <tt class="py-docstring">"""Ask the assigned Screenlet to set the given attribute to 'value'. The </tt> </tt>
271
 
<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line"><tt class="py-docstring">                instance with the given id will be accessed. """</tt> </tt>
272
 
<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">                <tt class="py-name">sl</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="screenlets.session" class="py-name" href="#" onclick="return doclink('link-45', 'session', 'link-22');">session</a></tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="screenlets.session.ScreenletSession.get_instance_by_id" class="py-name" href="#" onclick="return doclink('link-46', 'get_instance_by_id', 'link-30');">get_instance_by_id</a></tt><tt class="py-op">(</tt><tt id="link-47" class="py-name"><a title="screenlets.Screenlet.id" class="py-name" href="#" onclick="return doclink('link-47', 'id', 'link-14');">id</a></tt><tt class="py-op">)</tt> </tt>
273
 
<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">sl</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
274
 
<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">                        <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">'Trying to access invalid instance "%s".'</tt> <tt class="py-op">%</tt> <tt id="link-48" class="py-name"><a title="screenlets.Screenlet.id" class="py-name" href="#" onclick="return doclink('link-48', 'id', 'link-14');">id</a></tt><tt class="py-op">)</tt> </tt>
275
 
<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">sl</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="screenlets.options.base.EditableOptions.get_option_by_name" class="py-name" href="#" onclick="return doclink('link-49', 'get_option_by_name', 'link-32');">get_option_by_name</a></tt><tt class="py-op">(</tt><tt class="py-name">attrib</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
276
 
<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">                        <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">'Trying to access invalid option "%s".'</tt> <tt class="py-op">%</tt> <tt class="py-name">attrib</tt><tt class="py-op">)</tt> </tt>
277
 
<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
278
 
<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">                        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
279
 
<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">                                <tt class="py-name">o</tt> <tt class="py-op">=</tt> <tt class="py-name">sl</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="screenlets.options.base.EditableOptions.get_option_by_name" class="py-name" href="#" onclick="return doclink('link-50', 'get_option_by_name', 'link-32');">get_option_by_name</a></tt><tt class="py-op">(</tt><tt class="py-name">attrib</tt><tt class="py-op">)</tt> </tt>
280
 
<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">                                <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">o</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="screenlets.options.account_option.AccountOption.protected
 
268
<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">action</tt><tt class="py-op">(</tt><tt id="link-41" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-41', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt> </tt>
 
269
<a name="ScreenletService.quit"></a><div id="ScreenletService.quit-def"><a name="L140"></a><tt class="py-lineno">140</tt> <a class="py-toggle" href="#" id="ScreenletService.quit-toggle" onclick="return toggle('ScreenletService.quit');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#quit">quit</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
270
</div><div id="ScreenletService.quit-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.quit-expanded"><a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">                <tt class="py-docstring">"""Quit all instances of the screenlet. Similar to selecting Quit</tt> </tt>
 
271
<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line"><tt class="py-docstring">                from the menu."""</tt> </tt>
 
272
<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt><tt class="py-op">.</tt><tt id="link-42" class="py-name" targets="Method screenlets.Screenlet.destroy()=screenlets.Screenlet-class.html#destroy"><a title="screenlets.Screenlet.destroy" class="py-name" href="#" onclick="return doclink('link-42', 'destroy', 'link-42');">destroy</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name" targets="Variable screenlets.Screenlet.window=screenlets.Screenlet-class.html#window"><a title="screenlets.Screenlet.window" class="py-name" href="#" onclick="return doclink('link-43', 'window', 'link-43');">window</a></tt><tt class="py-op">)</tt> </tt>
 
273
</div><a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">         </tt>
 
274
<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">action</tt><tt class="py-op">(</tt><tt id="link-44" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-44', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt> </tt>
 
275
<a name="ScreenletService.set"></a><div id="ScreenletService.set-def"><a name="L146"></a><tt class="py-lineno">146</tt> <a class="py-toggle" href="#" id="ScreenletService.set-toggle" onclick="return toggle('ScreenletService.set');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#set">set</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
276
</div><div id="ScreenletService.set-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.set-expanded"><a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">                <tt class="py-docstring">"""Ask the assigned Screenlet to set the given attribute to 'value'. The </tt> </tt>
 
277
<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"><tt class="py-docstring">                instance with the given id will be accessed. """</tt> </tt>
 
278
<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">                <tt class="py-name">sl</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">screenlet</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="screenlets.session" class="py-name" href="#" onclick="return doclink('link-45', 'session', 'link-22');">session</a></tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="screenlets.session.ScreenletSession.get_instance_by_id" class="py-name" href="#" onclick="return doclink('link-46', 'get_instance_by_id', 'link-30');">get_instance_by_id</a></tt><tt class="py-op">(</tt><tt id="link-47" class="py-name"><a title="screenlets.Screenlet.id" class="py-name" href="#" onclick="return doclink('link-47', 'id', 'link-14');">id</a></tt><tt class="py-op">)</tt> </tt>
 
279
<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">sl</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
 
280
<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">                        <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">'Trying to access invalid instance "%s".'</tt> <tt class="py-op">%</tt> <tt id="link-48" class="py-name"><a title="screenlets.Screenlet.id" class="py-name" href="#" onclick="return doclink('link-48', 'id', 'link-14');">id</a></tt><tt class="py-op">)</tt> </tt>
 
281
<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">sl</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="screenlets.options.base.EditableOptions.get_option_by_name" class="py-name" href="#" onclick="return doclink('link-49', 'get_option_by_name', 'link-32');">get_option_by_name</a></tt><tt class="py-op">(</tt><tt class="py-name">attrib</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
 
282
<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">                        <tt class="py-keyword">raise</tt> <tt class="py-name">Exception</tt><tt class="py-op">(</tt><tt class="py-string">'Trying to access invalid option "%s".'</tt> <tt class="py-op">%</tt> <tt class="py-name">attrib</tt><tt class="py-op">)</tt> </tt>
 
283
<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
284
<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">                        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 
285
<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">                                <tt class="py-name">o</tt> <tt class="py-op">=</tt> <tt class="py-name">sl</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="screenlets.options.base.EditableOptions.get_option_by_name" class="py-name" href="#" onclick="return doclink('link-50', 'get_option_by_name', 'link-32');">get_option_by_name</a></tt><tt class="py-op">(</tt><tt class="py-name">attrib</tt><tt class="py-op">)</tt> </tt>
 
286
<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">                                <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">o</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="screenlets.options.account_option.AccountOption.protected
281
287
screenlets.options.base.Option.protected" class="py-name" href="#" onclick="return doclink('link-51', 'protected', 'link-33');">protected</a></tt><tt class="py-op">:</tt> </tt>
282
 
<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line">                                        <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">sl</tt><tt class="py-op">,</tt> <tt class="py-name">attrib</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
283
 
<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">                                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
284
 
<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">                                        <tt class="py-keyword">print</tt> <tt class="py-string">"Cannot get/set protected options through service."</tt> </tt>
285
 
<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">                        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> <tt class="py-keyword">pass</tt> </tt>
286
 
</div><a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">         </tt>
287
 
<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">signal</tt><tt class="py-op">(</tt><tt id="link-52" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-52', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt> </tt>
288
 
<a name="ScreenletService.instance_added"></a><div id="ScreenletService.instance_added-def"><a name="L158"></a><tt class="py-lineno">158</tt> <a class="py-toggle" href="#" id="ScreenletService.instance_added-toggle" onclick="return toggle('ScreenletService.instance_added');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#instance_added">instance_added</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
289
 
</div><div id="ScreenletService.instance_added-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.instance_added-expanded"><a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">                <tt class="py-docstring">"""This signal gets emitted whenever a new instance of the assigned </tt> </tt>
290
 
<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line"><tt class="py-docstring">                Screenlet gets added."""</tt> </tt>
291
 
</div><a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">         </tt>
292
 
<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">signal</tt><tt class="py-op">(</tt><tt id="link-53" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-53', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt> </tt>
293
 
<a name="ScreenletService.instance_removed"></a><div id="ScreenletService.instance_removed-def"><a name="L163"></a><tt class="py-lineno">163</tt> <a class="py-toggle" href="#" id="ScreenletService.instance_removed-toggle" onclick="return toggle('ScreenletService.instance_removed');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#instance_removed">instance_removed</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
294
 
</div><div id="ScreenletService.instance_removed-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.instance_removed-expanded"><a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">                <tt class="py-docstring">"""This signal gets emitted whenever an instance of the assigned</tt> </tt>
295
 
<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line"><tt class="py-docstring">                Screenlet gets removed."""</tt> </tt>
296
 
</div></div><a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">         </tt>
297
 
<a name="get_service_by_name"></a><div id="get_service_by_name-def"><a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line"> </tt>
298
 
<a name="L168"></a><tt class="py-lineno">168</tt> <a class="py-toggle" href="#" id="get_service_by_name-toggle" onclick="return toggle('get_service_by_name');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services-module.html#get_service_by_name">get_service_by_name</a> <tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">interface</tt><tt class="py-op">=</tt><tt id="link-54" class="py-name" targets="Class screenlets.services.ScreenletService=screenlets.services.ScreenletService-class.html"><a title="screenlets.services.ScreenletService" class="py-name" href="#" onclick="return doclink('link-54', 'ScreenletService', 'link-54');">ScreenletService</a></tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-55', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
299
 
</div><div id="get_service_by_name-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="get_service_by_name-expanded"><a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">        <tt class="py-docstring">"""This currently returns a dbus.Interface-object for remote-accessing the </tt> </tt>
300
 
<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"><tt class="py-docstring">        ScreenletService through dbus, but that may change in the future to some </tt> </tt>
301
 
<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line"><tt class="py-docstring">        more abstracted system with support for multiple IPC-backends."""</tt> </tt>
302
 
<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">        <tt class="py-name">bus</tt> <tt class="py-op">=</tt> <tt class="py-name">dbus</tt><tt class="py-op">.</tt><tt class="py-name">SessionBus</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
303
 
<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">bus</tt><tt class="py-op">:</tt> </tt>
304
 
<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
305
 
<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">                        <tt id="link-56" class="py-name" targets="Variable screenlets.ScreenletTheme.path=screenlets.ScreenletTheme-class.html#path,Variable screenlets.backend.CachingBackend.path=screenlets.backend.CachingBackend-class.html#path"><a title="screenlets.ScreenletTheme.path
 
288
<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">                                        <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">sl</tt><tt class="py-op">,</tt> <tt class="py-name">attrib</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
 
289
<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">                                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 
290
<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">                                        <tt class="py-keyword">print</tt> <tt class="py-string">"Cannot get/set protected options through service."</tt> </tt>
 
291
<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">                        <tt class="py-keyword">except</tt><tt class="py-op">:</tt> <tt class="py-keyword">pass</tt> </tt>
 
292
</div><a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">         </tt>
 
293
<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">signal</tt><tt class="py-op">(</tt><tt id="link-52" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-52', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt> </tt>
 
294
<a name="ScreenletService.instance_added"></a><div id="ScreenletService.instance_added-def"><a name="L164"></a><tt class="py-lineno">164</tt> <a class="py-toggle" href="#" id="ScreenletService.instance_added-toggle" onclick="return toggle('ScreenletService.instance_added');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#instance_added">instance_added</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
295
</div><div id="ScreenletService.instance_added-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.instance_added-expanded"><a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">                <tt class="py-docstring">"""This signal gets emitted whenever a new instance of the assigned </tt> </tt>
 
296
<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line"><tt class="py-docstring">                Screenlet gets added."""</tt> </tt>
 
297
</div><a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">         </tt>
 
298
<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">signal</tt><tt class="py-op">(</tt><tt id="link-53" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-53', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt> </tt>
 
299
<a name="ScreenletService.instance_removed"></a><div id="ScreenletService.instance_removed-def"><a name="L169"></a><tt class="py-lineno">169</tt> <a class="py-toggle" href="#" id="ScreenletService.instance_removed-toggle" onclick="return toggle('ScreenletService.instance_removed');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services.ScreenletService-class.html#instance_removed">instance_removed</a> <tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
300
</div><div id="ScreenletService.instance_removed-collapsed" style="display:none;" pad="+++" indent="++++++++++++"></div><div id="ScreenletService.instance_removed-expanded"><a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line">                <tt class="py-docstring">"""This signal gets emitted whenever an instance of the assigned</tt> </tt>
 
301
<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line"><tt class="py-docstring">                Screenlet gets removed."""</tt> </tt>
 
302
</div></div><a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">         </tt>
 
303
<a name="get_service_by_name"></a><div id="get_service_by_name-def"><a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"> </tt>
 
304
<a name="L174"></a><tt class="py-lineno">174</tt> <a class="py-toggle" href="#" id="get_service_by_name-toggle" onclick="return toggle('get_service_by_name');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services-module.html#get_service_by_name">get_service_by_name</a> <tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">,</tt> <tt class="py-param">interface</tt><tt class="py-op">=</tt><tt id="link-54" class="py-name" targets="Class screenlets.services.ScreenletService=screenlets.services.ScreenletService-class.html"><a title="screenlets.services.ScreenletService" class="py-name" href="#" onclick="return doclink('link-54', 'ScreenletService', 'link-54');">ScreenletService</a></tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="screenlets.services.ScreenletService.IFACE" class="py-name" href="#" onclick="return doclink('link-55', 'IFACE', 'link-5');">IFACE</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
305
</div><div id="get_service_by_name-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="get_service_by_name-expanded"><a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">        <tt class="py-docstring">"""This currently returns a dbus.Interface-object for remote-accessing the </tt> </tt>
 
306
<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line"><tt class="py-docstring">        ScreenletService through dbus, but that may change in the future to some </tt> </tt>
 
307
<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line"><tt class="py-docstring">        more abstracted system with support for multiple IPC-backends."""</tt> </tt>
 
308
<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">        <tt class="py-name">bus</tt> <tt class="py-op">=</tt> <tt class="py-name">dbus</tt><tt class="py-op">.</tt><tt class="py-name">SessionBus</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
309
<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">bus</tt><tt class="py-op">:</tt> </tt>
 
310
<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 
311
<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">                        <tt id="link-56" class="py-name" targets="Variable screenlets.ScreenletTheme.path=screenlets.ScreenletTheme-class.html#path,Variable screenlets.backend.CachingBackend.path=screenlets.backend.CachingBackend-class.html#path"><a title="screenlets.ScreenletTheme.path
306
312
screenlets.backend.CachingBackend.path" class="py-name" href="#" onclick="return doclink('link-56', 'path', 'link-56');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-57" class="py-name"><a title="screenlets.services.ScreenletService" class="py-name" href="#" onclick="return doclink('link-57', 'ScreenletService', 'link-54');">ScreenletService</a></tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="screenlets.Plugins.PATH
307
313
screenlets.services.ScreenletService.PATH" class="py-name" href="#" onclick="return doclink('link-58', 'PATH', 'link-4');">PATH</a></tt> <tt class="py-op">+</tt> <tt id="link-59" class="py-name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-59', 'name', 'link-6');">name</a></tt> </tt>
308
 
<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">                        <tt class="py-name">proxy_obj</tt> <tt class="py-op">=</tt> <tt class="py-name">bus</tt><tt class="py-op">.</tt><tt class="py-name">get_object</tt><tt class="py-op">(</tt><tt id="link-60" class="py-name"><a title="screenlets.services.ScreenletService" class="py-name" href="#" onclick="return doclink('link-60', 'ScreenletService', 'link-54');">ScreenletService</a></tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="screenlets.services.ScreenletService.BUS" class="py-name" href="#" onclick="return doclink('link-61', 'BUS', 'link-3');">BUS</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'.'</tt> <tt class="py-op">+</tt> <tt id="link-62" class="py-name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-62', 'name', 'link-6');">name</a></tt><tt class="py-op">,</tt> <tt id="link-63" class="py-name"><a title="screenlets.ScreenletTheme.path
 
314
<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">                        <tt class="py-name">proxy_obj</tt> <tt class="py-op">=</tt> <tt class="py-name">bus</tt><tt class="py-op">.</tt><tt class="py-name">get_object</tt><tt class="py-op">(</tt><tt id="link-60" class="py-name"><a title="screenlets.services.ScreenletService" class="py-name" href="#" onclick="return doclink('link-60', 'ScreenletService', 'link-54');">ScreenletService</a></tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="screenlets.services.ScreenletService.BUS" class="py-name" href="#" onclick="return doclink('link-61', 'BUS', 'link-3');">BUS</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'.'</tt> <tt class="py-op">+</tt> <tt id="link-62" class="py-name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-62', 'name', 'link-6');">name</a></tt><tt class="py-op">,</tt> <tt id="link-63" class="py-name"><a title="screenlets.ScreenletTheme.path
309
315
screenlets.backend.CachingBackend.path" class="py-name" href="#" onclick="return doclink('link-63', 'path', 'link-56');">path</a></tt><tt class="py-op">)</tt> </tt>
310
 
<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">proxy_obj</tt><tt class="py-op">:</tt> </tt>
311
 
<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">                                <tt class="py-comment">#return dbus.Interface(proxy_obj, ScreenletService.IFACE)</tt> </tt>
312
 
<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">                                <tt class="py-keyword">return</tt> <tt class="py-name">dbus</tt><tt class="py-op">.</tt><tt class="py-name">Interface</tt><tt class="py-op">(</tt><tt class="py-name">proxy_obj</tt><tt class="py-op">,</tt> <tt class="py-name">interface</tt><tt class="py-op">)</tt> </tt>
313
 
<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">ex</tt><tt class="py-op">:</tt> </tt>
314
 
<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">                        <tt class="py-keyword">print</tt> <tt class="py-string">"Error in screenlets.services.get_service_by_name: %s"</tt> <tt class="py-op">%</tt> <tt id="link-64" class="py-name"><a title="screenlets.plugins.Convert.Converter.str" class="py-name" href="#" onclick="return doclink('link-64', 'str', 'link-19');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">ex</tt><tt class="py-op">)</tt> </tt>
315
 
<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
316
 
</div><a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line"> </tt>
317
 
<a name="service_is_running"></a><div id="service_is_running-def"><a name="L184"></a><tt class="py-lineno">184</tt> <a class="py-toggle" href="#" id="service_is_running-toggle" onclick="return toggle('service_is_running');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services-module.html#service_is_running">service_is_running</a> <tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
318
 
</div><div id="service_is_running-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="service_is_running-expanded"><a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">        <tt class="py-docstring">"""Checks if the given service is available (ie. the given Screenlet has at</tt> </tt>
319
 
<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line"><tt class="py-docstring">        least one running instance) and returns True or False."""</tt> </tt>
320
 
<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">        <tt class="py-name">bus</tt> <tt class="py-op">=</tt> <tt class="py-name">dbus</tt><tt class="py-op">.</tt><tt class="py-name">SessionBus</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
321
 
<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">bus</tt><tt class="py-op">:</tt> </tt>
322
 
<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
323
 
<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">                        <tt id="link-65" class="py-name"><a title="screenlets.ScreenletTheme.path
 
316
<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">proxy_obj</tt><tt class="py-op">:</tt> </tt>
 
317
<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">                                <tt class="py-comment">#return dbus.Interface(proxy_obj, ScreenletService.IFACE)</tt> </tt>
 
318
<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">                                <tt class="py-keyword">return</tt> <tt class="py-name">dbus</tt><tt class="py-op">.</tt><tt class="py-name">Interface</tt><tt class="py-op">(</tt><tt class="py-name">proxy_obj</tt><tt class="py-op">,</tt> <tt class="py-name">interface</tt><tt class="py-op">)</tt> </tt>
 
319
<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">,</tt> <tt class="py-name">ex</tt><tt class="py-op">:</tt> </tt>
 
320
<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">                        <tt class="py-keyword">print</tt> <tt class="py-string">"Error in screenlets.services.get_service_by_name: %s"</tt> <tt class="py-op">%</tt> <tt id="link-64" class="py-name"><a title="screenlets.plugins.Convert.Converter.str" class="py-name" href="#" onclick="return doclink('link-64', 'str', 'link-19');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">ex</tt><tt class="py-op">)</tt> </tt>
 
321
<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
 
322
</div><a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line"> </tt>
 
323
<a name="service_is_running"></a><div id="service_is_running-def"><a name="L190"></a><tt class="py-lineno">190</tt> <a class="py-toggle" href="#" id="service_is_running-toggle" onclick="return toggle('service_is_running');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="screenlets.services-module.html#service_is_running">service_is_running</a> <tt class="py-op">(</tt><tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 
324
</div><div id="service_is_running-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="service_is_running-expanded"><a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">        <tt class="py-docstring">"""Checks if the given service is available (ie. the given Screenlet has at</tt> </tt>
 
325
<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line"><tt class="py-docstring">        least one running instance) and returns True or False."""</tt> </tt>
 
326
<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">        <tt class="py-name">bus</tt> <tt class="py-op">=</tt> <tt class="py-name">dbus</tt><tt class="py-op">.</tt><tt class="py-name">SessionBus</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 
327
<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">bus</tt><tt class="py-op">:</tt> </tt>
 
328
<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 
329
<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">                        <tt id="link-65" class="py-name"><a title="screenlets.ScreenletTheme.path
324
330
screenlets.backend.CachingBackend.path" class="py-name" href="#" onclick="return doclink('link-65', 'path', 'link-56');">path</a></tt> <tt class="py-op">=</tt> <tt id="link-66" class="py-name"><a title="screenlets.services.ScreenletService" class="py-name" href="#" onclick="return doclink('link-66', 'ScreenletService', 'link-54');">ScreenletService</a></tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="screenlets.Plugins.PATH
325
331
screenlets.services.ScreenletService.PATH" class="py-name" href="#" onclick="return doclink('link-67', 'PATH', 'link-4');">PATH</a></tt> <tt class="py-op">+</tt> <tt id="link-68" class="py-name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-68', 'name', 'link-6');">name</a></tt> </tt>
326
 
<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">bus</tt><tt class="py-op">.</tt><tt class="py-name">get_object</tt><tt class="py-op">(</tt><tt id="link-69" class="py-name"><a title="screenlets.services.ScreenletService" class="py-name" href="#" onclick="return doclink('link-69', 'ScreenletService', 'link-54');">ScreenletService</a></tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="screenlets.services.ScreenletService.BUS" class="py-name" href="#" onclick="return doclink('link-70', 'BUS', 'link-3');">BUS</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'.'</tt> <tt class="py-op">+</tt> <tt id="link-71" class="py-name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-71', 'name', 'link-6');">name</a></tt><tt class="py-op">,</tt> <tt id="link-72" class="py-name"><a title="screenlets.ScreenletTheme.path
 
332
<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">bus</tt><tt class="py-op">.</tt><tt class="py-name">get_object</tt><tt class="py-op">(</tt><tt id="link-69" class="py-name"><a title="screenlets.services.ScreenletService" class="py-name" href="#" onclick="return doclink('link-69', 'ScreenletService', 'link-54');">ScreenletService</a></tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="screenlets.services.ScreenletService.BUS" class="py-name" href="#" onclick="return doclink('link-70', 'BUS', 'link-3');">BUS</a></tt> <tt class="py-op">+</tt> <tt class="py-string">'.'</tt> <tt class="py-op">+</tt> <tt id="link-71" class="py-name"><a title="screenlets.plugins.keyring.KeyRing.Key.name" class="py-name" href="#" onclick="return doclink('link-71', 'name', 'link-6');">name</a></tt><tt class="py-op">,</tt> <tt id="link-72" class="py-name"><a title="screenlets.ScreenletTheme.path
327
333
screenlets.backend.CachingBackend.path" class="py-name" href="#" onclick="return doclink('link-72', 'path', 'link-56');">path</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
328
 
<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">                                <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
329
 
<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
330
 
<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">                        <tt class="py-keyword">pass</tt> </tt>
331
 
<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
332
 
</div><a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line"> </tt>
333
 
<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line"><tt class="py-comment">#print is_service_running('Flower')</tt> </tt>
334
 
<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 
334
<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line">                                <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
 
335
<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt><tt class="py-op">:</tt> </tt>
 
336
<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line">                        <tt class="py-keyword">pass</tt> </tt>
 
337
<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
 
338
</div><a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line"> </tt>
 
339
<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line"><tt class="py-comment">#print is_service_running('Flower')</tt> </tt>
 
340
<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line"> </tt><script type="text/javascript">
335
341
<!--
336
342
expandto(location.href);
337
343
// -->
362
368
      <th class="navbar" align="right" width="100%">
363
369
        <table border="0" cellpadding="0" cellspacing="0">
364
370
          <tr><th class="navbar" align="center"
365
 
            >Screenlets 0.1.4</th>
 
371
            >Screenlets 0.1.6</th>
366
372
          </tr></table></th>
367
373
  </tr>
368
374
</table>
369
375
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
370
376
  <tr>
371
377
    <td align="left" class="footer">
372
 
    Generated by Epydoc 3.0.1 on Mon Jun  6 10:56:37 2011
 
378
    Generated by Epydoc 3.0.1 on Wed Jan  4 16:58:25 2012
373
379
    </td>
374
380
    <td align="right" class="footer">
375
381
      <a target="mainFrame" href="http://epydoc.sourceforge.net"