This Page

DockPane ExampleΒΆ

dock_pane.enaml

#------------------------------------------------------------------------------
#  Copyright (c) 2012, Enthought, Inc.
#  All rights reserved.
#------------------------------------------------------------------------------
""" An example of the `DockPane` widget.

This example demonstrates the use of the `DockPane` widget. A `DockPane`
can have at most one child, which must be a 'Container` widget. The 
sizing of the `DockPane` is largely determined by the size constraints
of the child `Container`. A `DockPane` must be used as the child of 
a `MainWindow`. There are several attribute on a `DockPane` which allow
the developer to control the behavior of the `DockPane`.

Implementation Notes:
    
    The docking facilities in Wx are very weak. Due to various technical 
    limitations, the sizing of `DockPane` widgets in Wx is not nearly as
    good as it is on Qt. The cost of using a `DockPane` in Wx is also 
    *much* higher than in Qt due to Wx's horribly inefficient docking 
    implementation. If docking is required for a particular application, 
    strongly prefer the Qt backend over Wx (this is generally a good 
    life-rule).

"""
from enaml.widgets.api import (
    MainWindow, DockPane, Container, PushButton, Html,
)


enamldef Main(MainWindow):
    DockPane:
        title << 'Dock Area %s | %s' % (dock_area, 'floating' if floating else 'docked')
        Container:
            PushButton:
                text = 'Foo'
            PushButton:
                text = 'Bar'
            PushButton:
                text = 'Baz'
    Container:
        Html:
            source = '<h1><center>Hello World!</center></h1>'

$ enaml-run dock_pane.enaml
../_images/dock_pane.png