]>
git.saurik.com Git - wxWidgets.git/blob - utils/wxPython/demo/wxHtmlWindow.py
4 from wxPython
. wx
import *
5 from wxPython
. html
import *
6 from wxPython
. lib
. sizers
import *
7 import wxPython
. lib
. wxpTag
9 #----------------------------------------------------------------------
11 # This shows how to catch the OnLinkClicked non-event. (It's a virtual
12 # method in the C++ code...)
13 class MyHtmlWindow ( wxHtmlWindow
):
14 def __init__ ( self
, parent
, id , log
):
15 wxHtmlWindow
.__ init
__ ( self
, parent
, id )
18 def OnLinkClicked ( self
, link
):
19 self
. log
. WriteText ( 'OnLinkClicked: %s \n ' % link
)
21 # Virtuals in the base class have been renamed with base_ on the font.
22 self
. base_OnLinkClicked ( link
)
26 class TestHtmlPanel ( wxPanel
):
27 def __init__ ( self
, parent
, frame
, log
):
28 wxPanel
.__ init
__ ( self
, parent
, - 1 )
33 self
. html
= MyHtmlWindow ( self
, - 1 , log
)
34 self
. html
. SetRelatedFrame ( frame
, "wxPython: (A Demonstration) -- %s " )
35 self
. html
. SetRelatedStatusBar ( 0 )
37 self
. box
= box
. wxBoxSizer ( wxVERTICAL
)
38 self
. box
. Add ( self
. html
, 1 )
40 subbox
= wxBoxSizer ( wxHORIZONTAL
)
41 btn
= wxButton ( self
, 1201 , "Show Default" )
42 EVT_BUTTON ( self
, 1201 , self
. OnShowDefault
)
45 btn
= wxButton ( self
, 1202 , "Load File" )
46 EVT_BUTTON ( self
, 1202 , self
. OnLoadFile
)
49 btn
= wxButton ( self
, 1203 , "With Widgets" )
50 EVT_BUTTON ( self
, 1203 , self
. OnWithWidgets
)
53 btn
= wxButton ( self
, 1204 , "Back" )
54 EVT_BUTTON ( self
, 1204 , self
. OnBack
)
57 btn
= wxButton ( self
, 1205 , "Forward" )
58 EVT_BUTTON ( self
, 1205 , self
. OnForward
)
61 btn
= wxButton ( self
, 1206 , "View Source" )
62 EVT_BUTTON ( self
, 1206 , self
. OnViewSource
)
67 # A button with this ID is created on the widget test page.
68 EVT_BUTTON ( self
, wxID_OK
, self
. OnOk
)
70 self
. OnShowDefault ( None )
74 def OnSize ( self
, event
):
75 size
= self
. GetClientSize ()
79 def OnShowDefault ( self
, event
):
80 name
= os
. path
. join ( os
. path
. split ( sys
. argv
[ 0 ])[ 0 ], 'data/test.htm' )
81 self
. html
. LoadPage ( name
)
84 def OnLoadFile ( self
, event
):
85 dlg
= wxFileDialog ( self
, wildcard
= '*.htm*' , style
= wxOPEN
)
88 self
. html
. LoadPage ( path
)
92 def OnWithWidgets ( self
, event
):
93 os
. chdir ( os
. path
. split ( sys
. argv
[ 0 ])[ 0 ])
94 name
= os
. path
. join ( os
. path
. split ( sys
. argv
[ 0 ])[ 0 ], 'data/widgetTest.htm' )
95 self
. html
. LoadPage ( name
)
96 #self.html.SetPage(_widgetTest)
98 def OnOk ( self
, event
):
99 self
. log
. WriteText ( "It works! \n " )
101 def OnBack ( self
, event
):
102 if not self
. html
. HistoryBack ():
103 wxMessageBox ( "No more items in history!" )
106 def OnForward ( self
, event
):
107 if not self
. html
. HistoryForward ():
108 wxMessageBox ( "No more items in history!" )
111 def OnViewSource ( self
, event
):
112 from wxPython
. lib
. dialogs
import wxScrolledMessageDialog
113 source
= self
. html
. GetParser (). GetSource ()
114 dlg
= wxScrolledMessageDialog ( self
, source
, 'HTML Source' )
119 #----------------------------------------------------------------------
121 def runTest ( frame
, nb
, log
):
122 win
= TestHtmlPanel ( nb
, frame
, log
)
126 #----------------------------------------------------------------------
133 wxHtmlWindow is capable of parsing and rendering most simple HTML tags.
135 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...
145 The widgets on this page were created dynamically on the fly by a custom
146 wxTagHandler found in wxPython.lib.wxpTag.
150 <wxp class="wxButton" width="50%">
151 <param name="label" value="It works!">
152 <param name="id" value="wxID_OK">