Now the activity hasn't got HippoCanvas and I'm ready to port it to Gtk3!
A little comment, I added de _share function because I forgot it at the time to
remove the early toolkit modules, and it appeared in the log when I tried to
share the activity.
Signed-off-by: Daniel Francis fran...@sugarlabs.org
---
activity.py | 12 ++
chat.py | 137 +++---
chatbox.py | 364 ++-
roundbox.py | 100
4 files changed, 391 insertions(+), 222 deletions(-)
create mode 100644 roundbox.py
diff --git a/activity.py b/activity.py
index a3f01ac..d4f0e2a 100644
--- a/activity.py
+++ b/activity.py
@@ -203,6 +203,18 @@ class SpeakActivity(SharedActivity):
toolbox.show_all()
self.toolbar_box = toolbox
+def _share(self, tube_conn, initiator):
+logging.debug('Activity._share state=%s' % self.__state)
+
+if self.__state == _NEW_INSTANCE:
+self.__postponed_share.append((tube_conn, initiator))
+self.__state = _PRE_INSTANCE
+elif self.__state == _PRE_INSTANCE:
+self.__postponed_share.append((tube_conn, initiator))
+self.__instance()
+elif self.__state == _POST_INSTANCE:
+self.share_instance(tube_conn, initiator)
+
def set_cursor(self, cursor):
if not isinstance(cursor, gtk.gdk.Cursor):
cursor = CursorFactory().get_cursor(cursor)
diff --git a/chat.py b/chat.py
index 12d0075..a61822d 100644
--- a/chat.py
+++ b/chat.py
@@ -16,12 +16,11 @@
import gtk
import pango
-import hippo
import logging
from gettext import gettext as _
import sugar.graphics.style as style
-from sugar.graphics.roundbox import CanvasRoundBox
+from roundbox import RoundBox
from sugar.graphics.toggletoolbutton import ToggleToolButton
import eye
@@ -45,9 +44,9 @@ ENTRY_XPAD = 0
ENTRY_YPAD = 7
-class View(hippo.Canvas):
+class View(gtk.EventBox):
def __init__(self):
-hippo.Canvas.__init__(self)
+gtk.EventBox.__init__(self)
self.messenger = None
self.me = None
@@ -57,16 +56,18 @@ class View(hippo.Canvas):
# buddies box
-self._buddies_list = hippo.CanvasBox(
-background_color=BUDDIES_COLOR.get_int(),
-box_width=BUDDIES_WIDTH,
-padding=ENTRY_YPAD,
-spacing=ENTRY_YPAD)
+self._buddies_list = gtk.VBox()
+self._buddies_list.set_homogeneous(False)
+self._buddies_list.props.spacing = ENTRY_YPAD
-self._buddies_box = hippo.CanvasScrollbars()
-self._buddies_box.set_policy(hippo.ORIENTATION_HORIZONTAL,
-hippo.SCROLLBAR_NEVER)
-self._buddies_box.set_root(self._buddies_list)
+self._buddies_box = gtk.ScrolledWindow()
+self._buddies_box.set_policy(gtk.POLICY_ALWAYS,
+ gtk.POLICY_NEVER)
+evbox = gtk.EventBox()
+evbox.modify_bg(gtk.STATE_NORMAL, BUDDIES_COLOR.get_gdk_color())
+evbox.add(self._buddies_list)
+evbox.show()
+self._buddies_box.add_with_viewport(evbox)
# chat entry
@@ -82,40 +83,37 @@ class View(hippo.Canvas):
chat_post.connect('key-press-event', self._key_press_cb)
chat_post.props.wrap_mode = gtk.WRAP_WORD_CHAR
chat_post.set_size_request(-1, BUDDY_SIZE - ENTRY_YPAD * 2)
-chat_post_box = CanvasRoundBox(
-background_color=style.COLOR_WHITE.get_int(),
-padding_left=ENTRY_XPAD,
-padding_right=ENTRY_XPAD,
-padding_top=ENTRY_YPAD,
-padding_bottom=ENTRY_YPAD
-)
-chat_post_box.props.border_color = ENTRY_COLOR.get_int()
-chat_post_box.append(hippo.CanvasWidget(widget=chat_post),
-hippo.PACK_EXPAND)
-
-chat_entry = CanvasRoundBox(background_color=ENTRY_COLOR.get_int(),
-padding_left=ENTRY_XPAD,
-padding_right=ENTRY_XPAD,
-padding_top=ENTRY_YPAD,
-padding_bottom=ENTRY_YPAD,
-spacing=ENTRY_YPAD)
-chat_entry.props.orientation = hippo.ORIENTATION_HORIZONTAL
-chat_entry.props.border_color = style.COLOR_WHITE.get_int()
-chat_entry.append(my_face_widget)
-chat_entry.append(chat_post_box, hippo.PACK_EXPAND)
-
-chat_box = hippo.CanvasBox(orientation=hippo.ORIENTATION_VERTICAL,
- background_color=style.COLOR_WHITE.get_int())
-chat_box.append(self._chat, hippo.PACK_EXPAND)
-chat_box.append(chat_entry)
+chat_post_box = RoundBox()
+chat_post_box.background_color = style.COLOR_WHITE
+chat_post_box.border_color = ENTRY_COLOR
+chat_post_box.pack_start(chat_post, True, True, ENTRY_XPAD)
+
+