1999-09-13 19:31:50 +00:00
1999-09-17 05:55:00 +00:00
import sys , os
from wxPython . wx import *
from wxPython . html import *
import wxPython . lib . wxpTag
1999-09-13 19:31:50 +00:00
2002-01-24 01:24:39 +00:00
from Main import opj
1999-09-13 19:31:50 +00:00
#----------------------------------------------------------------------
# This shows how to catch the OnLinkClicked non-event. (It's a virtual
# method in the C++ code...)
class MyHtmlWindow ( wxHtmlWindow ) :
def __init__ ( self , parent , id , log ) :
2002-06-05 16:45:04 +00:00
wxHtmlWindow . __init__ ( self , parent , id , style = wxNO_FULL_REPAINT_ON_RESIZE )
1999-09-13 19:31:50 +00:00
self . log = log
2000-10-30 21:08:42 +00:00
EVT_SCROLLWIN ( self , self . OnScroll )
def OnScroll ( self , event ) :
2002-02-21 00:50:27 +00:00
#print 'event.GetOrientation()',event.GetOrientation()
#print 'event.GetPosition()',event.GetPosition()
2000-10-30 21:08:42 +00:00
event . Skip ( )
1999-09-13 19:31:50 +00:00
1999-12-24 03:28:55 +00:00
def OnLinkClicked ( self , linkinfo ) :
self . log . WriteText ( ' OnLinkClicked: %s \n ' % linkinfo . GetHref ( ) )
1999-09-13 19:31:50 +00:00
2000-01-31 21:07:04 +00:00
# Virtuals in the base class have been renamed with base_ on the front.
1999-12-24 03:28:55 +00:00
self . base_OnLinkClicked ( linkinfo )
def OnSetTitle ( self , title ) :
self . log . WriteText ( ' OnSetTitle: %s \n ' % title )
self . base_OnSetTitle ( title )
1999-09-13 19:31:50 +00:00
2001-10-12 23:26:38 +00:00
def OnCellMouseHover ( self , cell , x , y ) :
self . log . WriteText ( ' OnCellMouseHover: %s , ( %d %d ) \n ' % ( cell , x , y ) )
self . base_OnCellMouseHover ( cell , x , y )
def OnCellClicked ( self , cell , x , y , evt ) :
self . log . WriteText ( ' OnCellClicked: %s , ( %d %d ) \n ' % ( cell , x , y ) )
self . base_OnCellClicked ( cell , x , y , evt )
1999-09-13 19:31:50 +00:00
class TestHtmlPanel ( wxPanel ) :
def __init__ ( self , parent , frame , log ) :
2002-06-05 16:45:04 +00:00
wxPanel . __init__ ( self , parent , - 1 , style = wxNO_FULL_REPAINT_ON_RESIZE )
1999-09-13 19:31:50 +00:00
self . log = log
self . frame = frame
1999-10-07 23:00:59 +00:00
self . cwd = os . path . split ( sys . argv [ 0 ] ) [ 0 ]
if not self . cwd :
self . cwd = os . getcwd ( )
1999-09-13 19:31:50 +00:00
self . html = MyHtmlWindow ( self , - 1 , log )
self . html . SetRelatedFrame ( frame , " wxPython: (A Demonstration) -- %s " )
self . html . SetRelatedStatusBar ( 0 )
1999-11-07 07:49:09 +00:00
self . printer = wxHtmlEasyPrinting ( )
1999-09-30 07:11:20 +00:00
self . box = wxBoxSizer ( wxVERTICAL )
self . box . Add ( self . html , 1 , wxGROW )
1999-09-13 19:31:50 +00:00
subbox = wxBoxSizer ( wxHORIZONTAL )
2002-02-21 00:50:27 +00:00
btn = wxButton ( self , - 1 , " Load File " )
EVT_BUTTON ( self , btn . GetId ( ) , self . OnLoadFile )
1999-09-30 07:11:20 +00:00
subbox . Add ( btn , 1 , wxGROW | wxALL , 2 )
1999-09-13 19:31:50 +00:00
2002-02-21 00:50:27 +00:00
btn = wxButton ( self , - 1 , " Load URL " )
EVT_BUTTON ( self , btn . GetId ( ) , self . OnLoadURL )
1999-09-30 07:11:20 +00:00
subbox . Add ( btn , 1 , wxGROW | wxALL , 2 )
1999-09-13 19:31:50 +00:00
2002-02-21 00:50:27 +00:00
btn = wxButton ( self , - 1 , " With Widgets " )
EVT_BUTTON ( self , btn . GetId ( ) , self . OnWithWidgets )
1999-09-30 07:11:20 +00:00
subbox . Add ( btn , 1 , wxGROW | wxALL , 2 )
1999-09-13 19:31:50 +00:00
2002-02-21 00:50:27 +00:00
btn = wxButton ( self , - 1 , " Back " )
EVT_BUTTON ( self , btn . GetId ( ) , self . OnBack )
1999-09-30 07:11:20 +00:00
subbox . Add ( btn , 1 , wxGROW | wxALL , 2 )
1999-09-13 19:31:50 +00:00
2002-02-21 00:50:27 +00:00
btn = wxButton ( self , - 1 , " Forward " )
EVT_BUTTON ( self , btn . GetId ( ) , self . OnForward )
1999-11-07 07:49:09 +00:00
subbox . Add ( btn , 1 , wxGROW | wxALL , 2 )
2002-02-21 00:50:27 +00:00
btn = wxButton ( self , - 1 , " Print " )
EVT_BUTTON ( self , btn . GetId ( ) , self . OnPrint )
subbox . Add ( btn , 1 , wxGROW | wxALL , 2 )
btn = wxButton ( self , - 1 , " View Source " )
EVT_BUTTON ( self , btn . GetId ( ) , self . OnViewSource )
1999-09-30 07:11:20 +00:00
subbox . Add ( btn , 1 , wxGROW | wxALL , 2 )
1999-09-17 05:55:00 +00:00
1999-09-30 07:11:20 +00:00
self . box . Add ( subbox , 0 , wxGROW )
self . SetSizer ( self . box )
self . SetAutoLayout ( true )
1999-09-17 05:55:00 +00:00
# A button with this ID is created on the widget test page.
EVT_BUTTON ( self , wxID_OK , self . OnOk )
1999-09-13 19:31:50 +00:00
self . OnShowDefault ( None )
def OnShowDefault ( self , event ) :
2002-01-24 01:24:39 +00:00
name = os . path . join ( self . cwd , opj ( ' data/test.htm ' ) )
1999-09-17 05:55:00 +00:00
self . html . LoadPage ( name )
1999-09-13 19:31:50 +00:00
def OnLoadFile ( self , event ) :
1999-09-17 05:55:00 +00:00
dlg = wxFileDialog ( self , wildcard = ' *.htm* ' , style = wxOPEN )
if dlg . ShowModal ( ) :
path = dlg . GetPath ( )
self . html . LoadPage ( path )
dlg . Destroy ( )
1999-09-13 19:31:50 +00:00
2002-02-21 00:50:27 +00:00
def OnLoadURL ( self , event ) :
dlg = wxTextEntryDialog ( self , " Enter a URL " )
if dlg . ShowModal ( ) :
url = dlg . GetValue ( )
self . html . LoadPage ( url )
dlg . Destroy ( )
1999-09-13 19:31:50 +00:00
def OnWithWidgets ( self , event ) :
1999-10-07 23:00:59 +00:00
os . chdir ( self . cwd )
2002-01-24 01:24:39 +00:00
name = os . path . join ( self . cwd , opj ( ' data/widgetTest.htm ' ) )
1999-09-17 05:55:00 +00:00
self . html . LoadPage ( name )
1999-10-07 23:00:59 +00:00
1999-09-17 05:55:00 +00:00
def OnOk ( self , event ) :
self . log . WriteText ( " It works! \n " )
1999-09-13 19:31:50 +00:00
def OnBack ( self , event ) :
if not self . html . HistoryBack ( ) :
wxMessageBox ( " No more items in history! " )
1999-09-17 05:55:00 +00:00
1999-09-13 19:31:50 +00:00
def OnForward ( self , event ) :
if not self . html . HistoryForward ( ) :
wxMessageBox ( " No more items in history! " )
1999-09-17 05:55:00 +00:00
def OnViewSource ( self , event ) :
from wxPython . lib . dialogs import wxScrolledMessageDialog
source = self . html . GetParser ( ) . GetSource ( )
dlg = wxScrolledMessageDialog ( self , source , ' HTML Source ' )
dlg . ShowModal ( )
dlg . Destroy ( )
1999-11-07 07:49:09 +00:00
def OnPrint ( self , event ) :
2001-07-28 03:06:02 +00:00
##self.printer.GetPageSetupData().SetMarginTopLeft((100,100))
1999-11-07 07:49:09 +00:00
self . printer . PrintFile ( self . html . GetOpenedPage ( ) )
1999-09-13 19:31:50 +00:00
#----------------------------------------------------------------------
def runTest ( frame , nb , log ) :
win = TestHtmlPanel ( nb , frame , log )
2002-06-26 20:08:30 +00:00
print wxWindow_FindFocus ( )
1999-09-13 19:31:50 +00:00
return win
#----------------------------------------------------------------------
overview = """ \
wxHtmlWindow is capable of parsing and rendering most simple HTML tags .
It is not intended to be a high - end HTML browser . If you ' re looking for something like that try http://www.mozilla.org - there ' s a chance you ' ll be able to make their widget wxWindows-compatible. I ' m sure everyone will enjoy your work in that case . . .
"""
1999-09-17 05:55:00 +00:00