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 93 94 95 96 97
|
# Copyright (c) 2007, Enthought, Inc.
# License: BSD Style.
""" Demo showing how to use the Windows specific Internet Explorer editor.
"""
# Imports:
from __future__ import absolute_import
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()
|