- import wx 
-   
- ID_STAT = 2 
- ID_TOOL = 3 
-   
-   
- class Apple(wx.Frame): 
-     def __init__(self, parent, id, title): 
-         wx.Frame.__init__(self, parent, id, title, size=(550, 580)) 
-          
-         
-         menubar = wx.MenuBar() 
-         file = wx.Menu() 
-         new = wx.MenuItem(file, 101, '&New\tCtrl+N', 'Creates a new document') 
-         file.AppendItem(new) 
-          
-         open = wx.MenuItem(file, 102, '&Open\tCtrl+O', 'Open an existing file') 
-         file.AppendItem(open) 
-         save = wx.MenuItem(file, 103, '&Save\tCtrl+S', 'Save the file') 
-         file.AppendItem(save) 
-         saveas = wx.MenuItem(file, 104, 'Save &As...\tShift+Ctrl+S', 'Save the file with a different name') 
-         file.AppendItem(saveas) 
-         file.AppendSeparator() 
-         quit = wx.MenuItem(file, 1, '&Quit\tCtrl+Q', 'Exit program') 
-         file.AppendItem(quit) 
-   
-         edit = wx.Menu() 
-         cut = wx.MenuItem(edit, 106, '&Cut\tCtrl+X', 'Cut the Selection') 
-         edit.AppendItem(cut) 
-         copy = wx.MenuItem(edit, 107,  '&Copy\tCtrl+C', 'Copy the Selection') 
-         edit.AppendItem(copy) 
-         paste = wx.MenuItem(edit, 108, '&Paste\tCtrl+V', 'Paste text from clipboard') 
-         edit.AppendItem(paste) 
-         delete = wx.MenuItem(edit, 109, '&Delete', 'Delete the selected text') 
-         edit.AppendItem(delete) 
-         view = wx.Menu() 
-         self.shst = view.Append(ID_STAT, 'Show statusbar', 'Show Statusbar', kind=wx.ITEM_CHECK) 
-         self.shtl = view.Append(ID_TOOL, 'Show toolbar', 'Show Toolbar', kind=wx.ITEM_CHECK) 
-         view.Check(ID_STAT, True) 
-         view.Check(ID_TOOL, True) 
-   
-         self.Bind(wx.EVT_MENU, self.NewApplication, id=101) 
-         self.Bind(wx.EVT_MENU, self.OnOpenFile, id=102) 
-         self.Bind(wx.EVT_MENU, self.OnSaveFile, id=103) 
-         self.Bind(wx.EVT_MENU, self.OnSaveAsFile, id=104) 
-         self.Bind(wx.EVT_MENU, self.OnCut, id=106) 
-         self.Bind(wx.EVT_MENU, self.OnCopy, id=107) 
-         self.Bind(wx.EVT_MENU, self.OnPaste, id=108) 
-         self.Bind(wx.EVT_MENU, self.OnDelete, id=109) 
-         self.Bind(wx.EVT_MENU, self.OnSelectAll, id=110) 
-          
-   
-         self.Bind(wx.EVT_MENU, self.ToggleStatusBar, id=ID_STAT) 
-         self.Bind(wx.EVT_MENU, self.ToggleToolBar, id=ID_TOOL) 
-         self.Bind(wx.EVT_MENU, self.OnQuit, id=1) 
-   
-         menubar.Append(file, '&File') 
-         menubar.Append(edit, '&Edit') 
-         menubar.Append(view, '&View') 
-         self.SetMenuBar(menubar) 
-   
-         self.count = 5 
-          
-   
-         self.toolbar = self.CreateToolBar(wx.TB_HORIZONTAL) 
-         self.toolbar.AddLabelTool(wx.ID_EXIT, '', wx.Bitmap('Lamp/exit.png')) 
-         self.toolbar.AddLabelTool(3, 'que', wx.Bitmap('Lamp/pluma.png')) 
-         self.toolbar.AddLabelTool(3, '', wx.Bitmap('Lamp/lapiz.png')) 
-         self.toolbar.AddLabelTool(wx.ID_UNDO, '', wx.Bitmap('Lamp/exit.png')) 
-         self.toolbar.AddLabelTool(wx.ID_REDO, '', wx.Bitmap('Lamp/exit.png')) 
-         self.toolbar.EnableTool(wx.ID_REDO, False) 
-         self.toolbar.Realize() 
-   
-         self.Bind(wx.EVT_TOOL, self.OnExit, id=wx.ID_EXIT) 
-         self.Bind(wx.EVT_TOOL, self.OnUndo, id=wx.ID_UNDO) 
-         self.Bind(wx.EVT_TOOL, self.OnRedo, id=wx.ID_REDO) 
-   
-         wx.TextCtrl(self, -1) 
-          
-   
-         self.statusbar = self.CreateStatusBar() 
-         self.Centre() 
-         self.Show(True) 
-         #aqui 
-     def NewApplication(self, event): 
-         editor = Editor(None, -1, 'Editor') 
-         editor.Centre() 
-         editor.Show() 
-   
-     def OnOpenFile(self, event): 
-         file_name = os.path.basename(self.last_name_saved) 
-         if self.modify: 
-             dlg = wx.MessageDialog(self, 'Save changes?', '', wx.YES_NO | wx.YES_DEFAULT | 
-      wx.CANCEL | wx.ICON_QUESTION) 
-             val = dlg.ShowModal() 
-             if val == wx.ID_YES: 
-                 self.OnSaveFile(event) 
-                 self.DoOpenFile() 
-             elif val == wx.ID_CANCEL: 
-                 dlg.Destroy() 
-             else: 
-                 self.DoOpenFile() 
-         else: 
-             self.DoOpenFile() 
-   
-     def DoOpenFile(self): 
-         wcd = 'All files (*)|*|Editor files (*.ef)|*.ef|' 
-         dir = os.getcwd() 
-         open_dlg = wx.FileDialog(self, message='Choose a file', defaultDir=dir, defaultFile='',  
-             wildcard=wcd, style=wx.OPEN|wx.CHANGE_DIR) 
-         if open_dlg.ShowModal() == wx.ID_OK: 
-             path = open_dlg.GetPath() 
-   
-             try: 
-                 file = open(path, 'r') 
-                 text = file.read() 
-                 file.close() 
-                 if self.text.GetLastPosition(): 
-                     self.text.Clear() 
-                 self.text.WriteText(text) 
-                 self.last_name_saved = path 
-                 self.statusbar.SetStatusText('', 1) 
-                 self.modify = False 
-   
-             except IOError, error: 
-                 dlg = wx.MessageDialog(self, 'Error opening file\n' + str(error)) 
-                 dlg.ShowModal() 
-   
-             except UnicodeDecodeError, error: 
-                 dlg = wx.MessageDialog(self, 'Error opening file\n' + str(error)) 
-                 dlg.ShowModal() 
-   
-         open_dlg.Destroy() 
-   
-     def OnSaveFile(self, event): 
-         if self.last_name_saved: 
-   
-             try: 
-                 file = open(self.last_name_saved, 'w') 
-                 text = self.text.GetValue() 
-                 file.write(text) 
-                 file.close() 
-                 self.statusbar.SetStatusText(os.path.basename(self.last_name_saved) + ' saved', 0) 
-                 self.modify = False 
-                 self.statusbar.SetStatusText('', 1) 
-   
-             except IOError, error: 
-                 dlg = wx.MessageDialog(self, 'Error saving file\n' + str(error)) 
-                 dlg.ShowModal() 
-         else: 
-             self.OnSaveAsFile(event) 
-   
-     def OnSaveAsFile(self, event): 
-         wcd='All files(*)|*|Editor files (*.ef)|*.ef|' 
-         dir = os.getcwd() 
-         save_dlg = wx.FileDialog(self, message='Save file as...', defaultDir=dir, defaultFile='',  
-             wildcard=wcd, style=wx.SAVE | wx.OVERWRITE_PROMPT) 
-         if save_dlg.ShowModal() == wx.ID_OK: 
-             path = save_dlg.GetPath() 
-   
-             try: 
-                 file = open(path, 'w') 
-                 text = self.text.GetValue() 
-                 file.write(text) 
-                 file.close() 
-                 self.last_name_saved = os.path.basename(path) 
-                 self.statusbar.SetStatusText(self.last_name_saved + ' saved', 0) 
-                 self.modify = False 
-                 self.statusbar.SetStatusText('', 1) 
-   
-             except IOError, error: 
-                 dlg = wx.MessageDialog(self, 'Error saving file\n' + str(error)) 
-                 dlg.ShowModal() 
-         save_dlg.Destroy() 
-   
-     def OnCut(self, event): 
-         self.text.Cut() 
-   
-     def OnCopy(self, event): 
-         self.text.Copy() 
-   
-     def OnPaste(self, event): 
-         self.text.Paste() 
-   
-     def OnDelete(self, event): 
-         frm, to = self.text.GetSelection() 
-         self.text.Remove(frm, to) 
-   
-     def OnSelectAll(self, event): 
-         self.text.SelectAll() 
-   
-     def OnTextChanged(self, event): 
-         self.modify = True 
-         self.statusbar.SetStatusText(' modified', 1) 
-         event.Skip() 
-   
-     def OnKeyDown(self, event): 
-         keycode = event.GetKeyCode() 
-         if keycode == wx.WXK_INSERT: 
-             if not self.replace: 
-                 self.statusbar.SetStatusText('INS', 2) 
-                 self.replace = True 
-             else: 
-                 self.statusbar.SetStatusText('', 2) 
-                 self.replace = False 
-         event.Skip() 
-   
-     def OnAbout(self, event): 
-         dlg = wx.MessageDialog(self, '\tEditor\t\n Another Tutorial\njan bodnar 2005-2006', 
-                                 'About Editor', wx.OK | wx.ICON_INFORMATION) 
-         dlg.ShowModal() 
-         dlg.Destroy() 
-   
-   
-         #termina 
-   
-     def OnQuit(self, event): 
-         self.Close() 
-   
-     def OnUndo (self, event): 
-         if self.count > 1 and self.count <=5: 
-             self.count = self.count - 1 
-             if self.count == 1: 
-                 self.toolbar.EnableTool(wx.ID_UNDO, False) 
-   
-         if self.count == 4: 
-             self.toolbar.EnableTool(wx.ID_REDO, True) 
-   
-     def OnRedo(self, event): 
-         if self.count < 5 and self.count >= 1: 
-             self.count = self.count + 1 
-   
-         if self.count == 5: 
-             self.toolbar.EnableTool(wx.ID_REDO, False) 
-   
-         if self.count == 2: 
-             self.toolbar.EnableTool(wx.ID_UNDO, True) 
-   
-     def OnExit(self, event): 
-         self.Close() 
-   
-   
-     def ToggleStatusBar(self, event): 
-         if self.shst.IsChecked(): 
-             self.statusbar.Show() 
-         else: 
-             self.statusbar.Hide() 
-   
-     def ToggleToolBar(self, event): 
-         if self.shtl.IsChecked(): 
-             self.toolbar.Show() 
-         else: 
-             self.toolbar.Hide() 
-   
- app = wx.App() 
- Apple(None, 1, 'Editor de texto') 
- app.MainLoop()