Hi and thanks for reply, I already control the background and foreground of
the cells,
what I cannot control is the color of the expander arrows (the ones that
when clicked show/hide the children rows)
Giuseppe.


On Tue, Dec 3, 2013 at 8:47 PM, Adam Tauno Williams
<awill...@whitemice.org>wrote:

> On Sun, 2013-09-08 at 21:27 +0200, Giuseppe Penone wrote:
>
> > in my application users can control the foreground and background
> > color of the treeview
> > The problem is that the expanders arrows color does not change and so
> > it happens that is not visible.
> > Does anybody know if it is possible to override the gtk theme in use
> > about this?
>
> I do not know how to override the theme, but you can set any color you
> want using a custom cell renderer.
>
>
> ...    def render_task_id(column, cell, model, titer, store):
>         if model[titer][0].objectid:
>             cell.set_property('text', str(model[titer][0].objectid))
>         else:
>             cell.set_property('text', '-')
>         TaskList.apply_cell_effects(titer, cell, model,
> store.configuration['PRESENTATION'])
> ...
>
>     def apply_cell_effects(titer, cell, model, prefs):
>
>         def get_stroke(value):
>             if value == 0: return pango.WEIGHT_ULTRALIGHT
>             elif value == 1: return pango.WEIGHT_LIGHT
>             elif value == 2: return pango.WEIGHT_NORMAL
>             elif value == 3: return pango.WEIGHT_BOLD
>             elif value == 4: return pango.WEIGHT_ULTRABOLD
>             else: return pango.WEIGHT_HEAVY
>
>         # Line-out completed and rejected tasks
>
>         if model[titer][0]['status'] in ('25_done', '02_rejected'):
>             cell.set_property('strikethrough', True)
>         else:
>             cell.set_property('strikethrough', False)
>
>         # Background color & font [driven by priority]
>
>         if (model[titer][0]['priority'] == 5):
>             color = gtk.gdk.color_parse(prefs['VERYLOW']['COLOR'])
>             font = prefs['VERYLOW']['FONT']
>         elif (model[titer][0]['priority'] == 4):
>             color = gtk.gdk.color_parse(prefs['LOW']['COLOR'])
>             font = pango.FontDescription(prefs['LOW']['FONT'])
>         elif (model[titer][0]['priority'] == 3):
>             color = gtk.gdk.color_parse(prefs['AVERAGE']['COLOR'])
>             font = pango.FontDescription(prefs['AVERAGE']['FONT'])
>         elif (model[titer][0]['priority'] == 2):
>             color = gtk.gdk.color_parse(prefs['HIGH']['COLOR'])
>             font = pango.FontDescription(prefs['HIGH']['FONT'])
>         elif (model[titer][0]['priority'] == 1):
>             color = gtk.gdk.color_parse(prefs['VERYHIGH']['COLOR'])
>             font = pango.FontDescription(prefs['VERYHIGH']['FONT'])
>         cell.set_property('cell-background', color)
>         cell.set_property('font', font)
>
>         # Foreground Stroke & Color [driven by curreny]
>
>         if ('OVERDUE' in model[titer][0]['FLAGS']):
>             stroke = get_stroke(prefs['OVERDUE']['STROKE'])
>             color = gtk.gdk.color_parse(prefs['OVERDUE']['COLOR'])
>         elif ('UPCOMING' in model[titer][0]['FLAGS']):
>             stroke = get_stroke(prefs['UPCOMING']['STROKE'])
>             color = gtk.gdk.color_parse(prefs['UPCOMING']['COLOR'])
>         else:
>             stroke = get_stroke(prefs['CURRENT']['STROKE'])
>             color = gtk.gdk.color_parse(prefs['CURRENT']['COLOR'])
>         cell.set_property('weight-set', True)
>         cell.set_property('weight', stroke)
>         cell.set_property('foreground', color)
>
>
>
> --
> Adam Tauno Williams <mailto:awill...@whitemice.org> GPG D95ED383
> Systems Administrator, Python Developer, LPI / NCLA
>
> _______________________________________________
> pygtk mailing list   pygtk@daa.com.au
> http://www.daa.com.au/mailman/listinfo/pygtk
> Read the PyGTK FAQ: http://faq.pygtk.org/
>
_______________________________________________
pygtk mailing list   pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/

Reply via email to