File: dock_pane.enaml

package info (click to toggle)
python-enaml 0.19.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 13,284 kB
  • sloc: python: 31,443; cpp: 4,499; makefile: 140; javascript: 68; lisp: 53; sh: 20
file content (46 lines) | stat: -rw-r--r-- 1,782 bytes parent folder | download
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
#------------------------------------------------------------------------------
# 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 = '<h1><center>Hello World!</center></h1>'