Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/Speak.activity/chatbox.py
diff options
context:
space:
mode:
Diffstat (limited to 'Speak.activity/chatbox.py')
-rw-r--r--Speak.activity/chatbox.py93
1 files changed, 29 insertions, 64 deletions
diff --git a/Speak.activity/chatbox.py b/Speak.activity/chatbox.py
index 31b3120..d098ca5 100644
--- a/Speak.activity/chatbox.py
+++ b/Speak.activity/chatbox.py
@@ -35,12 +35,9 @@ URL_REGEXP = re.compile('((http|ftp)s?://)?'
'(([-a-zA-Z0-9]+[.])+[-a-zA-Z0-9]{2,}|([0-9]{1,3}[.]){3}[0-9]{1,3})'
'(:[1-9][0-9]{0,4})?(/[-a-zA-Z0-9/%~@&_+=;:,.?#]*[a-zA-Z0-9/])?')
-class ChatBox(gtk.VBox):
- __gsignals__ = {
- 'send_message': (SIGNAL_RUN_FIRST, None, [TYPE_PYOBJECT]) }
-
+class ChatBox(hippo.CanvasScrollbars):
def __init__(self):
- gtk.VBox.__init__(self, homogeneous=False)
+ hippo.CanvasScrollbars.__init__(self)
self.owner = presenceservice.get_instance().get_owner()
@@ -56,32 +53,14 @@ class ChatBox(gtk.VBox):
spacing=0,
background_color=COLOR_WHITE.get_int())
- self._scrolled = hippo.CanvasScrollbars()
- self._scrolled.set_policy(hippo.ORIENTATION_HORIZONTAL,
+ self.set_policy(hippo.ORIENTATION_HORIZONTAL,
hippo.SCROLLBAR_NEVER)
- self._scrolled.set_root(self._conversation)
+ self.set_root(self._conversation)
- vadj = self._scrolled.props.widget.get_vadjustment()
+ vadj = self.props.widget.get_vadjustment()
vadj.connect('changed', self._scroll_changed_cb)
vadj.connect('value-changed', self._scroll_value_changed_cb)
- self._entry = gtk.Entry()
- self._entry.modify_bg(gtk.STATE_INSENSITIVE,
- COLOR_WHITE.get_gdk_color())
- self._entry.modify_base(gtk.STATE_INSENSITIVE,
- COLOR_WHITE.get_gdk_color())
- #self._entry.set_sensitive(False)
- self._entry.connect('activate', self._entry_activate_cb)
-
- hbox = gtk.HBox()
- hbox.add(self._entry)
-
- canvas = hippo.Canvas()
- canvas.set_root(self._scrolled)
-
- self.pack_start(canvas)
- self.pack_start(hbox, expand=False)
-
def get_log(self):
return self._chat_log
@@ -110,36 +89,32 @@ class ChatBox(gtk.VBox):
| +----------------+ |
`--------------------------------'
"""
- if buddy:
- if type(buddy) is dict:
- # dict required for loading chat log from journal
- nick = buddy['nick']
- color = buddy['color']
- else:
- nick = buddy.props.nick
- color = buddy.props.color
- try:
- color_stroke_html, color_fill_html = color.split(',')
- except ValueError:
- color_stroke_html, color_fill_html = ('#000000', '#888888')
-
- # Select text color based on fill color:
- color_fill_rgba = Color(color_fill_html).get_rgba()
- color_fill_gray = (color_fill_rgba[0] + color_fill_rgba[1] +
- color_fill_rgba[2])/3
- color_stroke = Color(color_stroke_html).get_int()
- color_fill = Color(color_fill_html).get_int()
-
- if color_fill_gray < 0.5:
- text_color = COLOR_WHITE.get_int()
- else:
- text_color = COLOR_BLACK.get_int()
+ if not buddy:
+ buddy = self.owner
+
+ if type(buddy) is dict:
+ # dict required for loading chat log from journal
+ nick = buddy['nick']
+ color = buddy['color']
+ else:
+ nick = buddy.props.nick
+ color = buddy.props.color
+ try:
+ color_stroke_html, color_fill_html = color.split(',')
+ except ValueError:
+ color_stroke_html, color_fill_html = ('#000000', '#888888')
+
+ # Select text color based on fill color:
+ color_fill_rgba = Color(color_fill_html).get_rgba()
+ color_fill_gray = (color_fill_rgba[0] + color_fill_rgba[1] +
+ color_fill_rgba[2])/3
+ color_stroke = Color(color_stroke_html).get_int()
+ color_fill = Color(color_fill_html).get_int()
+
+ if color_fill_gray < 0.5:
+ text_color = COLOR_WHITE.get_int()
else:
- nick = '???' # XXX: should be '' but leave for debugging
- color_stroke = COLOR_BLACK.get_int()
- color_fill = COLOR_WHITE.get_int()
text_color = COLOR_BLACK.get_int()
- color = '#000000,#FFFFFF'
self._add_log(nick, color, text, status_message)
@@ -252,16 +227,6 @@ class ChatBox(gtk.VBox):
adj.set_value(adj.upper-adj.page_size)
self._scroll_value = adj.get_value()
- def _entry_activate_cb(self, entry):
- text = entry.props.text
- logging.debug('Entry: %s' % text)
- if not text: return
-
- self.add_text(self.owner, text)
- entry.props.text = ''
- self.emit('send_message', text)
-
-
def _link_activated_cb(self, link):
url = url_check_protocol(link.props.text)
self._show_via_journal(url)