# controls (skin)

Source: https://ref.dm-lang.org/skin/control/

### Control types
- [Bar](https://ref.dm-lang.org/skin/control/bar.md): A progress bar or slider
- [Browser](https://ref.dm-lang.org/skin/control/browser/index.md): A browser
- [Button](https://ref.dm-lang.org/skin/control/button.md): A pushbutton or toggle button
- [Child](https://ref.dm-lang.org/skin/control/child.md): A container holding one or two panes, with a movable splitter
- [Grid](https://ref.dm-lang.org/skin/control/grid.md): For table-like or list-like output
- [Info](https://ref.dm-lang.org/skin/control/info.md): Classic BYOND statpanel
- [Input](https://ref.dm-lang.org/skin/control/input.md): Command input or other user-entered text
- [Label](https://ref.dm-lang.org/skin/control/label.md): Non-interactive text label
- [Main](https://ref.dm-lang.org/skin/control/main.md): A window or pane that holds other controls
- [Macro](https://ref.dm-lang.org/skin/control/macro.md): A [keyboard/gamepad/mouse macro](https://ref.dm-lang.org/skin/macros.md)
- [Map](https://ref.dm-lang.org/skin/control/map.md): The game map display
- [Menu](https://ref.dm-lang.org/skin/control/menu.md): An item in a drop-down menu
- [Output](https://ref.dm-lang.org/skin/control/output.md): Text output
- [Tab](https://ref.dm-lang.org/skin/control/tab.md): A tab control holding multiple panes, showing one at a time


### Parameters common to all controls
- [id](https://ref.dm-lang.org/skin/param/id.md)
- [is-disabled](https://ref.dm-lang.org/skin/param/is-disabled.md)
- [parent](https://ref.dm-lang.org/skin/param/parent.md)
- [saved-params](https://ref.dm-lang.org/skin/param/saved-params.md)
- [type](https://ref.dm-lang.org/skin/param/type.md)
- [anchor1, anchor2](https://ref.dm-lang.org/skin/param/anchor.md)
- [background-color](https://ref.dm-lang.org/skin/param/background-color.md)
- [border](https://ref.dm-lang.org/skin/param/border.md)
- [drop-zone](https://ref.dm-lang.org/skin/param/drop-zone.md)
- [flash](https://ref.dm-lang.org/skin/param/flash.md)
- [focus](https://ref.dm-lang.org/skin/param/focus.md)
- [font-family](https://ref.dm-lang.org/skin/param/font-family.md)
- [font-size](https://ref.dm-lang.org/skin/param/font-size.md)
- [font-style](https://ref.dm-lang.org/skin/param/font-style.md)
- [inner-mouse-pos](https://ref.dm-lang.org/skin/param/inner-mouse-pos.md)
- [is-visible](https://ref.dm-lang.org/skin/param/is-visible.md)
- [is-transparent](https://ref.dm-lang.org/skin/param/is-transparent.md)
- [mouse-pos](https://ref.dm-lang.org/skin/param/inner-mouse-pos.md)
- [on-size](https://ref.dm-lang.org/skin/param/on-size.md)
- [outer-mouse-pos](https://ref.dm-lang.org/skin/param/outer-mouse-pos.md)
- [pos](https://ref.dm-lang.org/skin/param/pos.md)
- [right-click](https://ref.dm-lang.org/skin/param/right-click.md)
- [size](https://ref.dm-lang.org/skin/param/size.md)
- [text-color](https://ref.dm-lang.org/skin/param/text-color.md)


## Creating/Destroying at runtime

Controls can be created or deleted at runtime. (Only controls you created during runtime may be deleted.) To create a control, call [winset()](https://ref.dm-lang.org/proc/winset.md) using the [id](https://ref.dm-lang.org/skin/param/id.md) of the new control, and the parameter list should include [type](https://ref.dm-lang.org/skin/param/type.md), [parent](https://ref.dm-lang.org/skin/param/parent.md), and probably also [pos](https://ref.dm-lang.org/skin/param/pos.md), [size](https://ref.dm-lang.org/skin/param/size.md), and any [anchors](https://ref.dm-lang.org/skin/param/anchor.md).

To delete the control again, set its `parent` to a blank value.

Menu items and macros work similarly, except they have no positional info. For those, the [name](https://ref.dm-lang.org/skin/param/name.md) parameter is important when you create them, and you will either need [command](https://ref.dm-lang.org/skin/param/command.md) or (for macros) [map-to](https://ref.dm-lang.org/skin/param/map-to.md) to do anything with them.

## Pages

- [bar control (skin)](https://ref.dm-lang.org/skin/control/bar.md)
- [browser control (skin)](https://ref.dm-lang.org/skin/control/browser/index.md)
- [button control (skin)](https://ref.dm-lang.org/skin/control/button.md)
- [child control (skin)](https://ref.dm-lang.org/skin/control/child.md)
- [grid control (skin)](https://ref.dm-lang.org/skin/control/grid.md)
- [info control (skin)](https://ref.dm-lang.org/skin/control/info.md)
- [input control (skin)](https://ref.dm-lang.org/skin/control/input.md)
- [label control (skin)](https://ref.dm-lang.org/skin/control/label.md)
- [macro control (skin)](https://ref.dm-lang.org/skin/control/macro.md)
- [main control (skin)](https://ref.dm-lang.org/skin/control/main.md)
- [map control (skin)](https://ref.dm-lang.org/skin/control/map.md)
- [menu control (skin)](https://ref.dm-lang.org/skin/control/menu.md)
- [output control (skin)](https://ref.dm-lang.org/skin/control/output.md)
- [tab control (skin)](https://ref.dm-lang.org/skin/control/tab.md)
