Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/chat.py
diff options
context:
space:
mode:
Diffstat (limited to 'chat.py')
-rw-r--r--chat.py263
1 files changed, 128 insertions, 135 deletions
diff --git a/chat.py b/chat.py
index eb19dbe..bddfcdd 100644
--- a/chat.py
+++ b/chat.py
@@ -34,7 +34,7 @@ from chatbox import ChatBox
logger = logging.getLogger('speak')
BUDDY_SIZE = min(100, min(Gdk.Screen.width(),
- Gdk.Screen.height() - style.LARGE_ICON_SIZE) / 5)
+ Gdk.Screen.height() - style.LARGE_ICON_SIZE) / 5)
BUDDY_PAD = 5
BUDDIES_WIDTH = int(BUDDY_SIZE * 2.5)
@@ -44,7 +44,6 @@ ENTRY_COLOR = style.COLOR_PANEL_GREY
ENTRY_XPAD = 0
ENTRY_YPAD = 7
-
class View(Gtk.EventBox):
def __init__(self):
GObject.GObject.__init__(self)
@@ -52,14 +51,12 @@ class View(Gtk.EventBox):
self.messenger = None
self.me = None
self.quiet = False
-
self._buddies = {}
# buddies box
self._buddies_list = Gtk.VBox()
- self._buddies_list.override_background_color(Gtk.StateType.Normal, \Gdk.RGBA(*BUDDIES_COLOR.get_rgba()))
-
+ self._buddies_list.override_background_color(Gtk.StateType.Normal,Gdk.RGBA(*BUDDIES_COLOR.get_rgba()))
self._buddies_box = Gtk.ScrolledWindow()
self._buddies_box.set_vexpand(True)
self._buddies_box.add_with_viewport(self._buddies_list)
@@ -67,34 +64,29 @@ class View(Gtk.EventBox):
# chat entry
self._chat = ChatBox()
- self.me, my_face_widget = self._new_face(self._chat.owner,
- ENTRY_COLOR)
+ self.me, my_face_widget = self._new_face(self._chat.owner, ENTRY_COLOR)
chat_post = Gtk.TextView()
- chat_post.modify_bg(Gtk.StateType.INSENSITIVE,
- style.COLOR_WHITE.get_gdk_color())
- chat_post.modify_base(Gtk.StateType.INSENSITIVE,
- style.COLOR_WHITE.get_gdk_color())
+ chat_post.modify_bg(Gtk.StateType.INSENSITIVE, style.COLOR_WHITE.get_gdk_color())
+ chat_post.modify_base(Gtk.StateType.INSENSITIVE, style.COLOR_WHITE.get_gdk_color())
chat_post.connect('key-press-event', self._key_press_cb)
chat_post.props.wrap_mode = Gtk.WrapMode.WORD_CHAR
chat_post.set_size_request(-1, BUDDY_SIZE - ENTRY_YPAD * 2)
-
- chat_post_box = Gtk.VBox()
- chat_post_box.override_background_color(Gtk.StateType.NORMAL, \
- Gdk.RGBA(*COLOR_WHITE.get_rgba()))
-
+
+ chat_post_box = Gtk.VBox()
+ chat_post_box.override_background_color(Gtk.StateType.NORMAL,Gdk.RGBA(*COLOR_WHITE.get_rgba()))
+
chat_post_box.pack_start(chat_post, True, True, ENTRY_XPAD)
- chat_entry = Gtk.HBox()
- chat_entry.override_background_color(Gtk.StateType.NORMAL, \Gdk.RGBA(*COLOR_WHITE.get_rgba()))
+ chat_entry = Gtk.HBox()
+ chat_entry.override_background_color(Gtk.StateType.NORMAL, Gdk.RGBA(*COLOR_WHITE.get_rgba()))
chat_entry.add(my_face_widget)
chat_entry.pack_start(chat_post_box, True, True, ENTRY_YPAD)
- chat_box = Gtk.VBox()
- chat_box.override_background_color(Gtk.StateType.NORMAL, \
- Gdk.RGBA(*COLOR_WHITE.get_rgba()))
- chat_box.add(self._chat)
- caht_box.add(chat_entry)
+ chat_box = Gtk.VBox()
+ chat_box.override_background_color(Gtk.StateType.NORMAL, Gdk.RGBA(*COLOR_WHITE.get_rgba()))
+ chat_box.add(self._chat)
+ chat_box.add(chat_entry)
# desk
self._desk = Gtk.HBox()
@@ -102,126 +94,127 @@ class View(Gtk.EventBox):
self.set_root(self._desk)
- def update(self, status):
- self.me.update(status)
- if self.messenger:
- self.messenger.post(None)
+def update(self, status):
+ self.me.update(status)
+ if self.messenger:
+ self.messenger.post(None)
- def post(self, buddy, status, text):
- i = self._buddies.get(buddy)
- if not i:
- self._add_buddy(buddy)
- i = self._buddies[buddy]
+def post(self, buddy, status, text):
+ i = self._buddies.get(buddy)
+ if not i:
+ self._add_buddy(buddy)
+ i = self._buddies[buddy]
- face = i['face']
- lang_box = i['lang']
+ face = i['face']
+ lang_box = i['lang']
- if status:
- face.update(status)
- if lang_box:
+ if status:
+ face.update(status)
+ if lang_box:
lang_box.props.text = status.voice.friendlyname
- if text:
+ if text:
self._chat.add_text(buddy, text)
if not self.quiet:
# and self.props.window \
# and self.props.window.is_visible():
face.say(text)
- def farewell(self, buddy):
- i = self._buddies.get(buddy)
- if not i:
- logger.debug('farewell: cannot find buddy %s' % buddy.props.nick)
- return
-
- self._buddies_list.remove(i['box'])
- del self._buddies[buddy]
-
- if len(self._buddies) == 0:
- self._desk.remove(self._buddies_box)
-
- def shut_up(self):
- for i in self._buddies.values():
- i['face'].shut_up();
- self.me.shut_up();
-
- def _add_buddy(self, buddy):
- box = Gtk.HBox()
- box.override_background_color(Gtk.StateType.NORMAL, \Gdk.RGBA(*BUDDIES_COLOR.get_rgba()))
-
- buddy_face, buddy_widget = self._new_face(buddy, BUDDIES_COLOR)
-
- char_box = Gtk.VBox()
-
- nick = Gtk.TextView()
- text_buffer = char_box.get_buffer()
- text_buffer.set_text(buddy.props.nick)
- nick.set_justification(Gtk.Justification.LEFT)
-
- lang = Gtk.TextView()
- text_buffer = msg.get_buffer()
- text_buffer.set_text('')
- lang.set_justification(Gtk.Justification.LEFT)
-
- char_box.add(nick)
- char_box.add(lang)
-
- box.add(buddy_widget)
- box.pack_start(char_box, True, True, ENTRY_YPAD)
-
- self._buddies[buddy] = {
- 'box': box,
- 'face': buddy_face,
- 'lang': lang
- }
- self._buddies_list.add(box)
-
- if len(self._buddies) == 1:
- self._desk.add(self._buddies_box)
-
- def _key_press_cb(self, widget, event):
- if event.keyval == Gdk.KEY_Return:
- if not (event.get_state() & Gdk.ModifierType.CONTROL_MASK):
- text = widget.get_buffer().props.text
-
- if text:
- self._chat.add_text(None, text)
- widget.get_buffer().props.text = ''
- if not self.quiet:
- self.me.say(text)
- if self.messenger:
- self.messenger.post(text)
-
- return True
- return False
-
- def _new_face(self, buddy, color):
- stroke_color, fill_color = buddy.props.color.split(',')
- stroke_color = style.Color(stroke_color)
- fill_color = style.Color(fill_color)
-
- buddy_face = face.View(fill_color)
- buddy_face.show_all()
-
- eb = Gtk.EventBox()
- eb.override_background_color(Gtk.StateType.NORMAL, fill_color)
-
- inner = Gtk.VBox()
- inner.override_background_color(Gtk.StateType.NORMAL, fill_color)
- inner.set_border_width(BUDDY_PAD)
- #Adding border to inner
- eb.add(inner)
- inner.add(buddy_face)
-
- outer.props.border = BUDDY_PAD
-
- outer = Gtk.VBox()
- outer.set_border_width(BUDDY_SIZE)
- outer.override_background_color(Gtk.StateType.NORMAL, stroke_color)
- outer.pack_start(inner, True, True, BUDDY_SIZE)
-
- return (buddy_face, outer)
-
- def look_at(self):
- self.me.look_at()
- for i in self._buddies.values():
+def farewell(self, buddy):
+ i = self._buddies.get(buddy)
+ if not i:
+ logger.debug('farewell: cannot find buddy %s' % buddy.props.nick)
+ return
+
+ self._buddies_list.remove(i['box'])
+ del self._buddies[buddy]
+
+ if len(self._buddies) == 0:
+ self._desk.remove(self._buddies_box)
+
+def shut_up(self):
+ for i in self._buddies.values():
+ i['face'].shut_up();
+ self.me.shut_up();
+
+def _add_buddy(self, buddy):
+ box = Gtk.HBox()
+ box.override_background_color(Gtk.StateType.NORMAL,Gdk.RGBA(*BUDDIES_COLOR.get_rgba()))
+
+ buddy_face, buddy_widget = self._new_face(buddy, BUDDIES_COLOR)
+
+ char_box = Gtk.VBox()
+
+ nick = Gtk.TextView()
+ text_buffer = char_box.get_buffer()
+ text_buffer.set_text(buddy.props.nick)
+ nick.set_justification(Gtk.Justification.LEFT)
+
+ lang = Gtk.TextView()
+ text_buffer = msg.get_buffer()
+ text_buffer.set_text('')
+ lang.set_justification(Gtk.Justification.LEFT)
+
+ char_box.add(nick)
+ char_box.add(lang)
+
+ box.add(buddy_widget)
+ box.pack_start(char_box, True, True, ENTRY_YPAD)
+
+ self._buddies[buddy] = {
+ 'box': box,
+ 'face': buddy_face,
+ 'lang': lang
+ }
+ self._buddies_list.add(box)
+
+ if len(self._buddies) == 1:
+ self._desk.add(self._buddies_box)
+
+def _key_press_cb(self, widget, event):
+ if event.keyval == Gdk.KEY_Return:
+ if not (event.get_state() & Gdk.ModifierType.CONTROL_MASK):
+ text = widget.get_buffer().props.text
+
+ if text:
+ self._chat.add_text(None, text)
+ widget.get_buffer().props.text = ''
+ if not self.quiet:
+ self.me.say(text)
+ if self.messenger:
+ self.messenger.post(text)
+
+ return True
+ return False
+
+def _new_face(self, buddy, color):
+ stroke_color, fill_color = buddy.props.color.split(',')
+ stroke_color = style.Color(stroke_color)
+ fill_color = style.Color(fill_color)
+
+ buddy_face = face.View(fill_color)
+ buddy_face.show_all()
+
+ eb = Gtk.EventBox()
+ eb.override_background_color(Gtk.StateType.NORMAL, fill_color)
+
+ inner = Gtk.VBox()
+ inner.override_background_color(Gtk.StateType.NORMAL,fill_color)
+
+ inner.set_border_width(BUDDY_PAD)
+ #Adding border to inner
+ eb.add(inner)
+ inner.add(buddy_face)
+
+ outer.props.border = BUDDY_PAD
+
+ outer = Gtk.VBox()
+ outer.set_border_width(BUDDY_SIZE)
+ outer.override_background_color(Gtk.StateType.NORMAL, stroke_color)
+ outer.pack_start(inner, True, True, BUDDY_SIZE)
+
+ return (buddy_face, outer)
+
+def look_at(self):
+ self.me.look_at()
+ for i in self._buddies.values():
i['face'].look_at()