mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2026-01-04 19:10:09 +01:00
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:
@@ -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')
|
||||
|
||||
33
samples/wxptag/widgetTest.html
Normal file
33
samples/wxptag/widgetTest.html
Normal 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>
|
||||
<center><wxp module="wx" class="Button" width="50%">
|
||||
<param name="label" value="It works!">
|
||||
<param name="id" value="ID_OK">
|
||||
</wxp></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
30
samples/wxptag/wxpTest.py
Normal 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()
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user