io7m | single-page | multi-page | JSycamore User Manual
2.4.2. Window Decorations
Previous
2. Model
Up
2.6. Events
Next

# 2.5. Components

- 2.5.1. Description
- 2.5.2. Tree
- 2.5.3. Activity
- 2.5.4. Layout
- 2.5.5. Standard Components

## 2.5.1. Description

1
Components are the elements that make up the user interface inside windows. Concretely, a component is any object that implements the SyComponentType interface. The package provides the abstract SyComponentAbstract class that provides sensible default implementations of all the required methods.

## 2.5.2. Tree

1
Components form a tree structure, with each component having an arbitrary number of child components, and at most one parent component. A component is said to be detached if it has no parent component, and it is also not the root component for a window. A detached component is not visited during layout operations or during event dispatch.

## 2.5.3. Activity

1
A component may be active or inactive. A component can be set to active or inactive by setting the value of the component's activity attribute. Inactivity is implicitly inherited; if the parent component P of a component C is inactive, then C is considered to be inactive.
2
An inactive component will not receive events during event dispatch. Additionally, themes are encouraged to render inactive components in a greyed-out form. For example, the button labelled "Button 1" in the following image is inactive and so cannot be clicked:

### 2.5.3.3. Inactive Button

## 2.5.4. Layout

1
Component layout...

## 2.5.5. Standard Components

1
The jsycamore package provides a set of standard components.
2.4.2. Window Decorations
Previous
2. Model
Up
2.6. Events
Next
io7m | single-page | multi-page | JSycamore User Manual