Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/chat
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2006-06-18 19:13:50 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2006-06-18 19:13:50 (GMT)
commit3fe0d7a5808b025c8eea3a99ef1c0dcafe2987a1 (patch)
treeb8635faf1362b23316c938448c8112dabdd553f1 /sugar/chat
parentbe051b2726ee76d0a0f28affef7a0146832b3067 (diff)
Get sketches back to work, add a send button
Diffstat (limited to 'sugar/chat')
-rw-r--r--sugar/chat/Chat.py6
-rw-r--r--sugar/chat/ChatEditor.py69
2 files changed, 50 insertions, 25 deletions
diff --git a/sugar/chat/Chat.py b/sugar/chat/Chat.py
index 5d34e44..fa8c012 100644
--- a/sugar/chat/Chat.py
+++ b/sugar/chat/Chat.py
@@ -131,7 +131,7 @@ class Chat(gtk.VBox):
self._message_inserted()
- def _insert_sketch(self, nick, svgdata):
+ def _insert_sketch(self, buddy, svgdata):
"""Insert a sketch object into the chat buffer."""
pbl = gtk.gdk.PixbufLoader("svg")
pbl.write(svgdata)
@@ -140,7 +140,7 @@ class Chat(gtk.VBox):
buf = self._chat_view.get_buffer()
- self._insert_buddy(buf, nick)
+ self._insert_buddy(buf, buddy)
rise = int(pbuf.get_height() / 3) * -1
sha_hash = sha.new()
@@ -218,7 +218,7 @@ class Chat(gtk.VBox):
return
self._stream_writer.write(self.serialize_message(svgdata))
owner = PresenceService.get_instance().get_owner()
- self._insert_sketch(owner.get_nick_name(), svgdata)
+ self._insert_sketch(owner, svgdata)
def send_text_message(self, text):
"""Send a chat message and insert it into the local buffer."""
diff --git a/sugar/chat/ChatEditor.py b/sugar/chat/ChatEditor.py
index 111970a..84e6494 100644
--- a/sugar/chat/ChatEditor.py
+++ b/sugar/chat/ChatEditor.py
@@ -5,18 +5,19 @@ import gtk
from sugar.chat.sketchpad.SketchPad import SketchPad
import richtext
-class ChatEditor(gtk.Notebook):
+class ChatEditor(gtk.HBox):
TEXT_MODE = 0
SKETCH_MODE = 1
def __init__(self, chat, mode):
- gtk.Notebook.__init__(self)
+ gtk.HBox.__init__(self, False, 6)
self._chat = chat
- self.set_show_tabs(False)
- self.set_show_border(False)
- self.set_size_request(-1, 70)
+ self._notebook = gtk.Notebook()
+ self._notebook.set_show_tabs(False)
+ self._notebook.set_show_border(False)
+ self._notebook.set_size_request(-1, 70)
chat_view_sw = gtk.ScrolledWindow()
chat_view_sw.set_shadow_type(gtk.SHADOW_IN)
@@ -26,35 +27,59 @@ class ChatEditor(gtk.Notebook):
chat_view_sw.add(self._text_view)
self._text_view.show()
- self.append_page(chat_view_sw)
+ self._notebook.append_page(chat_view_sw)
chat_view_sw.show()
self._sketchpad = SketchPad()
- self.append_page(self._sketchpad)
+ self._notebook.append_page(self._sketchpad)
self._sketchpad.show()
+ self.pack_start(self._notebook)
+ self._notebook.show()
+
+ send_button = gtk.Button("Send")
+ send_button.set_border_width(6)
+ send_button.connect('clicked', self.__send_button_clicked_cb)
+ self.pack_start(send_button, False, True)
+ send_button.show()
+
self.set_mode(mode)
+ def get_buffer(self):
+ return self._text_view.get_buffer()
+
def set_mode(self, mode):
self._mode = mode
if self._mode == ChatEditor.SKETCH_MODE:
- self.set_current_page(1)
+ self._notebook.set_current_page(1)
elif self._mode == ChatEditor.TEXT_MODE:
- self.set_current_page(0)
-
- def get_buffer(self):
- return self._text_view.get_buffer()
+ self._notebook.set_current_page(0)
- 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._chat.send_text_message(text)
+ def __send_button_clicked_cb(self, button):
+ self._send()
+
+ def _send(self):
+ if self._mode == ChatEditor.SKETCH_MODE:
+ self._send_sketch()
+ elif self._mode == ChatEditor.TEXT_MODE:
+ self._send_text()
- buf.set_text("")
- buf.place_cursor(buf.get_start_iter())
+ def _send_sketch(self):
+ self._chat.send_sketch(self._sketchpad.to_svg())
+ self._sketchpad.clear()
+ def _send_text(self):
+ buf = self._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._chat.send_text_message(text)
+
+ buf.set_text("")
+ buf.place_cursor(buf.get_start_iter())
+
+ def __key_press_event_cb(self, text_view, event):
+ if event.keyval == gtk.keysyms.Return:
+ self._send()
return True