1# (C) Copyright 2005-2020 Enthought, Inc., Austin, TX
2# All rights reserved.
3#
4# This software is provided without warranty under the terms of the BSD
5# license included in LICENSE.txt and may be redistributed only under
6# the conditions described in the aforementioned license. The license
7# is also available online at http://www.enthought.com/licenses/BSD.txt
8#
9# Thanks for using Enthought open source!
10
11""" Abstract base class for all preference pages. """
12
13
14from traits.api import HasTraits
15
16
17# fixme: in JFace this extends from 'DialogPage' which we don't have yet!
18class PreferencePage(HasTraits):
19    """ Abstract base class for all preference pages. """
20
21    # ------------------------------------------------------------------------
22    # 'PreferencePage' interface.
23    # ------------------------------------------------------------------------
24
25    def create_control(self, parent):
26        """ Creates the toolkit-specific control for the page. """
27
28        raise NotImplementedError()
29
30    def restore_defaults(self):
31        """ Restore the default preferences. """
32
33        pass
34
35    def show_help_topic(self):
36        """ Show the help topic for this preference page."""
37
38        pass
39