main logo
Subject: [dabo-dev] dabo Commit 4104
Author: Ed Leafe
Posted: 2008/05/30 16:31:31
 
View Entire Thread
New Search


dabo Commit
Revision 4104
Date: 2008-05-30 13:31:31 -0700 (Fri, 30 May 2008)
Author: Ed
Trac: http://svn.dabodev.com/trac/dabo/changeset/4104

Changed:
U trunk/dabo/ui/uiwx/dHtmlBox.py

Log:
Added the property 'OpenLinksInBrowser'. When this is True, and the webbrowser module is available, clicking on a link will open that URL in the default web browser instead of in the control itself.


Diff:
Modified: trunk/dabo/ui/uiwx/dHtmlBox.py
===================================================================
--- trunk/dabo/ui/uiwx/dHtmlBox.py 2008-05-29 13:13:57 UTC (rev 4103)
+++ trunk/dabo/ui/uiwx/dHtmlBox.py 2008-05-30 20:31:31 UTC (rev 4104)
@@ -14,12 +14,15 @@
dabo.ui.loadUI("wx")
import dControlMixin as cm
from dabo.ui import makeDynamicProperty
+try:
+ import webbrowser as wb
+except ImportError:
+ wb = None
+

-
class dHtmlBox(cm.dControlMixin, wx.html.HtmlWindow):
- """Creates a scrolled panel that can load and display html pages
-
- The Html Window can load any html text, file, or url that is fed to it.
+ """Creates a scrolled panel that can load and display html pages. The Html Window
+ can load any html text, file, or url that is fed to it.
"""
def __init__(self, parent, properties=None, attProperties=None, *args, **kwargs):
self._horizontalScroll = self._verticalScroll = True
@@ -29,6 +32,7 @@
kwargs["style"] = wx.TAB_TRAVERSAL
self._source = self._page = ""
self._respondToLinks = True
+ self._openLinksInBrowser = False
cm.dControlMixin.__init__(self, preClass, parent, properties, attProperties,
*args, **kwargs)
self.SetScrollRate(10, 10)
@@ -54,7 +58,11 @@

def __onLinkClicked(self, evt):
if self.RespondToLinks:
- self.Page = evt.href
+ if wb and self.OpenLinksInBrowser:
+ wb.open(evt.href, new=True)
+ else:
+ # Open in the control itself
+ self.Page = evt.href


def setImageURLs(self, val):
@@ -92,6 +100,16 @@
self.SetScrollRate({True:rt[0], False:0}[val], rt[1])


+ def _getOpenLinksInBrowser(self):
+ return self._openLinksInBrowser
+
+ def _setOpenLinksInBrowser(self, val):
+ if self._constructed():
+ self._openLinksInBrowser = val
+ else:
+ self._properties["OpenLinksInBrowser"] = val
+
+
def _getPage(self):
return self._page

@@ -163,6 +181,9 @@
HorizontalScroll = property(_getHorizontalScroll, _setHorizontalScroll, None,
_("Controls whether this object will scroll horizontally (default=True) (bool)"))

+ OpenLinksInBrowser = property(_getOpenLinksInBrowser, _setOpenLinksInBrowser, None,
+ _("When True, clicking on an HREF link will open the URL in the default web browser instead of in the control itself. Default=False. (bool)"))
+
Page = property(_getPage, _setPage, None,
_("URL or file path of the current page being displayed. (default='') (string)"))

@@ -189,13 +210,13 @@

class _dHtmlBox_test(dHtmlBox):
def initProperties(self):
- self.Size = (300,200)
+ self.Size = (600, 450)
+ self.OpenLinksInBrowser = True

def afterInit(self):
- self.Source = self.PageData()
-
+ self.Source = self.getPageData()

- def PageData(self):
+ def getPageData(self):
return """<html>
<body bgcolor="#ACAA60">
<center>





 
©2008 Ed Leafe
<-- Prior Message New Search Next Message -->