*.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 = self.xml.get_widget('banner_agent_label')
self.banner_icon = self.xml.get_widget('banner_agent_icon') self.banner_icon = self.xml.get_widget('banner_agent_icon')
self.banner_eventbox = self.xml.get_widget('banner_agent_eventbox') self.banner_eventbox = self.xml.get_widget('banner_agent_eventbox')
self.style_event_id = 0
self.banner.ensure_style()
self.paint_banner() self.paint_banner()
self.filter_hbox = self.xml.get_widget('filter_hbox') self.filter_hbox = self.xml.get_widget('filter_hbox')
self.filter_hbox.set_no_show_all(True) 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') theme = gajim.config.get('roster_theme')
bgcolor = gajim.config.get_per('themes', theme, 'bannerbgcolor') bgcolor = gajim.config.get_per('themes', theme, 'bannerbgcolor')
textcolor = gajim.config.get_per('themes', theme, 'bannertextcolor') textcolor = gajim.config.get_per('themes', theme, 'bannertextcolor')
self.disconnect_style_event()
if bgcolor: if bgcolor:
color = gtk.gdk.color_parse(bgcolor) color = gtk.gdk.color_parse(bgcolor)
else:
color = None
self.banner_eventbox.modify_bg(gtk.STATE_NORMAL, color) self.banner_eventbox.modify_bg(gtk.STATE_NORMAL, color)
default_bg = False
else:
default_bg = True
if textcolor: if textcolor:
color = gtk.gdk.color_parse(textcolor) color = gtk.gdk.color_parse(textcolor)
else:
color = None
self.banner.modify_fg(gtk.STATE_NORMAL, color) self.banner.modify_fg(gtk.STATE_NORMAL, color)
default_fg = False
else:
default_fg = True
if default_fg or default_bg:
self._on_style_set_event(self.banner, None, default_fg, default_bg)
if self.browser: if self.browser:
self.browser.update_theme() 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): def destroy(self, chain = False):
'''Close the browser. This can optionally close it's children and '''Close the browser. This can optionally close it's children and
propagate to the parent. This should happen on actions like register, propagate to the parent. This should happen on actions like register,