Mercurial > libervia-backend
view frontends/wix/profile.py @ 72:f271fff3a713
MUC implementation: first draft
/!\ the experimental muc branche of wokkel must be used
- bridge: new roomJoined signal
- wix: contact list widget is now in a separate file, and manage different kinds of presentation
- wix: chat window now manage group chat (first draft, not working yet)
- wix: constants are now in a separate class, so then can be accessible from everywhere
- wix: new menu to join room (do nothing yet, except entering in a test room)
- new plugin for xep 0045 (MUC), use wokkel experimental MUC branch
- plugins: the profile is now given for get_handler, cause it can be used internally by a plugin (e.g.: xep-0045 plugin)
author | Goffi <goffi@goffi.org> |
---|---|
date | Sun, 21 Mar 2010 10:28:55 +1100 |
parents | 8f2ed279784b |
children |
line wrap: on
line source
#!/usr/bin/python # -*- coding: utf-8 -*- """ wix: a SAT frontend Copyright (C) 2009, 2010 Jérôme Poisson (goffi@goffi.org) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. """ import wx import pdb from logging import debug, info, error from tools.jid import JID class Profile(wx.Frame): """This class is used to show/modify profile given by SàT""" def __init__(self, host, data, title="Profile"): super(Profile, self).__init__(None, title=title) self.host = host self.name_dict = { 'fullname': _('Full Name'), 'nick' : _('Nickname'), 'birthday' : _('Birthday'), 'phone' : _('Phone #'), 'website' : _('Website'), 'email' : _('E-mail'), 'avatar' : _('Avatar') } self.ctl_list = {} # usefull to access ctrl, key = (name) self.sizer = wx.BoxSizer(wx.VERTICAL) self.notebook=wx.Notebook(self, -1) self.sizer.Add(self.notebook, 1, flag=wx.EXPAND) self.SetSizer(self.sizer) self.SetAutoLayout(True) #events self.Bind(wx.EVT_CLOSE, self.onClose, self) self.MakeModal() self.showData(data) self.Show() def showData(self, data): flags = wx.TE_READONLY #General tab generaltab = wx.Panel(self.notebook) sizer = wx.FlexGridSizer(cols=2) sizer.AddGrowableCol(1) generaltab.SetSizer(sizer) generaltab.SetAutoLayout(True) for field in ['fullname','nick', 'birthday', 'phone', 'website', 'email']: value = data[field] if data.has_key(field) else '' label=wx.StaticText(generaltab, -1, self.name_dict[field]+": ") sizer.Add(label) self.ctl_list[field] = wx.TextCtrl(generaltab, -1, value, style = flags) sizer.Add(self.ctl_list[field], 1, flag = wx.EXPAND) #Avatar if data.has_key('avatar'): filename = self.host.bridge.getAvatarFile(data['avatar']) label=wx.StaticText(generaltab, -1, self.name_dict['avatar']+": ") sizer.Add(label) img = wx.Image(filename).ConvertToBitmap() self.ctl_list['avatar'] = wx.StaticBitmap(generaltab, -1, img) sizer.Add(self.ctl_list['avatar'], 0) self.notebook.AddPage(generaltab, _("General")) def onClose(self, event): """Close event""" debug(_("close")) self.MakeModal(False) event.Skip()