woking on wxptag issues...

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxPython/Phoenix/trunk@73842 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2013-04-24 02:42:09 +00:00
parent 223d0da20e
commit f8fc11f5de
4 changed files with 71 additions and 9 deletions

View File

@@ -36,8 +36,7 @@ def run():
c = module.find('wxHtmlWinTagHandler')
assert isinstance(c, etgtools.ClassDef)
#c.addCppMethod('wxHtmlWinParser*', 'GetParser', '()',
# body="""return self->m_WParser;""")
c.addPrivateCopyCtor()
c = module.find('wxHtmlWinParser')

View File

@@ -0,0 +1,33 @@
<html>
<head>
<title>wxHTML does wxPython!</title>
</head>
<body bgcolor="#00CCFF">
<h2>Mixing wxPython and wxHTML</h2>
The widgets on this page were created dynamically on the fly by a
custom wxTagHandler found in wx.lib.wxpTag. You can look at the
sources and doc-string in the wxPython library at wx/lib/wxpTag.py.
<p>
The button below is added to the page like this:
<pre>
&lt;center>&lt;wxp module="wx" class="Button" width="50%">
&lt;param name="label" value="It works!">
&lt;param name="id" value="ID_OK">
&lt;/wxp>&lt;/center>
</pre>
<hr>
<center>
<wxp module="wx" class="Button" width="50%">
<param name="label" value="It works!">
<param name="id" value="ID_OK">
</wxp>
</center>
</body></html>

30
samples/wxptag/wxpTest.py Normal file
View File

@@ -0,0 +1,30 @@
import sys, os
import wx
import wx.html
import wx.lib.wxpTag
class HtmlWindow(wx.html.HtmlWindow):
def __init__(self, parent, id, size=(600,400)):
wx.html.HtmlWindow.__init__(self,parent, id, size=size)
class Frame(wx.Frame):
def __init__(self, title):
wx.Frame.__init__(self, None, title=title, pos=(150,150), size=(600,400))
self.Bind(wx.EVT_CLOSE, self.OnClose)
hwin = HtmlWindow(self, -1, size=(600,400))
name = os.path.join(os.path.dirname(sys.argv[0]), 'widgetTest.html')
hwin.LoadPage(name)
def OnClose(self, event):
self.Destroy()
app = wx.App()
top = Frame("wxpTest")
top.Show()
import wx.lib.inspection
wx.lib.inspection.InspectionTool().Show()
app.MainLoop()

View File

@@ -1,12 +1,11 @@
#----------------------------------------------------------------------
# Name: wxPython.lib.wxpTag
# Name: wx.lib.wxpTag
# Purpose: A wxHtmlTagHandler that knows how to build and place
# wxPython widgets onto web pages.
#
# Author: Robin Dunn
#
# Created: 13-Sept-1999
# RCS-ID: $Id$
# Copyright: (c) 1999 by Total Control Software
# Licence: wxWindows license
#----------------------------------------------------------------------
@@ -16,7 +15,7 @@
#
'''
wxPython.lib.wxpTag
wx.lib.wxpTag
This module contains a wxHtmlTagHandler that knows how to build
and place wxPython widgets onto wxHtmlWindow web pages.
@@ -140,8 +139,8 @@ class wxpTagHandler(wx.html.HtmlWinTagHandler):
className = tag.GetParam('CLASS')
self.ctx.classObj = getattr(self.ctx.classMod, className)
if type(self.ctx.classObj) not in [ types.ClassType, types.TypeType]:
raise TypeError, "WXP tag attribute CLASS must name a class"
#if type(self.ctx.classObj) not in [ types.ClassType, types.TypeType]:
# raise TypeError, "WXP tag attribute CLASS must name a class"
# now look for width and height
width = -1
@@ -162,13 +161,14 @@ class wxpTagHandler(wx.html.HtmlWinTagHandler):
# create the object
parent = self.GetParser().GetWindowInterface().GetHTMLWindow()
if parent:
obj = self.ctx.classObj(parent, **self.ctx.kwargs)
obj.Show(True)
# add it to the HtmlWindow
self.GetParser().GetContainer().InsertCell(
wx.html.HtmlWidgetCell(obj, self.ctx.floatWidth))
cell = wx.html.HtmlWidgetCell(obj, self.ctx.floatWidth)
self.GetParser().GetContainer().InsertCell(cell)
self.ctx = None
return True