Re: PDFWindow

John Henry <[email protected]> Wed, 28 Oct 2009 20:37:26 -0700 (PDT)
Newsgroups gmane.comp.python.pythoncard
Message-ID <[email protected]>
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: Neil Hughes <[email protected]>
> To: John Henry <[email protected]>
> Cc: [email protected]
> 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?
> 
> -- 
> Neil Hughes
> 
> 
> ------------------------------------------------------------------------------
> 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
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/pythoncard-users


------------------------------------------------------------------------------
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