File: internet_explorer.py

package info (click to toggle)
python-traitsui 4.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 13,292 kB
  • sloc: python: 39,867; makefile: 120; sh: 5
file content (92 lines) | stat: -rw-r--r-- 2,669 bytes parent folder | download | duplicates (2)
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#  Copyright (c) 2007, Enthought, Inc.
#  License: BSD Style.

""" Demo showing how to use the Windows specific Internet Explorer editor.
"""

# Imports:
from traitsui.wx.extra.windows.ie_html_editor \
    import IEHTMLEditor

from traits.api \
    import Str, List, Button, HasTraits

from traitsui.api \
    import View, VGroup, HGroup, Item, TextEditor, ListEditor

# The web page class:
class WebPage ( HasTraits ):

    # The URL to display:
    url = Str( 'http://code.enthought.com' )

    # The page title:
    title = Str

    # The page status:
    status = Str

    # The browser navigation buttons:
    back    = Button( '<--' )
    forward = Button( '-->' )
    home    = Button( 'Home' )
    stop    = Button( 'Stop' )
    refresh = Button( 'Refresh' )
    search  = Button( 'Search' )

    # The view to display:
    view = View(
        HGroup( 'back', 'forward', 'home', 'stop', 'refresh', 'search', '_',
                Item( 'status', style = 'readonly' ),
                show_labels = False
        ),
        Item( 'url',
              show_label = False,
              editor     = IEHTMLEditor(
                               home    = 'home',    back   = 'back',
                               forward = 'forward', stop   = 'stop',
                               refresh = 'refresh', search = 'search',
                               title   = 'title',   status = 'status' )
        )
    )

# The demo class:
class InternetExplorerDemo ( HasTraits ):

    # A URL to display:
    url = Str( 'http://' )

    # The list of web pages being browsed:
    pages = List( WebPage )

    # The view to display:
    view = View(
        VGroup(
            Item( 'url',
                  label  = 'Location',
                  editor = TextEditor( auto_set = False, enter_set = True )
            )
        ),
        Item( 'pages',
              show_label = False,
              style      = 'custom',
              editor     = ListEditor( use_notebook = True,
                                       deletable    = True,
                                       dock_style   = 'tab',
                                       export       = 'DockWindowShell',
                                       page_name    = '.title' )
        )
    )

    # Event handlers:
    def _url_changed ( self, url ):
        self.pages.append( WebPage( url = url.strip() ) )

# Create the demo:
demo = InternetExplorerDemo(
           pages = [ WebPage(url='http://code.enthought.com/projects/traits/'),
                     WebPage(url='http://dmorrill.com') ] )

# Run the demo (if invoked from the command line):
if __name__ == '__main__':
    demo.configure_traits()