*.GtkFrame.GtkEventBox.* style for discon

banner (#1731)
This commit is contained in:
Dimitur Kirov 2006-03-25 01:40:49 +00:00
parent 8087c2a14e
commit 495af26c9c
1 changed files with 38 additions and 6 deletions

View File

@ -441,6 +441,8 @@ _('Without a connection, you can not browse available services')).get_response()
self.banner = self.xml.get_widget('banner_agent_label')
self.banner_icon = self.xml.get_widget('banner_agent_icon')
self.banner_eventbox = self.xml.get_widget('banner_agent_eventbox')
self.style_event_id = 0
self.banner.ensure_style()
self.paint_banner()
self.filter_hbox = self.xml.get_widget('filter_hbox')
self.filter_hbox.set_no_show_all(True)
@ -534,20 +536,50 @@ _('Without a connection, you can not browse available services')).get_response()
theme = gajim.config.get('roster_theme')
bgcolor = gajim.config.get_per('themes', theme, 'bannerbgcolor')
textcolor = gajim.config.get_per('themes', theme, 'bannertextcolor')
self.disconnect_style_event()
if bgcolor:
color = gtk.gdk.color_parse(bgcolor)
self.banner_eventbox.modify_bg(gtk.STATE_NORMAL, color)
default_bg = False
else:
color = None
self.banner_eventbox.modify_bg(gtk.STATE_NORMAL, color)
default_bg = True
if textcolor:
color = gtk.gdk.color_parse(textcolor)
self.banner.modify_fg(gtk.STATE_NORMAL, color)
default_fg = False
else:
color = None
self.banner.modify_fg(gtk.STATE_NORMAL, color)
default_fg = True
if default_fg or default_bg:
self._on_style_set_event(self.banner, None, default_fg, default_bg)
if self.browser:
self.browser.update_theme()
def disconnect_style_event(self):
if self.style_event_id:
self.banner.disconnect(self.style_event_id)
self.style_event_id = 0
def connect_style_event(self, set_fg = False, set_bg = False):
self.disconnect_style_event()
self.style_event_id = self.banner.connect('style-set',
self._on_style_set_event, set_fg, set_bg)
def _on_style_set_event(self, widget, style, *opts):
''' set style of widget from style class *.Frame.Eventbox
opts[0] == True -> set fg color
opts[1] == True -> set bg color '''
self.disconnect_style_event()
if opts[1]:
bg_color = widget.style.bg[gtk.STATE_SELECTED]
self.banner_eventbox.modify_bg(gtk.STATE_NORMAL, bg_color)
if opts[0]:
fg_color = widget.style.fg[gtk.STATE_SELECTED]
self.banner.modify_fg(gtk.STATE_NORMAL, fg_color)
self.banner.ensure_style()
self.connect_style_event(opts[0], opts[1])
def destroy(self, chain = False):
'''Close the browser. This can optionally close it's children and
propagate to the parent. This should happen on actions like register,