summaryrefslogtreecommitdiff
path: root/lib/python2.7/site-packages/wx-3.0-msw/wx/lib/ClickableHtmlWindow.py
blob: 51c812630ebc7700696a5005c5dd815d4d289e3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 12/01/2003 - Jeff Grimmett (grimmtooth@softhome.net)
#
# o Updated for wx namespace. Not tested though.
#
# 12/17/2003 - Jeff Grimmett (grimmtooth@softhome.net)
#
# o Removed wx prefix from class name, 
#   updated reverse renamer
#

"""
sorry no documentation...
Christopher J. Fama
"""


import  wx
import  wx.html as  html

class PyClickableHtmlWindow(html.HtmlWindow):
    """
    Class for a wxHtmlWindow which responds to clicks on links by opening a
    browser pointed at that link, and to shift-clicks by copying the link
    to the clipboard.
    """
    def __init__(self,parent,ID,**kw):
        apply(html.HtmlWindow.__init__,(self,parent,ID),kw)

    def OnLinkClicked(self,link):
        self.link = wx.TextDataObject(link.GetHref())
        if link.GetEvent().ShiftDown():
            if wx.TheClipboard.Open():
                wx.TheClipboard.SetData(self.link)
                wx.TheClipboard.Close()
            else:
                dlg = wx.MessageDialog(self,"Couldn't open clipboard!\n",wx.OK)
                wx.Bell()
                dlg.ShowModal()
                dlg.Destroy()
        else:
            if 0:  # Chris's original code...
                if sys.platform not in ["windows",'nt']           :
                    #TODO: A MORE APPROPRIATE COMMAND LINE FOR Linux
                    #[or rather, non-Windows platforms... as of writing,
                    #this MEANS  Linux, until wxPython for wxMac comes along...]
                    command = "/usr/bin/netscape"
                else:
                    command = "start"
                command = "%s \"%s\"" % (command,
                                         self.link.GetText ())
                os.system (command)

            else:  # My alternative
                import webbrowser
                webbrowser.open(link.GetHref())