Use user fill and stroke colours for main answer output, using black or white text based on fill intensity to keep text contrast.
Gary Martin
11 years ago
5 | 5 | import gtk |
6 | 6 | import pango |
7 | 7 | from sugar.activity import activity |
8 | import sugar.profile | |
8 | 9 | from sugar.graphics.roundbox import CanvasRoundBox |
9 | 10 | from sugar.graphics.combobox import ComboBox |
10 | 11 | from toolbars import * |
231 | 232 | self.last_eq.set_editable(False) |
232 | 233 | self.last_eq.set_wrap_mode(gtk.WRAP_WORD_CHAR) |
233 | 234 | self.last_eq.connect('realize', self._textview_realize_cb) |
234 | self.last_eq.set_border_width(2) | |
235 | self.last_eq.modify_bg(gtk.STATE_NORMAL, self.col_gray1) | |
235 | self.last_eq.modify_base(gtk.STATE_NORMAL, gtk.gdk.color_parse( | |
236 | sugar.profile.get_color().get_fill_color())) | |
237 | self.last_eq.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse( | |
238 | sugar.profile.get_color().get_stroke_color())) | |
239 | self.last_eq.set_border_window_size(gtk.TEXT_WINDOW_LEFT, 4) | |
240 | self.last_eq.set_border_window_size(gtk.TEXT_WINDOW_RIGHT, 4) | |
241 | self.last_eq.set_border_window_size(gtk.TEXT_WINDOW_TOP, 4) | |
242 | self.last_eq.set_border_window_size(gtk.TEXT_WINDOW_BOTTOM, 4) | |
243 | ||
244 | bright = (gtk.gdk.color_parse(sugar.profile.get_color().get_fill_color()).red_float + | |
245 | gtk.gdk.color_parse(sugar.profile.get_color().get_fill_color()).green_float + | |
246 | gtk.gdk.color_parse(sugar.profile.get_color().get_fill_color()).blue_float) / 3.0 | |
247 | if bright < 0.5: | |
248 | self.last_eq.modify_text(gtk.STATE_NORMAL, self.col_white) | |
249 | else: | |
250 | self.last_eq.modify_text(gtk.STATE_NORMAL, self.col_black) | |
251 | ||
236 | 252 | self.grid.attach(self.last_eq, 7, 11, 2, 7) |
237 | 253 | |
238 | 254 | # Right part: history |