import wx
from wx import xrc
 
class Prog(wx.App):
    def OnInit(self):
 
        self.res = xrc.XmlResource('recursos.xrc')
        self.frame = self.res.LoadFrame(None, 'Frame1')
        self.dialog = self.res.LoadDialog(None, 'Dialog1')
        
        self.botonLimpiar = xrc.XRCCTRL(self.frame, 'button1')
        self.frame.Bind(wx.EVT_BUTTON, self.Limpiar, self.botonLimpiar)
        self.botonLimpiar2 = xrc.XRCCTRL(self.frame, 'button2')
        self.frame.Bind(wx.EVT_BUTTON, self.Limpiar2, self.botonLimpiar2)
        
        self.botonCryptar = xrc.XRCCTRL(self.frame, 'button4')
        self.frame.Bind(wx.EVT_BUTTON, self.Cryptar, self.botonCryptar)
        self.botonDecryptar = xrc.XRCCTRL(self.frame, 'button5')
        self.frame.Bind(wx.EVT_BUTTON, self.Decryptar, self.botonDecryptar)
 
 
        self.botonAbout = xrc.XRCCTRL(self.frame, 'button3')
        self.frame.Bind(wx.EVT_BUTTON, self.About, self.botonAbout)
        
        self.Texto = xrc.XRCCTRL(self.frame, 'textCtrl1')
 
        self.Texto2 = xrc.XRCCTRL(self.frame, 'textCtrl2')
        
        self.frame.Show()
 
        return True
    def Limpiar(self, event):
        self.Texto.Clear()
    def Limpiar2(self, event):
        self.Texto2.Clear()
    def About(self, event):
        self.dialog.Show()
    def Cryptar(self, event):
        li = self.Texto.GetNumberOfLines()
        le = 0
        while le <= li - 1:
            lin = self.Texto.GetLineText(le)
            text = lin
            salir = False
            v3 = 0
            while v3 <= 26:
                v1 = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", " "]
                v2 = ["1-", "2-", "3-", "4-", "5-", "6-", "7-", "8-", "9-", "10-", "11-", "12-", "13-", "14-", "15-", "16-", "17-", "18-", "19-", "20-", "21-", "22-", "23-", "24-", "25-",  "26-", "27-"]
                text = text.replace(v1[v3], v2[v3])
                v3 = v3 + 1
            self.Texto2.WriteText(text + "n")
            le = le + 1
        wx.MessageBox("Texto encriptado correctamente")
    def Decryptar(self, event):
        li = self.Texto.GetNumberOfLines()
        le = 0
        while le <= li - 1:
            lin = self.Texto.GetLineText(le)
            text = lin
            salir = False
            v3 = 0
            while v3 <= 26:
                v1 = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", " "]
                v2 = ["1-", "2-", "3-", "4-", "5-", "6-", "7-", "8-", "9-", "10-", "11-", "12-", "13-", "14-", "15-", "16-", "17-", "18-", "19-", "20-", "21-", "22-", "23-", "24-", "25-",  "26-", "27-"]
                text = text.replace(v2[v3], v1[v3])
                v3 = v3 + 1
            self.Texto2.WriteText(text + "n")
            le = le + 1
        wx.MessageBox("Texto desencriptado correctamente")
 
 
if __name__ == '__main__':
    Crypter = Prog()
    Crypter.MainLoop()