# ViewController

{% hint style="info" %}
Class (inherits from [DesktopContainer](https://documentation.xojo.com/api/user_interface/desktop/desktopcontainer.html))
{% endhint %}

## Constants

### 🔒 kExpansionPerTick As Number = 30

Measure/Step (Pixel) while a ViewController collapse/expand.

### 🔒 kPeriod As Number = 30

Period (ms) while a ViewController collapse/expand.

## Events

| [Collapse](#collapse)                                                 | [Expand](#expand) |
| --------------------------------------------------------------------- | ----------------- |
| [ScrollerStyleChanged](#scrollerstylechanged-showondemand-as-boolean) |                   |

### Collapse

Fires if a ViewController is collapsed.

### Expand

Fires if a ViewController is expanded.

### ScrollerStyleChanged(showOnDemand As [Boolean](https://documentation.xojo.com/api/data_types/boolean.html))

Fires if [*ScrollerStyleChange*](#scrollerstylechange) Method gets called.

**Parameters**

| Name           | Description                                                                                                                                                             |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| *showOnDemand* | A [Boolean](https://documentation.xojo.com/api/data_types/boolean.html) specifiying the state of the macOS Scrollers if `UseNativeScroller = True` on ScrollController. |

## Methods

| [Expand](#expand-value-as-boolean)          | [Init](#init-collapsedheight-as-integer-expandedheight-as-integer) |
| ------------------------------------------- | ------------------------------------------------------------------ |
| [ScrollerStyleChange](#scrollerstylechange) |                                                                    |

### Expand(value As [Boolean](https://documentation.xojo.com/api/data_types/boolean.html))

Expand or collapse a ViewController.

**Parameters**

| Name    | Description                                                                                                          |
| ------- | -------------------------------------------------------------------------------------------------------------------- |
| *value* | A [Boolean](https://documentation.xojo.com/api/data_types/boolean.html) specifiying the state of the ViewController. |

### Init(collapsedHeight As [Integer](https://documentation.xojo.com/api/data_types/integer.html), expandedHeight As [Integer](https://documentation.xojo.com/api/data_types/integer.html))

Set a ViewController’s collapsed and expanded height.

**Parameters**

| Name              | Description                                                                                                                      |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| *collapsedHeight* | An [Integer](https://documentation.xojo.com/api/data_types/integer.html) specifiying the height of the collapsed ViewController. |
| *expandedHeight*  | An [Integer](https://documentation.xojo.com/api/data_types/integer.html) specifiying the height of the expanded ViewController.  |

### ScrollerStyleChange(showOnDemand As [Boolean](https://documentation.xojo.com/api/data_types/boolean.html))

Calls the [ScrollerStyleChanged](#scrollerstylechanged-showondemand-as-boolean)-Event.

## Properties

### Expanded As Boolean

Return state of a ViewController.

### UseAnimation As Boolean

Animate a ViewController while collapsing/expending.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://xojo.gitbook.io/add-ons/stackview/version-3/details/viewcontroller.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
