Mercurial > libervia-backend
view frontends/wix/gateways.py @ 35:c45deebb40a5
Wix: Registration form management (not finished yet)
- impoved xml conversion in xml_tools
author | Goffi <goffi@goffi.org> |
---|---|
date | Sun, 13 Dec 2009 20:24:48 +1100 |
parents | d6b613764dd7 |
children | a61beb21d16d |
line wrap: on
line source
#!/usr/bin/python # -*- coding: utf-8 -*- """ wix: a SAT frontend Copyright (C) 2009 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 xml.dom import minidom from logging import debug, info, error from tools.jid import JID class GatewaysManager(wx.Frame): def __init__(self, host, gateways, title="Gateways manager"): super(GatewaysManager, self).__init__(None, title=title) self.host = host #Fonts self.normal_font = wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.NORMAL) self.bold_font = wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.BOLD) self.italic_font = wx.Font(8, wx.DEFAULT, wx.FONTSTYLE_ITALIC, wx.NORMAL) self.modified = {} # dict of modified data (i.e. what we have to save) self.ctl_list = {} # usefull to access ctrl, key = (name, category) self.sizer = wx.BoxSizer(wx.VERTICAL) self.panel = wx.Panel(self) self.panel.sizer = wx.FlexGridSizer(cols=4) self.panel.SetSizer(self.panel.sizer) self.panel.SetAutoLayout(True) self.sizer.Add(self.panel, 1, flag=wx.EXPAND) self.SetSizer(self.sizer) self.SetAutoLayout(True) #events self.Bind(wx.EVT_CLOSE, self.onClose, self) self.MakeModal() self.panel.sizer.Add(wx.Window(self.panel, -1)) title_name = wx.StaticText(self.panel, -1, "Name") title_name.SetFont(self.bold_font) title_type = wx.StaticText(self.panel, -1, "Type") title_type.SetFont(self.bold_font) self.panel.sizer.Add(title_name) self.panel.sizer.Add(title_type) self.panel.sizer.Add(wx.Window(self.panel, -1)) for gateway in gateways: self.addGateway(gateway, gateways[gateway]) self.panel.sizer.Fit(self) self.Show() def addGateway(self, gateway, param): #First The icon isz = (16,16) im_icon = wx.StaticBitmap(self.panel, -1, wx.ArtProvider.GetBitmap(wx.ART_GO_FORWARD, wx.ART_TOOLBAR, isz)) #Then the name label=wx.StaticText(self.panel, -1, param['name']) label.SetFont(self.normal_font) #Then the transport type message type_label_txt = 'Unknown IM' if param['type'] == 'irc': type_label_txt = "Internet Relay Chat" elif param['type'] == 'xmpp': type_label_txt = "XMPP" elif param['type'] == 'qq': type_label_txt = "Tencent QQ" elif param['type'] == 'simple': type_label_txt = "SIP/SIMPLE" elif param['type'] == 'icq': type_label_txt = "ICQ" elif param['type'] == 'yahoo': type_label_txt = "Yahoo! Messenger" elif param['type'] == 'gadu-gadu': type_label_txt = "Gadu-Gadu" elif param['type'] == 'aim': type_label_txt = "AOL Instant Messenger" elif param['type'] == 'msn': type_label_txt = 'Windows Live Messenger' type_label_txt = type_label_txt type_label = wx.StaticText(self.panel, -1, type_label_txt) type_label.SetFont(self.italic_font) #The buttons def register_cb(event): """Called when register button is clicked""" gateway_jid = event.GetEventObject().gateway_jid id = self.host.bridge.in_band_register(gateway_jid) self.host.current_action_ids.add(id) print "register id:",id event.Skip() button_font = wx.Font(6, wx.DEFAULT, wx.NORMAL, wx.BOLD) reg_button = wx.Button(self.panel, -1, "Register", size=wx.Size(-1, 8)) reg_button.SetFont(button_font) reg_button.gateway_jid = JID(gateway) self.panel.Bind(wx.EVT_BUTTON, register_cb, reg_button) self.panel.sizer.Add(im_icon) self.panel.sizer.Add(label) self.panel.sizer.Add(type_label) self.panel.sizer.Add(reg_button, 1, wx.EXPAND) def onClose(self, event): """Close event""" debug("close") #now we save the modifier params self.MakeModal(False) event.Skip()