#------------------------------------------------------------------------------
# Copyright (c) 2013-2025, Nucleic Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
# The full license is in the file LICENSE, distributed with this software.
#------------------------------------------------------------------------------
""" 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).

<< autodoc-me >>
"""
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 = '

Hello World!

'
