Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/calculate.py
diff options
context:
space:
mode:
Diffstat (limited to 'calculate.py')
-rw-r--r--calculate.py54
1 files changed, 46 insertions, 8 deletions
diff --git a/calculate.py b/calculate.py
index e1523c9..c894eef 100644
--- a/calculate.py
+++ b/calculate.py
@@ -210,7 +210,13 @@ class Equation:
return self.result.get_image()
w = gtk.TextView()
- w.set_wrap_mode(gtk.WRAP_WORD)
+ w.modify_base(gtk.STATE_NORMAL, gtk.gdk.color_parse(self.color.get_fill_color()))
+ w.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse(self.color.get_stroke_color()))
+ w.set_wrap_mode(gtk.WRAP_WORD_CHAR)
+ w.set_border_window_size(gtk.TEXT_WINDOW_LEFT, 4)
+ w.set_border_window_size(gtk.TEXT_WINDOW_RIGHT, 4)
+ w.set_border_window_size(gtk.TEXT_WINDOW_TOP, 4)
+ w.set_border_window_size(gtk.TEXT_WINDOW_BOTTOM, 4)
w.connect('realize', _textview_realize_cb)
buf = w.get_buffer()
@@ -218,7 +224,13 @@ class Equation:
tagsmallnarrow = buf.create_tag(font=CalcLayout.FONT_SMALL_NARROW)
tagbig = buf.create_tag(font=CalcLayout.FONT_BIG,
justification=gtk.JUSTIFY_RIGHT)
- col = self.color.get_fill_color()
+ bright = (gtk.gdk.color_parse(self.color.get_fill_color()).red_float +
+ gtk.gdk.color_parse(self.color.get_fill_color()).green_float +
+ gtk.gdk.color_parse(self.color.get_fill_color()).blue_float) / 3.0
+ if bright < 0.5:
+ col = gtk.gdk.color_parse('white')
+ else:
+ col = gtk.gdk.color_parse('black')
tagcolor = buf.create_tag(foreground=col)
# Add label, equation and result
@@ -514,15 +526,31 @@ class Calculate(ShareableActivity):
if name in reserved:
return None
w = gtk.TextView()
+ w.modify_base(gtk.STATE_NORMAL, gtk.gdk.color_parse(self.color.get_fill_color()))
+ w.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse(self.color.get_stroke_color()))
+ w.set_wrap_mode(gtk.WRAP_WORD_CHAR)
+ w.set_border_window_size(gtk.TEXT_WINDOW_LEFT, 4)
+ w.set_border_window_size(gtk.TEXT_WINDOW_RIGHT, 4)
+ w.set_border_window_size(gtk.TEXT_WINDOW_TOP, 4)
+ w.set_border_window_size(gtk.TEXT_WINDOW_BOTTOM, 4)
w.connect('realize', _textview_realize_cb)
- w.set_left_margin(5)
- w.set_right_margin(5)
buf = w.get_buffer()
- col = self.color.get_fill_color()
+ bright = (gtk.gdk.color_parse(self.color.get_fill_color()).red_float +
+ gtk.gdk.color_parse(self.color.get_fill_color()).green_float +
+ gtk.gdk.color_parse(self.color.get_fill_color()).blue_float) / 3.0
+ if bright < 0.5:
+ col = gtk.gdk.color_parse('white')
+ else:
+ col = gtk.gdk.color_parse('black')
+
tag = buf.create_tag(font=CalcLayout.FONT_SMALL_NARROW,
foreground=col)
- text = '%s:\t%s' % (name,str(value))
+ text = '%s:' % (name)
+ buf.insert_with_tags(buf.get_end_iter(), text, tag)
+ tag = buf.create_tag(font=CalcLayout.FONT_SMALL,
+ foreground=col)
+ text = '%s' % (str(value))
buf.insert_with_tags(buf.get_end_iter(), text, tag)
return w
@@ -609,20 +637,30 @@ class Calculate(ShareableActivity):
if pos + dir <= len(self.text_entry.get_text()) and pos + dir >= 0:
if dir < 0:
self.text_entry.delete_text(pos+dir, pos)
+ pos -= 1
else:
self.text_entry.delete_text(pos, pos+dir)
+ pos += 1
else:
self.text_entry.delete_text(sel[0], sel[1])
+ self.text_entry.grab_focus()
+ self.text_entry.set_position(pos)
def move_left(self):
pos = self.text_entry.get_position()
if pos > 0:
- self.text_entry.set_position(pos - 1)
+ pos -= 1
+ self.text_entry.set_position(pos)
+ self.text_entry.grab_focus()
+ self.text_entry.set_position(pos)
def move_right(self):
pos = self.text_entry.get_position()
if pos < len(self.text_entry.get_text()):
- self.text_entry.set_position(pos + 1)
+ pos += 1
+ self.text_entry.set_position(pos)
+ self.text_entry.grab_focus()
+ self.text_entry.set_position(pos)
def label_entered(self):
if len(self.label_entry.get_text()) > 0: