changeset 7b912c602f80 in /home/hg/repos/gajim
details:http://hg.gajim.org/gajim?cmd=changeset;node=7b912c602f80 description: fix style / color things
diffstat:
src/chat_control.py | 41 +++++++++++++++++++++++------------------ src/config.py | 9 ++++++--- src/disco.py | 10 ++++++---- src/groupchat_control.py | 22 ++++++++++++++-------- src/gtkgui_helpers.py | 18 +++++++++--------- src/gui_interface.py | 32 -------------------------------- src/message_window.py | 4 ++-- src/roster_window.py | 18 ++++++++++-------- 8 files changed, 70 insertions(+), 84 deletions(-)
diffs (truncated from 333 to 300 lines):
diff -r 351cd2fa0e4e -r 7b912c602f80 src/chat_control.py --- a/src/chat_control.py Sat Jan 05 18:52:26 2013 +0400 +++ b/src/chat_control.py Sat Jan 05 15:53:14 2013 +0100 @@ -672,7 +672,7 @@ def connect_style_event(self, widget, set_fg=False, set_bg=False): self.disconnect_style_event(widget) id_ = widget.connect('style-set', self._on_style_set_event, set_fg, - set_bg) + set_bg) self.handlers[id_] = widget
def _on_style_set_event(self, widget, style, *opts): @@ -683,12 +683,13 @@ """ banner_eventbox = self.xml.get_object('banner_eventbox') self.disconnect_style_event(widget) + context = widget.get_style_context() if opts[1]: - bg_color = widget.get_style().bg[Gtk.StateType.SELECTED] - banner_eventbox.modify_bg(Gtk.StateType.NORMAL, bg_color) + bg_color = context.get_background_color(Gtk.StateFlags.SELECTED) + banner_eventbox.override_background_color(Gtk.StateType.NORMAL, bg_color) if opts[0]: - fg_color = widget.get_style().fg[Gtk.StateType.SELECTED] - widget.modify_fg(Gtk.StateType.NORMAL, fg_color) + fg_color = context.get_color(Gtk.StateFlags.SELECTED) + widget.override_color(Gtk.StateType.NORMAL, fg_color) self.connect_style_event(widget, opts[0], opts[1])
def _conv_textview_key_press_event(self, widget, event): @@ -2510,34 +2511,38 @@
# Draw tab label using chatstate theme = gajim.config.get('roster_theme') - color = None + color_s = None if not chatstate: chatstate = self.contact.chatstate if chatstate is not None: if chatstate == 'composing': - color = gajim.config.get_per('themes', theme, - 'state_composing_color') + color_s = gajim.config.get_per('themes', theme, + 'state_composing_color') elif chatstate == 'inactive': - color = gajim.config.get_per('themes', theme, - 'state_inactive_color') + color_s = gajim.config.get_per('themes', theme, + 'state_inactive_color') elif chatstate == 'gone': - color = gajim.config.get_per('themes', theme, - 'state_gone_color') + color_s = gajim.config.get_per('themes', theme, + 'state_gone_color') elif chatstate == 'paused': - color = gajim.config.get_per('themes', theme, - 'state_paused_color') - if color: + color_s = gajim.config.get_per('themes', theme, + 'state_paused_color') + + context = self.parent_win.notebook.get_style_context() + if color_s: # We set the color for when it's the current tab or not - ok, color = Gdk.Color.parse(color) + color = Gdk.RGBA() + ok = Gdk.RGBA.parse(color, color_s) if not ok: - color = self.parent_win.notebook.get_style().fg[Gtk.StateType.ACTIVE] + del color + color = context.get_color(Gtk.StateFlags.ACTIVE) # In inactive tab color to be lighter against the darker inactive # background if chatstate in ('inactive', 'gone') and\ self.parent_win.get_active_control() != self: color = self.lighten_color(color) else: # active or not chatstate, get color from gtk - color = self.parent_win.notebook.get_style().fg[Gtk.StateType.ACTIVE] + color = context.get_color(Gtk.StateFlags.ACTIVE)
name = self.contact.get_shown_name() if self.resource: diff -r 351cd2fa0e4e -r 7b912c602f80 src/config.py --- a/src/config.py Sat Jan 05 18:52:26 2013 +0400 +++ b/src/config.py Sat Jan 05 15:53:14 2013 +0100 @@ -397,8 +397,11 @@
# Default Status messages self.default_msg_tree = self.xml.get_object('default_msg_treeview') - col2 = self.default_msg_tree.get_style().bg[Gtk.StateType.ACTIVE].\ - to_string() + + #FIXME: That doesn't seem to work: + context = self.default_msg_tree.get_style_context() + col2 = context.get_background_color(Gtk.StateFlags.ACTIVE) + # (status, translated_status, message, enabled) model = Gtk.ListStore(str, str, str, bool) self.default_msg_tree.set_model(model) @@ -416,7 +419,7 @@ col.add_attribute(renderer, 'text', 2) renderer.connect('edited', self.on_default_msg_cell_edited) renderer.set_property('editable', True) - renderer.set_property('cell-background', col2) + renderer.set_property('cell-background-rgba', col2) col = Gtk.TreeViewColumn(_('Enabled')) col.set_resizable(True) self.default_msg_tree.append_column(col) diff -r 351cd2fa0e4e -r 7b912c602f80 src/disco.py --- a/src/disco.py Sat Jan 05 18:52:26 2013 +0400 +++ b/src/disco.py Sat Jan 05 15:53:14 2013 +0100 @@ -679,12 +679,14 @@ opts[1] == True -> set bg color """ self.disconnect_style_event() + context = widget.get_style_context() if opts[1]: - bg_color = widget.get_style().bg[Gtk.StateType.SELECTED] - self.banner_eventbox.modify_bg(Gtk.StateType.NORMAL, bg_color) + bg_color = context.get_background_color(Gtk.StateFlags.SELECTED) + self.banner_eventbox.override_background_color(Gtk.StateType.NORMAL, + bg_color) if opts[0]: - fg_color = widget.get_style().fg[Gtk.StateType.SELECTED] - self.banner.modify_fg(Gtk.StateType.NORMAL, fg_color) + fg_color = context.get_color(Gtk.StateFlags.SELECTED) + self.banner.override_color(Gtk.StateType.NORMAL, fg_color) self.banner.ensure_style() self.connect_style_event(opts[0], opts[1])
diff -r 351cd2fa0e4e -r 7b912c602f80 src/groupchat_control.py --- a/src/groupchat_control.py Sat Jan 05 18:52:26 2013 +0400 +++ b/src/groupchat_control.py Sat Jan 05 15:53:14 2013 +0100 @@ -73,12 +73,13 @@ """ Set style for group row, using PRELIGHT system color """ + context = treeview.get_style_context() if set_background: - bgcolor = treeview.get_style().bg[Gtk.StateType.PRELIGHT] - renderer.set_property('cell-background-gdk', bgcolor) + bgcolor = context.get_background_color(Gtk.StateFlags.PRELIGHT) + renderer.set_property('cell-background-rgba', bgcolor) else: - fgcolor = treeview.get_style().fg[Gtk.StateType.PRELIGHT] - renderer.set_property('foreground-gdk', fgcolor) + fgcolor = context.get_color(Gtk.StateFlags.PRELIGHT) + renderer.set_property('foreground-rgba', fgcolor)
def tree_cell_data_func(column, renderer, model, iter_, tv=None): # cell data func is global, because we don't want it to keep @@ -661,21 +662,26 @@ color_name = None color = None theme = gajim.config.get('roster_theme') + context = self.parent_win.notebook.get_style_context() if chatstate == 'attention' and (not has_focus or not current_tab): self.attention_flag = True color_name = gajim.config.get_per('themes', theme, - 'state_muc_directed_msg_color') + 'state_muc_directed_msg_color') elif chatstate: if chatstate == 'active' or (current_tab and has_focus): self.attention_flag = False # get active color from gtk - color = self.parent_win.notebook.get_style().fg[Gtk.StateType.ACTIVE] + color = context.get_color(Gtk.StateFlags.ACTIVE) elif chatstate == 'newmsg' and (not has_focus or not current_tab) \ and not self.attention_flag: color_name = gajim.config.get_per('themes', theme, - 'state_muc_msg_color') + 'state_muc_msg_color') if color_name: - color = Gdk.colormap_get_system().alloc_color(color_name) + color = Gdk.RGBA() + ok = Gdk.RGBA.parse(color, color_name) + if not ok: + del color + color = context.get_color(Gtk.StateFlags.ACTIVE)
if self.is_continued: # if this is a continued conversation diff -r 351cd2fa0e4e -r 7b912c602f80 src/gtkgui_helpers.py --- a/src/gtkgui_helpers.py Sat Jan 05 18:52:26 2013 +0400 +++ b/src/gtkgui_helpers.py Sat Jan 05 15:53:14 2013 +0100 @@ -523,25 +523,25 @@
def get_fade_color(treeview, selected, focused): """ - Get a gdk color that is between foreground and background in 0.3 + Get a gdk RGBA color that is between foreground and background in 0.3 0.7 respectively colors of the cell for the given treeview """ + context = treeview.get_style_context() style = treeview.get_style() if selected: if focused: # is the window focused? - state = Gtk.StateType.SELECTED + state = Gtk.StateFlags.SELECTED else: # is it not? NOTE: many gtk themes change bg on this - state = Gtk.StateType.ACTIVE + state = Gtk.StateFlags.ACTIVE else: - state = Gtk.StateType.NORMAL - bg = style.base[state] - fg = style.text[state] + state = Gtk.StateFlags.NORMAL + bg = context.get_background_color(state) + fg = context.get_color(state)
p = 0.3 # background q = 0.7 # foreground # p + q should do 1.0 - return Gdk.Color(int(bg.red*p + fg.red*q), - int(bg.green*p + fg.green*q), - int(bg.blue*p + fg.blue*q)) + return Gdk.RGBA(bg.red*p + fg.red*q, bg.green*p + fg.green*q, + bg.blue*p + fg.blue*q)
def get_scaled_pixbuf(pixbuf, kind): """ diff -r 351cd2fa0e4e -r 7b912c602f80 src/gui_interface.py --- a/src/gui_interface.py Sat Jan 05 18:52:26 2013 +0400 +++ b/src/gui_interface.py Sat Jan 05 15:53:14 2013 +0100 @@ -2299,38 +2299,6 @@ gajim.connections[acct].send_tune(artist, title, source) gajim.connections[acct].music_track_info = music_track_info
- def get_bg_fg_colors(self): - def gdkcolor_to_rgb (gdkcolor): - return [c / 65535. for c in (gdkcolor.red, gdkcolor.green, - gdkcolor.blue)] - - def format_rgb (r, g, b): - return ' '.join([str(c) for c in ('rgb', r, g, b)]) - - def format_gdkcolor (gdkcolor): - return format_rgb (*gdkcolor_to_rgb (gdkcolor)) - - # get style colors and create string for dvipng - dummy = Gtk.Invisible() - dummy.ensure_style() - style = dummy.get_style() - bg_str = format_gdkcolor(style.base[Gtk.StateType.NORMAL]) - fg_str = format_gdkcolor(style.text[Gtk.StateType.NORMAL]) - return (bg_str, fg_str) - - def get_fg_color(self, fmt='hex'): - def format_gdkcolor (c): - if fmt == 'tex': - return ' '.join([str(s) for s in - ('rgb', c.red_float, c.green_float, c.blue_float)]) - elif fmt == 'hex': - return str(c) - - # get foreground style color and create string - dummy = Gtk.Invisible() - dummy.ensure_style() - return format_gdkcolor(dummy.get_style().text[Gtk.StateType.NORMAL]) - def read_sleepy(self): """ Check idle status and change that status if needed diff -r 351cd2fa0e4e -r 7b912c602f80 src/message_window.py --- a/src/message_window.py Sat Jan 05 18:52:26 2013 +0400 +++ b/src/message_window.py Sat Jan 05 15:53:14 2013 +0100 @@ -639,8 +639,8 @@ (tab_label_str, tab_label_color) = ctrl.get_tab_label(chatstate) nick_label.set_markup(tab_label_str) if tab_label_color: - nick_label.modify_fg(Gtk.StateType.NORMAL, tab_label_color) - nick_label.modify_fg(Gtk.StateType.ACTIVE, tab_label_color) + nick_label.override_color(Gtk.StateFlags.NORMAL, tab_label_color) + nick_label.override_color(Gtk.StateFlags.ACTIVE, tab_label_color)
tab_img = ctrl.get_tab_image() if tab_img: diff -r 351cd2fa0e4e -r 7b912c602f80 src/roster_window.py --- a/src/roster_window.py Sat Jan 05 18:52:26 2013 +0400 +++ b/src/roster_window.py Sat Jan 05 15:53:14 2013 +0100 @@ -5064,11 +5064,13 @@ Set style for treeview cell, using PRELIGHT system color """ if set_background: - bgcolor = self.tree.get_style().bg[style] - renderer.set_property('cell-background-gdk', bgcolor) + context = self.tree.get_style_context() + bgcolor = context.get_background_color(style) + renderer.set_property('cell-background-rgba', bgcolor) else: - fgcolor = self.tree.get_style().fg[style] - renderer.set_property('foreground-gdk', fgcolor) + context = self.tree.get_style_context() + fgcolor = context.get_color(style) + renderer.set_property('foreground-rgba', fgcolor)
def _iconCellDataFunc(self, column, renderer, model, titer, data=None): """ @@ -5117,7 +5119,7 @@ if color: renderer.set_property('foreground', color)