trayicon module is not necessary

new preference option : icon in systray (changement is tacken into account at next start)
This commit is contained in:
Yann Leboulanger 2004-06-21 20:22:10 +00:00
parent 1db49881c6
commit 9e8bb03f25
3 changed files with 167 additions and 68 deletions

View File

@ -226,6 +226,12 @@ class preference_Window:
self.plugin.sleeper = common.sleepy.Sleepy(\
self.plugin.config['autoawaytime']*60, \
self.plugin.config['autoxatime']*60)
#trayicon
trayicon = self.chk_trayicon.get_active()
if trayicon:
self.plugin.config['trayicon'] = 1
else:
self.plugin.config['trayicon'] = 0
self.plugin.send('CONFIG', None, ('GtkGui', self.plugin.config))
self.plugin.roster.draw_roster()
@ -260,6 +266,7 @@ class preference_Window:
self.spin_autoawaytime = self.xml.get_widget('spin_autoawaytime')
self.chk_autoxa = self.xml.get_widget('chk_autoxa')
self.spin_autoxatime = self.xml.get_widget('spin_autoxatime')
self.chk_trayicon = self.xml.get_widget('chk_trayicon')
self.notebook = self.xml.get_widget('preferences_notebook')
button = self.xml.get_widget('lookfeel_button')
@ -323,6 +330,10 @@ class preference_Window:
st = self.plugin.config['autoxatime']
self.spin_autoxatime.set_value(st)
#trayicon
st = self.plugin.config['trayicon']
self.chk_trayicon.set_active(st)
self.xml.signal_connect('gtk_widget_destroy', self.delete_event)
self.xml.signal_connect('on_but_col_clicked', \
self.on_color_button_clicked)

View File

@ -3273,72 +3273,6 @@ on the server.</property>
<widget class="GtkFixed" id="fixed3">
<property name="visible">True</property>
<child>
<widget class="GtkFrame" id="frame7">
<property name="width_request">150</property>
<property name="height_request">70</property>
<property name="visible">True</property>
<property name="label_xalign">0</property>
<property name="label_yalign">0.5</property>
<property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
<child>
<widget class="GtkCombo" id="combo_iconstyle">
<property name="visible">True</property>
<property name="value_in_list">True</property>
<property name="allow_empty">False</property>
<property name="case_sensitive">False</property>
<property name="enable_arrow_keys">True</property>
<property name="enable_arrows_always">False</property>
<child internal-child="entry">
<widget class="GtkEntry" id="entry2">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char" translatable="yes">*</property>
<property name="activates_default">False</property>
</widget>
</child>
<child internal-child="list">
<widget class="GtkList" id="list2">
<property name="visible">True</property>
<property name="selection_mode">GTK_SELECTION_BROWSE</property>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkLabel" id="label69">
<property name="visible">True</property>
<property name="label" translatable="yes">Icon Style</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="type">label_item</property>
</packing>
</child>
</widget>
<packing>
<property name="x">210</property>
<property name="y">0</property>
</packing>
</child>
<child>
<widget class="GtkFrame" id="frame8">
<property name="width_request">200</property>
@ -3536,6 +3470,137 @@ on the server.</property>
<property name="y">0</property>
</packing>
</child>
<child>
<widget class="GtkFrame" id="frame13">
<property name="width_request">144</property>
<property name="height_request">112</property>
<property name="visible">True</property>
<property name="label_xalign">0</property>
<property name="label_yalign">0.5</property>
<property name="shadow_type">GTK_SHADOW_NONE</property>
<child>
<widget class="GtkVBox" id="vbox26">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child>
<widget class="GtkCheckButton" id="chk_trayicon">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Icon in systray</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</widget>
</child>
<child>
<widget class="GtkLabel" id="label138">
<property name="visible">True</property>
<property name="label" translatable="yes">Systray</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="type">label_item</property>
</packing>
</child>
</widget>
<packing>
<property name="x">208</property>
<property name="y">72</property>
</packing>
</child>
<child>
<widget class="GtkFrame" id="frame7">
<property name="width_request">142</property>
<property name="height_request">64</property>
<property name="visible">True</property>
<property name="label_xalign">0</property>
<property name="label_yalign">0.5</property>
<property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
<child>
<widget class="GtkCombo" id="combo_iconstyle">
<property name="visible">True</property>
<property name="value_in_list">True</property>
<property name="allow_empty">False</property>
<property name="case_sensitive">False</property>
<property name="enable_arrow_keys">True</property>
<property name="enable_arrows_always">False</property>
<child internal-child="entry">
<widget class="GtkEntry" id="entry2">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char" translatable="yes">*</property>
<property name="activates_default">False</property>
</widget>
</child>
<child internal-child="list">
<widget class="GtkList" id="list2">
<property name="visible">True</property>
<property name="selection_mode">GTK_SELECTION_BROWSE</property>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkLabel" id="label69">
<property name="visible">True</property>
<property name="label" translatable="yes">Icon Style</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="type">label_item</property>
</packing>
</child>
</widget>
<packing>
<property name="x">210</property>
<property name="y">0</property>
</packing>
</child>
</widget>
<packing>
<property name="tab_expand">False</property>

View File

@ -21,7 +21,6 @@ import pygtk
pygtk.require('2.0')
import gtk
from gtk import TRUE, FALSE
import trayicon
import gtk.glade,gobject
import os,string,time,Queue
import common.optparser,common.sleepy
@ -1232,6 +1231,18 @@ class roster_Window:
self.draw_roster()
class systrayDummy:
"""Class when we don't want icon in the systray"""
def add_jid(self, jid, account):
pass
def remove_jid(self, jid, account):
pass
def set_status(self, status):
pass
def __init__(self):
pass
class systray:
"""Class for icon in the systray"""
def set_img(self):
@ -1667,6 +1678,7 @@ class plugin:
'autoawaytime':10,\
'autoxa':1,\
'autoxatime':20,\
'trayicon':1,\
'iconstyle':'sun',\
'inmsgcolor':'#ff0000',\
'outmsgcolor': '#0000ff',\
@ -1694,7 +1706,18 @@ class plugin:
gtk.timeout_add(100, self.read_queue)
gtk.timeout_add(1000, self.read_sleepy)
self.sleeper = None
self.systray = systray(self)
if self.config['trayicon']:
try:
global trayicon
import trayicon
except:
self.config['trayicon'] = 0
self.send('CONFIG', None, ('GtkGui', self.config))
self.systray = systrayDummy()
else:
self.systray = systray(self)
else:
self.systray = systrayDummy()
gtk.main()
gtk.threads_leave()