# The MIT License (MIT)
#
# Copyright (C) 2026 Scott Duensing
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.

.topic ctrl.frame
.title Frame
.toc 1 Frame
.index Frame
.index Container

.h1 Frame

VB Equivalent: Frame -- DVX Widget: frame (titled container)

A container with a titled border. Child controls are placed inside the frame using VBox layout. In the .frm file, nest Begin/End blocks inside the Frame block.

.h2 Type-Specific Properties

.table
  Property   Type     Description
  --------   ------   -------------------------------------------
  Caption    String   The title displayed in the frame border.
.endtable

No type-specific methods or events.

Container: Yes

Default Event: Click

.h2 Example

.code
Begin Frame Frame1
    Caption = "Options"
    Begin CheckBox Check1
        Caption = "Option A"
    End
    Begin CheckBox Check2
        Caption = "Option B"
    End
End
.endcode

.link ctrl.common.props Common Properties, Events, and Methods
.topic ctrl.hbox
.title HBox
.toc 1 HBox
.index HBox
.index Horizontal Layout

.h1 HBox

DVX Extension -- DVX Widget: hbox (horizontal layout container)

A container that arranges its children horizontally, left to right. No visible border. Use Weight on children to distribute extra space proportionally.

No type-specific properties, methods, or events.

Container: Yes

Default Event: Click

.h2 Example

.code
Begin HBox ButtonRow
    Spacing = 4
    Begin CommandButton Command1
        Caption = "OK"
    End
    Begin CommandButton Command2
        Caption = "Cancel"
    End
End
.endcode

.link ctrl.common.props Common Properties, Events, and Methods
.link ctrl.vbox VBox
.topic ctrl.vbox
.title VBox
.toc 1 VBox
.index VBox
.index Vertical Layout

.h1 VBox

DVX Extension -- DVX Widget: vbox (vertical layout container)

A container that arranges its children vertically, top to bottom. No title or border. Use Weight on children to distribute extra space proportionally.

No type-specific properties, methods, or events.

Container: Yes

Default Event: Click

.h2 Example

.code
Begin VBox Column1
    Spacing = 4
    Begin Label Label1
        Caption = "Name:"
    End
    Begin TextBox Text1
    End
End
.endcode

.link ctrl.common.props Common Properties, Events, and Methods
.link ctrl.hbox HBox
