Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim-plugins.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Fomin <fominde@gmail.com>2013-07-18 14:15:09 +0400
committerDenis Fomin <fominde@gmail.com>2013-07-18 14:15:09 +0400
commite54432d9a1458ef34bf69f93cd7017f408e11861 (patch)
treeab08ceafa257e224e4395e1725935e945794995e
parent03e6e9d1b6b26ce9f05ac95c61a7b275418dbda2 (diff)
Gui for the '/me' command plugin
-rw-r--r--gui_for_me/__init__.py1
-rw-r--r--gui_for_me/gui_for_me.pngbin0 -> 818 bytes
-rw-r--r--gui_for_me/gui_for_me.py83
-rw-r--r--gui_for_me/manifest.ini10
4 files changed, 94 insertions, 0 deletions
diff --git a/gui_for_me/__init__.py b/gui_for_me/__init__.py
new file mode 100644
index 0000000..5d798ed
--- /dev/null
+++ b/gui_for_me/__init__.py
@@ -0,0 +1 @@
+from gui_for_me import GuiForMe
diff --git a/gui_for_me/gui_for_me.png b/gui_for_me/gui_for_me.png
new file mode 100644
index 0000000..ee4e219
--- /dev/null
+++ b/gui_for_me/gui_for_me.png
Binary files differ
diff --git a/gui_for_me/gui_for_me.py b/gui_for_me/gui_for_me.py
new file mode 100644
index 0000000..97744e0
--- /dev/null
+++ b/gui_for_me/gui_for_me.py
@@ -0,0 +1,83 @@
+# -*- coding: utf-8 -*-
+
+import gtk
+
+from common import gajim
+from plugins import GajimPlugin
+from plugins.helpers import log_calls
+
+
+class GuiForMe(GajimPlugin):
+
+ @log_calls('GuiForMePlugin')
+ def init(self):
+ self.description = _('Gui for the \'/me\' command.')
+ self.config_dialog = None # GuiForMePluginConfigDialog(self)
+ self.gui_extension_points = {
+ 'chat_control_base': (self.connect_with_chat_control,
+ self.disconnect_from_chat_control)}
+ self.controls = []
+
+ @log_calls('GuiForMePlugin')
+ def connect_with_chat_control(self, chat_control):
+ if chat_control.widget_name != 'groupchat_control':
+ return
+
+ self.chat_control = chat_control
+ control = Base(self, self.chat_control)
+ self.controls.append(control)
+
+
+ @log_calls('GuiForMePlugin')
+ def disconnect_from_chat_control(self, chat_control):
+ for control in self.controls:
+ control.disconnect_from_chat_control()
+ self.controls = []
+
+
+class Base(object):
+ def __init__(self, plugin, chat_control):
+ self.chat_control = chat_control
+ self.plugin = plugin
+ self.textview = self.chat_control.conv_textview
+ self.change_cursor = False
+
+ self.create_buttons()
+
+ def create_buttons(self):
+ # create juick button
+ actions_hbox = self.chat_control.xml.get_object('actions_hbox')
+ self.button = gtk.Button(label=None, stock=None, use_underline=True)
+ self.button.set_property('relief', gtk.RELIEF_NONE)
+ self.button.set_property('can-focus', False)
+ img = gtk.Image()
+ img_path = self.plugin.local_file_path('gui_for_me.png')
+ pixbuf = gtk.gdk.pixbuf_new_from_file(img_path)
+ iconset = gtk.IconSet(pixbuf=pixbuf)
+ factory = gtk.IconFactory()
+ factory.add('gui_for_me', iconset)
+ factory.add_default()
+ img.set_from_stock('gui_for_me', gtk.ICON_SIZE_MENU)
+ self.button.set_image(img)
+ self.button.set_tooltip_text(_('Insert /me to conversation input box,'
+ ' at cursor position'))
+ send_button = self.chat_control.xml.get_object('send_button')
+ send_button_pos = actions_hbox.child_get_property(send_button,
+ 'position')
+ actions_hbox.add_with_properties(self.button, 'position',
+ send_button_pos - 1, 'expand', False)
+ id_ = self.button.connect('clicked', self.on_me_button_clicked)
+ self.chat_control.handlers[id_] = self.button
+ self.button.show()
+
+ def on_me_button_clicked(self, widget):
+ """
+ Insert /me to conversation input box, at cursor position
+ """
+ message_buffer = self.chat_control.msg_textview.get_buffer()
+ message_buffer.insert_at_cursor('/me ')
+ self.chat_control.msg_textview.grab_focus()
+
+ def disconnect_from_chat_control(self):
+ actions_hbox = self.chat_control.xml.get_object('actions_hbox')
+ actions_hbox.remove(self.button)
diff --git a/gui_for_me/manifest.ini b/gui_for_me/manifest.ini
new file mode 100644
index 0000000..8591a25
--- /dev/null
+++ b/gui_for_me/manifest.ini
@@ -0,0 +1,10 @@
+[info]
+name: GUI For Me
+short_name: gui_for_me
+version: 0.1
+description: Gui for the '/me' command.
+authors: BomberMan
+ copper
+ Denis Fomin <fominde@gmail.com>
+homepage: http://trac-plugins.gajim.org/wiki/GUIForMePlugin
+max_gajim_version: 0.15.9