Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/chat.py
diff options
context:
space:
mode:
authorDaniel Francis <francis@sugarlabs.org>2012-07-08 00:01:33 (GMT)
committer Rafael Ortiz <rafael@activitycentral.com>2012-07-09 18:10:13 (GMT)
commita5ca5dca316a30bd01d9e97bdcee567aa3460671 (patch)
treef2951c06bf0fb34914ac067756d94f9a9a774289 /chat.py
parent10f4834636734b4a326b718a0cd729ba834e1358 (diff)
Removing Hippo Canvas from chat mode
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 <francis@sugarlabs.org>
Diffstat (limited to 'chat.py')
-rw-r--r--chat.py137
1 files changed, 67 insertions, 70 deletions
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)
+
+ chat_entry = RoundBox()
+ chat_entry.set_border_width(ENTRY_YPAD)
+ chat_entry.background_color = ENTRY_COLOR
+ chat_entry.border_color = style.COLOR_WHITE
+ chat_entry.pack_start(my_face_widget, False, True, 0)
+ separator = gtk.EventBox()
+ separator.modify_bg(gtk.STATE_NORMAL, ENTRY_COLOR.get_gdk_color())
+ separator.set_size_request(ENTRY_YPAD, -1)
+ separator.show()
+ chat_entry.pack_start(separator, False, False)
+ chat_entry.pack_start(chat_post_box, True, True, ENTRY_XPAD)
+
+ evbox = gtk.EventBox()
+ evbox.modify_bg(gtk.STATE_NORMAL, style.COLOR_WHITE.get_gdk_color())
+ chat_box = gtk.VBox()
+ chat_box.pack_start(self._chat, True, True)
+ chat_box.pack_start(chat_entry, False, True)
+ evbox.add(chat_box)
# desk
- self._desk = hippo.CanvasBox()
- self._desk.props.orientation = hippo.ORIENTATION_HORIZONTAL
- self._desk.append(chat_box, hippo.PACK_EXPAND)
+ self._desk = gtk.HBox()
+ self._desk.pack_start(evbox, True, True)
+ self._desk.show_all()
- self.set_root(self._desk)
+ self.add(self._desk)
def update(self, status):
self.me.update(status)
@@ -160,34 +158,30 @@ class View(hippo.Canvas):
self.me.shut_up()
def _add_buddy(self, buddy):
- box = hippo.CanvasBox(orientation=hippo.ORIENTATION_HORIZONTAL,
- background_color=BUDDIES_COLOR.get_int(),
- spacing=ENTRY_YPAD)
+ evbox = gtk.EventBox()
+ evbox.modify_bg(gtk.STATE_NORMAL, BUDDIES_COLOR.get_gdk_color())
+ box = gtk.HBox()
buddy_face, buddy_widget = self._new_face(buddy, BUDDIES_COLOR)
- char_box = hippo.CanvasBox(orientation=hippo.ORIENTATION_VERTICAL)
- nick = hippo.CanvasText(text=buddy.props.nick,
- xalign=hippo.ALIGNMENT_START,
- yalign=hippo.ALIGNMENT_START)
- lang = hippo.CanvasText(text='',
- xalign=hippo.ALIGNMENT_START,
- yalign=hippo.ALIGNMENT_START)
- char_box.append(nick)
- char_box.append(lang)
+ char_box = gtk.VBox()
+ nick = gtk.Label(buddy.props.nick)
+ lang = gtk.Label()
+ char_box.pack_start(nick)
+ char_box.pack_start(lang)
- box.append(buddy_widget)
- box.append(char_box, hippo.PACK_EXPAND)
+ box.pack_start(buddy_widget, False, False, ENTRY_YPAD)
+ box.pack_start(char_box, True, True, ENTRY_YPAD)
self._buddies[buddy] = {
'box': box,
'face': buddy_face,
'lang': lang
}
- self._buddies_list.append(box)
+ self._buddies_list.pack_start(box)
if len(self._buddies) == 1:
- self._desk.append(self._buddies_box)
+ self._desk.pack_start(self._buddies_box)
def _key_press_cb(self, widget, event):
if event.keyval == gtk.keysyms.Return:
@@ -213,17 +207,20 @@ class View(hippo.Canvas):
buddy_face = face.View(fill_color)
buddy_face.show_all()
- inner = CanvasRoundBox(background_color=fill_color.get_int())
- inner.props.border_color = fill_color.get_int()
- inner.append(hippo.CanvasWidget(widget=buddy_face), hippo.PACK_EXPAND)
- inner.props.border = BUDDY_PAD
-
- outer = CanvasRoundBox(background_color=stroke_color.get_int(),
- box_width=BUDDY_SIZE,
- box_height=BUDDY_SIZE)
- outer.props.border_color = stroke_color.get_int()
- outer.append(inner, hippo.PACK_EXPAND)
- outer.props.border = BUDDY_PAD
+ inner = RoundBox()
+ inner.set_border_width(BUDDY_PAD)
+ inner.background_color = fill_color
+ inner.border_color = fill_color
+ inner.pack_start(buddy_face, True, True, 0)
+ inner.border = BUDDY_PAD
+
+ outer = RoundBox()
+ outer.set_border_width(BUDDY_PAD)
+ outer.background_color = stroke_color
+ outer.set_size_request(BUDDY_SIZE, BUDDY_SIZE)
+ outer.border_color = stroke_color
+ outer.pack_start(inner, True, True, 0)
+ outer.border = BUDDY_PAD
return (buddy_face, outer)