git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36607 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			106 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #----------------------------------------------------------------------------
 | |
| # Name:         PyDocViewDemo.py
 | |
| # Purpose:      Demo of Python extensions to the wxWindows docview framework
 | |
| #
 | |
| # Author:       Peter Yared, Morgan Hua
 | |
| #
 | |
| # Created:      5/15/03
 | |
| # CVS-ID:       $Id$
 | |
| # Copyright:    (c) 2003-2005 ActiveGrid, Inc.
 | |
| # License:      wxWindows License
 | |
| #----------------------------------------------------------------------------
 | |
| 
 | |
| 
 | |
| import sys
 | |
| import os.path
 | |
| import wx
 | |
| import wx.lib.docview as docview
 | |
| import wx.lib.pydocview as pydocview
 | |
| import TextEditor
 | |
| import FindService
 | |
| _ = wx.GetTranslation
 | |
| 
 | |
| 
 | |
| #----------------------------------------------------------------------------
 | |
| # Classes
 | |
| #----------------------------------------------------------------------------
 | |
| 
 | |
| class TextEditorApplication(pydocview.DocApp):
 | |
| 
 | |
|     SPLASH = "splash.png"
 | |
|     
 | |
|     def OnInit(self):
 | |
|         # Call the super - this is important!!!
 | |
|         pydocview.DocApp.OnInit(self)
 | |
| 
 | |
|         # Show the splash dialog while everything is loading up
 | |
|         if os.path.exists(TextEditorApplication.SPLASH):
 | |
|             self.ShowSplash(TextEditorApplication.SPLASH)
 | |
| 
 | |
|         # Set the name and the icon
 | |
|         self.SetAppName(_("wxPython PyDocView Demo"))
 | |
|         self.SetDefaultIcon(pydocview.getBlankIcon())
 | |
|         
 | |
|         # Initialize the document manager
 | |
|         docManager = docview.DocManager(flags = self.GetDefaultDocManagerFlags())  
 | |
|         self.SetDocumentManager(docManager)
 | |
| 
 | |
|         # Create a template for text documents and associate it with the docmanager
 | |
|         textTemplate = docview.DocTemplate(docManager,
 | |
|                                               _("Text"),
 | |
|                                               "*.text;*.txt",
 | |
|                                               _("Text"),
 | |
|                                               _(".txt"),
 | |
|                                               _("Text Document"),
 | |
|                                               _("Text View"),
 | |
|                                               TextEditor.TextDocument,
 | |
|                                               TextEditor.TextView,
 | |
|                                               icon=pydocview.getBlankIcon())
 | |
|         docManager.AssociateTemplate(textTemplate)
 | |
| 
 | |
|         # Install services - these can install menu and toolbar items
 | |
|         textService           = self.InstallService(TextEditor.TextService())
 | |
|         findService           = self.InstallService(FindService.FindService())
 | |
|         optionsService        = self.InstallService(pydocview.DocOptionsService(supportedModes=wx.lib.docview.DOC_MDI))
 | |
|         windowMenuService     = self.InstallService(pydocview.WindowMenuService())
 | |
|         filePropertiesService = self.InstallService(pydocview.FilePropertiesService())
 | |
|         if os.path.exists(TextEditorApplication.SPLASH):
 | |
|             aboutService      = self.InstallService(pydocview.AboutService(image=wx.Image(TextEditorApplication.SPLASH)))
 | |
|         else:
 | |
|             aboutService      = self.InstallService(pydocview.AboutService())
 | |
|             
 | |
|         # Install the TextEditor's option panel into the OptionsService
 | |
|         optionsService.AddOptionsPanel(TextEditor.TextOptionsPanel)
 | |
| 
 | |
|         # If it is an MDI app open the main frame
 | |
|         self.OpenMainFrame()
 | |
|         
 | |
|         # Open any files that were passed via the command line
 | |
|         self.OpenCommandLineArgs()
 | |
|         
 | |
|         # If nothing was opened and it is an SDI app, open up an empty text document
 | |
|         if not docManager.GetDocuments() and docManager.GetFlags() & wx.lib.docview.DOC_SDI:
 | |
|             textTemplate.CreateDocument('', docview.DOC_NEW).OnNewDocument()
 | |
| 
 | |
|         # Close the splash dialog
 | |
|         if os.path.exists(TextEditorApplication.SPLASH):
 | |
|             self.CloseSplash()
 | |
|         
 | |
|         # Show the tips dialog
 | |
|         if os.path.exists("tips.txt"):
 | |
|             wx.CallAfter(self.ShowTip, wx.GetApp().GetTopWindow(), wx.CreateFileTipProvider("tips.txt", 0))
 | |
| 
 | |
|         wx.UpdateUIEvent.SetUpdateInterval(1000)  # Overhead of updating menus was too much.  Change to update every N milliseconds.
 | |
| 
 | |
|         # Tell the framework that everything is great
 | |
|         return True
 | |
| 
 | |
| 
 | |
| #----------------------------------------------------------------------------
 | |
| # Main
 | |
| #----------------------------------------------------------------------------
 | |
| 
 | |
| # Run the TextEditorApplication and do not redirect output to the wxPython error dialog
 | |
| app = TextEditorApplication(redirect=False)
 | |
| app.MainLoop()
 |