import wx
import os
class text(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, size = (600, 550))
#barra de menu
menubar = wx.MenuBar()
#menu: contenido
menu = wx.Menu() #archivo
nuev = wx.Menu()
nuev.Append(100, "&Nuevo\tCtrl+N", 'Nuevo archivo')
nuev.Append(200, "Nueva &Ventana\tCtrl+O", 'Nueva ventana para otro archivo')
menu.AppendMenu(-1, "Nuevo", nuev)
menu.Append(2, "&Abrir\tCtrl+A", "Abrir Archivo existente")
menu.Append(3, "&Guardar\tCtrl+G", "Guardar archivo")
menu.AppendSeparator()
menu.Append(5, "&Salir\tCtrl+Q", "Salir del programa")
edit = wx.Menu()
edit.Append(10, "&Deshacer\tCtrl+Z", 'deshacer ultimo')
edit.Append(11, "&Rehacer\tCtrl+U", 'hacer denuevo')
edit.AppendSeparator()
edit.Append(12, "&Seleccionar Todo\tCtrl+E", 'seleccionar todo el texto')
edit.AppendSeparator()
edit.Append(13, "&Cortar\tCtrl+X", 'cortar texto seleccionado')
edit.Append(14, "&Pegar\tCtrl+V", 'pegar texto')
edit.Append(15, "Cop&iar\tCtrl+C", 'Copiar texto seleccionado')
help = wx.Menu()
help.Append(20, "&Acerca de...", 'Sobre este programa')
menubar.Append(menu, "&Archivo")
menubar.Append(edit, "&Edicion")
menubar.Append(help, "A&yuda")
self.SetMenuBar(menubar)
#texto enrikecido
self.text = wx.TextCtrl(self, -1, style = wx.TE_MULTILINE|wx.TE_RICH)
self.text.SetInsertionPoint(0)
points = self.text.GetFont().GetPointSize()
f = wx.Font(points + 2, wx.MODERN, wx.NORMAL, wx.BOLD, False)
self.text.SetStyle(13, 12, wx.TextAttr("white", wx.NullColour, f))
self.text.SetBackgroundColour('Black')
#eventos
self.Bind(wx.EVT_MENU, self.OnSalir, id=5)
self.Bind(wx.EVT_MENU, self.OnVentan, id=200)
self.Bind(wx.EVT_MENU, self.OnOpen, id=2)
self.Bind(wx.EVT_MENU, self.OnSave, id=3)
#mostrar
self.filename = ""
self.dirname = ''
self.CreateStatusBar()
self.Centre()
self.createToolBar()
self.Show(True)
def OnOpen(self, event):
dlg = wx.FileDialog(self, "Escojer archivo", self.dirname, "", "*.*", wx.OPEN)
if dlg.ShowModal() == wx.ID_OK:
self.filename=dlg.GetFilename()
self.dirname=dlg.GetDirectory()
filehandle=open(os.path.join(self.dirname, self.filename),'r')
self.text.SetValue(filehandle.read())
filehandle.close()
self.SetTitle("Edicion"+self.filename)
dlg.Destroy()
def OnSave(self, event):
# abrir el archivo
dlg = wx.FileDialog(self, "Numbre del archivo", self.dirname, "", "*.*", \
wx.SAVE | wx.OVERWRITE_PROMPT)
if dlg.ShowModal() == wx.ID_OK:
# grabar el contenido
itcontains = self.text.GetValue()
# Abrir el archivo
self.filename=dlg.GetFilename()
self.dirname=dlg.GetDirectory()
filehandle=open(os.path.join(self.dirname, self.filename),'w')
filehandle.write(itcontains)
filehandle.close()
dlg.Destroy()
def OnSalir(self, event):
self.Close()
def OnVentan(self, event):
editor = text(None, -1, 'Text Editor')
editor.Centre()
editor.Show()
def createToolBar(self):
toolbar = self.CreateToolBar()
toolbar.AddSimpleTool(200, wx.Bitmap('icns/Nuevo.png'), 'Nuevo', '')
toolbar.AddSimpleTool(2, wx.Bitmap('icns/abrir.png'), 'Abrir', '')
toolbar.AddSimpleTool(3, wx.Bitmap('icns/Guardar.png'), 'Guardar', '')
toolbar.AddSeparator()
toolbar.AddSimpleTool(33, wx.Bitmap('icns/cortar.png'), 'Cortar', '')
toolbar.AddSimpleTool(34, wx.Bitmap('icns/copiar.png'), 'copiar', '')
toolbar.AddSimpleTool(35, wx.Bitmap('icns/pegar.png'), 'Pegar', '')
toolbar.AddSeparator()
toolbar.AddSimpleTool(36, wx.Bitmap('icns/des.png'), 'Deshacer', '')
toolbar.AddSimpleTool(37, wx.Bitmap('icns/rea.png'), 'Rehacer', '')
toolbar.Realize()
##Eventos de herramientas
app = wx.App()
text(None, -1, 'Hipertext Editor')
app.MainLoop()