Mention ctrl+s

This commit is contained in:
Marco Pesenti Gritti 2006-06-18 14:45:04 -04:00
parent 3553882352
commit be051b2726
4 changed files with 34 additions and 13 deletions

1
README
View File

@ -43,6 +43,7 @@ Key bindings
ctrl+Up Toggle chat window visibility ctrl+Up Toggle chat window visibility
ctrl+Left Toggle presence window visibility ctrl+Left Toggle presence window visibility
F11 Toggle activities window fullscreen F11 Toggle activities window fullscreen
ctrl+S Switch between sketch and text mode
Logging Logging
======= =======

View File

@ -22,6 +22,9 @@ class Chat(gtk.VBox):
SERVICE_TYPE = "_olpc_chat._tcp" SERVICE_TYPE = "_olpc_chat._tcp"
SERVICE_PORT = 6100 SERVICE_PORT = 6100
TEXT_MODE = 0
SKETCH_MODE = 1
def __init__(self): def __init__(self):
gtk.VBox.__init__(self, False, 6) gtk.VBox.__init__(self, False, 6)
@ -48,7 +51,8 @@ class Chat(gtk.VBox):
self.pack_start(chat_vbox) self.pack_start(chat_vbox)
chat_vbox.show() chat_vbox.show()
self._editor = ChatEditor(self) self._mode = Chat.TEXT_MODE
self._editor = ChatEditor(self, ChatEditor.TEXT_MODE)
toolbar = ChatToolbar(self._editor.get_buffer()) toolbar = ChatToolbar(self._editor.get_buffer())
self.pack_start(toolbar, False) self.pack_start(toolbar, False)
@ -57,6 +61,16 @@ class Chat(gtk.VBox):
self.pack_start(self._editor, False) self.pack_start(self._editor, False)
self._editor.show() self._editor.show()
def get_mode(self):
return self._mode
def set_mode(self, mode):
self._mode = mode
if self._mode == Chat.TEXT_MODE:
self._editor.set_mode(ChatEditor.TEXT_MODE)
elif self._mode == Chat.SKETCH_MODE:
self._editor.set_mode(ChatEditor.SKETCH_MODE)
def __get_browser_shell(self): def __get_browser_shell(self):
bus = dbus.SessionBus() bus = dbus.SessionBus()
proxy_obj = bus.get_object('com.redhat.Sugar.Browser', '/com/redhat/Sugar/Browser') proxy_obj = bus.get_object('com.redhat.Sugar.Browser', '/com/redhat/Sugar/Browser')
@ -202,7 +216,7 @@ class Chat(gtk.VBox):
def send_sketch(self, svgdata): def send_sketch(self, svgdata):
if not svgdata or not len(svgdata): if not svgdata or not len(svgdata):
return return
self._stream_writer.write(svgdata) self._stream_writer.write(self.serialize_message(svgdata))
owner = PresenceService.get_instance().get_owner() owner = PresenceService.get_instance().get_owner()
self._insert_sketch(owner.get_nick_name(), svgdata) self._insert_sketch(owner.get_nick_name(), svgdata)

View File

@ -6,7 +6,10 @@ from sugar.chat.sketchpad.SketchPad import SketchPad
import richtext import richtext
class ChatEditor(gtk.Notebook): class ChatEditor(gtk.Notebook):
def __init__(self, chat): TEXT_MODE = 0
SKETCH_MODE = 1
def __init__(self, chat, mode):
gtk.Notebook.__init__(self) gtk.Notebook.__init__(self)
self._chat = chat self._chat = chat
@ -30,6 +33,13 @@ class ChatEditor(gtk.Notebook):
self.append_page(self._sketchpad) self.append_page(self._sketchpad)
self._sketchpad.show() self._sketchpad.show()
self.set_mode(mode)
def set_mode(self, mode):
self._mode = mode
if self._mode == ChatEditor.SKETCH_MODE:
self.set_current_page(1)
elif self._mode == ChatEditor.TEXT_MODE:
self.set_current_page(0) self.set_current_page(0)
def get_buffer(self): def get_buffer(self):

View File

@ -11,6 +11,7 @@ import gobject
import sugar.util import sugar.util
from sugar.session.LogWriter import LogWriter from sugar.session.LogWriter import LogWriter
from sugar.shell.PresenceWindow import PresenceWindow from sugar.shell.PresenceWindow import PresenceWindow
from sugar.chat.ChatWindow import ChatWindow
from sugar.shell.Owner import ShellOwner from sugar.shell.Owner import ShellOwner
from sugar.shell.StartPage import StartPage from sugar.shell.StartPage import StartPage
from sugar.shell.WindowManager import WindowManager from sugar.shell.WindowManager import WindowManager
@ -307,7 +308,7 @@ class ActivityContainer(dbus.service.Object):
wm.set_position(WindowManager.LEFT) wm.set_position(WindowManager.LEFT)
wm.manage() wm.manage()
self._chat_window = gtk.Window() self._chat_window = ChatWindow()
self._chat_window.set_transient_for(self.window) self._chat_window.set_transient_for(self.window)
self._chat_window.set_decorated(False) self._chat_window.set_decorated(False)
self._chat_window.set_skip_taskbar_hint(True) self._chat_window.set_skip_taskbar_hint(True)
@ -332,14 +333,9 @@ class ActivityContainer(dbus.service.Object):
self.current_activity = activity self.current_activity = activity
self._presence_window.set_activity(activity) self._presence_window.set_activity(activity)
host_chat = self._chat_window.get_child()
if host_chat:
self._chat_window.remove(host_chat)
if activity: if activity:
host_chat = activity.get_chat() host_chat = activity.get_chat()
self._chat_window.add(host_chat) self._chat_window.set_chat(host_chat)
host_chat.show()
# For some reason the substitution screw up window position # For some reason the substitution screw up window position
self._chat_wm.update() self._chat_wm.update()