diff options
author | Marco Pesenti Gritti <mpg@redhat.com> | 2006-06-15 20:51:30 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <mpg@redhat.com> | 2006-06-15 20:51:30 (GMT) |
commit | 1b611fc842f29270479013cd0b8635d3efcccdfe (patch) | |
tree | be515fe519e580f7b3e3478ca47bc4e8041c49b5 /sugar/chat/ChatEditor.py | |
parent | c05bc5a669c8a333e902ae02ab3d55c4307cf56f (diff) |
More chat refactoring
Diffstat (limited to 'sugar/chat/ChatEditor.py')
-rw-r--r-- | sugar/chat/ChatEditor.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/sugar/chat/ChatEditor.py b/sugar/chat/ChatEditor.py new file mode 100644 index 0000000..c2a57c1 --- /dev/null +++ b/sugar/chat/ChatEditor.py @@ -0,0 +1,48 @@ +import pygtk +pygtk.require('2.0') +import gtk + +from sugar.chat.sketchpad.SketchPad import SketchPad +import richtext + +class ChatEditor(gtk.Notebook): + def __init__(self): + gtk.Notebook.__init__(self) + + self.set_show_tabs(False) + self.set_show_border(False) + self.set_size_request(-1, 70) + + chat_view_sw = gtk.ScrolledWindow() + chat_view_sw.set_shadow_type(gtk.SHADOW_IN) + chat_view_sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) + self._text_view = richtext.RichTextView() + self._text_view.connect("key-press-event", self.__key_press_event_cb) + chat_view_sw.add(self._text_view) + self._text_view.show() + + self.append_page(chat_view_sw) + chat_view_sw.show() + + self._sketchpad = SketchPad() + self.append_page(self._sketchpad) + self._sketchpad.show() + + self.set_current_page(0) + + def get_buffer(self): + return self._text_view.get_buffer() + + def __key_press_event_cb(self, text_view, event): + if event.keyval == gtk.keysyms.Return: + buf = text_view.get_buffer() + text = buf.get_text(buf.get_start_iter(), buf.get_end_iter()) + if len(text.strip()) > 0: + serializer = richtext.RichTextSerializer() + text = serializer.serialize(buf) + self.send_text_message(text) + + buf.set_text("") + buf.place_cursor(buf.get_start_iter()) + + return True |