# chunks_content

c3: code
c7: 2026-07-26T21:08:51.553Z
c0:
  Module: Toybox.System > Instance Method Details > **getSystemStats()** as [System.Stats](../Toybox/System/Stats.html)

c1:
  ### **getSystemStats()** as [System.Stats](../Toybox/System/Stats.html)

  Get the current system stats.

  Example:

  ```
  using Toybox.System;
  var myStats = System.getSystemStats();
  ```

  Returns:

  *   [System.Stats](../Toybox/System/Stats.html)

  Since:

  API Level 1.0.0


c3: prose
c7: 2026-07-26T21:08:51.553Z
c0:
  Module: Toybox.System > Instance Method Details > **getTimer()** as [Lang.Number](../Toybox/Lang/Number.html)

c1:
  ### **getTimer()** as [Lang.Number](../Toybox/Lang/Number.html)

  Get the current millisecond timer value.

  Note:

  The returned value typically starts at zero on device boot and will roll over periodically. Assuming the timer starts at zero, this will happen ~25 days after a reboot, and every ~50 days thereafter.

  Returns:

  *   [Lang.Number](../Toybox/Lang/Number.html)

  Since:

  API Level 1.0.0


c3: code
c7: 2026-07-26T21:08:51.553Z
c0:
  Module: Toybox.System > Instance Method Details > **isAppInstalled(uri as [Lang.String](../Toybox/Lang/String.html))** as [Lang.Boolean](../Toybox/Lang/Boolean.html)

c1:
  ### **isAppInstalled(uri as [Lang.String](../Toybox/Lang/String.html))** as [Lang.Boolean](../Toybox/Lang/Boolean.html)

  Check the installation status of an app.

  Parameters:

  *   uri — ([Lang.String](../Toybox/Lang/String.html)) —
      
      The URI that specifies an app
      

  Example:

  Valid URI formats

  ```
  manifest-id://[manifest ID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx]
  store-id://[app store ID in the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx]
  ```

  Returns:

  *   [Lang.Boolean](../Toybox/Lang/Boolean.html) —
      
      `true` if the app is installed, otherwise `false`
      

  Since:

  API Level 3.2.0

  Throws:

  *   ([Lang.InvalidValueException](../Toybox/Lang/InvalidValueException.html)) —
      
      Thrown if an invalid URI format is provided


c3: prose
c7: 2026-07-26T21:08:51.553Z
c0:
  Module: Toybox.System > Instance Method Details > **print(output as [Lang.Object](../Toybox/Lang/Object.html) or **Null**)** as **Void**

c1:
  ### **print(output as [Lang.Object](../Toybox/Lang/Object.html) or **Null**)** as **Void**

  Print to the console.

  Parameters:

  *   output — ([Lang.Object](../Toybox/Lang/Object.html)) —
      
      The item to print, typically a [String](../Toybox/Lang/String.html).
      

  Since:

  API Level 1.0.0


c3: code
c7: 2026-07-26T21:08:51.553Z
c0:
  Module: Toybox.System > Instance Method Details > **println(output as [Lang.Object](../Toybox/Lang/Object.html) or **Null**)** as **Void**

c1:
  ### **println(output as [Lang.Object](../Toybox/Lang/Object.html) or **Null**)** as **Void**

  Print to the console with a line terminator.

  Parameters:

  *   output — ([Lang.Object](../Toybox/Lang/Object.html)) —
      
      The item to print, typically a [String](../Toybox/Lang/String.html).
      

  Example:

  ```
  using Toybox.System;
  System.println("Hello Monkey C!");
  ```

  Since:

  API Level 1.0.0

  * * *

  Generated Jun 8, 2026, 3:42:17 PM


c0: Module: Toybox.Graphics > Overview
c3: prose
c7: 2026-07-26T21:08:56.129Z
c1:
  ## Overview

  The Graphics module provides a set of tools that allow developers to use basic drawing functionality.

  This provides the ability to draw shapes, lines, fill shapes, and use dynamic layouts for graphic elements based on specific device contexts. The Device Context (Dc) is useful for developers who are interested in creating content for multiple device platforms with differing screen shapes, sizes, and color palettes.

  Since:

  API Level 1.0.0

  App Types and Runtime Contexts:

  *   Audio Content Provider
      
  *   Background (supported since API Level 5.1.0)
      
  *   Data Field
      
  *   Glance
      
  *   Watch App
      
  *   Watch Face
      
  *   Widget


c0: Module: Toybox.Graphics > Classes Under Namespace
c3: prose
c7: 2026-07-26T21:08:56.129Z
c1:
  ## Classes Under Namespace

  **Classes:** [AffineTransform](../Toybox/Graphics/AffineTransform.html), [BitmapReference](../Toybox/Graphics/BitmapReference.html), [BitmapTexture](../Toybox/Graphics/BitmapTexture.html), [BoundingBox](../Toybox/Graphics/BoundingBox.html), [BufferedBitmap](../Toybox/Graphics/BufferedBitmap.html), [BufferedBitmapReference](../Toybox/Graphics/BufferedBitmapReference.html), [Dc](../Toybox/Graphics/Dc.html), [FontReference](../Toybox/Graphics/FontReference.html), [InvalidBitmapResourceException](../Toybox/Graphics/InvalidBitmapResourceException.html), [InvalidPaletteException](../Toybox/Graphics/InvalidPaletteException.html), [OutOfGraphicsMemoryException](../Toybox/Graphics/OutOfGraphicsMemoryException.html), [ResourceReference](../Toybox/Graphics/ResourceReference.html), [VectorFont](../Toybox/Graphics/VectorFont.html)


c0: Module: Toybox.Graphics > Constant Summary > FontDefinition
c3: prose
c7: 2026-07-26T21:08:56.129Z
c1:
  ### FontDefinition

  Since:

  API Level 1.0.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | FONT\_XTINY | 0 | 
  API Level 1.0.0

   | 

  Extra tiny Connect IQ font

   |
  | FONT\_TINY | 1 | 

  API Level 1.0.0

   | 

  Tiny Connect IQ font

   |
  | FONT\_SMALL | 2 | 

  API Level 1.0.0

   | 

  Small Connect IQ font

   |
  | FONT\_MEDIUM | 3 | 

  API Level 1.0.0

   | 

  Medium Connect IQ font

   |
  | FONT\_LARGE | 4 | 

  API Level 1.0.0

   | 

  Large Connect IQ font

   |
  | FONT\_NUMBER\_MILD | 5 | 

  API Level 1.0.0

   | 

  Normal size number only Connect IQ font

   |
  | FONT\_NUMBER\_MEDIUM | 6 | 

  API Level 1.0.0

   | 

  Medium size number only Connect IQ font

   |
  | FONT\_NUMBER\_HOT | 7 | 

  API Level 1.0.0

   | 

  Large size number only Connect IQ font

   |
  | FONT\_NUMBER\_THAI\_HOT | 8 | 

  API Level 1.0.0

   | 

  Huge size number only Connect IQ font

   |
  | FONT\_SYSTEM\_XTINY | 9 | 

  API Level 1.3.0

   | 

  Extra tiny system font

   |
  | FONT\_SYSTEM\_TINY | 10 | 

  API Level 1.3.0

   | 

  Tiny system font

   |
  | FONT\_SYSTEM\_SMALL | 11 | 

  API Level 1.3.0

   | 

  Small system font

   |
  | FONT\_SYSTEM\_MEDIUM | 12 | 

  API Level 1.3.0

   | 

  Medium system font

   |
  | FONT\_SYSTEM\_LARGE | 13 | 

  API Level 1.3.0

   | 

  Large system font

   |
  | FONT\_SYSTEM\_NUMBER\_MILD | 14 | 

  API Level 1.3.0

   | 

  Normal size number only system font

   |
  | FONT\_SYSTEM\_NUMBER\_MEDIUM | 15 | 

  API Level 1.3.0

   | 

  Medium size number only system font

   |
  | FONT\_SYSTEM\_NUMBER\_HOT | 16 | 

  API Level 1.3.0

   | 

  Large size number only system font

   |
  | FONT\_SYSTEM\_NUMBER\_THAI\_HOT | 17 | 

  API Level 1.3.0

   | 

  Huge size number only system font

   |
  | FONT\_GLANCE | 18 | 

  API Level 3.1.8

   | 

  Glance text font

   |
  | FONT\_GLANCE\_NUMBER | 19 | 

  API Level 3.1.8

   | 

  Glance number only font

   |
  | FONT\_AUX1 | 20 | 

  API Level 4.2.2

   | 

  Auxiliary Font 1

   |
  | FONT\_AUX2 | 21 | 

  API Level 4.2.2

   | 

  Auxiliary Font 2

   |
  | FONT\_AUX3 | 22 | 

  API Level 4.2.3

   | 

  Auxiliary Font 3

   |
  | FONT\_AUX4 | 23 | 

  API Level 4.2.3

   | 

  Auxiliary Font 4

   |
  | FONT\_AUX5 | 24 | 

  API Level 4.2.3

   | 

  Auxiliary Font 5

   |
  | FONT\_AUX6 | 25 | 

  API Level 4.2.3

   | 

  Auxiliary Font 6

   |
  | FONT\_AUX7 | 26 | 

  API Level 4.2.3

   | 

  Auxiliary Font 7

   |
  | FONT\_AUX8 | 27 | 

  API Level 4.2.3

   | 

  Auxiliary Font 8

   |
  | FONT\_AUX9 | 28 | 

  API Level 4.2.3

   | 

  Auxiliary Font 9

   |


c0: Module: Toybox.Graphics > Constant Summary > ColorValue
c3: prose
c7: 2026-07-26T21:08:56.129Z
c1:
  ### ColorValue

  Since:

  API Level 1.0.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | COLOR\_WHITE | 0xFFFFFF | 
  API Level 1.0.0

   | 

  White

   |
  | COLOR\_LT\_GRAY | 0xAAAAAA | 

  API Level 1.0.0

   | 

  Light Gray

   |
  | COLOR\_DK\_GRAY | 0x555555 | 

  API Level 1.0.0

   | 

  Dark Gray

   |
  | COLOR\_BLACK | 0x000000 | 

  API Level 1.0.0

   | 

  Black

   |
  | COLOR\_RED | 0xFF0000 | 

  API Level 1.0.0

   | 

  Red

   |
  | COLOR\_DK\_RED | 0xAA0000 | 

  API Level 1.0.0

   | 

  Dark Red

   |
  | COLOR\_ORANGE | 0xFF5500 | 

  API Level 1.0.0

   | 

  Orange

   |
  | COLOR\_YELLOW | 0xFFAA00 | 

  API Level 1.0.0

   | 

  Yellow

   |
  | COLOR\_GREEN | 0x00FF00 | 

  API Level 1.0.0

   | 

  Green

   |
  | COLOR\_DK\_GREEN | 0x00AA00 | 

  API Level 1.0.0

   | 

  Dark Green

   |
  | COLOR\_BLUE | 0x00AAFF | 

  API Level 1.0.0

   | 

  Blue

   |
  | COLOR\_DK\_BLUE | 0x0000FF | 

  API Level 1.0.0

   | 

  Dark Blue

   |
  | COLOR\_PURPLE | 0xAA00FF | 

  API Level 1.0.0

   | 

  Purple. Not valid on fenix 3 or D2 Bravo. Use 0x5500AA instead.

   |
  | COLOR\_PINK | 0xFF00FF | 

  API Level 1.0.0

   | 

  Pink

   |
  | COLOR\_TRANSPARENT | \-1 | 

  API Level 1.0.0

   | 

  Transparent

   |


c0: Module: Toybox.Graphics > Constant Summary > TextJustification
c3: prose
c7: 2026-07-26T21:08:56.129Z
c1:
  ### TextJustification

  Since:

  API Level 1.0.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | TEXT\_JUSTIFY\_RIGHT | 0 | 
  API Level 1.0.0

   | 

  Right justify the text at the x/y coordinates

   |
  | TEXT\_JUSTIFY\_CENTER | 1 | 

  API Level 1.0.0

   | 

  Center justify the text at the x/y coordinates

   |
  | TEXT\_JUSTIFY\_LEFT | 2 | 

  API Level 1.0.0

   | 

  Left justify the text at the x/y coordinates

   |
  | TEXT\_JUSTIFY\_VCENTER | 4 | 

  API Level 1.0.0

   | 

  Center the text vertically

   |


c0: Module: Toybox.Graphics > Constant Summary > BlendMode
c3: prose
c7: 2026-07-26T21:08:56.129Z
c1:
  ### BlendMode

  Blend mode

  Specifies how colors of a source pixel will be blended with the colors of a destination pixel.

  In the below descriptions

     S is source pixel
     D is destination pixel
     a is the alpha component

  Since:

  API Level 4.0.0

  | Name | Value | Since | Description | Note |
  | --- | --- | --- | --- | --- |
  | BLEND\_MODE\_DEFAULT | 0 | 
  API Level 4.0.0

   | 

  Alias for `BLEND_MODE_SOURCE_OVER`

   |  |
  | BLEND\_MODE\_NO\_BLEND | 1 | 

  API Level 4.0.0

   | 

  Alias for `BLEND_MODE_SOURCE`

   |  |
  | BLEND\_MODE\_SOURCE\_OVER | 0 | 

  API Level 4.2.1

   | 

  S + (1 - S.a) \* D

   |  |
  | BLEND\_MODE\_SOURCE | 1 | 

  API Level 4.2.1

   | 

  S, i.e. no blending.

   |  |
  | BLEND\_MODE\_MULTIPLY | 2 | 

  API Level 4.2.1

   | 

  (S \* (1 - D.a)) + (D \* (1 - S.a)) + (S \* D)

   | 

  Only supported on devices with GPU

   |
  | BLEND\_MODE\_ADDITIVE | 3 | 

  API Level 4.2.1

   | 

  S + D

   | 

  Only supported on devices with GPU

   |


c0: Module: Toybox.Graphics > Constant Summary > AlphaBlending
c3: prose
c7: 2026-07-26T21:08:56.129Z
c1:
  ### AlphaBlending

  Constant representing alpha blending state for buffered bitmaps

  Since:

  API Level 4.0.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | ALPHA\_BLENDING\_FULL | 0 | 
  API Level 4.0.0

   | 

  Default surface for buffered bitmap with maximum alpha blending support

   |
  | ALPHA\_BLENDING\_PARTIAL | 1 | 

  API Level 4.0.0

   | 

  Surface for buffered bitmap with at least a 1-bit alpha channel. The actual number of bits may vary by device.

   |


c0: Module: Toybox.Graphics > Constant Summary > RadialTextDirection
c3: prose
c7: 2026-07-26T21:08:56.129Z
c1:
  ### RadialTextDirection

  Orientation for radial text

  Since:

  API Level 4.2.1

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | RADIAL\_TEXT\_DIRECTION\_CLOCKWISE | 0 | 
  API Level 4.2.1

   | 

  Top of text is further from center. Typically used for upright text along the top of a circle.

   |
  | RADIAL\_TEXT\_DIRECTION\_COUNTER\_CLOCKWISE | 1 | 

  API Level 4.2.1

   | 

  Bottom of text is further from center. Typically used for upright text along the bottom of a circle.

   |


c0: Module: Toybox.Graphics > Constant Summary > FilterMode
c3: prose
c7: 2026-07-26T21:08:56.129Z
c1:
  ### FilterMode

  Filter mode

  Specifies how many pixels to sample

  Since:

  API Level 4.2.1

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | FILTER\_MODE\_POINT | 0 | 
  API Level 4.2.1

   | 

  Point filter

   |
  | FILTER\_MODE\_BILINEAR | 1 | 

  API Level 4.2.1

   | 

  Bilinear filter

   |


c0: Module: Toybox.Graphics > Constant Summary > ArcDirection
c3: prose
c7: 2026-07-26T21:08:56.129Z
c1:
  ### ArcDirection

  Since:

  API Level 1.0.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | ARC\_COUNTER\_CLOCKWISE | 0 | 
  API Level 1.2.0

   | 

  Counter clockwise draw

   |
  | ARC\_CLOCKWISE | 1 | 

  API Level 1.2.0

   | 

  Clockwise draw

   |


c0: Module: Toybox.Graphics > Typedef Summary [collapse](#)
c3: prose
c7: 2026-07-26T21:08:56.129Z
c1:
  ## Typedef Summary [collapse](#)

  *   [**BitmapType**](#BitmapType-named_type "BitmapType (Named Type)") as [WatchUi.BitmapResource](../Toybox/WatchUi/BitmapResource.html) or [Graphics.BufferedBitmap](../Toybox/Graphics/BufferedBitmap.html) or [Graphics.BitmapReference](../Toybox/Graphics/BitmapReference.html) or [Graphics.BufferedBitmapReference](../Toybox/Graphics/BufferedBitmapReference.html)
  *   [**ColorType**](#ColorType-named_type "ColorType (Named Type)") as [Lang.Number](../Toybox/Lang/Number.html) or [Graphics.ColorValue](../Toybox/Graphics.html#ColorValue-module)
  *   [**FontType**](#FontType-named_type "FontType (Named Type)") as [WatchUi.FontResource](../Toybox/WatchUi/FontResource.html) or [Graphics.FontDefinition](../Toybox/Graphics.html#FontDefinition-module) or [Graphics.FontReference](../Toybox/Graphics/FontReference.html) or [Graphics.VectorFont](../Toybox/Graphics/VectorFont.html)
  *   [**Point2D**](#Point2D-named_type "Point2D (Named Type)") as \[ [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type), [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type) \]
      
      Type alias for an Array of length 2.
      
  *   [**VectorFontOptions**](#VectorFontOptions-named_type "VectorFontOptions (Named Type)") as { :face as [Lang.String](../Toybox/Lang/String.html) or [Lang.Array](../Toybox/Lang/Array.html)<[Lang.String](../Toybox/Lang/String.html)\>, :size as [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type), :font as [Graphics.FontDefinition](../Toybox/Graphics.html#FontDefinition-module) or [Graphics.VectorFont](../Toybox/Graphics/VectorFont.html), :scale as [Lang.Float](../Toybox/Lang/Float.html) }


c0: Module: Toybox.Graphics > Instance Method Summary [collapse](#)
c3: prose
c7: 2026-07-26T21:08:56.129Z
c1:
  ## Instance Method Summary [collapse](#)

  *   [**createBufferedBitmap**](#createBufferedBitmap-instance_function "createBufferedBitmap (Instance Function)")(options as { :width as [Lang.Number](../Toybox/Lang/Number.html), :height as [Lang.Number](../Toybox/Lang/Number.html), :palette as [Lang.Array](../Toybox/Lang/Array.html)<[Graphics.ColorType](../Toybox/Graphics.html#ColorType-named_type)\>, :colorDepth as [Lang.Number](../Toybox/Lang/Number.html), :bitmapResource as [WatchUi.BitmapResource](../Toybox/WatchUi/BitmapResource.html) or [Graphics.BitmapReference](../Toybox/Graphics/BitmapReference.html), :alphaBlending as [Graphics.AlphaBlending](../Toybox/Graphics.html#AlphaBlending-module) }) as [Graphics.BufferedBitmapReference](../Toybox/Graphics/BufferedBitmapReference.html)
      
      Create a buffered bitmap object.
      
  *   [**createColor**](#createColor-instance_function "createColor (Instance Function)")(alpha as [Lang.Number](../Toybox/Lang/Number.html), red as [Lang.Number](../Toybox/Lang/Number.html), green as [Lang.Number](../Toybox/Lang/Number.html), blue as [Lang.Number](../Toybox/Lang/Number.html)) as [Lang.Number](../Toybox/Lang/Number.html)
      
      Create a color with the individual channel values passed in.
      
  *   [**fitTextToArea**](#fitTextToArea-instance_function "fitTextToArea (Instance Function)")(text as [Lang.String](../Toybox/Lang/String.html), font as [Graphics.FontType](../Toybox/Graphics.html#FontType-named_type), width as [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type), height as [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type), truncate as [Lang.Boolean](../Toybox/Lang/Boolean.html)) as [Lang.String](../Toybox/Lang/String.html) or **Null**
      
      Get a text string to fit in a specified area.
      
  *   [**getFontAscent**](#getFontAscent-instance_function "getFontAscent (Instance Function)")(font as [Graphics.FontType](../Toybox/Graphics.html#FontType-named_type)) as [Lang.Number](../Toybox/Lang/Number.html)
      
      Get the recommended distance above the baseline for single spaced text.
      
  *   [**getFontDescent**](#getFontDescent-instance_function "getFontDescent (Instance Function)")(font as [Graphics.FontType](../Toybox/Graphics.html#FontType-named_type)) as [Lang.Number](../Toybox/Lang/Number.html)
      
      Get the recommended distance below the baseline for single spaced text.
      
  *   [**getFontHeight**](#getFontHeight-instance_function "getFontHeight (Instance Function)")(font as [Graphics.FontType](../Toybox/Graphics.html#FontType-named_type)) as [Lang.Number](../Toybox/Lang/Number.html)
      
      Get the height (ascent plus descent) of the given font.
      
  *   [**getVectorFont**](#getVectorFont-instance_function "getVectorFont (Instance Function)")(options as [Graphics.VectorFontOptions](../Toybox/Graphics.html#VectorFontOptions-named_type)) as [Graphics.VectorFont](../Toybox/Graphics/VectorFont.html) or **Null**
      
      Get a font for this device.


c3: prose
c7: 2026-07-26T21:08:56.129Z
c0:
  Module: Toybox.Graphics > Typedef Details > **BitmapType** as [WatchUi.BitmapResource](../Toybox/WatchUi/BitmapResource.html) or [Graphics.BufferedBitmap](../Toybox/Graphics/BufferedBitmap.html) or [Graphics.BitmapReference](../Toybox/Graphics/BitmapReference.html) or [Graphics.BufferedBitmapReference](../Toybox/Graphics/BufferedBitmapReference.html)

c1:
  ### **BitmapType** as [WatchUi.BitmapResource](../Toybox/WatchUi/BitmapResource.html) or [Graphics.BufferedBitmap](../Toybox/Graphics/BufferedBitmap.html) or [Graphics.BitmapReference](../Toybox/Graphics/BitmapReference.html) or [Graphics.BufferedBitmapReference](../Toybox/Graphics/BufferedBitmapReference.html)

  Since:

  API Level 1.0.0


c3: prose
c7: 2026-07-26T21:08:56.129Z
c0:
  Module: Toybox.Graphics > Typedef Details > **ColorType** as [Lang.Number](../Toybox/Lang/Number.html) or [Graphics.ColorValue](../Toybox/Graphics.html#ColorValue-module)

c1:
  ### **ColorType** as [Lang.Number](../Toybox/Lang/Number.html) or [Graphics.ColorValue](../Toybox/Graphics.html#ColorValue-module)

  Since:

  API Level 1.0.0


c3: prose
c7: 2026-07-26T21:08:56.129Z
c0:
  Module: Toybox.Graphics > Typedef Details > **FontType** as [WatchUi.FontResource](../Toybox/WatchUi/FontResource.html) or [Graphics.FontDefinition](../Toybox/Graphics.html#FontDefinition-module) or [Graphics.FontReference](../Toybox/Graphics/FontReference.html) or [Graphics.VectorFont](../Toybox/Graphics/VectorFont.html)

c1:
  ### **FontType** as [WatchUi.FontResource](../Toybox/WatchUi/FontResource.html) or [Graphics.FontDefinition](../Toybox/Graphics.html#FontDefinition-module) or [Graphics.FontReference](../Toybox/Graphics/FontReference.html) or [Graphics.VectorFont](../Toybox/Graphics/VectorFont.html)

  Since:

  API Level 1.0.0


c3: prose
c7: 2026-07-26T21:08:56.129Z
c0:
  Module: Toybox.Graphics > Typedef Details > **Point2D** as \[ [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type), [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type) \]

c1:
  ### **Point2D** as \[ [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type), [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type) \]

  Type alias for an Array of length 2

  Since:

  API Level 1.0.0


c3: prose
c7: 2026-07-26T21:08:56.129Z
c0:
  Module: Toybox.Graphics > Typedef Details > **VectorFontOptions** as { :face as [Lang.String](../Toybox/Lang/String.html) or [Lang.Array](../Toybox/Lang/Array.html)<[Lang.String](../Toybox/Lang/String.html)\>, :size as [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type), :font as [Graphics.FontDefinition](../Toybox/Graphics.html#FontDefinition-module) or [Graphics.VectorFont](../Toybox/Graphics/VectorFont.html), :scale as [Lang.Float](../Toybox/Lang/Float.html) }

c1:
  ### **VectorFontOptions** as { :face as [Lang.String](../Toybox/Lang/String.html) or [Lang.Array](../Toybox/Lang/Array.html)<[Lang.String](../Toybox/Lang/String.html)\>, :size as [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type), :font as [Graphics.FontDefinition](../Toybox/Graphics.html#FontDefinition-module) or [Graphics.VectorFont](../Toybox/Graphics/VectorFont.html), :scale as [Lang.Float](../Toybox/Lang/Float.html) }

  Since:

  API Level 1.0.0


c3: prose
c7: 2026-07-26T21:08:56.129Z
c0:
  Module: Toybox.Graphics > Instance Method Details > **createBufferedBitmap(options as { :width as [Lang.Number](../Toybox/Lang/Number.html), :height as [Lang.Number](../Toybox/Lang/Number.html), :palette as [Lang.Array](../Toybox/Lang/Array.html)<[Graphics.ColorType](../Toybox/Graphics.html#ColorType-named_type)\>, :colorDepth as [Lang.Number](../Toybox/Lang/Number.html), :bitmapResource as [WatchUi.BitmapResource](../Toybox/WatchUi/BitmapResource.html) or [Graphics.BitmapReference](../Toybox/Graphics/BitmapReference.html), :alphaBlending as [Graphics.AlphaBlending](../Toybox/Graphics.html#AlphaBlending-module) })** as [Graphics.BufferedBitmapReference](../Toybox/Graphics/BufferedBitmapReference.html)

c1:
  ### **createBufferedBitmap(options as { :width as [Lang.Number](../Toybox/Lang/Number.html), :height as [Lang.Number](../Toybox/Lang/Number.html), :palette as [Lang.Array](../Toybox/Lang/Array.html)<[Graphics.ColorType](../Toybox/Graphics.html#ColorType-named_type)\>, :colorDepth as [Lang.Number](../Toybox/Lang/Number.html), :bitmapResource as [WatchUi.BitmapResource](../Toybox/WatchUi/BitmapResource.html) or [Graphics.BitmapReference](../Toybox/Graphics/BitmapReference.html), :alphaBlending as [Graphics.AlphaBlending](../Toybox/Graphics.html#AlphaBlending-module) })** as [Graphics.BufferedBitmapReference](../Toybox/Graphics/BufferedBitmapReference.html)

  Create a buffered bitmap object. This function will return a [Toybox::Graphics::BufferedBitmapReference](../Toybox/Graphics/BufferedBitmapReference.html) object which can be used to reference the [Toybox::Graphics::BufferedBitmap](../Toybox/Graphics/BufferedBitmap.html) object.

  Note:

  The result of a draw/fill operation to a [BufferedBitmap](../Toybox/Graphics/BufferedBitmap.html) created with [ALPHA\_BLENDING\_PARTIAL](../Toybox/Graphics.html#AlphaBlending-module) may produce inconsistent results between devices and the ConnectIQ simulator if the drawn pixels are not fully opaque or fully transparent.

  Parameters:

  *   options — ([Lang.Dictionary](../Toybox/Lang/Dictionary.html)) —
      
      Dictionary of options. Must contain width and height, with optional palette, or a [BitmapResource](../Toybox/WatchUi/BitmapResource.html). This resource is not allowed to have an alpha channel.
      
      *   :width — ([Lang.Number](../Toybox/Lang/Number.html)) —
          
          The width of the surface in pixels. Must be a positive integer value.
          
      *   :height — ([Lang.Number](../Toybox/Lang/Number.html)) —
          
          The height of the surface in pixels. Must be a positive integer value.
          
      *   :palette — ([Lang.Array](../Toybox/Lang/Array.html)) —
          
          The colors used in this surface. Using less will reduce the bitmap size. The bitmap will use the system default if not provided. The maximum palette size allowed is 256 colors. If a palette is provided, the number of colors must also be <= to the number of system colors.
          
      *   :colorDepth — ([Lang.Number](../Toybox/Lang/Number.html)) —
          
          Color depth in terms of bits/pixel, when missing, default to system value.
          
      *   :bitmapResource — ([WatchUi.BitmapResource](../Toybox/WatchUi/BitmapResource.html)) —
          
          A [BitmapResource](../Toybox/WatchUi/BitmapResource.html) or [BitmapReference](../Toybox/Graphics/BitmapReference.html) to initialize
          
      *   :alphaBlending — ([Graphics.AlphaBlending](../Toybox/Graphics.html#AlphaBlending-module)) —
          
          A [AlphaBlending](../Toybox/Graphics.html#AlphaBlending-module) enum to specify the level of alpha blending support for this buffered bitmap object.
          

  Returns:

  *   [Toybox::Graphics::BufferedBitmapReference](../Toybox/Graphics/BufferedBitmapReference.html) A reference to BufferedBitmap object
      

  Since:

  API Level 4.0.0

  Throws:

  *   ([Graphics.InvalidPaletteException](../Toybox/Graphics/InvalidPaletteException.html)) —
      
      Thrown if the palette size exceeds the number of system colors.
      
  *   ([Graphics.InvalidPaletteException](../Toybox/Graphics/InvalidPaletteException.html)) —
      
      Thrown if the palette size exceeds 256 colors.
      
  *   ([Graphics.InvalidBitmapResourceException](../Toybox/Graphics/InvalidBitmapResourceException.html)) —
      
      Thrown if the [BitmapResource](../Toybox/WatchUi/BitmapResource.html) provided has an alpha channel.


c3: prose
c7: 2026-07-26T21:08:56.129Z
c0:
  Module: Toybox.Graphics > Instance Method Details > **createColor(alpha as [Lang.Number](../Toybox/Lang/Number.html), red as [Lang.Number](../Toybox/Lang/Number.html), green as [Lang.Number](../Toybox/Lang/Number.html), blue as [Lang.Number](../Toybox/Lang/Number.html))** as [Lang.Number](../Toybox/Lang/Number.html)

c1:
  ### **createColor(alpha as [Lang.Number](../Toybox/Lang/Number.html), red as [Lang.Number](../Toybox/Lang/Number.html), green as [Lang.Number](../Toybox/Lang/Number.html), blue as [Lang.Number](../Toybox/Lang/Number.html))** as [Lang.Number](../Toybox/Lang/Number.html)

  Create a color with the individual channel values passed in

  Parameters:

  *   alpha — ([Lang.Number](../Toybox/Lang/Number.html)) —
      
      Number value ranging from 0-255 representing alpha channel
      
  *   red — ([Lang.Number](../Toybox/Lang/Number.html)) —
      
      Number value ranging from 0-255 representing red channel
      
  *   green — ([Lang.Number](../Toybox/Lang/Number.html)) —
      
      Number value ranging from 0-255 representing green channel
      
  *   blue — ([Lang.Number](../Toybox/Lang/Number.html)) —
      
      Number value ranging from 0-255 representing blue channel
      

  Returns:

  *   color \[Toybox::Lang::Number\] 32-bit value representing the created color that can be used with Toybox.Graphics functions.
      

  Since:

  API Level 4.0.0


c3: prose
c7: 2026-07-26T21:08:56.129Z
c0:
  Module: Toybox.Graphics > Instance Method Details > **fitTextToArea(text as [Lang.String](../Toybox/Lang/String.html), font as [Graphics.FontType](../Toybox/Graphics.html#FontType-named_type), width as [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type), height as [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type), truncate as [Lang.Boolean](../Toybox/Lang/Boolean.html))** as [Lang.String](../Toybox/Lang/String.html) or **Null**

c1:
  ### **fitTextToArea(text as [Lang.String](../Toybox/Lang/String.html), font as [Graphics.FontType](../Toybox/Graphics.html#FontType-named_type), width as [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type), height as [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type), truncate as [Lang.Boolean](../Toybox/Lang/Boolean.html))** as [Lang.String](../Toybox/Lang/String.html) or **Null**

  Get a text string to fit in a specified area

  Note:

  [FontReference](../Toybox/Graphics/FontReference.html) is only supported in CIQ 4.0.0 and later

  Parameters:

  *   text — ([Lang.String](../Toybox/Lang/String.html)) —
      
      The text to fit into the given area, which may include newlines
      
  *   font — ([Graphics.FontType](../Toybox/Graphics.html#FontType-named_type)) —
      
      The font to use when determining line break placement
      
  *   width — ([Lang.Numeric](../Toybox/Lang.html#Numeric-named_type)) —
      
      The width of the area to fit within
      
  *   height — ([Lang.Numeric](../Toybox/Lang.html#Numeric-named_type)) —
      
      The height of the area to fit within
      
  *   truncate — ([Lang.Boolean](../Toybox/Lang/Boolean.html)) —
      
      If `true`, the resulting string may be truncated to fit within the provided area using the provided font
      

  Returns:

  *   Returns a String suitable for display in the given area. The String will be truncated if the 'truncate' parameter is `true` and the String cannot fit into the specified area. Otherwise, `null` will be returned.
      

  Since:

  API Level 3.1.0


c3: prose
c7: 2026-07-26T21:08:56.129Z
c0:
  Module: Toybox.Graphics > Instance Method Details > **getFontAscent(font as [Graphics.FontType](../Toybox/Graphics.html#FontType-named_type))** as [Lang.Number](../Toybox/Lang/Number.html)

c1:
  ### **getFontAscent(font as [Graphics.FontType](../Toybox/Graphics.html#FontType-named_type))** as [Lang.Number](../Toybox/Lang/Number.html)

  Get the recommended distance above the baseline for single spaced text.

  The base line is the line on which the text sits.

  Note:

  [FontReference](../Toybox/Graphics/FontReference.html) is only supported in CIQ 4.0.0 and later

  Parameters:

  *   font — ([Graphics.FontType](../Toybox/Graphics.html#FontType-named_type)) —
      
      The font to use
      

  Returns:

  *   [Lang.Number](../Toybox/Lang/Number.html) —
      
      The ascent of the font
      

  Since:

  API Level 1.2.0


c3: prose
c7: 2026-07-26T21:08:56.129Z
c0:
  Module: Toybox.Graphics > Instance Method Details > **getFontDescent(font as [Graphics.FontType](../Toybox/Graphics.html#FontType-named_type))** as [Lang.Number](../Toybox/Lang/Number.html)

c1:
  ### **getFontDescent(font as [Graphics.FontType](../Toybox/Graphics.html#FontType-named_type))** as [Lang.Number](../Toybox/Lang/Number.html)

  Get the recommended distance below the baseline for single spaced text.

  The base line is the line on which the text sits.

  Note:

  [FontReference](../Toybox/Graphics/FontReference.html) is only supported in CIQ 4.0.0 and later

  Parameters:

  *   font — ([Graphics.FontType](../Toybox/Graphics.html#FontType-named_type)) —
      
      The font to use
      

  Returns:

  *   [Lang.Number](../Toybox/Lang/Number.html) —
      
      The descent of the font
      

  Since:

  API Level 1.2.0


c3: prose
c7: 2026-07-26T21:08:56.129Z
c0:
  Module: Toybox.Graphics > Instance Method Details > **getFontHeight(font as [Graphics.FontType](../Toybox/Graphics.html#FontType-named_type))** as [Lang.Number](../Toybox/Lang/Number.html)

c1:
  ### **getFontHeight(font as [Graphics.FontType](../Toybox/Graphics.html#FontType-named_type))** as [Lang.Number](../Toybox/Lang/Number.html)

  Get the height (ascent plus descent) of the given font.

  Note:

  [FontReference](../Toybox/Graphics/FontReference.html) is only supported in CIQ 4.0.0 and later

  Parameters:

  *   font — ([Graphics.FontType](../Toybox/Graphics.html#FontType-named_type)) —
      
      The font to use
      

  Returns:

  *   [Lang.Number](../Toybox/Lang/Number.html) —
      
      The height of the font
      

  Since:

  API Level 1.2.0


c3: prose
c7: 2026-07-26T21:08:56.129Z
c0:
  Module: Toybox.Graphics > Instance Method Details > **getVectorFont(options as [Graphics.VectorFontOptions](../Toybox/Graphics.html#VectorFontOptions-named_type))** as [Graphics.VectorFont](../Toybox/Graphics/VectorFont.html) or **Null**

c1:
  ### **getVectorFont(options as [Graphics.VectorFontOptions](../Toybox/Graphics.html#VectorFontOptions-named_type))** as [Graphics.VectorFont](../Toybox/Graphics/VectorFont.html) or **Null**

  Get a font for this device

  Note:

  The :font and :scale options are only supported in CIQ 5.1.0 and later.

  Parameters:

  *   options — ([Lang.Dictionary](../Toybox/Lang/Dictionary.html), [Graphics.FontDefinition](../Toybox/Graphics.html#FontDefinition-module)) —
      
      A description of the font to retrieve.
      
      *   :face — ([Lang.String](../Toybox/Lang/String.html), [Lang.Array](../Toybox/Lang/Array.html)) —
          
          A String representing the face name requested, or an Array of face names that are acceptable.
          
      *   :size — ([Lang.Numeric](../Toybox/Lang.html#Numeric-named_type)) —
          
          The height of the font requested in pixels as a positive number.
          
      *   :font — ([Graphics.FontDefinition](../Toybox/Graphics.html#FontDefinition-module), [Graphics.VectorFont](../Toybox/Graphics/VectorFont.html)) —
          
          The font to apply a scale to.
          
      *   :scale — ([Lang.Float](../Toybox/Lang/Float.html)) —
          
          The amount to scale the font.
          

  Supported Devices:

  *   Approach® S70 42mm
  *   Approach® S70 47mm
  *   D2™ Mach 1
  *   D2™ Mach 2 Pro
  *   D2™ Mach 2
  *   Descent™ Mk3 43mm / Mk3i 43mm
  *   Descent™ Mk3i 51mm
  *   Enduro™ 3
  *   epix™ (Gen 2) / quatix® 7 Sapphire
  *   epix™ Pro (Gen 2) 42mm
  *   epix™ Pro (Gen 2) 47mm / quatix® 7 Pro
  *   epix™ Pro (Gen 2) 51mm / D2™ Mach 1 Pro / tactix® 7 – AMOLED Edition
  *   eTrex® Touch
  *   fēnix® 7 / quatix® 7
  *   fēnix® 7 Pro - Solar Edition (no Wi-Fi)
  *   fēnix® 7 Pro
  *   fēnix® 7S Pro
  *   fēnix® 7S
  *   fēnix® 7X / tactix® 7 / quatix® 7X Solar / Enduro™ 2
  *   fēnix® 7X Pro - Solar Edition (no Wi-Fi)
  *   fēnix® 7X Pro
  *   fēnix® 8 43mm
  *   fēnix® 8 47mm / 51mm / tactix® 8 47mm / 51mm / quatix® 8 47mm / 51mm
  *   fēnix® 8 Pro 47mm / 51mm / MicroLED / quatix® 8 Pro 47mm / 51mm
  *   fēnix® 8 Solar 47mm
  *   fēnix® 8 Solar 51mm / tactix® 8 Solar 51mm
  *   fēnix® E
  *   Forerunner® 165 Music
  *   Forerunner® 165
  *   Forerunner® 170 Music
  *   Forerunner® 170
  *   Forerunner® 265
  *   Forerunner® 265s
  *   Forerunner® 570 42mm
  *   Forerunner® 570 47mm
  *   Forerunner® 70
  *   Forerunner® 955 / Solar
  *   Forerunner® 965
  *   Forerunner® 970
  *   GPSMAP® H1 / H1i Plus
  *   MARQ® (Gen 2) Athlete / Adventurer / Captain / Golfer / Carbon Edition / Commander - Carbon Edition
  *   MARQ® (Gen 2) Aviator
  *   Venu® 3
  *   Venu® 3S
  *   Venu® 4 41mm
  *   Venu® 4 45mm / D2™ Air X15
  *   Venu® X1
  *   vívoactive® 6

  Returns:

  *   [Graphics.VectorFont](../Toybox/Graphics/VectorFont.html) —
      
      if a font can be created for the given parameters, otherwise `null`
      

  See Also:

  *   [Reference Guides - Devices Reference](https://developer.garmin.com/connect-iq/reference-guides/devices-reference/)
      

  Since:

  API Level 4.2.1

  Throws:

  *   ([Lang.UnexpectedTypeException](../Toybox/Lang/UnexpectedTypeException.html)) —
      
      Thrown if `options` is not a supported type.
      
  *   ([Lang.UnexpectedTypeException](../Toybox/Lang/UnexpectedTypeException.html)) —
      
      Thrown if the provided `:size` or `:scale` are not a supported type.
      
  *   ([Lang.UnexpectedTypeException](../Toybox/Lang/UnexpectedTypeException.html)) —
      
      Thrown if the provided `:face` is not a supported type.
      
  *   ([Lang.InvalidValueException](../Toybox/Lang/InvalidValueException.html)) —
      
      Thrown if the provided `:face` value is out of range.
      
  *   ([Lang.InvalidValueException](../Toybox/Lang/InvalidValueException.html)) —
      
      Thrown if the provided `:size` or `:scale` value is not positive.
      

  * * *

  Generated Jun 8, 2026, 3:42:17 PM


c0: Class: Toybox.WatchUi.InputDelegate
c3: prose
c7: 2026-07-26T21:09:01.081Z
c1:
  # Class: Toybox.WatchUi.InputDelegate

  Inherits:

  Toybox.Lang.Object

  *   [Toybox.Lang.Object](../../Toybox/Lang/Object.html)
      
  *   [Toybox.WatchUi.InputDelegate](../../Toybox/WatchUi/InputDelegate.html)
      

  [show all](#)


c0: Class: Toybox.WatchUi.InputDelegate > Overview
c3: prose
c7: 2026-07-26T21:09:01.081Z
c1:
  ## Overview

  InputDelegate handles basic input events.

  There are four types of basic inputs InputDelegate can handle:

  *   Key, represented by [KeyEvent](../../Toybox/WatchUi/KeyEvent.html)
      
  *   Touch, represented by [ClickEvent](../../Toybox/WatchUi/ClickEvent.html)
      
  *   Swipe, represented by [SwipeEvent](../../Toybox/WatchUi/SwipeEvent.html)
      
  *   Selectable, represented by [SelectableEvent](../../Toybox/WatchUi/SelectableEvent.html)
      

  This class is the base class for [BehaviorDelegate](../../Toybox/WatchUi/BehaviorDelegate.html), which goes beyond simple key and screen-based input.


c0: Class: Toybox.WatchUi.InputDelegate > See Also:
c3: code
c7: 2026-07-26T21:09:01.081Z
c1:
  ## See Also:

  *   [Toybox.WatchUi.BehaviorDelegate](../../Toybox/WatchUi/BehaviorDelegate.html)
      

  Example:

  ```
  using Toybox.System;
  using Toybox.WatchUi;

  class MyInputDelegate extends WatchUi.InputDelegate {
      function onKey(keyEvent) {
          System.println(keyEvent.getKey());         // e.g. KEY_MENU = 7
          return true;
      }

      function onTap(clickEvent) {
          System.println(clickEvent.getType());      // e.g. CLICK_TYPE_TAP = 0
          return true;
      }

      function onSwipe(swipeEvent) {
          System.println(swipeEvent.getDirection()); // e.g. SWIPE_DOWN = 2
          return true;
      }
  }
  ```

  Since:

  API Level 1.0.0

  App Types and Runtime Contexts:

  *   Audio Content Provider
      
  *   Data Field
      
  *   Glance
      
  *   Watch App
      
  *   Watch Face
      
  *   Widget


c0: Class: Toybox.WatchUi.InputDelegate > Instance Method Summary [collapse](#)
c3: prose
c7: 2026-07-26T21:09:01.081Z
c1:
  ## Instance Method Summary [collapse](#)

  *   [**onDrag**](#onDrag-instance_function "onDrag (Instance Function)")(dragEvent as [WatchUi.DragEvent](../../Toybox/WatchUi/DragEvent.html)) as [Lang.Boolean](../../Toybox/Lang/Boolean.html)
      
      A touch screen drag event has occurred.
      
  *   [**onFlick**](#onFlick-instance_function "onFlick (Instance Function)")(flickEvent as [WatchUi.FlickEvent](../../Toybox/WatchUi/FlickEvent.html)) as [Lang.Boolean](../../Toybox/Lang/Boolean.html)
      
      A touch screen flick event has occurred.
      
  *   [**onHold**](#onHold-instance_function "onHold (Instance Function)")(clickEvent as [WatchUi.ClickEvent](../../Toybox/WatchUi/ClickEvent.html)) as [Lang.Boolean](../../Toybox/Lang/Boolean.html)
      
      A touch screen hold event has occurred.
      
  *   [**onKey**](#onKey-instance_function "onKey (Instance Function)")(keyEvent as [WatchUi.KeyEvent](../../Toybox/WatchUi/KeyEvent.html)) as [Lang.Boolean](../../Toybox/Lang/Boolean.html)
      
      A physical button has been pressed and released.
      
  *   [**onKeyPressed**](#onKeyPressed-instance_function "onKeyPressed (Instance Function)")(keyEvent as [WatchUi.KeyEvent](../../Toybox/WatchUi/KeyEvent.html)) as [Lang.Boolean](../../Toybox/Lang/Boolean.html)
      
      A physical button has been pressed down.
      
  *   [**onKeyReleased**](#onKeyReleased-instance_function "onKeyReleased (Instance Function)")(keyEvent as [WatchUi.KeyEvent](../../Toybox/WatchUi/KeyEvent.html)) as [Lang.Boolean](../../Toybox/Lang/Boolean.html)
      
      A physical button has been released.
      
  *   [**onRelease**](#onRelease-instance_function "onRelease (Instance Function)")(clickEvent as [WatchUi.ClickEvent](../../Toybox/WatchUi/ClickEvent.html)) as [Lang.Boolean](../../Toybox/Lang/Boolean.html)
      
      A touch screen release event has occurred.
      
  *   [**onSelectable**](#onSelectable-instance_function "onSelectable (Instance Function)")(selectableEvent as [WatchUi.SelectableEvent](../../Toybox/WatchUi/SelectableEvent.html)) as [Lang.Boolean](../../Toybox/Lang/Boolean.html)
      
      The state of a [Selectable](../../Toybox/WatchUi/Selectable.html) has changed.
      
  *   [**onSwipe**](#onSwipe-instance_function "onSwipe (Instance Function)")(swipeEvent as [WatchUi.SwipeEvent](../../Toybox/WatchUi/SwipeEvent.html)) as [Lang.Boolean](../../Toybox/Lang/Boolean.html)
      
      A touch screen swipe event has occurred.
      
  *   [**onTap**](#onTap-instance_function "onTap (Instance Function)")(clickEvent as [WatchUi.ClickEvent](../../Toybox/WatchUi/ClickEvent.html)) as [Lang.Boolean](../../Toybox/Lang/Boolean.html)
      
      A screen tap event has occurred.


c3: prose
c7: 2026-07-26T21:09:01.081Z
c0:
  Class: Toybox.WatchUi.InputDelegate > Instance Method Details > **onDrag(dragEvent as [WatchUi.DragEvent](../../Toybox/WatchUi/DragEvent.html))** as [Lang.Boolean](../../Toybox/Lang/Boolean.html)

c1:
  ### **onDrag(dragEvent as [WatchUi.DragEvent](../../Toybox/WatchUi/DragEvent.html))** as [Lang.Boolean](../../Toybox/Lang/Boolean.html)

  A touch screen drag event has occurred.

  This is sent when the touch screen is dragged.

  Parameters:

  *   dragEvent — ([WatchUi.DragEvent](../../Toybox/WatchUi/DragEvent.html)) —
      
      The drag event that has occurred
      

  Supported Devices:

  *   Approach® S50
  *   Approach® S70 42mm
  *   Approach® S70 47mm
  *   Captain Marvel
  *   D2™ Air X10
  *   D2™ Mach 1
  *   D2™ Mach 2 Pro
  *   D2™ Mach 2
  *   Darth Vader™
  *   Descent™ Mk3 43mm / Mk3i 43mm
  *   Descent™ Mk3i 51mm
  *   Edge® 1030 Plus
  *   Edge® 1030
  *   Edge® 1040 / 1040 Solar
  *   Edge® 1050
  *   Edge® 550
  *   Edge® 830
  *   Edge® 840 / 840 Solar
  *   Edge® 850
  *   Edge® Explore 2
  *   Edge® MTB
  *   Enduro™ 3
  *   epix™ (Gen 2) / quatix® 7 Sapphire
  *   epix™ Pro (Gen 2) 42mm
  *   epix™ Pro (Gen 2) 47mm / quatix® 7 Pro
  *   epix™ Pro (Gen 2) 51mm / D2™ Mach 1 Pro / tactix® 7 – AMOLED Edition
  *   eTrex® Touch
  *   fēnix® 7 / quatix® 7
  *   fēnix® 7 Pro - Solar Edition (no Wi-Fi)
  *   fēnix® 7 Pro
  *   fēnix® 7S Pro
  *   fēnix® 7S
  *   fēnix® 7X / tactix® 7 / quatix® 7X Solar / Enduro™ 2
  *   fēnix® 7X Pro - Solar Edition (no Wi-Fi)
  *   fēnix® 7X Pro
  *   fēnix® 8 43mm
  *   fēnix® 8 47mm / 51mm / tactix® 8 47mm / 51mm / quatix® 8 47mm / 51mm
  *   fēnix® 8 Pro 47mm / 51mm / MicroLED / quatix® 8 Pro 47mm / 51mm
  *   fēnix® 8 Solar 47mm
  *   fēnix® 8 Solar 51mm / tactix® 8 Solar 51mm
  *   fēnix® E
  *   First Avenger
  *   Forerunner® 165 Music
  *   Forerunner® 165
  *   Forerunner® 170 Music
  *   Forerunner® 170
  *   Forerunner® 265
  *   Forerunner® 265s
  *   Forerunner® 570 42mm
  *   Forerunner® 570 47mm
  *   Forerunner® 70
  *   Forerunner® 955 / Solar
  *   Forerunner® 965
  *   Forerunner® 970
  *   GPSMAP® H1 / H1i Plus
  *   MARQ® (Gen 2) Athlete / Adventurer / Captain / Golfer / Carbon Edition / Commander - Carbon Edition
  *   MARQ® (Gen 2) Aviator
  *   Rey™
  *   Venu® 2 Plus
  *   Venu® 2
  *   Venu® 2S
  *   Venu® 3
  *   Venu® 3S
  *   Venu® 4 41mm
  *   Venu® 4 45mm / D2™ Air X15
  *   Venu® Mercedes-Benz® Collection
  *   Venu® Sq 2 Music
  *   Venu® Sq 2
  *   Venu® Sq
  *   Venu® Sq. Music Edition
  *   Venu® X1
  *   Venu®
  *   vívoactive® 4
  *   vívoactive® 4S
  *   vívoactive® 5
  *   vívoactive® 6

  Returns:

  *   [Lang.Boolean](../../Toybox/Lang/Boolean.html) —
      
      `true` if handled, otherwise `false`
      

  See Also:

  *   [Toybox.WatchUi.DragEvent](../../Toybox/WatchUi/DragEvent.html)
      

  Since:

  API Level 3.3.0


c3: prose
c7: 2026-07-26T21:09:01.081Z
c0:
  Class: Toybox.WatchUi.InputDelegate > Instance Method Details > **onFlick(flickEvent as [WatchUi.FlickEvent](../../Toybox/WatchUi/FlickEvent.html))** as [Lang.Boolean](../../Toybox/Lang/Boolean.html)

c1:
  ### **onFlick(flickEvent as [WatchUi.FlickEvent](../../Toybox/WatchUi/FlickEvent.html))** as [Lang.Boolean](../../Toybox/Lang/Boolean.html)

  A touch screen flick event has occurred.

  This is sent when the touch screen is flicked.

  Parameters:

  *   flickEvent — ([WatchUi.FlickEvent](../../Toybox/WatchUi/FlickEvent.html)) —
      
      The flick event that has occurred
      

  Supported Devices:

  *   Approach® S50
  *   Approach® S70 42mm
  *   Approach® S70 47mm
  *   Captain Marvel
  *   D2™ Air X10
  *   D2™ Mach 1
  *   D2™ Mach 2 Pro
  *   D2™ Mach 2
  *   Darth Vader™
  *   Descent™ G2
  *   Descent™ Mk3 43mm / Mk3i 43mm
  *   Descent™ Mk3i 51mm
  *   Edge® 1040 / 1040 Solar
  *   Edge® 1050
  *   Edge® 550
  *   Edge® 840 / 840 Solar
  *   Edge® 850
  *   Edge® Explore 2
  *   Edge® MTB
  *   Enduro™ 3
  *   epix™ (Gen 2) / quatix® 7 Sapphire
  *   epix™ Pro (Gen 2) 42mm
  *   epix™ Pro (Gen 2) 47mm / quatix® 7 Pro
  *   epix™ Pro (Gen 2) 51mm / D2™ Mach 1 Pro / tactix® 7 – AMOLED Edition
  *   eTrex® Touch
  *   fēnix® 7 / quatix® 7
  *   fēnix® 7 Pro - Solar Edition (no Wi-Fi)
  *   fēnix® 7 Pro
  *   fēnix® 7S Pro
  *   fēnix® 7S
  *   fēnix® 7X / tactix® 7 / quatix® 7X Solar / Enduro™ 2
  *   fēnix® 7X Pro - Solar Edition (no Wi-Fi)
  *   fēnix® 7X Pro
  *   fēnix® 8 43mm
  *   fēnix® 8 47mm / 51mm / tactix® 8 47mm / 51mm / quatix® 8 47mm / 51mm
  *   fēnix® 8 Pro 47mm / 51mm / MicroLED / quatix® 8 Pro 47mm / 51mm
  *   fēnix® 8 Solar 47mm
  *   fēnix® 8 Solar 51mm / tactix® 8 Solar 51mm
  *   fēnix® E
  *   First Avenger
  *   Forerunner® 165 Music
  *   Forerunner® 165
  *   Forerunner® 170 Music
  *   Forerunner® 170
  *   Forerunner® 265
  *   Forerunner® 265s
  *   Forerunner® 570 42mm
  *   Forerunner® 570 47mm
  *   Forerunner® 70
  *   Forerunner® 955 / Solar
  *   Forerunner® 965
  *   Forerunner® 970
  *   GPSMAP® H1 / H1i Plus
  *   MARQ® (Gen 2) Athlete / Adventurer / Captain / Golfer / Carbon Edition / Commander - Carbon Edition
  *   MARQ® (Gen 2) Aviator
  *   Rey™
  *   Venu® 2 Plus
  *   Venu® 2
  *   Venu® 2S
  *   Venu® 3
  *   Venu® 3S
  *   Venu® 4 41mm
  *   Venu® 4 45mm / D2™ Air X15
  *   Venu® Mercedes-Benz® Collection
  *   Venu® Sq 2 Music
  *   Venu® Sq 2
  *   Venu® Sq
  *   Venu® Sq. Music Edition
  *   Venu® X1
  *   Venu®
  *   vívoactive® 4
  *   vívoactive® 4S
  *   vívoactive® 5
  *   vívoactive® 6

  Returns:

  *   [Lang.Boolean](../../Toybox/Lang/Boolean.html) —
      
      `true` if handled, otherwise `false`
      

  See Also:

  *   [Toybox.WatchUi.FlickEvent](../../Toybox/WatchUi/FlickEvent.html)
      

  Since:

  API Level 3.3.0


c3: prose
c7: 2026-07-26T21:09:01.081Z
c0:
  Class: Toybox.WatchUi.InputDelegate > Instance Method Details > **onHold(clickEvent as [WatchUi.ClickEvent](../../Toybox/WatchUi/ClickEvent.html))** as [Lang.Boolean](../../Toybox/Lang/Boolean.html)

c1:
  ### **onHold(clickEvent as [WatchUi.ClickEvent](../../Toybox/WatchUi/ClickEvent.html))** as [Lang.Boolean](../../Toybox/Lang/Boolean.html)

  A touch screen hold event has occurred.

  This is sent when the touch screen is touched and not released.

  Parameters:

  *   clickEvent — ([WatchUi.ClickEvent](../../Toybox/WatchUi/ClickEvent.html)) —
      
      The click event that has occurred
      

  Returns:

  *   [Lang.Boolean](../../Toybox/Lang/Boolean.html) —
      
      `true` if handled, otherwise `false`
      

  See Also:

  *   [Toybox.WatchUi.ClickEvent](../../Toybox/WatchUi/ClickEvent.html)
      

  Since:

  API Level 1.0.0


c3: prose
c7: 2026-07-26T21:09:01.081Z
c0:
  Class: Toybox.WatchUi.InputDelegate > Instance Method Details > **onKey(keyEvent as [WatchUi.KeyEvent](../../Toybox/WatchUi/KeyEvent.html))** as [Lang.Boolean](../../Toybox/Lang/Boolean.html)

c1:
  ### **onKey(keyEvent as [WatchUi.KeyEvent](../../Toybox/WatchUi/KeyEvent.html))** as [Lang.Boolean](../../Toybox/Lang/Boolean.html)

  A physical button has been pressed and released.

  To find out which key was pressed, use [KeyEvent.getKey()](../../Toybox/WatchUi/KeyEvent.html#getKey-instance_function) to get the button's [WatchUi.KEY\_\*](../../Toybox/WatchUi.html#KEY_POWER-const) enum value.

  Parameters:

  *   keyEvent — ([WatchUi.KeyEvent](../../Toybox/WatchUi/KeyEvent.html)) —
      
      The key event that occurred
      

  Returns:

  *   [Lang.Boolean](../../Toybox/Lang/Boolean.html) —
      
      `true` if handled, otherwise `false`
      

  See Also:

  *   [Toybox.WatchUi.KeyEvent](../../Toybox/WatchUi/KeyEvent.html)
      

  Since:

  API Level 1.0.0


c3: prose
c7: 2026-07-26T21:09:01.081Z
c0:
  Class: Toybox.WatchUi.InputDelegate > Instance Method Details > **onKeyPressed(keyEvent as [WatchUi.KeyEvent](../../Toybox/WatchUi/KeyEvent.html))** as [Lang.Boolean](../../Toybox/Lang/Boolean.html)

c1:
  ### **onKeyPressed(keyEvent as [WatchUi.KeyEvent](../../Toybox/WatchUi/KeyEvent.html))** as [Lang.Boolean](../../Toybox/Lang/Boolean.html)

  A physical button has been pressed down.

  To find out which key was pressed, use [KeyEvent.getKey()](../../Toybox/WatchUi/KeyEvent.html#getKey-instance_function) to get the button's [WatchUi.KEY\_\*](../../Toybox/WatchUi.html#KEY_POWER-const) enum value.

  Parameters:

  *   keyEvent — ([WatchUi.KeyEvent](../../Toybox/WatchUi/KeyEvent.html)) —
      
      The key event that occurred.
      

  Returns:

  *   [Lang.Boolean](../../Toybox/Lang/Boolean.html) —
      
      `true` if handled, otherwise `false`
      

  See Also:

  *   [Toybox.WatchUi.KeyEvent](../../Toybox/WatchUi/KeyEvent.html)
      

  Since:

  API Level 1.1.2


c3: prose
c7: 2026-07-26T21:09:01.081Z
c0:
  Class: Toybox.WatchUi.InputDelegate > Instance Method Details > **onKeyReleased(keyEvent as [WatchUi.KeyEvent](../../Toybox/WatchUi/KeyEvent.html))** as [Lang.Boolean](../../Toybox/Lang/Boolean.html)

c1:
  ### **onKeyReleased(keyEvent as [WatchUi.KeyEvent](../../Toybox/WatchUi/KeyEvent.html))** as [Lang.Boolean](../../Toybox/Lang/Boolean.html)

  A physical button has been released.

  To find out which key was pressed, use [KeyEvent.getKey()](../../Toybox/WatchUi/KeyEvent.html#getKey-instance_function) to get the button's [WatchUi.KEY\_\*](../../Toybox/WatchUi.html#KEY_POWER-const) enum value.

  Parameters:

  *   keyEvent — ([WatchUi.KeyEvent](../../Toybox/WatchUi/KeyEvent.html)) —
      
      The key event that occurred
      

  Returns:

  *   [Lang.Boolean](../../Toybox/Lang/Boolean.html) —
      
      `true` if handled, otherwise `false`
      

  See Also:

  *   [Toybox.WatchUi.KeyEvent](../../Toybox/WatchUi/KeyEvent.html)
      

  Since:

  API Level 1.1.2


c3: prose
c7: 2026-07-26T21:09:01.081Z
c0:
  Class: Toybox.WatchUi.InputDelegate > Instance Method Details > **onRelease(clickEvent as [WatchUi.ClickEvent](../../Toybox/WatchUi/ClickEvent.html))** as [Lang.Boolean](../../Toybox/Lang/Boolean.html)

c1:
  ### **onRelease(clickEvent as [WatchUi.ClickEvent](../../Toybox/WatchUi/ClickEvent.html))** as [Lang.Boolean](../../Toybox/Lang/Boolean.html)

  A touch screen release event has occurred.

  This is only sent after an [onHold()](../../Toybox/WatchUi/InputDelegate.html#onHold-instance_function) event, once the hold on the touch screen is released.

  Parameters:

  *   clickEvent — ([WatchUi.ClickEvent](../../Toybox/WatchUi/ClickEvent.html)) —
      
      The click event that has occurred
      

  Returns:

  *   [Lang.Boolean](../../Toybox/Lang/Boolean.html) —
      
      `true` if handled, otherwise `false`
      

  See Also:

  *   [Toybox.WatchUi.ClickEvent](../../Toybox/WatchUi/ClickEvent.html)
      

  Since:

  API Level 1.0.0


c3: prose
c7: 2026-07-26T21:09:01.081Z
c0:
  Class: Toybox.WatchUi.InputDelegate > Instance Method Details > **onSelectable(selectableEvent as [WatchUi.SelectableEvent](../../Toybox/WatchUi/SelectableEvent.html))** as [Lang.Boolean](../../Toybox/Lang/Boolean.html)

c1:
  ### **onSelectable(selectableEvent as [WatchUi.SelectableEvent](../../Toybox/WatchUi/SelectableEvent.html))** as [Lang.Boolean](../../Toybox/Lang/Boolean.html)

  The state of a [Selectable](../../Toybox/WatchUi/Selectable.html) has changed.

  Parameters:

  *   selectableEvent — ([WatchUi.SelectableEvent](../../Toybox/WatchUi/SelectableEvent.html)) —
      
      The selectable event containing the information about the Selectable whose state has changed
      

  Returns:

  *   [Lang.Boolean](../../Toybox/Lang/Boolean.html) —
      
      `true` if handled, otherwise `false`
      

  See Also:

  *   [Toybox.WatchUi.Selectable](../../Toybox/WatchUi/Selectable.html)
      
  *   [Toybox.WatchUi.SelectableEvent](../../Toybox/WatchUi/SelectableEvent.html)
      

  Since:

  API Level 2.1.0


c3: prose
c7: 2026-07-26T21:09:01.081Z
c0:
  Class: Toybox.WatchUi.InputDelegate > Instance Method Details > **onSwipe(swipeEvent as [WatchUi.SwipeEvent](../../Toybox/WatchUi/SwipeEvent.html))** as [Lang.Boolean](../../Toybox/Lang/Boolean.html)

c1:
  ### **onSwipe(swipeEvent as [WatchUi.SwipeEvent](../../Toybox/WatchUi/SwipeEvent.html))** as [Lang.Boolean](../../Toybox/Lang/Boolean.html)

  A touch screen swipe event has occurred.

  This is sent when the touch screen is swiped.

  Parameters:

  *   swipeEvent — ([WatchUi.SwipeEvent](../../Toybox/WatchUi/SwipeEvent.html)) —
      
      The swipe event that has occurred
      

  Returns:

  *   [Lang.Boolean](../../Toybox/Lang/Boolean.html) —
      
      `true` if handled, otherwise `false`
      

  See Also:

  *   [Toybox.WatchUi.SwipeEvent](../../Toybox/WatchUi/SwipeEvent.html)
      

  Since:

  API Level 1.0.0


c3: prose
c7: 2026-07-26T21:09:01.081Z
c0:
  Class: Toybox.WatchUi.InputDelegate > Instance Method Details > **onTap(clickEvent as [WatchUi.ClickEvent](../../Toybox/WatchUi/ClickEvent.html))** as [Lang.Boolean](../../Toybox/Lang/Boolean.html)

c1:
  ### **onTap(clickEvent as [WatchUi.ClickEvent](../../Toybox/WatchUi/ClickEvent.html))** as [Lang.Boolean](../../Toybox/Lang/Boolean.html)

  A screen tap event has occurred.

  This is sent when the touch screen is tapped (a quick touch and release).

  Parameters:

  *   clickEvent — ([WatchUi.ClickEvent](../../Toybox/WatchUi/ClickEvent.html)) —
      
      The click event that occurred
      

  Returns:

  *   [Lang.Boolean](../../Toybox/Lang/Boolean.html) —
      
      `true` if handled, otherwise `false`
      

  See Also:

  *   [Toybox.WatchUi.ClickEvent](../../Toybox/WatchUi/ClickEvent.html)
      

  Since:

  API Level 1.0.0

  * * *

  Generated Jun 8, 2026, 3:42:18 PM


c0: Module: Toybox.WatchUi > Overview
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ## Overview

  The WatchUi module contains user interface elements available within apps.

  WatchUi provides several classes that represent Views, or what is displayed on the screen of a device. Also available are UI elements like on-screen menus, progress bars, buttons, and various pickers. More abstract classes represent all drawable objects, such as bitmaps and text.

  Note:

  All keys in the key types enum listed after EXTENDED\_KEYS (16) were added after ConnectIQ version 1.1.2. Before evaluating these keys, check for the availability of these keys with a `has` check: if (Toybox.WatchUi has :EXTENDED\_KEYS) [...](../index.html)

  Since:

  API Level 1.0.0

  App Types and Runtime Contexts:

  *   Audio Content Provider
      
  *   Background (supported since API Level 5.1.0)
      
  *   Data Field
      
  *   Glance
      
  *   Watch App
      
  *   Watch Face
      
  *   Widget


c0: Module: Toybox.WatchUi > Classes Under Namespace
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ## Classes Under Namespace

  **Classes:** [ActionMenu](../Toybox/WatchUi/ActionMenu.html), [ActionMenuDelegate](../Toybox/WatchUi/ActionMenuDelegate.html), [ActionMenuItem](../Toybox/WatchUi/ActionMenuItem.html), [AnimationDelegate](../Toybox/WatchUi/AnimationDelegate.html), [AnimationLayer](../Toybox/WatchUi/AnimationLayer.html), [AnimationResource](../Toybox/WatchUi/AnimationResource.html), [BehaviorDelegate](../Toybox/WatchUi/BehaviorDelegate.html), [Bitmap](../Toybox/WatchUi/Bitmap.html), [BitmapResource](../Toybox/WatchUi/BitmapResource.html), [Button](../Toybox/WatchUi/Button.html), [CheckboxMenu](../Toybox/WatchUi/CheckboxMenu.html), [CheckboxMenuItem](../Toybox/WatchUi/CheckboxMenuItem.html), [ClickEvent](../Toybox/WatchUi/ClickEvent.html), [ComplicationDrawableRef](../Toybox/WatchUi/ComplicationDrawableRef.html), [Confirmation](../Toybox/WatchUi/Confirmation.html), [ConfirmationDelegate](../Toybox/WatchUi/ConfirmationDelegate.html), [CustomMenu](../Toybox/WatchUi/CustomMenu.html), [CustomMenuItem](../Toybox/WatchUi/CustomMenuItem.html), [DataField](../Toybox/WatchUi/DataField.html), [DataFieldAlert](../Toybox/WatchUi/DataFieldAlert.html), [DragEvent](../Toybox/WatchUi/DragEvent.html), [Drawable](../Toybox/WatchUi/Drawable.html), [FlickEvent](../Toybox/WatchUi/FlickEvent.html), [FontResource](../Toybox/WatchUi/FontResource.html), [GlanceView](../Toybox/WatchUi/GlanceView.html), [GlanceViewDelegate](../Toybox/WatchUi/GlanceViewDelegate.html), [IconMenuItem](../Toybox/WatchUi/IconMenuItem.html), [InputDelegate](../Toybox/WatchUi/InputDelegate.html), [InvalidMenuItemTypeException](../Toybox/WatchUi/InvalidMenuItemTypeException.html), [InvalidPointException](../Toybox/WatchUi/InvalidPointException.html), [InvalidSelectableStateException](../Toybox/WatchUi/InvalidSelectableStateException.html), [KeyEvent](../Toybox/WatchUi/KeyEvent.html), [Layer](../Toybox/WatchUi/Layer.html), [MapMarker](../Toybox/WatchUi/MapMarker.html), [MapPolyline](../Toybox/WatchUi/MapPolyline.html), [MapTrackView](../Toybox/WatchUi/MapTrackView.html), [MapView](../Toybox/WatchUi/MapView.html), [Menu](../Toybox/WatchUi/Menu.html), [Menu2](../Toybox/WatchUi/Menu2.html), [Menu2InputDelegate](../Toybox/WatchUi/Menu2InputDelegate.html), [MenuInputDelegate](../Toybox/WatchUi/MenuInputDelegate.html), [MenuItem](../Toybox/WatchUi/MenuItem.html), [NumberPicker](../Toybox/WatchUi/NumberPicker.html), [NumberPickerDelegate](../Toybox/WatchUi/NumberPickerDelegate.html), [Picker](../Toybox/WatchUi/Picker.html), [PickerDelegate](../Toybox/WatchUi/PickerDelegate.html), [PickerFactory](../Toybox/WatchUi/PickerFactory.html), [ProgressBar](../Toybox/WatchUi/ProgressBar.html), [ReviewResponseToken](../Toybox/WatchUi/ReviewResponseToken.html), [Selectable](../Toybox/WatchUi/Selectable.html), [SelectableEvent](../Toybox/WatchUi/SelectableEvent.html), [SimpleDataField](../Toybox/WatchUi/SimpleDataField.html), [SwipeEvent](../Toybox/WatchUi/SwipeEvent.html), [Text](../Toybox/WatchUi/Text.html), [TextArea](../Toybox/WatchUi/TextArea.html), [TextPicker](../Toybox/WatchUi/TextPicker.html), [TextPickerDelegate](../Toybox/WatchUi/TextPickerDelegate.html), [ToggleMenuItem](../Toybox/WatchUi/ToggleMenuItem.html), [TransparentProgressBar](../Toybox/WatchUi/TransparentProgressBar.html), [View](../Toybox/WatchUi/View.html), [ViewLoop](../Toybox/WatchUi/ViewLoop.html), [ViewLoopDelegate](../Toybox/WatchUi/ViewLoopDelegate.html), [ViewLoopFactory](../Toybox/WatchUi/ViewLoopFactory.html), [WatchFace](../Toybox/WatchUi/WatchFace.html), [WatchFaceDelegate](../Toybox/WatchUi/WatchFaceDelegate.html), [WatchFacePowerInfo](../Toybox/WatchUi/WatchFacePowerInfo.html)


c0: Module: Toybox.WatchUi > Constant Summary > Key
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### Key

  Since:

  API Level 1.0.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | KEY\_POWER | 0 | 
  API Level 1.0.0

   | 

  The power key

   |
  | KEY\_LIGHT | 1 | 

  API Level 1.0.0

   | 

  The light key

   |
  | KEY\_ZIN | 2 | 

  API Level 1.0.0

   | 

  The zoom in key

   |
  | KEY\_ZOUT | 3 | 

  API Level 1.0.0

   | 

  The zoom out key

   |
  | KEY\_ENTER | 4 | 

  API Level 1.0.0

   | 

  The enter key

   |
  | KEY\_ESC | 5 | 

  API Level 1.0.0

   | 

  The escape key

   |
  | KEY\_FIND | 6 | 

  API Level 1.0.0

   | 

  The find key

   |
  | KEY\_MENU | 7 | 

  API Level 1.0.0

   | 

  The menu key

   |
  | KEY\_DOWN | 8 | 

  API Level 1.0.0

   | 

  The down key

   |
  | KEY\_DOWN\_LEFT | 9 | 

  API Level 1.0.0

   | 

  The down left key

   |
  | KEY\_DOWN\_RIGHT | 10 | 

  API Level 1.0.0

   | 

  The down key

   |
  | KEY\_LEFT | 11 | 

  API Level 1.0.0

   | 

  The left key

   |
  | KEY\_RIGHT | 12 | 

  API Level 1.0.0

   | 

  The right key

   |
  | KEY\_UP | 13 | 

  API Level 1.0.0

   | 

  The up key

   |
  | KEY\_UP\_LEFT | 14 | 

  API Level 1.0.0

   | 

  The up-left

   |
  | KEY\_UP\_RIGHT | 15 | 

  API Level 1.0.0

   | 

  The up-right key

   |
  | EXTENDED\_KEYS | 16 | 

  API Level 1.1.2

   | 

  Indicates extended key support

   |
  | KEY\_PAGE | 17 | 

  API Level 1.1.2

   | 

  The page key

   |
  | KEY\_START | 18 | 

  API Level 1.1.2

   | 

  The start key

   |
  | KEY\_LAP | 19 | 

  API Level 1.1.2

   | 

  The lap key

   |
  | KEY\_RESET | 20 | 

  API Level 1.1.2

   | 

  The reset key

   |
  | KEY\_SPORT | 21 | 

  API Level 1.1.2

   | 

  The sport key

   |
  | KEY\_CLOCK | 22 | 

  API Level 1.1.2

   | 

  The clock key

   |
  | KEY\_MODE | 23 | 

  API Level 1.1.2

   | 

  The mode key

   |
  | KEY\_ACTION\_MENU | 24 | 

  API Level 5.1.1

   | 

  The action menu key

   |


c0: Module: Toybox.WatchUi > Constant Summary > AnimationType
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### AnimationType

  Since:

  API Level 1.0.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | ANIM\_TYPE\_LINEAR | 0 | 
  API Level 1.0.0

   | 

  Animation with a constant speed

   |
  | ANIM\_TYPE\_EASE\_IN | 1 | 

  API Level 1.0.0

   | 

  Animation that increases in speed from start to end

   |
  | ANIM\_TYPE\_EASE\_OUT | 2 | 

  API Level 1.0.0

   | 

  Animation that decreases in speed from start to end

   |
  | ANIM\_TYPE\_EASE\_IN\_OUT | 3 | 

  API Level 1.0.0

   | 

  Animation that increases in speed from the start, then decreases in speed toward the end

   |


c0: Module: Toybox.WatchUi > Constant Summary > KeyPressType
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### KeyPressType

  Since:

  API Level 1.0.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | PRESS\_TYPE\_DOWN | 0 | 
  API Level 1.1.2

   | 

  The key is pressed down

   |
  | PRESS\_TYPE\_UP | 1 | 

  API Level 1.1.2

   | 

  The key is released

   |
  | PRESS\_TYPE\_ACTION | 2 | 

  API Level 1.1.2

   | 

  The key's action is performed

   |


c0: Module: Toybox.WatchUi > Constant Summary > ClickType
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### ClickType

  Since:

  API Level 1.0.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | CLICK\_TYPE\_TAP | 0 | 
  API Level 1.0.0

   | 

  A tap on the screen

   |
  | CLICK\_TYPE\_HOLD | 1 | 

  API Level 1.0.0

   | 

  A press and hold on the screen

   |
  | CLICK\_TYPE\_RELEASE | 2 | 

  API Level 1.0.0

   | 

  A release of a hold on the screen

   |


c0: Module: Toybox.WatchUi > Constant Summary > MapMarkerIcon
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### MapMarkerIcon

  Since:

  API Level 1.0.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | MAP\_MARKER\_ICON\_PIN | 0 | 
  API Level 3.0.0

   | 

  The default Garmin map marker pin icon

   |


c0: Module: Toybox.WatchUi > Constant Summary > MapMode
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### MapMode

  Since:

  API Level 1.0.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | MAP\_MODE\_PREVIEW | 0 | 
  API Level 3.0.0

   | 

  The preview mode for a [MapView](../Toybox/WatchUi/MapView.html)

   |
  | MAP\_MODE\_BROWSE | 1 | 

  API Level 3.0.0

   | 

  The browse mode for a [MapView](../Toybox/WatchUi/MapView.html)

   |


c0: Module: Toybox.WatchUi > Constant Summary > SwipeDirection
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### SwipeDirection

  Since:

  API Level 1.0.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | SWIPE\_UP | 0 | 
  API Level 1.0.0

   | 

  A swipe in the upward direction

   |
  | SWIPE\_RIGHT | 1 | 

  API Level 1.0.0

   | 

  A swipe towards the right

   |
  | SWIPE\_DOWN | 2 | 

  API Level 1.0.0

   | 

  A swipe in the downward direction

   |
  | SWIPE\_LEFT | 3 | 

  API Level 1.0.0

   | 

  A swipe towards the left

   |


c0: Module: Toybox.WatchUi > Constant Summary > DragType
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### DragType

  Since:

  API Level 1.0.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | DRAG\_TYPE\_START | 0 | 
  API Level 3.3.0

   | 

  Start of a screen drag

   |
  | DRAG\_TYPE\_CONTINUE | 1 | 

  API Level 3.3.0

   | 

  Continuation of a screen drag

   |
  | DRAG\_TYPE\_STOP | 2 | 

  API Level 3.3.0

   | 

  Stop of a screen drag

   |


c0: Module: Toybox.WatchUi > Constant Summary > ControlBarLeftButton
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### ControlBarLeftButton

  Since:

  API Level 4.1.2

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | CONTROL\_BAR\_LEFT\_BUTTON\_BACK | 0 | 
  API Level 4.1.2

   |  |
  | CONTROL\_BAR\_LEFT\_BUTTON\_CANCEL | 1 | 

  API Level 4.1.2

   |  |


c0: Module: Toybox.WatchUi > Constant Summary > ControlBarRightButton
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### ControlBarRightButton

  Since:

  API Level 4.1.2

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | CONTROL\_BAR\_RIGHT\_BUTTON\_ACCEPT | 2 | 
  API Level 4.1.2

   |  |
  | CONTROL\_BAR\_RIGHT\_BUTTON\_MENU | 3 | 

  API Level 4.1.2

   |  |


c0: Module: Toybox.WatchUi > Constant Summary > AnalogClockState
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### AnalogClockState

  Set the state for analog clock hands

  Since:

  API Level 3.3.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | ANALOG\_CLOCK\_STATE\_RESTING | 0 | 
  API Level 3.3.0

   | 

  Set the clock hands to resting position

   |
  | ANALOG\_CLOCK\_STATE\_SYSTEM\_TIME | 1 | 

  API Level 3.3.0

   | 

  Set the clock hands to system time

   |
  | ANALOG\_CLOCK\_STATE\_HOLDING | 2 | 

  API Level 3.3.0

   | 

  Set the clock hands to the specified position

   |


c0: Module: Toybox.WatchUi > Constant Summary > WatchFaceConfigType
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### WatchFaceConfigType

  WatchFace config types.

  Since:

  API Level 5.1.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | WATCH\_FACE\_CONFIG\_TYPE\_STYLE | 0 | 
  API Level 5.1.0

   |  |
  | WATCH\_FACE\_CONFIG\_TYPE\_COMPLICATION | 1 | 

  API Level 5.1.0

   |  |
  | WATCH\_FACE\_CONFIG\_TYPE\_ACCENT\_COLOR | 2 | 

  API Level 5.1.0

   |  |
  | WATCH\_FACE\_CONFIG\_TYPE\_COMPLICATION\_COLOR | 3 | 

  API Level 5.1.0

   |  |


c0: Module: Toybox.WatchUi > Constant Summary > MenuTheme
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### MenuTheme

  Menu theme for supported devices

  Since:

  API Level 4.1.8

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | MENU\_THEME\_DEFAULT | 0 | 
  API Level 4.1.8

   | 

  The default theme color as specified by the device.

   |
  | MENU\_THEME\_BLUE | 1 | 

  API Level 4.1.8

   |  |
  | MENU\_THEME\_CYAN | 2 | 

  API Level 4.1.8

   |  |
  | MENU\_THEME\_GREEN | 3 | 

  API Level 4.1.8

   |  |
  | MENU\_THEME\_YELLOW | 4 | 

  API Level 4.1.8

   |  |
  | MENU\_THEME\_ORANGE | 5 | 

  API Level 4.1.8

   |  |
  | MENU\_THEME\_RED | 6 | 

  API Level 4.1.8

   |  |
  | MENU\_THEME\_PINK | 7 | 

  API Level 4.1.8

   |  |
  | MENU\_THEME\_PURPLE | 8 | 

  API Level 4.1.8

   |  |
  | MENU\_THEME\_GREEN\_YELLOW | 9 | 

  API Level 4.1.8

   |  |


c0: Module: Toybox.WatchUi > Constant Summary > Confirm
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### Confirm

  Since:

  API Level 1.0.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | CONFIRM\_NO | 0 | 
  API Level 1.0.0

   |  |
  | CONFIRM\_YES | 1 | 

  API Level 1.0.0

   |  |


c0: Module: Toybox.WatchUi > Constant Summary > NumberPickerMode
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### NumberPickerMode

  **This has been deprecated**

  This enum may be removed after System 3.

  Since:

  API Level 1.0.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | NUMBER\_PICKER\_DISTANCE | 0 | 
  API Level 1.0.0

   | 

  A Float in meters (m)

   |
  | NUMBER\_PICKER\_TIME | 1 | 

  API Level 1.0.0

   | 

  A Duration

   |
  | NUMBER\_PICKER\_TIME\_MIN\_SEC | 2 | 

  API Level 1.0.0

   | 

  A Duration

   |
  | NUMBER\_PICKER\_TIME\_OF\_DAY | 3 | 

  API Level 1.0.0

   | 

  A Duration representing the number of seconds since midnight

   |
  | NUMBER\_PICKER\_WEIGHT | 4 | 

  API Level 1.0.0

   | 

  A Float in kilograms (kg)

   |
  | NUMBER\_PICKER\_HEIGHT | 5 | 

  API Level 1.0.0

   | 

  A Float in meters (m)

   |
  | NUMBER\_PICKER\_CALORIES | 6 | 

  API Level 1.0.0

   | 

  A Number

   |
  | NUMBER\_PICKER\_BIRTH\_YEAR | 7 | 

  API Level 1.0.0

   | 

  A Number

   |


c0: Module: Toybox.WatchUi > Constant Summary > SlideType
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### SlideType

  Since:

  API Level 1.0.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | SLIDE\_IMMEDIATE | 0 | 
  API Level 1.0.0

   | 

  No transition.

   |
  | SLIDE\_LEFT | 1 | 

  API Level 1.0.0

   | 

  The View slides to the left.

   |
  | SLIDE\_RIGHT | 2 | 

  API Level 1.0.0

   | 

  The View slides to the right.

   |
  | SLIDE\_DOWN | 3 | 

  API Level 1.0.0

   | 

  The View slides down.

   |
  | SLIDE\_UP | 4 | 

  API Level 1.0.0

   | 

  The View slides up.

   |
  | SLIDE\_BLINK | 5 | 

  API Level 3.1.0

   | 

  The View fades in.

   |


c0: Module: Toybox.WatchUi > Constant Summary > LayoutVerticalAlignment
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### LayoutVerticalAlignment

  Since:

  API Level 1.0.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | LAYOUT\_VALIGN\_TOP | \-0x7FFFFFFF | 
  API Level 1.2.0

   | 

  Set a Drawable object's locY property to this to align it to the top edge of the device context ([Dc](../Toybox/Graphics/Dc.html)).

   |
  | LAYOUT\_VALIGN\_BOTTOM | \-0x7FFFFFFE | 

  API Level 1.2.0

   | 

  Set a Drawable object's locY property to this to align it to the bottom edge of the device context ([Dc](../Toybox/Graphics/Dc.html)).

   |
  | LAYOUT\_VALIGN\_CENTER | \-0x7FFFFFFD | 

  API Level 1.2.0

   | 

  Set a Drawable object's locY property to this to center it vertically in the device context ([Dc](../Toybox/Graphics/Dc.html)).

   |
  | LAYOUT\_VALIGN\_START | \-0x7FFFFFFC | 

  API Level 1.2.0

   | 

  Set a Drawable object's locY property to this to make it equal to its parent's locY property.

   |


c0: Module: Toybox.WatchUi > Constant Summary > LayoutHorizontalAlignment
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### LayoutHorizontalAlignment

  Since:

  API Level 1.0.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | LAYOUT\_HALIGN\_LEFT | \-0x7FFFFFFF | 
  API Level 1.2.0

   | 

  Set a Drawable object's locX property to this to align it along the left edge of the device context ([Dc](../Toybox/Graphics/Dc.html)).

   |
  | LAYOUT\_HALIGN\_RIGHT | \-0x7FFFFFFE | 

  API Level 1.2.0

   | 

  Set a Drawable object's locX property to this to align it along the right edge of the device context ([Dc](../Toybox/Graphics/Dc.html)).

   |
  | LAYOUT\_HALIGN\_CENTER | \-0x7FFFFFFD | 

  API Level 1.2.0

   | 

  Set a Drawable object's locX property to this to center it horizontally in the device context ([Dc](../Toybox/Graphics/Dc.html)).

   |
  | LAYOUT\_HALIGN\_START | \-0x7FFFFFFC | 

  API Level 1.2.0

   | 

  Set a Drawable object's locX property to this to make it equal to its parent's locX property.

   |


c0: Module: Toybox.WatchUi > Constant Summary > AnimationEvent
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### AnimationEvent

  Since:

  API Level 1.0.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | ANIMATION\_EVENT\_COMPLETE | 0 | 
  API Level 3.1.0

   | 

  Indicates the completion of an animation.

   |
  | ANIMATION\_EVENT\_CANCELED | 1 | 

  API Level 3.1.0

   | 

  Indicates the cancel of the animation playback

   |


c0: Module: Toybox.WatchUi > Constant Summary > ActionMenuTheme
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### ActionMenuTheme

  The theme for the ActionMenu

  Since:

  API Level 3.4.0

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | ACTION\_MENU\_THEME\_DARK | 0 | 
  API Level 3.4.0

   | 

  Dark theme for the action menu

   |
  | ACTION\_MENU\_THEME\_LIGHT | 1 | 

  API Level 3.4.0

   | 

  Light theme for the action menu

   |


c0: Module: Toybox.WatchUi > Constant Summary > ReviewRequestStatus
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### ReviewRequestStatus

  Enum class for makeReviewTokenRequest return status

  Since:

  API Level 3.4.2

  | Name | Value | Since | Description |
  | --- | --- | --- | --- |
  | REVIEW\_REQUEST\_STATUS\_GRANTED | 0 | 
  API Level 3.4.2

   |  |
  | REVIEW\_REQUEST\_STATUS\_DENIED | 1 | 

  API Level 3.4.2

   |  |
  | REVIEW\_REQUEST\_STATUS\_FAILED | 2 | 

  API Level 3.4.2

   |  |


c0: Module: Toybox.WatchUi > Typedef Summary [collapse](#)
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ## Typedef Summary [collapse](#)

  *   [**InputDelegates**](#InputDelegates-named_type "InputDelegates (Named Type)") as [WatchUi.InputDelegate](../Toybox/WatchUi/InputDelegate.html) or [WatchUi.BehaviorDelegate](../Toybox/WatchUi/BehaviorDelegate.html) or [WatchUi.ConfirmationDelegate](../Toybox/WatchUi/ConfirmationDelegate.html) or [WatchUi.MenuInputDelegate](../Toybox/WatchUi/MenuInputDelegate.html) or [WatchUi.NumberPickerDelegate](../Toybox/WatchUi/NumberPickerDelegate.html) or [WatchUi.PickerDelegate](../Toybox/WatchUi/PickerDelegate.html) or [WatchUi.TextPickerDelegate](../Toybox/WatchUi/TextPickerDelegate.html) or [WatchUi.WatchFaceDelegate](../Toybox/WatchUi/WatchFaceDelegate.html) or [WatchUi.Menu2InputDelegate](../Toybox/WatchUi/Menu2InputDelegate.html) or [WatchUi.ViewLoopDelegate](../Toybox/WatchUi/ViewLoopDelegate.html)
  *   [**Resource**](#Resource-named_type "Resource (Named Type)") as [Lang.Array](../Toybox/Lang/Array.html) or [Lang.Dictionary](../Toybox/Lang/Dictionary.html) or [Lang.String](../Toybox/Lang/String.html) or [WatchUi.AnimationResource](../Toybox/WatchUi/AnimationResource.html) or [WatchUi.BitmapResource](../Toybox/WatchUi/BitmapResource.html) or [WatchUi.FontResource](../Toybox/WatchUi/FontResource.html) or [Graphics.BitmapReference](../Toybox/Graphics/BitmapReference.html) or [Graphics.FontReference](../Toybox/Graphics/FontReference.html)
  *   [**TouchEventSettings**](#TouchEventSettings-named_type "TouchEventSettings (Named Type)") as { :enabled as [Lang.Boolean](../Toybox/Lang/Boolean.html) }
  *   [**Views**](#Views-named_type "Views (Named Type)") as [WatchUi.View](../Toybox/WatchUi/View.html) or [WatchUi.Menu](../Toybox/WatchUi/Menu.html) or [WatchUi.TextPicker](../Toybox/WatchUi/TextPicker.html) or [WatchUi.ProgressBar](../Toybox/WatchUi/ProgressBar.html) or [WatchUi.Confirmation](../Toybox/WatchUi/Confirmation.html) or [WatchUi.NumberPicker](../Toybox/WatchUi/NumberPicker.html) or [WatchUi.ViewLoop](../Toybox/WatchUi/ViewLoop.html)


c0: Module: Toybox.WatchUi > Instance Method Summary [collapse](#) (2)
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  *   [**animate**](#animate-instance_function "animate (Instance Function)")(object as [Lang.Object](../Toybox/Lang/Object.html), property as [Lang.Symbol](../Toybox/Lang/Symbol.html), type as [WatchUi.AnimationType](../Toybox/WatchUi.html#AnimationType-module), start as [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type), stop as [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type), period as [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type), callback as **Null** or [Lang.Method](../Toybox/Lang/Method.html)() as **Void**) as **Void**
      
      Animate an Object.
      
  *   [**cancelAllAnimations**](#cancelAllAnimations-instance_function "cancelAllAnimations (Instance Function)")() as **Void**
      
      Cancel animations started with [WatchUi.animate()](../Toybox/WatchUi.html#animate-instance_function) Stop all animations that were started with [WatchUi.animate()](../Toybox/WatchUi.html#animate-instance_function).
      
  *   [**configureTouchEvents**](#configureTouchEvents-instance_function "configureTouchEvents (Instance Function)")(options as [WatchUi.TouchEventSettings](../Toybox/WatchUi.html#TouchEventSettings-named_type)) as [Lang.Boolean](../Toybox/Lang/Boolean.html)
      
      Configurate touch event settings, only allowed for Watch Apps and Audio Content Providers when running in the foreground mode.
      
  *   [**getCurrentView**](#getCurrentView-instance_function "getCurrentView (Instance Function)")() as \[ [WatchUi.View](../Toybox/WatchUi/View.html) or **Null**, [WatchUi.InputDelegates](../Toybox/WatchUi.html#InputDelegates-named_type) or **Null** \]
      
      Get the current view that is displayed in the UI.
      
  *   [**getSubscreen**](#getSubscreen-instance_function "getSubscreen (Instance Function)")() as [Graphics.BoundingBox](../Toybox/Graphics/BoundingBox.html) or **Null**
      
      Get the subscreen area in the display.
      
  *   [**getTouchEventsConfiguration**](#getTouchEventsConfiguration-instance_function "getTouchEventsConfiguration (Instance Function)")() as [WatchUi.TouchEventSettings](../Toybox/WatchUi.html#TouchEventSettings-named_type)
      
      Returns the current touch event settings.
      
  *   [**loadResource**](#loadResource-instance_function "loadResource (Instance Function)")(resource as [Lang.ResourceId](../Toybox/Lang/ResourceId.html)) as [WatchUi.Resource](../Toybox/WatchUi.html#Resource-named_type)
      
      Load a resource from the executable.
      
  *   [**makeReviewTokenRequest**](#makeReviewTokenRequest-instance_function "makeReviewTokenRequest (Instance Function)")(callback as [Lang.Method](../Toybox/Lang/Method.html)(responseStatus as [WatchUi.ReviewRequestStatus](../Toybox/WatchUi.html#ReviewRequestStatus-module), token as [WatchUi.ReviewResponseToken](../Toybox/WatchUi/ReviewResponseToken.html) or **Null**) as **Void**) as **Void**
      
      Initiate a request to ask for this app to be reviewed.
      
  *   [**popView**](#popView-instance_function "popView (Instance Function)")(transition as [WatchUi.SlideType](../Toybox/WatchUi.html#SlideType-module)) as **Void**
      
      Pop the current View from the View stack.
      
  *   [**pushView**](#pushView-instance_function "pushView (Instance Function)")(view as [WatchUi.Views](../Toybox/WatchUi.html#Views-named_type), delegate as [WatchUi.InputDelegates](../Toybox/WatchUi.html#InputDelegates-named_type) or **Null**, transition as [WatchUi.SlideType](../Toybox/WatchUi.html#SlideType-module)) as **Void**
      
      Push a View onto the View stack.
      
  *   [**requestUpdate**](#requestUpdate-instance_function "requestUpdate (Instance Function)")() as **Void**
      
      Request a call to the [onUpdate()](../Toybox/WatchUi/View.html#onUpdate-instance_function) method for the current View.
      
  *   [**showActionMenu**](#showActionMenu-instance_function "showActionMenu (Instance Function)")(menu as [WatchUi.ActionMenu](../Toybox/WatchUi/ActionMenu.html), delegate as [WatchUi.ActionMenuDelegate](../Toybox/WatchUi/ActionMenuDelegate.html)) as **Void**
      
      Push an action menu to the display.
      
  *   [**showToast**](#showToast-instance_function "showToast (Instance Function)")(text as [Lang.String](../Toybox/Lang/String.html) or [Lang.ResourceId](../Toybox/Lang/ResourceId.html), options as { :icon as [WatchUi.BitmapResource](../Toybox/WatchUi/BitmapResource.html) or [Graphics.BitmapReference](../Toybox/Graphics/BitmapReference.html) or [Lang.ResourceId](../Toybox/Lang/ResourceId.html) } or **Null**) as **Void**
      
      Push a toast notification to the display.
      
  *   [**startUserReview**](#startUserReview-instance_function "startUserReview (Instance Function)")(token as [WatchUi.ReviewResponseToken](../Toybox/WatchUi/ReviewResponseToken.html)) as **Void**
      
      Start the app review UI flow.
      
  *   [**switchToView**](#switchToView-instance_function "switchToView (Instance Function)")(view as [WatchUi.Views](../Toybox/WatchUi.html#Views-named_type), delegate as [WatchUi.InputDelegates](../Toybox/WatchUi.html#InputDelegates-named_type) or **Null**, transition as [WatchUi.SlideType](../Toybox/WatchUi.html#SlideType-module)) as **Void**
      
      Pop the current View from the View stack and push a new one.


c3: prose
c7: 2026-07-26T21:09:05.892Z
c0:
  Module: Toybox.WatchUi > Typedef Details > **InputDelegates** as [WatchUi.InputDelegate](../Toybox/WatchUi/InputDelegate.html) or [WatchUi.BehaviorDelegate](../Toybox/WatchUi/BehaviorDelegate.html) or [WatchUi.ConfirmationDelegate](../Toybox/WatchUi/ConfirmationDelegate.html) or [WatchUi.MenuInputDelegate](../Toybox/WatchUi/MenuInputDelegate.html) or [WatchUi.NumberPickerDelegate](../Toybox/WatchUi/NumberPickerDelegate.html) or [WatchUi.PickerDelegate](../Toybox/WatchUi/PickerDelegate.html) or [WatchUi.TextPickerDelegate](../Toybox/WatchUi/TextPickerDelegate.html) or [WatchUi.WatchFaceDelegate](../Toybox/WatchUi/WatchFaceDelegate.html) or [WatchUi.Menu2InputDelegate](../Toybox/WatchUi/Menu2InputDelegate.html) or [WatchUi.ViewLoopDelegate](../Toybox/WatchUi/ViewLoopDelegate.html)

c1:
  ### **InputDelegates** as [WatchUi.InputDelegate](../Toybox/WatchUi/InputDelegate.html) or [WatchUi.BehaviorDelegate](../Toybox/WatchUi/BehaviorDelegate.html) or [WatchUi.ConfirmationDelegate](../Toybox/WatchUi/ConfirmationDelegate.html) or [WatchUi.MenuInputDelegate](../Toybox/WatchUi/MenuInputDelegate.html) or [WatchUi.NumberPickerDelegate](../Toybox/WatchUi/NumberPickerDelegate.html) or [WatchUi.PickerDelegate](../Toybox/WatchUi/PickerDelegate.html) or [WatchUi.TextPickerDelegate](../Toybox/WatchUi/TextPickerDelegate.html) or [WatchUi.WatchFaceDelegate](../Toybox/WatchUi/WatchFaceDelegate.html) or [WatchUi.Menu2InputDelegate](../Toybox/WatchUi/Menu2InputDelegate.html) or [WatchUi.ViewLoopDelegate](../Toybox/WatchUi/ViewLoopDelegate.html)

  Since:

  API Level 1.0.0


c3: prose
c7: 2026-07-26T21:09:05.892Z
c0:
  Module: Toybox.WatchUi > Typedef Details > **Resource** as [Lang.Array](../Toybox/Lang/Array.html) or [Lang.Dictionary](../Toybox/Lang/Dictionary.html) or [Lang.String](../Toybox/Lang/String.html) or [WatchUi.AnimationResource](../Toybox/WatchUi/AnimationResource.html) or [WatchUi.BitmapResource](../Toybox/WatchUi/BitmapResource.html) or [WatchUi.FontResource](../Toybox/WatchUi/FontResource.html) or [Graphics.BitmapReference](../Toybox/Graphics/BitmapReference.html) or [Graphics.FontReference](../Toybox/Graphics/FontReference.html)

c1:
  ### **Resource** as [Lang.Array](../Toybox/Lang/Array.html) or [Lang.Dictionary](../Toybox/Lang/Dictionary.html) or [Lang.String](../Toybox/Lang/String.html) or [WatchUi.AnimationResource](../Toybox/WatchUi/AnimationResource.html) or [WatchUi.BitmapResource](../Toybox/WatchUi/BitmapResource.html) or [WatchUi.FontResource](../Toybox/WatchUi/FontResource.html) or [Graphics.BitmapReference](../Toybox/Graphics/BitmapReference.html) or [Graphics.FontReference](../Toybox/Graphics/FontReference.html)

  Since:

  API Level 1.0.0


c3: prose
c7: 2026-07-26T21:09:05.892Z
c0:
  Module: Toybox.WatchUi > Typedef Details > **TouchEventSettings** as { :enabled as [Lang.Boolean](../Toybox/Lang/Boolean.html) }

c1:
  ### **TouchEventSettings** as { :enabled as [Lang.Boolean](../Toybox/Lang/Boolean.html) }

  Since:

  API Level 1.0.0


c3: prose
c7: 2026-07-26T21:09:05.892Z
c0:
  Module: Toybox.WatchUi > Typedef Details > **Views** as [WatchUi.View](../Toybox/WatchUi/View.html) or [WatchUi.Menu](../Toybox/WatchUi/Menu.html) or [WatchUi.TextPicker](../Toybox/WatchUi/TextPicker.html) or [WatchUi.ProgressBar](../Toybox/WatchUi/ProgressBar.html) or [WatchUi.Confirmation](../Toybox/WatchUi/Confirmation.html) or [WatchUi.NumberPicker](../Toybox/WatchUi/NumberPicker.html) or [WatchUi.ViewLoop](../Toybox/WatchUi/ViewLoop.html)

c1:
  ### **Views** as [WatchUi.View](../Toybox/WatchUi/View.html) or [WatchUi.Menu](../Toybox/WatchUi/Menu.html) or [WatchUi.TextPicker](../Toybox/WatchUi/TextPicker.html) or [WatchUi.ProgressBar](../Toybox/WatchUi/ProgressBar.html) or [WatchUi.Confirmation](../Toybox/WatchUi/Confirmation.html) or [WatchUi.NumberPicker](../Toybox/WatchUi/NumberPicker.html) or [WatchUi.ViewLoop](../Toybox/WatchUi/ViewLoop.html)

  Since:

  API Level 1.0.0


c3: code
c7: 2026-07-26T21:09:05.892Z
c0:
  Module: Toybox.WatchUi > Instance Method Details > **animate(object as [Lang.Object](../Toybox/Lang/Object.html), property as [Lang.Symbol](../Toybox/Lang/Symbol.html), type as [WatchUi.AnimationType](../Toybox/WatchUi.html#AnimationType-module), start as [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type), stop as [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type), period as [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type), callback as **Null** or [Lang.Method](../Toybox/Lang/Method.html)() as **Void**)** as **Void**

c1:
  ### **animate(object as [Lang.Object](../Toybox/Lang/Object.html), property as [Lang.Symbol](../Toybox/Lang/Symbol.html), type as [WatchUi.AnimationType](../Toybox/WatchUi.html#AnimationType-module), start as [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type), stop as [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type), period as [Lang.Numeric](../Toybox/Lang.html#Numeric-named_type), callback as **Null** or [Lang.Method](../Toybox/Lang/Method.html)() as **Void**)** as **Void**

  Animate an Object.

  Animate works by changing an object property over time, such as the x-position of a Drawable. The animation starts after the call and runs the length of the specified period. During this time, the View object's onUpdate() method will be invoked at an increased rate to facilitate animation.

  Note:

  Will cause an app crash if called from background or data field app, or from watch face while in low power mode

  Parameters:

  *   object — ([Lang.Object](../Toybox/Lang/Object.html)) —
      
      The object to animate
      
  *   property — ([Lang.Symbol](../Toybox/Lang/Symbol.html)) —
      
      The Symbol of the object's property to animate (e.g. :locX, :locY, etc.)
      
  *   type — ([WatchUi.AnimationType](../Toybox/WatchUi.html#AnimationType-module)) —
      
      A [WatchUi.ANIM\_TYPE\_\*](../Toybox/WatchUi.html#ANIM_TYPE_LINEAR-const) value
      
  *   start — ([Lang.Number](../Toybox/Lang/Number.html)) —
      
      The starting value of the property
      
  *   stop — ([Lang.Number](../Toybox/Lang/Number.html)) —
      
      The ending value of the property
      
  *   period — ([Lang.Float](../Toybox/Lang/Float.html)) —
      
      The duration of the animation in seconds
      
  *   callback — ([Lang.Method](../Toybox/Lang/Method.html)) —
      
      A Method to call when the animation is complete; this can be `null`
      

  Example:

  Move a bitmap across the screen from left to right

  ```
  using System.WatchUi;

  square = new Ui.Bitmap({
      :rezId=>Rez.Drawables.square,
      :locX=>10,
      :locY=>30
  });
  WatchUi.animate(square, :locX, Ui.ANIM_TYPE_LINEAR, 10, 200, 10, null);
  ```

  See Also:

  *   [Toybox.WatchUi.Drawable](../Toybox/WatchUi/Drawable.html)
      
  *   [Toybox.WatchUi.Bitmap](../Toybox/WatchUi/Bitmap.html)
      

  Since:

  API Level 1.0.0


c0: Module: Toybox.WatchUi > Instance Method Details > **cancelAllAnimations()** as **Void**
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### **cancelAllAnimations()** as **Void**

  Cancel animations started with [WatchUi.animate()](../Toybox/WatchUi.html#animate-instance_function)

  Stop all animations that were started with [WatchUi.animate()](../Toybox/WatchUi.html#animate-instance_function). This will leave all animations at their final frame, as if [WatchUi.animate()](../Toybox/WatchUi.html#animate-instance_function) ran to completion.

  See Also:

  *   [WatchUi.animate()](../Toybox/WatchUi.html#animate-instance_function)
      

  Since:

  API Level 3.1.7


c3: prose
c7: 2026-07-26T21:09:05.892Z
c0:
  Module: Toybox.WatchUi > Instance Method Details > **configureTouchEvents(options as [WatchUi.TouchEventSettings](../Toybox/WatchUi.html#TouchEventSettings-named_type))** as [Lang.Boolean](../Toybox/Lang/Boolean.html)

c1:
  ### **configureTouchEvents(options as [WatchUi.TouchEventSettings](../Toybox/WatchUi.html#TouchEventSettings-named_type))** as [Lang.Boolean](../Toybox/Lang/Boolean.html)

  Configurate touch event settings, only allowed for Watch Apps and Audio Content Providers when running in the foreground mode.

  Parameters:

  *   options — ([Lang.Dictionary](../Toybox/Lang/Dictionary.html)) —
      
      Dictionary of touch event settings.
      
      *   :enabled — ([Lang.Boolean](../Toybox/Lang/Boolean.html)) —
          
          Master flag to enable or disable touch events while application is running in the foreground.
          

  Supported Devices:

  *   D2™ Mach 1
  *   D2™ Mach 2 Pro
  *   D2™ Mach 2
  *   Enduro™ 3
  *   epix™ (Gen 2) / quatix® 7 Sapphire
  *   epix™ Pro (Gen 2) 42mm
  *   epix™ Pro (Gen 2) 47mm / quatix® 7 Pro
  *   epix™ Pro (Gen 2) 51mm / D2™ Mach 1 Pro / tactix® 7 – AMOLED Edition
  *   fēnix® 7 / quatix® 7
  *   fēnix® 7 Pro - Solar Edition (no Wi-Fi)
  *   fēnix® 7 Pro
  *   fēnix® 7S Pro
  *   fēnix® 7S
  *   fēnix® 7X / tactix® 7 / quatix® 7X Solar / Enduro™ 2
  *   fēnix® 7X Pro - Solar Edition (no Wi-Fi)
  *   fēnix® 7X Pro
  *   fēnix® 8 43mm
  *   fēnix® 8 47mm / 51mm / tactix® 8 47mm / 51mm / quatix® 8 47mm / 51mm
  *   fēnix® 8 Pro 47mm / 51mm / MicroLED / quatix® 8 Pro 47mm / 51mm
  *   fēnix® 8 Solar 47mm
  *   fēnix® 8 Solar 51mm / tactix® 8 Solar 51mm
  *   fēnix® E
  *   Forerunner® 165 Music
  *   Forerunner® 165
  *   Forerunner® 170 Music
  *   Forerunner® 170
  *   Forerunner® 265
  *   Forerunner® 265s
  *   Forerunner® 570 42mm
  *   Forerunner® 570 47mm
  *   Forerunner® 70
  *   Forerunner® 955 / Solar
  *   Forerunner® 965
  *   Forerunner® 970
  *   MARQ® (Gen 2) Athlete / Adventurer / Captain / Golfer / Carbon Edition / Commander - Carbon Edition
  *   MARQ® (Gen 2) Aviator
  *   Venu® 3
  *   Venu® 3S
  *   Venu® 4 41mm
  *   Venu® 4 45mm / D2™ Air X15
  *   Venu® X1
  *   vívoactive® 5
  *   vívoactive® 6

  Returns:

  *   [Lang.Boolean](../Toybox/Lang/Boolean.html) —
      
      True if the operation was successful, false otherwise.
      

  Since:

  API Level 5.2.0

  Throws:

  *   ([Lang.OperationNotAllowedException](../Toybox/Lang/OperationNotAllowedException.html)) —
      
      if called by application type that is not Watch App or Audio Content Provider, or called in background mode.
      
  *   ([Lang.InvalidValueException](../Toybox/Lang/InvalidValueException.html)) —
      
      If invalid options are provided.


c3: prose
c7: 2026-07-26T21:09:05.892Z
c0:
  Module: Toybox.WatchUi > Instance Method Details > **getCurrentView()** as \[ [WatchUi.View](../Toybox/WatchUi/View.html) or **Null**, [WatchUi.InputDelegates](../Toybox/WatchUi.html#InputDelegates-named_type) or **Null** \]

c1:
  ### **getCurrentView()** as \[ [WatchUi.View](../Toybox/WatchUi/View.html) or **Null**, [WatchUi.InputDelegates](../Toybox/WatchUi.html#InputDelegates-named_type) or **Null** \]

  Get the current view that is displayed in the UI

  Returns:

  *   [Lang.Array](../Toybox/Lang/Array.html) —
      
      An array containing the view and the delegate.
      

  Since:

  API Level 3.4.0


c3: prose
c7: 2026-07-26T21:09:05.892Z
c0:
  Module: Toybox.WatchUi > Instance Method Details > **getSubscreen()** as [Graphics.BoundingBox](../Toybox/Graphics/BoundingBox.html) or **Null**

c1:
  ### **getSubscreen()** as [Graphics.BoundingBox](../Toybox/Graphics/BoundingBox.html) or **Null**

  Get the subscreen area in the display.

  Supported Devices:

  *   Descent™ G1 / G1 Solar
  *   Instinct® 2 / Solar / Dual Power / dēzl Edition
  *   Instinct® 2S / Solar / Dual Power
  *   Instinct® 2X Solar
  *   Instinct® 3 Solar 45mm / 50mm
  *   Instinct® E 40mm
  *   Instinct® E 45mm

  Returns:

  *   [Graphics.BoundingBox](../Toybox/Graphics/BoundingBox.html) —
      
      object or `null` if no subscreen is present or if a virtual subscreen is present but not used for normal views.
      

  Since:

  API Level 3.2.7


c3: prose
c7: 2026-07-26T21:09:05.892Z
c0:
  Module: Toybox.WatchUi > Instance Method Details > **getTouchEventsConfiguration()** as [WatchUi.TouchEventSettings](../Toybox/WatchUi.html#TouchEventSettings-named_type)

c1:
  ### **getTouchEventsConfiguration()** as [WatchUi.TouchEventSettings](../Toybox/WatchUi.html#TouchEventSettings-named_type)

  Returns the current touch event settings.

  Supported Devices:

  *   D2™ Mach 1
  *   D2™ Mach 2 Pro
  *   D2™ Mach 2
  *   Enduro™ 3
  *   epix™ (Gen 2) / quatix® 7 Sapphire
  *   epix™ Pro (Gen 2) 42mm
  *   epix™ Pro (Gen 2) 47mm / quatix® 7 Pro
  *   epix™ Pro (Gen 2) 51mm / D2™ Mach 1 Pro / tactix® 7 – AMOLED Edition
  *   fēnix® 7 / quatix® 7
  *   fēnix® 7 Pro - Solar Edition (no Wi-Fi)
  *   fēnix® 7 Pro
  *   fēnix® 7S Pro
  *   fēnix® 7S
  *   fēnix® 7X / tactix® 7 / quatix® 7X Solar / Enduro™ 2
  *   fēnix® 7X Pro - Solar Edition (no Wi-Fi)
  *   fēnix® 7X Pro
  *   fēnix® 8 43mm
  *   fēnix® 8 47mm / 51mm / tactix® 8 47mm / 51mm / quatix® 8 47mm / 51mm
  *   fēnix® 8 Pro 47mm / 51mm / MicroLED / quatix® 8 Pro 47mm / 51mm
  *   fēnix® 8 Solar 47mm
  *   fēnix® 8 Solar 51mm / tactix® 8 Solar 51mm
  *   fēnix® E
  *   Forerunner® 165 Music
  *   Forerunner® 165
  *   Forerunner® 170 Music
  *   Forerunner® 170
  *   Forerunner® 265
  *   Forerunner® 265s
  *   Forerunner® 570 42mm
  *   Forerunner® 570 47mm
  *   Forerunner® 70
  *   Forerunner® 955 / Solar
  *   Forerunner® 965
  *   Forerunner® 970
  *   MARQ® (Gen 2) Athlete / Adventurer / Captain / Golfer / Carbon Edition / Commander - Carbon Edition
  *   MARQ® (Gen 2) Aviator
  *   Venu® 3
  *   Venu® 3S
  *   Venu® 4 41mm
  *   Venu® 4 45mm / D2™ Air X15
  *   Venu® X1
  *   vívoactive® 5
  *   vívoactive® 6

  Returns:

  *   [Lang.Dictionary](../Toybox/Lang/Dictionary.html) —
      
      Current touch event settings.
      

  Since:

  API Level 5.2.0


c3: code
c7: 2026-07-26T21:09:05.892Z
c0:
  Module: Toybox.WatchUi > Instance Method Details > **loadResource(resource as [Lang.ResourceId](../Toybox/Lang/ResourceId.html))** as [WatchUi.Resource](../Toybox/WatchUi.html#Resource-named_type)

c1:
  ### **loadResource(resource as [Lang.ResourceId](../Toybox/Lang/ResourceId.html))** as [WatchUi.Resource](../Toybox/WatchUi.html#Resource-named_type)

  Load a resource from the executable.

  Note:

  [Toybox::Graphics::BitmapReference](../Toybox/Graphics/BitmapReference.html) and [Toybox::Graphics::FontReference](../Toybox/Graphics/FontReference.html) are returned for [Toybox::WatchUi::BitmapResource](../Toybox/WatchUi/BitmapResource.html) and [Toybox::WatchUi::FontResource](../Toybox/WatchUi/FontResource.html) in CIQ 4.0.0 and later.

  Parameters:

  *   resource — ([Lang.ResourceId](../Toybox/Lang/ResourceId.html)) —
      
      An identifier for a resource defined in the project's `resources.xml` file
      

  Example:

  Loading a String resource

  ```
  // The resources.xml file contents:
  // <resources>
  //     <string id="AppName">APEELingApp</string>
  // </resources>
  using Toybox.WatchUi;

  var banana = WatchUi.loadResource(Rez.Strings.AppName);
  ```

  Returns:

  *   [Lang.Array](../Toybox/Lang/Array.html), [Lang.Dictionary](../Toybox/Lang/Dictionary.html), [Lang.String](../Toybox/Lang/String.html), [WatchUi.AnimationResource](../Toybox/WatchUi/AnimationResource.html), [WatchUi.BitmapResource](../Toybox/WatchUi/BitmapResource.html), [WatchUi.FontResource](../Toybox/WatchUi/FontResource.html), [Graphics.BitmapReference](../Toybox/Graphics/BitmapReference.html), [Graphics.FontReference](../Toybox/Graphics/FontReference.html)

  Since:

  API Level 1.0.0


c3: prose
c7: 2026-07-26T21:09:05.892Z
c0:
  Module: Toybox.WatchUi > Instance Method Details > **makeReviewTokenRequest(callback as [Lang.Method](../Toybox/Lang/Method.html)(responseStatus as [WatchUi.ReviewRequestStatus](../Toybox/WatchUi.html#ReviewRequestStatus-module), token as [WatchUi.ReviewResponseToken](../Toybox/WatchUi/ReviewResponseToken.html) or **Null**) as **Void**)** as **Void**

c1:
  ### **makeReviewTokenRequest(callback as [Lang.Method](../Toybox/Lang/Method.html)(responseStatus as [WatchUi.ReviewRequestStatus](../Toybox/WatchUi.html#ReviewRequestStatus-module), token as [WatchUi.ReviewResponseToken](../Toybox/WatchUi/ReviewResponseToken.html) or **Null**) as **Void**)** as **Void**

  Initiate a request to ask for this app to be reviewed

  Parameters:

  *   callback — ([Lang.Method](../Toybox/Lang/Method.html)) —
      
      Callback to invoke when the review token request has completed.
      

  Supported Devices:

  *   D2™ Air X10
  *   D2™ Mach 1
  *   D2™ Mach 2 Pro
  *   D2™ Mach 2
  *   Descent™ G2
  *   Descent™ Mk2 / Mk2i
  *   Descent™ Mk2 S
  *   Descent™ Mk3 43mm / Mk3i 43mm
  *   Descent™ Mk3i 51mm
  *   Enduro™ 3
  *   Enduro™
  *   epix™ (Gen 2) / quatix® 7 Sapphire
  *   epix™ Pro (Gen 2) 42mm
  *   epix™ Pro (Gen 2) 47mm / quatix® 7 Pro
  *   epix™ Pro (Gen 2) 51mm / D2™ Mach 1 Pro / tactix® 7 – AMOLED Edition
  *   fēnix® 6 / 6 Solar / 6 Dual Power
  *   fēnix® 6 Pro / 6 Sapphire / 6 Pro Solar / 6 Pro Dual Power / quatix® 6
  *   fēnix® 6S / 6S Solar / 6S Dual Power
  *   fēnix® 6S Pro / 6S Sapphire / 6S Pro Solar / 6S Pro Dual Power
  *   fēnix® 6X Pro / 6X Sapphire / 6X Pro Solar / tactix® Delta Sapphire / Delta Solar / Delta Solar - Ballistics Edition / quatix® 6X / 6X Solar / 6X Dual Power
  *   fēnix® 7 / quatix® 7
  *   fēnix® 7 Pro - Solar Edition (no Wi-Fi)
  *   fēnix® 7 Pro
  *   fēnix® 7S Pro
  *   fēnix® 7S
  *   fēnix® 7X / tactix® 7 / quatix® 7X Solar / Enduro™ 2
  *   fēnix® 7X Pro - Solar Edition (no Wi-Fi)
  *   fēnix® 7X Pro
  *   fēnix® 8 43mm
  *   fēnix® 8 47mm / 51mm / tactix® 8 47mm / 51mm / quatix® 8 47mm / 51mm
  *   fēnix® 8 Pro 47mm / 51mm / MicroLED / quatix® 8 Pro 47mm / 51mm
  *   fēnix® 8 Solar 47mm
  *   fēnix® 8 Solar 51mm / tactix® 8 Solar 51mm
  *   fēnix® E
  *   Forerunner® 165 Music
  *   Forerunner® 165
  *   Forerunner® 170 Music
  *   Forerunner® 170
  *   Forerunner® 255 Music
  *   Forerunner® 255
  *   Forerunner® 255s Music
  *   Forerunner® 255s
  *   Forerunner® 265
  *   Forerunner® 265s
  *   Forerunner® 55
  *   Forerunner® 570 42mm
  *   Forerunner® 570 47mm
  *   Forerunner® 70
  *   Forerunner® 955 / Solar
  *   Forerunner® 965
  *   Forerunner® 970
  *   Instinct® 3 AMOLED 45mm
  *   Instinct® 3 AMOLED 50mm
  *   Instinct® 3 Solar 45mm / 50mm
  *   Instinct® Crossover AMOLED
  *   Instinct® E 40mm
  *   Instinct® E 45mm
  *   MARQ® (Gen 2) Athlete / Adventurer / Captain / Golfer / Carbon Edition / Commander - Carbon Edition
  *   MARQ® (Gen 2) Aviator
  *   MARQ® Adventurer
  *   MARQ® Athlete
  *   MARQ® Aviator
  *   MARQ® Captain / MARQ® Captain: American Magic Edition
  *   MARQ® Commander
  *   MARQ® Driver
  *   MARQ® Expedition
  *   MARQ® Golfer
  *   Venu® 2 Plus
  *   Venu® 2
  *   Venu® 2S
  *   Venu® 3
  *   Venu® 3S
  *   Venu® 4 41mm
  *   Venu® 4 45mm / D2™ Air X15
  *   Venu® Sq 2 Music
  *   Venu® Sq 2
  *   Venu® X1
  *   vívoactive® 5
  *   vívoactive® 6

  Since:

  API Level 3.4.2


c3: prose
c7: 2026-07-26T21:09:05.892Z
c0:
  Module: Toybox.WatchUi > Instance Method Details > **popView(transition as [WatchUi.SlideType](../Toybox/WatchUi.html#SlideType-module))** as **Void**

c1:
  ### **popView(transition as [WatchUi.SlideType](../Toybox/WatchUi.html#SlideType-module))** as **Void**

  Pop the current View from the View stack.

  Parameters:

  *   transition — ([WatchUi.SlideType](../Toybox/WatchUi.html#SlideType-module)) —
      
      A [WatchUi.SLIDE\_\*](../Toybox/WatchUi.html#SLIDE_IMMEDIATE-const) value
      

  Since:

  API Level 1.0.0

  Throws:

  *   ([Lang.OperationNotAllowedException](../Toybox/Lang/OperationNotAllowedException.html)) —
      
      Thrown if called from background, data field, glance, or watch face app; or of called from the base page of a widget


c3: prose
c7: 2026-07-26T21:09:05.892Z
c0:
  Module: Toybox.WatchUi > Instance Method Details > **pushView(view as [WatchUi.Views](../Toybox/WatchUi.html#Views-named_type), delegate as [WatchUi.InputDelegates](../Toybox/WatchUi.html#InputDelegates-named_type) or **Null**, transition as [WatchUi.SlideType](../Toybox/WatchUi.html#SlideType-module))** as **Void**

c1:
  ### **pushView(view as [WatchUi.Views](../Toybox/WatchUi.html#Views-named_type), delegate as [WatchUi.InputDelegates](../Toybox/WatchUi.html#InputDelegates-named_type) or **Null**, transition as [WatchUi.SlideType](../Toybox/WatchUi.html#SlideType-module))** as **Void**

  Push a View onto the View stack.

  Parameters:

  *   view — ([WatchUi.View](../Toybox/WatchUi/View.html)) —
      
      View to push
      
  *   delegate — ([WatchUi.BehaviorDelegate](../Toybox/WatchUi/BehaviorDelegate.html), [WatchUi.ConfirmationDelegate](../Toybox/WatchUi/ConfirmationDelegate.html), [WatchUi.InputDelegate](../Toybox/WatchUi/InputDelegate.html), [WatchUi.MenuInputDelegate](../Toybox/WatchUi/MenuInputDelegate.html), [WatchUi.NumberPickerDelegate](../Toybox/WatchUi/NumberPickerDelegate.html), [WatchUi.PickerDelegate](../Toybox/WatchUi/PickerDelegate.html), [WatchUi.TextPickerDelegate](../Toybox/WatchUi/TextPickerDelegate.html), [WatchUi.WatchFaceDelegate](../Toybox/WatchUi/WatchFaceDelegate.html)) —
      
      The input delegate to handle input for the View
      
  *   transition — ([WatchUi.SlideType](../Toybox/WatchUi.html#SlideType-module)) —
      
      A [WatchUi.SLIDE\_\*](../Toybox/WatchUi.html#SLIDE_IMMEDIATE-const) value
      

  Since:

  API Level 1.0.0

  Throws:

  *   ([Lang.UnexpectedTypeException](../Toybox/Lang/UnexpectedTypeException.html)) —
      
      Thrown when view is type [MapView](../Toybox/WatchUi/MapView.html) and the visible map area parameters are invalid
      
  *   ([Lang.OperationNotAllowedException](../Toybox/Lang/OperationNotAllowedException.html)) —
      
      Thrown if called from background, data field, glance, or watch face app; or if the new view is a [DataField](../Toybox/WatchUi/DataField.html), a [GlanceView](../Toybox/WatchUi/GlanceView.html), or a [WatchFace](../Toybox/WatchUi/WatchFace.html)


c0: Module: Toybox.WatchUi > Instance Method Details > **requestUpdate()** as **Void**
c3: prose
c7: 2026-07-26T21:09:05.892Z
c1:
  ### **requestUpdate()** as **Void**

  Request a call to the [onUpdate()](../Toybox/WatchUi/View.html#onUpdate-instance_function) method for the current View.

  See Also:

  *   [View.onUpdate()](../Toybox/WatchUi/View.html#onUpdate-instance_function)
      

  Since:

  API Level 1.0.0


c3: prose
c7: 2026-07-26T21:09:05.892Z
c0:
  Module: Toybox.WatchUi > Instance Method Details > **showActionMenu(menu as [WatchUi.ActionMenu](../Toybox/WatchUi/ActionMenu.html), delegate as [WatchUi.ActionMenuDelegate](../Toybox/WatchUi/ActionMenuDelegate.html))** as **Void**

c1:
  ### **showActionMenu(menu as [WatchUi.ActionMenu](../Toybox/WatchUi/ActionMenu.html), delegate as [WatchUi.ActionMenuDelegate](../Toybox/WatchUi/ActionMenuDelegate.html))** as **Void**

  Push an action menu to the display

  Note:

  An action menu will dismiss it self on either user selecting a menu item or pressing back button.

  Parameters:

  *   menu — ([WatchUi.ActionMenu](../Toybox/WatchUi/ActionMenu.html)) —
      
      An action menu object.
      
  *   delegate — ([WatchUi.ActionMenuDelegate](../Toybox/WatchUi/ActionMenuDelegate.html)) —
      
      An action menu delegate object.
      

  Supported Devices:

  *   Approach® S50
  *   Approach® S70 42mm
  *   Approach® S70 47mm
  *   D2™ Air X10
  *   D2™ Mach 1
  *   D2™ Mach 2 Pro
  *   D2™ Mach 2
  *   Descent™ G1 / G1 Solar
  *   Descent™ G2
  *   Descent™ Mk2 / Mk2i
  *   Descent™ Mk2 S
  *   Descent™ Mk3 43mm / Mk3i 43mm
  *   Descent™ Mk3i 51mm
  *   Enduro™ 3
  *   Enduro™
  *   epix™ (Gen 2) / quatix® 7 Sapphire
  *   epix™ Pro (Gen 2) 42mm
  *   epix™ Pro (Gen 2) 47mm / quatix® 7 Pro
  *   epix™ Pro (Gen 2) 51mm / D2™ Mach 1 Pro / tactix® 7 – AMOLED Edition
  *   eTrex® Touch
  *   fēnix® 6 / 6 Solar / 6 Dual Power
  *   fēnix® 6 Pro / 6 Sapphire / 6 Pro Solar / 6 Pro Dual Power / quatix® 6
  *   fēnix® 6S / 6S Solar / 6S Dual Power
  *   fēnix® 6S Pro / 6S Sapphire / 6S Pro Solar / 6S Pro Dual Power
  *   fēnix® 6X Pro / 6X Sapphire / 6X Pro Solar / tactix® Delta Sapphire / Delta Solar / Delta Solar - Ballistics Edition / quatix® 6X / 6X Solar / 6X Dual Power
  *   fēnix® 7 / quatix® 7
  *   fēnix® 7 Pro - Solar Edition (no Wi-Fi)
  *   fēnix® 7 Pro
  *   fēnix® 7S Pro
  *   fēnix® 7S
  *   fēnix® 7X / tactix® 7 / quatix® 7X Solar / Enduro™ 2
  *   fēnix® 7X Pro - Solar Edition (no Wi-Fi)
  *   fēnix® 7X Pro
  *   fēnix® 8 43mm
  *   fēnix® 8 47mm / 51mm / tactix® 8 47mm / 51mm / quatix® 8 47mm / 51mm
  *   fēnix® 8 Pro 47mm / 51mm / MicroLED / quatix® 8 Pro 47mm / 51mm
  *   fēnix® 8 Solar 47mm
  *   fēnix® 8 Solar 51mm / tactix® 8 Solar 51mm
  *   fēnix® E
  *   Forerunner® 165 Music
  *   Forerunner® 165
  *   Forerunner® 170 Music
  *   Forerunner® 170
  *   Forerunner® 255 Music
  *   Forerunner® 255
  *   Forerunner® 255s Music
  *   Forerunner® 255s
  *   Forerunner® 265
  *   Forerunner® 265s
  *   Forerunner® 55
  *   Forerunner® 570 42mm
  *   Forerunner® 570 47mm
  *   Forerunner® 70
  *   Forerunner® 945 LTE
  *   Forerunner® 955 / Solar
  *   Forerunner® 965
  *   Forerunner® 970
  *   GPSMAP® H1 / H1i Plus
  *   Instinct® 2 / Solar / Dual Power / dēzl Edition
  *   Instinct® 2S / Solar / Dual Power
  *   Instinct® 2X Solar
  *   Instinct® 3 AMOLED 45mm
  *   Instinct® 3 AMOLED 50mm
  *   Instinct® 3 Solar 45mm / 50mm
  *   Instinct® Crossover AMOLED
  *   Instinct® Crossover
  *   Instinct® E 40mm
  *   Instinct® E 45mm
  *   MARQ® (Gen 2) Athlete / Adventurer / Captain / Golfer / Carbon Edition / Commander - Carbon Edition
  *   MARQ® (Gen 2) Aviator
  *   MARQ® Adventurer
  *   MARQ® Athlete
  *   MARQ® Aviator
  *   MARQ® Captain / MARQ® Captain: American Magic Edition
  *   MARQ® Commander
  *   MARQ® Driver
  *   MARQ® Expedition
  *   MARQ® Golfer
  *   Venu® 2 Plus
  *   Venu® 2
  *   Venu® 2S
  *   Venu® 3
  *   Venu® 3S
  *   Venu® 4 41mm
  *   Venu® 4 45mm / D2™ Air X15
  *   Venu® Sq 2 Music
  *   Venu® Sq 2
  *   Venu® X1
  *   vívoactive® 5
  *   vívoactive® 6

  Since:

  API Level 3.4.0


c3: prose
c7: 2026-07-26T21:09:05.892Z
c0:
  Module: Toybox.WatchUi > Instance Method Details > **showToast(text as [Lang.String](../Toybox/Lang/String.html) or [Lang.ResourceId](../Toybox/Lang/ResourceId.html), options as { :icon as [WatchUi.BitmapResource](../Toybox/WatchUi/BitmapResource.html) or [Graphics.BitmapReference](../Toybox/Graphics/BitmapReference.html) or [Lang.ResourceId](../Toybox/Lang/ResourceId.html) } or **Null**)** as **Void**

c1:
  ### **showToast(text as [Lang.String](../Toybox/Lang/String.html) or [Lang.ResourceId](../Toybox/Lang/ResourceId.html), options as { :icon as [WatchUi.BitmapResource](../Toybox/WatchUi/BitmapResource.html) or [Graphics.BitmapReference](../Toybox/Graphics/BitmapReference.html) or [Lang.ResourceId](../Toybox/Lang/ResourceId.html) } or **Null**)** as **Void**

  Push a toast notification to the display

  Parameters:

  *   text — ([Lang.String](../Toybox/Lang/String.html), [Lang.ResourceId](../Toybox/Lang/ResourceId.html)) —
      
      The text to display in the notification toast.
      
  *   options — ([Lang.Dictionary](../Toybox/Lang/Dictionary.html)) —
      
      A Dictionary of options.
      
      *   :icon — ([Graphics.BitmapReference](../Toybox/Graphics/BitmapReference.html), [WatchUi.BitmapResource](../Toybox/WatchUi/BitmapResource.html), [Lang.ResourceId](../Toybox/Lang/ResourceId.html)) —
          
          The icon to display with this notification. If no icon is provided and the system requires an icon for a toast, the app icon will be used.
          

  Supported Devices:

  *   Approach® S50
  *   Approach® S70 42mm
  *   Approach® S70 47mm
  *   D2™ Air X10
  *   D2™ Mach 1
  *   D2™ Mach 2 Pro
  *   D2™ Mach 2
  *   Descent™ G1 / G1 Solar
  *   Descent™ G2
  *   Descent™ Mk2 / Mk2i
  *   Descent™ Mk2 S
  *   Descent™ Mk3 43mm / Mk3i 43mm
  *   Descent™ Mk3i 51mm
  *   Edge® 1040 / 1040 Solar
  *   Edge® 1050
  *   Edge® 540 / 540 Solar
  *   Edge® 550
  *   Edge® 840 / 840 Solar
  *   Edge® 850
  *   Edge® Explore 2
  *   Edge® MTB
  *   Enduro™ 3
  *   Enduro™
  *   epix™ (Gen 2) / quatix® 7 Sapphire
  *   epix™ Pro (Gen 2) 42mm
  *   epix™ Pro (Gen 2) 47mm / quatix® 7 Pro
  *   epix™ Pro (Gen 2) 51mm / D2™ Mach 1 Pro / tactix® 7 – AMOLED Edition
  *   eTrex® Touch
  *   fēnix® 6 / 6 Solar / 6 Dual Power
  *   fēnix® 6 Pro / 6 Sapphire / 6 Pro Solar / 6 Pro Dual Power / quatix® 6
  *   fēnix® 6S / 6S Solar / 6S Dual Power
  *   fēnix® 6S Pro / 6S Sapphire / 6S Pro Solar / 6S Pro Dual Power
  *   fēnix® 6X Pro / 6X Sapphire / 6X Pro Solar / tactix® Delta Sapphire / Delta Solar / Delta Solar - Ballistics Edition / quatix® 6X / 6X Solar / 6X Dual Power
  *   fēnix® 7 / quatix® 7
  *   fēnix® 7 Pro - Solar Edition (no Wi-Fi)
  *   fēnix® 7 Pro
  *   fēnix® 7S Pro
  *   fēnix® 7S
  *   fēnix® 7X / tactix® 7 / quatix® 7X Solar / Enduro™ 2
  *   fēnix® 7X Pro - Solar Edition (no Wi-Fi)
  *   fēnix® 7X Pro
  *   fēnix® 8 43mm
  *   fēnix® 8 47mm / 51mm / tactix® 8 47mm / 51mm / quatix® 8 47mm / 51mm
  *   fēnix® 8 Pro 47mm / 51mm / MicroLED / quatix® 8 Pro 47mm / 51mm
  *   fēnix® 8 Solar 47mm
  *   fēnix® 8 Solar 51mm / tactix® 8 Solar 51mm
  *   fēnix® E
  *   Forerunner® 165 Music
  *   Forerunner® 165
  *   Forerunner® 170 Music
  *   Forerunner® 170
  *   Forerunner® 255 Music
  *   Forerunner® 255
  *   Forerunner® 255s Music
  *   Forerunner® 255s
  *   Forerunner® 265
  *   Forerunner® 265s
  *   Forerunner® 55
  *   Forerunner® 570 42mm
  *   Forerunner® 570 47mm
  *   Forerunner® 70
  *   Forerunner® 945 LTE
  *   Forerunner® 955 / Solar
  *   Forerunner® 965
  *   Forerunner® 970
  *   GPSMAP® H1 / H1i Plus
  *   Instinct® 2 / Solar / Dual Power / dēzl Edition
  *   Instinct® 2S / Solar / Dual Power
  *   Instinct® 2X Solar
  *   Instinct® 3 AMOLED 45mm
  *   Instinct® 3 AMOLED 50mm
  *   Instinct® 3 Solar 45mm / 50mm
  *   Instinct® Crossover AMOLED
  *   Instinct® Crossover
  *   Instinct® E 40mm
  *   Instinct® E 45mm
  *   MARQ® (Gen 2) Athlete / Adventurer / Captain / Golfer / Carbon Edition / Commander - Carbon Edition
  *   MARQ® (Gen 2) Aviator
  *   MARQ® Adventurer
  *   MARQ® Athlete
  *   MARQ® Aviator
  *   MARQ® Captain / MARQ® Captain: American Magic Edition
  *   MARQ® Commander
  *   MARQ® Driver
  *   MARQ® Expedition
  *   MARQ® Golfer
  *   Venu® 2 Plus
  *   Venu® 2
  *   Venu® 2S
  *   Venu® 3
  *   Venu® 3S
  *   Venu® 4 41mm
  *   Venu® 4 45mm / D2™ Air X15
  *   Venu® Sq 2 Music
  *   Venu® Sq 2
  *   Venu® X1
  *   vívoactive® 5
  *   vívoactive® 6

  Since:

  API Level 3.4.0


c3: prose
c7: 2026-07-26T21:09:05.892Z
c0:
  Module: Toybox.WatchUi > Instance Method Details > **startUserReview(token as [WatchUi.ReviewResponseToken](../Toybox/WatchUi/ReviewResponseToken.html))** as **Void**

c1:
  ### **startUserReview(token as [WatchUi.ReviewResponseToken](../Toybox/WatchUi/ReviewResponseToken.html))** as **Void**

  Start the app review UI flow

  Parameters:

  *   token — ([WatchUi.ReviewResponseToken](../Toybox/WatchUi/ReviewResponseToken.html)) —
      
      The token that was passed as a parameter to a successful call to the callback parameter in [makeReviewTokenRequest](../Toybox/WatchUi.html#makeReviewTokenRequest-instance_function).
      

  Supported Devices:

  *   D2™ Air X10
  *   D2™ Mach 1
  *   D2™ Mach 2 Pro
  *   D2™ Mach 2
  *   Descent™ G2
  *   Descent™ Mk2 / Mk2i
  *   Descent™ Mk2 S
  *   Descent™ Mk3 43mm / Mk3i 43mm
  *   Descent™ Mk3i 51mm
  *   Enduro™ 3
  *   Enduro™
  *   epix™ (Gen 2) / quatix® 7 Sapphire
  *   epix™ Pro (Gen 2) 42mm
  *   epix™ Pro (Gen 2) 47mm / quatix® 7 Pro
  *   epix™ Pro (Gen 2) 51mm / D2™ Mach 1 Pro / tactix® 7 – AMOLED Edition
  *   fēnix® 6 / 6 Solar / 6 Dual Power
  *   fēnix® 6 Pro / 6 Sapphire / 6 Pro Solar / 6 Pro Dual Power / quatix® 6
  *   fēnix® 6S / 6S Solar / 6S Dual Power
  *   fēnix® 6S Pro / 6S Sapphire / 6S Pro Solar / 6S Pro Dual Power
  *   fēnix® 6X Pro / 6X Sapphire / 6X Pro Solar / tactix® Delta Sapphire / Delta Solar / Delta Solar - Ballistics Edition / quatix® 6X / 6X Solar / 6X Dual Power
  *   fēnix® 7 / quatix® 7
  *   fēnix® 7 Pro - Solar Edition (no Wi-Fi)
  *   fēnix® 7 Pro
  *   fēnix® 7S Pro
  *   fēnix® 7S
  *   fēnix® 7X / tactix® 7 / quatix® 7X Solar / Enduro™ 2
  *   fēnix® 7X Pro - Solar Edition (no Wi-Fi)
  *   fēnix® 7X Pro
  *   fēnix® 8 43mm
  *   fēnix® 8 47mm / 51mm / tactix® 8 47mm / 51mm / quatix® 8 47mm / 51mm
  *   fēnix® 8 Pro 47mm / 51mm / MicroLED / quatix® 8 Pro 47mm / 51mm
  *   fēnix® 8 Solar 47mm
  *   fēnix® 8 Solar 51mm / tactix® 8 Solar 51mm
  *   fēnix® E
  *   Forerunner® 165 Music
  *   Forerunner® 165
  *   Forerunner® 170 Music
  *   Forerunner® 170
  *   Forerunner® 255 Music
  *   Forerunner® 255
  *   Forerunner® 255s Music
  *   Forerunner® 255s
  *   Forerunner® 265
  *   Forerunner® 265s
  *   Forerunner® 55
  *   Forerunner® 570 42mm
  *   Forerunner® 570 47mm
  *   Forerunner® 70
  *   Forerunner® 955 / Solar
  *   Forerunner® 965
  *   Forerunner® 970
  *   Instinct® 3 AMOLED 45mm
  *   Instinct® 3 AMOLED 50mm
  *   Instinct® 3 Solar 45mm / 50mm
  *   Instinct® Crossover AMOLED
  *   Instinct® E 40mm
  *   Instinct® E 45mm
  *   MARQ® (Gen 2) Athlete / Adventurer / Captain / Golfer / Carbon Edition / Commander - Carbon Edition
  *   MARQ® (Gen 2) Aviator
  *   MARQ® Adventurer
  *   MARQ® Athlete
  *   MARQ® Aviator
  *   MARQ® Captain / MARQ® Captain: American Magic Edition
  *   MARQ® Commander
  *   MARQ® Driver
  *   MARQ® Expedition
  *   MARQ® Golfer
  *   Venu® 2 Plus
  *   Venu® 2
  *   Venu® 2S
  *   Venu® 3
  *   Venu® 3S
  *   Venu® 4 41mm
  *   Venu® 4 45mm / D2™ Air X15
  *   Venu® Sq 2 Music
  *   Venu® Sq 2
  *   Venu® X1
  *   vívoactive® 5
  *   vívoactive® 6

  Since:

  API Level 3.4.2

  Throws:

  *   ([Lang.OperationNotAllowedException](../Toybox/Lang/OperationNotAllowedException.html)) —
      
      if `token` is not a ReviewResponseToken.


c3: prose
c7: 2026-07-26T21:09:05.892Z
c0:
  Module: Toybox.WatchUi > Instance Method Details > **switchToView(view as [WatchUi.Views](../Toybox/WatchUi.html#Views-named_type), delegate as [WatchUi.InputDelegates](../Toybox/WatchUi.html#InputDelegates-named_type) or **Null**, transition as [WatchUi.SlideType](../Toybox/WatchUi.html#SlideType-module))** as **Void**

c1:
  ### **switchToView(view as [WatchUi.Views](../Toybox/WatchUi.html#Views-named_type), delegate as [WatchUi.InputDelegates](../Toybox/WatchUi.html#InputDelegates-named_type) or **Null**, transition as [WatchUi.SlideType](../Toybox/WatchUi.html#SlideType-module))** as **Void**

  Pop the current View from the View stack and push a new one.

  Note:

  Prior to ConnectIQ 3.1, this method only supported switching to user-defined View objects, and would only accept InputDelegate or BehaviorDelegate objects as delegates for the given View.

  Parameters:

  *   view — ([WatchUi.View](../Toybox/WatchUi/View.html)) —
      
      The View object to push
      
  *   delegate — ([WatchUi.BehaviorDelegate](../Toybox/WatchUi/BehaviorDelegate.html), [WatchUi.InputDelegate](../Toybox/WatchUi/InputDelegate.html)) —
      
      The input delegate to handle input for the View
      
  *   transition — ([WatchUi.SlideType](../Toybox/WatchUi.html#SlideType-module)) —
      
      A [WatchUi.SLIDE\_\*](../Toybox/WatchUi.html#SLIDE_IMMEDIATE-const) value
      

  Since:

  API Level 1.0.0

  Throws:

  *   ([Lang.OperationNotAllowedException](../Toybox/Lang/OperationNotAllowedException.html)) —
      
      Thrown if called from background, data field, glance, or watch face app; or of called from the base page of a widget and the new view is native; or if the new view is a [DataField](../Toybox/WatchUi/DataField.html), a [GlanceView](../Toybox/WatchUi/GlanceView.html), or a [WatchFace](../Toybox/WatchUi/WatchFace.html)
      

  * * *

  Generated Jun 8, 2026, 3:42:18 PM


c0: indexed_fenix_pressure
c3: prose
c7: 2026-07-26T21:15:07.221Z
c1:
  # indexed_fenix_pressure

  $ echo "Searching indexed CIQ docs for fēnix 3 pressure capabilities..."

  Searching indexed CIQ docs for fēnix 3 pressure capabilities...


c0: session_fenix_pressure
c3: prose
c7: 2026-07-26T21:15:07.221Z
c1:
  # session_fenix_pressure

  $ echo "Searching session memory for prior fēnix 3 pressure conclusions..."

  Searching session memory for prior fēnix 3 pressure conclusions...


c0: Calibrating the Barometric Altimeter
c3: prose
c7: 2026-07-26T21:17:19.002Z
c1:
  # Calibrating the Barometric Altimeter

  Your device was already calibrated at the factory, and the device uses automatic calibration at your GPS starting point by default. You can manually calibrate the barometric altimeter if you know the correct elevation.

  1.  Hold UP.
  2.  Select Settings > Sensors > Altimeter.
  3.  Select an option:
      *   To calibrate automatically from your GPS starting point, select Auto Cal. > On.
          
      *   To enter the current elevation, select Calibrate.
          

  [

  Home

  ](index.html "Home")[

  Customizing Your Device

  ](GUID-CA397BE7-7C7F-4A1A-A8C0-2DDAA7ACFEA7.html "Customizing Your Device")[

  Sensors Settings

  ](GUID-2454281D-24EA-4854-9BCA-AE6A39F56CC9.html "Sensors Settings")[

  Altimeter Settings

  ](GUID-2DF9C415-2A35-48CE-B20B-013DAA3358A5.html "Altimeter Settings")[

  Calibrating the Barometric Altimeter

  ](GUID-BC734846-01A7-4F33-86D4-DFBDBC06CDB4.html "Calibrating the Barometric Altimeter")

  Copyright © Garmin. All rights reserved.GUID-4FFB52AE-9CA9-47F5-B9E6-45D823872585 v7


c0: Data Fields (1)
c3: prose
c7: 2026-07-26T21:17:19.005Z
c1:
  # Data Fields

  %FTP

  The current power output as a percentage of functional threshold power.

  %HRR

  The percentage of heart rate reserve (maximum heart rate minus resting heart rate).

  10s Avg. Power

  The 10-second moving average of power output.

  10s Avg Balance

  The 10-second moving average of the left/right power balance.

  24-Hour Max.

  The maximum temperature recorded in the last 24 hours.

  24-Hour Min.

  The minimum temperature recorded in the last 24 hours.

  30s Avg. Power

  The 30-second moving average of power output.

  30s Avg Balance

  The 30-second moving average of the left/right power balance.

  3s Avg. Balance

  The three-second moving average of the left/right power balance.

  3s Avg. Power

  The 3-second moving average of power output.

  500m Pace

  The current swimming pace per 500 meters.

  Ambient Press.

  The uncalibrated ambient pressure.

  Average HR

  The average heart rate for the current activity.

  Average Pace

  The average pace for the current activity.

  Average Power

  The average power output for the current activity.

  Average SWOLF

  The average swolf score for the current activity. Your swolf score is the sum of the time for one length plus the number of strokes for that length ([Swim Terminology](GUID-9481691E-B9E0-4793-BDF7-4F78D8703E2B.html)). In open water swimming, 25 meters is used to calculate your swolf score.

  Avg. %HRR

  The average percentage of heart rate reserve (maximum heart rate minus resting heart rate) for the current activity.

  Avg. 500m Pace

  The average swimming pace per 500 meters for the current activity.

  Avg. Ascent

  The average vertical distance of ascent since the last reset.

  Avg. Balance

  The average left/right power balance for the current activity.

  Avg. Cadence

  Cycling. The average cadence for the current activity.

  Avg. Cadence

  Running. The average cadence for the current activity.

  Avg. Descent

  The average vertical distance of descent since the last reset.

  Avg. GCT Bal.

  The average ground contact time balance for the current session.

  Avg. Lap Time

  The average lap time for the current activity.

  Avg. Speed

  The average speed for the current activity.

  Avg. Stride Len.

  The average stride length for the current session.

  Avg. Strk/Len

  The average number of strokes per length during the current activity.

  Avg. Strk Rate

  The average number of strokes per minute (spm) during the current activity.

  Avg. Vert. Osc.

  The average amount of vertical oscillation for the current activity.

  Avg. Vert. Ratio

  The average ratio of vertical oscillation to stride length for the current session.

  Avg Dist Per Stk

  The average distance traveled per stroke during the current activity.

  Avg GCT

  The average amount of ground contact time for the current activity.

  Avg HR %Max.

  The average percentage of maximum heart rate for the current activity.

  Balance

  The current left/right power balance.

  Baro. Pressure

  The calibrated current pressure.

  Bearing

  The direction from your current location to a destination. You must be navigating for this data to appear.

  Cadence

  Cycling. The number of revolutions of the crank arm. Your device must be connected to a cadence accessory for this data to appear.

  Cadence

  Running. The steps per minute (right and left).

  Calories

  The amount of total calories burned.

  Compass Hdg.

  The direction you are moving based on the compass.

  Course

  The direction from your starting location to a destination. Course can be viewed as a planned or set route. You must be navigating for this data to appear.

  Dest. Location

  The position of your final destination.

  Dest. Name

  The last point on the route to the destination. You must be navigating for this data to appear.

  Dist. Per Stroke

  The distance traveled per stroke.

  Dist. Remaining

  The remaining distance to the final destination. You must be navigating for this data to appear.

  Distance

  The distance traveled for the current track or activity.

  Distance To Next

  The remaining distance to the next waypoint on the route. You must be navigating for this data to appear.

  Elapsed Time


c0: Data Fields (2)
c3: prose
c7: 2026-07-26T21:17:19.005Z
c1:
  The total time recorded. For example, if you start the timer and run for 10 minutes, then stop the timer for 5 minutes, then start the timer and run for 20 minutes, your elapsed time is 35 minutes.

  Elevation

  The altitude of your current location above or below sea level.

  ETA

  The estimated time of day when you will reach the final destination (adjusted to the local time of the destination). You must be navigating for this data to appear.

  ETA at Next

  The estimated time of day when you will reach the next waypoint on the route (adjusted to the local time of the waypoint). You must be navigating for this data to appear.

  ETE

  The estimated time remaining until you reach the final destination. You must be navigating for this data to appear.

  GCT

  The amount of time in each step that you spend on the ground while running, measured in milliseconds. Ground contact time is not calculated while walking.

  GCT Balance

  The left/right balance of ground contact time while running.

  Glide Ratio

  The ratio of horizontal distance traveled to the change in vertical distance.

  Glide Ratio Dest.

  The glide ratio required to descend from your current position to the destination elevation. You must be navigating for this data to appear.

  GPS Elevation

  The altitude of your current location using GPS.

  GPS Heading

  The direction you are moving based on GPS.

  Grade

  The calculation of rise (elevation) over run (distance). For example, if for every 3 m (10 ft.) you climb you travel 60 m (200 ft.), the grade is 5%.

  Heading

  The direction you are moving.

  Heart Rate

  Your heart rate in beats per minute (bpm). Your device must be connected to a compatible heart rate monitor.

  HR %Max.

  The percentage of maximum heart rate.

  HR Zone

  The current range of your heart rate (1 to 5). The default zones are based on your user profile and maximum heart rate (220 minus your age).

  Int. Avg. %HRR

  The average percentage of heart rate reserve (maximum heart rate minus resting heart rate) for the current swim interval.

  Int. Avg. %Max.

  The average percentage of maximum heart rate for the current swim interval.

  Int. Avg. HR

  The average heart rate for the current swim interval.

  Int. Distance

  The distance traveled for the current interval.

  Int. Max. %HRR

  The maximum percentage of heart rate reserve (maximum heart rate minus resting heart rate) for the current swim interval.

  Int. Max. %Max.

  The maximum percentage of maximum heart rate for the current swim interval.

  Int. Max. HR

  The maximum heart rate for the current swim interval.

  Int. Pace

  The average pace for the current interval.

  Int. SWOLF

  The average swolf score for the current interval.

  Int Dist Per Stk

  The average distance traveled per stroke during the current interval.

  Intensity Factor

  The Intensity Factor™ for the current activity.

  Interval Lengths

  The number of pool lengths completed during the current interval.

  Interval Time

  The stopwatch time for the current interval.

  Int Strk/Len

  The average number of strokes per length during the current interval.

  Int Strk Rate

  The average number of strokes per minute (spm) during the current interval.

  Int Strk Type

  The current stroke type for the interval.

  Int Strokes

  The total number of strokes for the current interval.

  L. Int. Stk. Rate

  The average number of strokes per minute (spm) during the last completed interval.

  L. Int. Stk. Type

  The stroke type used during the last completed interval.

  L. Int. Strokes

  The total number of strokes for the last completed interval.

  L. Int. SWOLF

  The average swolf score for the last completed interval.

  L. Len. Stk. Rate

  The average number strokes per minute (spm) during the last completed pool length.

  L. Len. Stk. Type

  The stroke type used during the last completed pool length.

  L. Len. Strokes

  The total number of strokes for the last completed pool length.

  Lap %HRR

  The average percentage of heart rate reserve (maximum heart rate minus resting heart rate) for the current lap.

  Lap 500m Pace

  The average swimming pace per 500 meters for the current lap.

  Lap Ascent


c0: Data Fields (3)
c3: prose
c7: 2026-07-26T21:17:19.005Z
c1:
  The vertical distance of ascent for the current lap.

  Lap Balance

  The average left/right power balance for the current lap.

  Lap Cadence

  Cycling. The average cadence for the current lap.

  Lap Cadence

  Running. The average cadence for the current lap.

  Lap Descent

  The vertical distance of descent for the current lap.

  Lap Distance

  The distance traveled for the current lap.

  Lap GCT

  The average amount of ground contact time for the current lap.

  Lap GCT Bal.

  The average ground contact time balance for the current lap.

  Lap HR

  The average heart rate for the current lap.

  Lap HR %Max.

  The average percentage of maximum heart rate for the current lap.

  Lap NP

  The average Normalized Power for the current lap.

  Lap Pace

  The average pace for the current lap.

  Lap Power

  The average power output for the current lap.

  Laps

  The number of laps completed for the current activity.

  Lap Speed

  The average speed for the current lap.

  Lap Stride Len.

  The average stride length for the current lap.

  Lap Time

  The stopwatch time for the current lap.

  Lap Vert. Osc.

  The average amount of vertical oscillation for the current lap.

  Lap Vert. Ratio

  The average ratio of vertical oscillation to stride length for the current lap.

  Last Int. Dist.

  The distance traveled for the last completed interval.

  Last Int. Pace

  The average pace for the last completed interval.

  Last Int. Time

  The stopwatch time for the last completed interval.

  Last Lap Ascent

  The vertical distance of ascent for the last completed lap.

  Last Lap Cad.

  Cycling. The average cadence for the last completed lap.

  Last Lap Cad.

  Running. The average cadence for the last completed lap.

  Last Lap Descent

  The vertical distance of descent for the last completed lap.

  Last Lap Dist.

  The distance traveled for the last completed lap.

  Last Lap HR

  The average heart rate for the last completed lap.

  Last Lap NP

  The average Normalized Power for the last completed lap.

  Last Lap Pace

  The average pace for the last completed lap.

  Last Lap Power

  The average power output for the last completed lap.

  Last Lap Speed

  The average speed for the last completed lap.

  Last Lap Time

  The stopwatch time for the last completed lap.

  Last Len. Pace

  The average pace for your last completed pool length.

  Last Len. SWOLF

  The swolf score for the last completed pool length.

  Lat/Lon

  The current position in latitude and longitude regardless of the selected position format setting.

  Lengths

  The number of pool lengths completed during the current activity.

  L Int Dist P Stk

  The average distance traveled per stroke during the last completed interval.

  LL 500m Pace

  The average swimming pace per 500 meters for the last lap.

  Location

  The current position using the selected position format setting.

  Max. Ascent

  The maximum rate of ascent in feet per minute or meters per minute since the last reset.

  Max. Descent

  The maximum rate of descent in meters per minute or feet per minute since the last reset.

  Max. Elevation

  The highest elevation reached since the last reset.

  Max. Lap Power

  The top power output for the current lap.

  Maximum Speed

  The top speed for the current activity.

  Max Power

  The top power output for the current activity.

  Min. Elevation

  The lowest elevation reached since the last reset.

  Nautical Dist

  The distance traveled in nautical meters or nautical feet.

  Nautical Speed

  The current speed in knots.

  Next Waypoint

  The next point on the route. You must be navigating for this data to appear.

  NP

  The Normalized Power™ for the current activity.

  Off Course

  The distance to the left or right by which you have strayed from the original path of travel. You must be navigating for this data to appear.

  Pace

  The current pace.

  Pedal Smooth.

  The measurement of how evenly a rider is applying force to the pedals throughout each pedal stroke.

  Perform. Cond.

  The performance condition score is a real-time assessment of your ability to perform.

  Power

  The current power output in watts.

  Power to Weight

  The current power measured in watts per kilogram.

  Power Zone


c0: Data Fields (4)
c3: prose
c7: 2026-07-26T21:17:19.005Z
c1:
  The current range of power output (1 to 7) based on your FTP or custom settings.

  Repeat On

  The timer for the last interval plus the current rest (pool swimming).

  Rest Timer

  The timer for the current rest (pool swimming).

  Speed

  The current rate of travel.

  Steps

  The number of steps recorded by the foot pod.

  Stride Length

  The length of your stride from one footfall to the next, measured in meters.

  Stroke Rate

  The number of strokes per minute (spm).

  Strokes

  The total number of strokes for the current activity.

  Sunrise

  The time of sunrise based on your GPS position.

  Sunset

  The time of sunset based on your GPS position.

  Temperature

  The temperature of the air. Your body temperature affects the temperature sensor.

  Time in Zone

  The time elapsed in each heart rate or power zone.

  Time of Day

  The time of day based on your current location and time settings (format, time zone, daylight saving time).

  Timer

  The current time of the countdown timer.

  Time to Next

  The estimated time remaining before you reach the next waypoint in the route. You must be navigating for this data to appear.

  Torque Eff.

  The measurement of how efficiently a rider is pedaling.

  Total Ascent

  The total elevation distance ascended since the last reset.

  Total Descent

  The total elevation distance descended since the last reset.

  Training Effect

  The current impact (1.0 to 5.0) on your aerobic fitness.

  TSS

  The Training Stress Score™ for the current activity.

  V Dist to Dest

  The elevation distance between your current position and the final destination. You must be navigating for this data to appear.

  Vertical Osc.

  The amount of bounce while you are running. The vertical motion of your torso, measured in centimeters for each step.

  Vertical Ratio

  The ratio of vertical oscillation to stride length.

  Vertical Speed

  The rate of ascent or descent over time.

  Vert Spd to Tgt

  The rate of ascent or descent to a predetermined altitude. You must be navigating for this data to appear.

  VMG

  The speed at which you are closing on a destination along a route. You must be navigating for this data to appear.

  Work

  The accumulated work performed (power output) in kilojoules.

  [

  Home

  ](index.html "Home")[

  Appendix

  ](GUID-E1A8D420-7F46-470B-B85D-0429910CA109.html "Appendix")[

  Data Fields

  ](GUID-02713A0A-48C2-4EA1-BCD0-D5FC7D1EB68A.html "Data Fields")

  Copyright © Garmin. All rights reserved.GUID-4FFB52AE-9CA9-47F5-B9E6-45D823872585 v7


c0: Connect IQ Features
c3: prose
c7: 2026-07-26T21:17:30.382Z
c1:
  # Connect IQ Features

  You can add Connect IQ™ features to your watch from Garmin® and other providers using the Garmin Connect™ Mobile app. You can customize your device with watch faces, data fields, widgets, and apps.

  Watch Faces

  Allow you to customize the appearance of the clock.

  Data Fields

  Allow you to download new data fields that present sensor, activity, and history data in new ways. You can add Connect IQ data fields to built-in features and pages.

  Widgets

  Provide information at a glance, including sensor data and notifications.

  Apps

  Add interactive features to your watch, such as new outdoor and fitness activity types.

  [

  Home

  ](index.html "Home")[

  Connect IQ Features

  ](GUID-C3289B5E-1A70-4BB2-A7F0-9B16CF60D75D.html "Connect IQ Features")

  Copyright © Garmin. All rights reserved.GUID-4FFB52AE-9CA9-47F5-B9E6-45D823872585 v7


c0: raw_ambient_fenix_models
c3: prose
c7: 2026-07-26T21:21:44.800Z
c1:
  # raw_ambient_fenix_models

  $ echo "Searching CIQ docs for rawAmbientPressure supported fēnix models..."

  Searching CIQ docs for rawAmbientPressure supported fēnix models...


c0: fenix_depth_sensor_limits
c3: prose
c7: 2026-07-26T21:21:44.800Z
c1:
  # fenix_depth_sensor_limits

  $ echo "Searching session memory for fēnix depth sensor caps..."

  Searching session memory for fēnix depth sensor caps...


c0: list fēnix 5 source files
c3: prose
c7: 2026-07-26T22:33:59.093Z
c1:
  # list fēnix 5 source files

  $ ls -la /home/liph/code/garmin-freedive-app/source_fenix5/ && echo '---' && wc -l /home/liph/code/garmin-freedive-app/source_fenix5/*.mc

  total 124
  drwxr-xr-x 2 liph liph 4096 Jul 27 00:30 .
  drwxr-xr-x 5 liph liph 4096 Jul 27 00:30 ..
  -rw-r--r-- 1 liph liph 2355 Jul 27 00:28 AppSettings.mc
  -rw-r--r-- 1 liph liph 2584 Jul 27 00:29 BreathingDelegate.mc
  -rw-r--r-- 1 liph liph 7628 Jul 27 00:28 BreathingView.mc
  -rw-r--r-- 1 liph liph  561 Jul 27 00:28 Common.mc
  -rw-r--r-- 1 liph liph 2314 Jul 27 00:29 DepthDelegate.mc
  -rw-r--r-- 1 liph liph 1130 Jul 27 00:28 DepthModel.mc
  -rw-r--r-- 1 liph liph 9116 Jul 27 00:28 DepthView.mc
  -rw-r--r-- 1 liph liph 2302 Jul 27 00:29 DistanceDelegate.mc
  -rw-r--r-- 1 liph liph 8251 Jul 27 00:28 DistanceView.mc
  -rw-r--r-- 1 liph liph 1649 Jul 27 00:29 DownActionSettingsView.mc
  -rw-r--r-- 1 liph liph  610 Jul 27 00:31 Fenix5App.mc
  -rw-r--r-- 1 liph liph 1901 Jul 27 00:30 MainMenuDelegate.mc
  -rw-r--r-- 1 liph liph 4098 Jul 27 00:28 MainMenuView.mc
  -rw-r--r-- 1 liph liph 2984 Jul 27 00:29 PoolLengthSettingsView.mc
  -rw-r--r-- 1 liph liph 1169 Jul 27 00:29 SettingsDelegate.mc
  -rw-r--r-- 1 liph liph 1148 Jul 27 00:29 SettingsEditDelegate.mc
  -rw-r--r-- 1 liph liph 2443 Jul 27 00:29 SettingsView.mc
  -rw-r--r-- 1 liph liph 2024 Jul 27 00:29 StaticDelegate.mc
  -rw-r--r-- 1 liph liph 6260 Jul 27 00:28 StaticView.mc
  -rw-r--r-- 1 liph liph 1147 Jul 27 00:28 SubMenuDelegate.mc
  -rw-r--r-- 1 liph liph 1534 Jul 27 00:28 SubMenuView.mc
  -rw-r--r-- 1 liph liph 1584 Jul 27 00:29 WaterTypeSettingsView.mc


c0: list fēnix 5 source files
c3: prose
c7: 2026-07-26T22:33:59.093Z
c1:
  65 /home/liph/code/garmin-freedive-app/source_fenix5/AppSettings.mc
     89 /home/liph/code/garmin-freedive-app/source_fenix5/BreathingDelegate.mc
    235 /home/liph/code/garmin-freedive-app/source_fenix5/BreathingView.mc
     24 /home/liph/code/garmin-freedive-app/source_fenix5/Common.mc
     79 /home/liph/code/garmin-freedive-app/source_fenix5/DepthDelegate.mc
     38 /home/liph/code/garmin-freedive-app/source_fenix5/DepthModel.mc
    275 /home/liph/code/garmin-freedive-app/source_fenix5/DepthView.mc
     85 /home/liph/code/garmin-freedive-app/source_fenix5/DistanceDelegate.mc
    251 /home/liph/code/garmin-freedive-app/source_fenix5/DistanceView.mc
     54 /home/liph/code/garmin-freedive-app/source_fenix5/DownActionSettingsView.mc
     28 /home/liph/code/garmin-freedive-app/source_fenix5/Fenix5App.mc
     77 /home/liph/code/garmin-freedive-app/source_fenix5/MainMenuDelegate.mc
    123 /home/liph/code/garmin-freedive-app/source_fenix5/MainMenuView.mc
     93 /home/liph/code/garmin-freedive-app/source_fenix5/PoolLengthSettingsView.mc
     50 /home/liph/code/garmin-freedive-app/source_fenix5/SettingsDelegate.mc
     49 /home/liph/code/garmin-freedive-app/source_fenix5/SettingsEditDelegate.mc
     68 /home/liph/code/garmin-freedive-app/source_fenix5/SettingsView.mc
     74 /home/liph/code/garmin-freedive-app/source_fenix5/StaticDelegate.mc
    197 /home/liph/code/garmin-freedive-app/source_fenix5/StaticView.mc
     49 /home/liph/code/garmin-freedive-app/source_fenix5/SubMenuDelegate.mc
     57 /home/liph/code/garmin-freedive-app/source_fenix5/SubMenuView.mc
     54 /home/liph/code/garmin-freedive-app/source_fenix5/WaterTypeSettingsView.mc
   2114 total


c0: check for monkeyc availability
c3: prose
c7: 2026-07-26T22:33:59.093Z
c1:
  # check for monkeyc availability

  $ which monkeyc || echo 'monkeyc not found in PATH'

  monkeyc not found
  monkeyc not found in PATH


c0: syntax scan for common issues
c3: prose
c7: 2026-07-26T22:33:59.093Z
c1:
  # syntax scan for common issues

  $ cd /home/liph/code/garmin-freedive-app/source_fenix5 && grep -n 'method(:' *.mc | head -30 && echo '---' && grep -n 'switchToView\|pushView\|popView' *.mc | wc -l && echo 'view/delegate transitions found'

  BreathingDelegate.mc:45:                backTimer.start(method(:onBackLongPress), LONG_PRESS_MS, false);
  BreathingView.mc:41:        timer.start(method(:onTimer), 1000, true);
  DepthDelegate.mc:32:                backTimer.start(method(:onBackLongPress), LONG_PRESS_MS, false);
  DepthView.mc:52:        timer.start(method(:onTimer), 1000, true);
  DistanceDelegate.mc:41:                backTimer.start(method(:onBackLongPress), LONG_PRESS_MS, false);
  DistanceView.mc:50:        timer.start(method(:onTimer), 1000, true);
  MainMenuDelegate.mc:40:            backTimer.start(method(:onBackLongPress), LONG_PRESS_MS, false);
  MainMenuView.mc:55:            var subView = new SubMenuView("DEPTH TYPE", ["Constant Weight", "Free Immersion"], method(:onDepthType));
  MainMenuView.mc:58:            var subView2 = new SubMenuView("DIST FIN TYPE", ["Bi-fins", "Monofin", "No-fins"], method(:onDistanceType));
  MainMenuView.mc:76:            var subView = new SubMenuView("CWT FIN STYLE", ["Bi-fins", "Monofin", "No-fins"], method(:onCwtFinStyle));
  StaticDelegate.mc:31:                backTimer.start(method(:onBackLongPress), LONG_PRESS_MS, false);
  StaticView.mc:40:        timer.start(method(:onTimer), 1000, true);


c0: check manifest and jungle
c3: prose
c7: 2026-07-26T22:33:59.093Z
c1:
  # check manifest and jungle

  $ cd /home/liph/code/garmin-freedive-app && cat manifest_fenix5.xml && echo '---' && cat monkey_fenix5.jungle && echo '---' && cat build_fenix5.sh | head -40

  <?xml version="1.0"?>
  <iq:manifest xmlns:iq="http://www.garmin.com/connect-iq" version="1">
      <iq:application entry="Fenix5App" id="b896271ba7e04e12988fd03fb8714fc4" minApiLevel="2.4.0" type="watch-app" name="@Strings.AppName">
          <iq:products>
              <iq:product id="fenix5"/>
              <iq:product id="fenix5s"/>
              <iq:product id="fenix5x"/>
              <iq:product id="fenix5plus"/>
              <iq:product id="fenix5splus"/>
              <iq:product id="fenix5xplus"/>
          </iq:products>
          <iq:permissions>
              <iq:permission id="Sensor"/>
              <iq:permission id="ActivityRecording"/>
              <iq:permission id="FitContributor"/>
          </iq:permissions>
          <iq:languages>
              <iq:language>eng</iq:language>
          </iq:languages>
      </iq:application>
  </iq:manifest>


c0: check manifest and jungle
c3: prose
c7: 2026-07-26T22:33:59.093Z
c1:
  project.manifest = manifest_fenix5.xml
  base.sourcePath = source_fenix5
  base.resourcePath = resources


c0: 2. Use the SDK Manager to download the latest SDK and the fēnix 5 / 5S / 5X / 5 Plus device files.
c3: prose
c7: 2026-07-26T22:33:59.093Z
c1:
  #   2. Use the SDK Manager to download the latest SDK and the fēnix 5 / 5S / 5X / 5 Plus device files.


c0: 4. Java 11+ must be installed.
c3: prose
c7: 2026-07-26T22:33:59.093Z
c1:
  #   4. Java 11+ must be installed.

  set -e

  SDK_CFG="$HOME/.Garmin/ConnectIQ/current-sdk.cfg"

  if [ ! -f "$SDK_CFG" ]; then
      echo "Connect IQ SDK not found."
      echo "Install the SDK Manager, download an SDK + devices, then try again."
      exit 1
  fi

  SDK=$(cat "$SDK_CFG")
  DEV_KEY="${DEV_KEY:-developer_key.der}"


c0: Generate a self-signed developer key if the user does not have one.
c3: prose
c7: 2026-07-26T22:33:59.093Z
c1:
  # Generate a self-signed developer key if the user does not have one.
  if [ ! -f "$DEV_KEY" ]; then
      echo "Generating a new developer key ($DEV_KEY)..."
      openssl genrsa -out developer_key.pem 4096
      openssl pkcs8 -topk8 -inform PEM -outform DER -in developer_key.pem -out "$DEV_KEY" -nocrypt
  fi

  mkdir -p bin

  echo "Building for fēnix 5..."
  "$SDK/bin/monkeyc" \
      -d fenix5 \
      -f monkey_fenix5.jungle \
      -o bin/Freedive_fenix5.prg \
      -y "$DEV_KEY"

  echo "Building for fēnix 5S..."
  "$SDK/bin/monkeyc" \


