|
From: John H. <ec...@ya...> - 2009-10-29 03:37:42
|
Without knowing what I am doing, I used htmlWindow as a sample and created a PDFWindow wrapper. The problem is that when it chokes at the line:
wx.activex.ActiveXWindow.__init__(self, parent,
wx.activex.CLSID('{CA8A9780-280D-11CF-A24D-444553540000}'),
ID, pos, size, style, name)
inside wx\lib\pdfwin.py. I have no clue what to do.
"""
__version__ = "$Revision: 1.17 $"
__date__ = "$Date: 2004/05/13 02:40:24 $"
"""
import wx
from wx.lib import pdfwin
from PythonCard import event, log, widget
class PDFWindowSpec(widget.WidgetSpec):
def __init__(self):
events = []
attributes = {
'size' : { 'presence' : 'optional', 'default' : [ 50, 50 ] },
'text' : { 'presence' : 'optional', 'default' : '' },
}
widget.WidgetSpec.__init__(self, 'PDFWindow', 'Widget', events, attributes )
class PDFWindow(widget.Widget, pdfwin.PDFWindow):
"""
An PDF window.
"""
_spec = PDFWindowSpec()
def __init__(self, aParent, aResource):
self._addressField = None
id=widget.makeNewId(aResource.id)
pdfwin.PDFWindow.__init__(
self,
aParent,
id,
aResource.position,
aResource.size,
style=wx.SUNKEN_BORDER,
#style = wx.HW_SCROLLBAR_AUTO | wx.CLIP_SIBLINGS,
name = aResource.name
)
widget.Widget.__init__(self, aParent, aResource)
self._setText(aResource.text)
self._bindEvents(event.WIDGET_EVENTS)
def setAddressField(self, field):
self._addressField = field
def _getText(self) :
return self.GetOpenedFile()
def _setText(self, aString):
if aString == '' or aString[0] == '<':
self.SetFile(aString)
else:
# filename
self.LoadFile(aString)
#self._delegate.Refresh()
def base_LoadFile(self, url):
log.debug("base_LoadFile " + url)
if self._addressField is not None:
self._addressField.text = url
log.debug("loaded")
pdfwin.PDFWindow.base_LoadFile(self, url)
def LoadFile(self, url):
log.debug("LoadFile " + url)
if self._addressField is not None:
self._addressField.text = url
log.debug("loaded")
pdfwin.PDFWindow.LoadFile(self, url)
def SetFile(self, text):
log.debug("SetFile " + text)
#if self._addressField is not None:
# self._addressField.text = text
# log.debug("set")
pdfwin.PDFWindow.SetFile(self, text)
def OnLinkClicked(self, link):
log.debug("OnLinkClicked " + str(link))
if self._addressField is not None:
url = self.GetOpenedFile()
log.debug("url: " + url)
baseURL = url[:url.rfind('/')]
log.debug("baseURL: " + baseURL)
href = link.GetHref()
log.debug("href: " + href)
if href.find('://') != -1:
self._addressField.text = href
else:
self._addressField.text = baseURL + '/' + href
log.debug("full url: " + self._addressField.text)
# Virtuals in the base class have been renamed with base_ on the front.
pdfwin.PDFWindow.base_OnLinkClicked(self, link)
text = property(_getText, _setText)
import sys
from PythonCard import registry
registry.Registry.getInstance().register(sys.modules[__name__].PDFWindow)
--
John Henry
----- Original Message ----
> From: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
> To: John Henry <kim...@ya...>
> Cc: pyt...@li...
> Sent: Wed, October 28, 2009 3:11:25 AM
> Subject: Re: [Pythoncard-users] PDFWindow
>
> On 28/10/09 04:08, John Henry wrote:
> > What ever happened to PDFWindow for Pythoncard? Did it ever happened?
> >
> > http://osdir.com/ml/python.pythoncard/2004-04/msg00116.html
>
> Probably not....this is the first I've heard of it, not having delved
> too deeply into the mailing list archives.
>
> With, I suspect, quite a few of the PythonCard users using non-Windows
> development machines (including Kevin) maybe one of the factors is the
> use of ActiveX?
>
> --
> XXXXXXXXXXX
>
>
> ------------------------------------------------------------------------------
> Come build with us! The BlackBerry(R) Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart your
> developing skills, take BlackBerry mobile applications to market and stay
> ahead of the curve. Join us from November 9 - 12, 2009. Register now!
> http://p.sf.net/sfu/devconference
> _______________________________________________
> Pythoncard-users mailing list
> Pyt...@li...
> https://lists.sourceforge.net/lists/listinfo/pythoncard-users
|