---
name: "CT MENU STRIP"
type: topic
source: https://community.bistudio.com/wiki/CT_MENU_STRIP
revid: 377981
updated: 2026-01-20T13:49:58Z
---

# CT MENU STRIP

### Introduction

Control with expandable sublists. The top bar in 3den uses this CT.

#### Related commands & functions

- Commands: General
- Commands: UI Eventhandlers
- Commands: Menu

#### Related User Interface Eventhandlers

- [Events: General](../topics/User_Interface_Event_Handlers.md#generic-events)

### Alphabetical Order

> [!NOTE]
> TokenNames common to most controls, such as x, y, w, h, text, idc... can be found [**here**](../topics/Arma~3A_GUI_Configuration.md#common-properties).

> [!WARNING]
> Not all of the listed attributes might have an effect nor might the list be complete. All attributes were gathered with [this](https://github.com/7erra/BIKI.VR/blob/master/fnc/generateCTPage.sqf) config crawler.

```cpp
#define CT_MENU_STRIP 47
```

#### A

##### arrow

**Type:** String

**Description:** Icon used to navigate from second to third level.

```cpp
arrow = "\a3\3DEN\Data\Controls\ctrlMenu\arrow_ca.paa";
```

#### C

##### colorBorder

**Type:** Array

**Description:** Color of the border drawn around the menu strip and the flyout.

```cpp
colorBorder[] = { 0, 0, 0, 0 };
```

##### colorPicture

**Type:** Array

**Description:** Default picture color.

```cpp
colorPicture[] = { 1, 1, 1, 1 };
```

##### colorPictureDisabled

**Type:** Array

**Description:** Picture color when menu strip is disabled.

```cpp
colorPictureDisabled[] = { 1, 1, 1, 0.5 };
```

##### colorPictureSelect

**Type:** Array

**Description:** Picture color when entry is selected. All levels!

```cpp
colorPictureSelect[] = { 0, 0, 0, 1 };
```

##### colorSelect

**Type:** Array

**Description:** Text color when entry is selected. All levels!

```cpp
colorSelect[] = { 0, 0, 0, 1 };
```

##### colorSelectBackground

**Type:** Array

**Description:** Background color when entry is selected. Only sub first level.

```cpp
colorSelectBackground[] = {
    "(profileNamespace getVariable ['GUI_BCG_RGB_R', 0.77])",
    "(profileNamespace getVariable ['GUI_BCG_RGB_G', 0.51])",
    "(profileNamespace getVariable ['GUI_BCG_RGB_B', 0.08])",
    1
};
```

##### colorStripBackground

**Type:** Array

**Description:** Background color.

```cpp
colorStripBackground[] = { 0, 0, 0, 0 };
```

##### colorStripDisabled

**Type:** Array

**Description:** Does not seem to do anything.

```cpp
colorStripDisabled[] = { 1, 1, 1, 0.25 };
```

##### colorStripSelect

**Type:** Array

**Description:** Does not seem to do anything.

```cpp
colorStripSelect[] = { 0, 0, 0, 1 };
```

##### colorStripSelectBackground

**Type:** Array

**Description:** Background color when entry is selected. First level only!

```cpp
colorStripSelectBackground[] = {
    "(profileNamespace getVariable ['GUI_BCG_RGB_R', 0.77])",
    "(profileNamespace getVariable ['GUI_BCG_RGB_G', 0.51])",
    "(profileNamespace getVariable ['GUI_BCG_RGB_B', 0.08])",
    1
};
```

##### colorStripText

**Type:** Array

**Description:** Text color

```cpp
colorStripText[] = { 1, 1, 1, 1 };
```

#### I

##### Items

**Type:** Class

**Description:** List of entries ordered in subclasses. The `Default` class needs to be defined.

```cpp
class Items
{
    items[] = { "MissionNew" }; // First level entries
    class MissionNew
    {
        action = "systemChat str _this";                                     // Action that is called when entry is selected. _this contains the control and the path to the entry e.g. [control#10, [0, 1, 5]]
        data = "Data";                                                        // Data, see menuSetData, menuData. String only. If set in Eden Editor it means that the functionality is handle in engine
        default = "true";                                                    // Sets the default state of the entry. Needs type property to be defined
        opensNewWindow = 1;                                                    // ... is added to the action, indicating that a new window will be opened. In this example, displayed text would be "New..."
        picture = "\a3\3DEN\Data\Displays\Display3DEN\ToolBar\new_ca.paa";    // Picture displayed to the left
        shortcuts[] = {"512 + 0x31"};                                        // Shortcut that will automatically execute attached action
        text = "New";                                                        // Text displayed
        type = "Checkbox2";                                                    // Control type used for indicating the selection state. Only "Checkbox" seems to work
        value = 1337;                                                        // Value, see menuSetValue, menuValue. Number only
        weblink = "https:// arma3.com/";                                    // URL, see menuSetURL, menuURL
    };

    class Default; // Default entry. Needs to be defined otherwise error is shown upon creation of the display
    class Separator; // Needs to be defined to create a separator
};
```

##### itemSpacingH

**Type:** Number

**Description:** Vertical distance between two entries. Will cause icons and text to not be aligned anymore if anything else than default value is used. Real use is unknown and should probably not be changed.

```cpp
itemSpacingH = 0.01;
```

##### itemSpacingW

**Type:** Number

**Description:** Horizontal distance between two entries. (Seems to have no effect)

```cpp
itemSpacingW = 0.01;
```

#### P

##### pictureCheckboxDisabled

**Type:** String

**Description:** Icon shown if entry was disabled. Seems to have no effect since there is no way to disable an entry.

```cpp
pictureCheckboxDisabled = "#(argb,8,8,3)color(0,0,0,0)";
```

### Default Classes

> [!NOTE]
> **Arma 3:** **AddOns:** Classes need to be initialised first with `class SomeClass;`
>
> ---
>
> **Missions:** Since Arma 3 v2.02 one can use `import SomeClass;` to initialise a class (see the [import](../topics/import_~28Config~29.md) keyword).
>
> In older versions, use `"Default" call BIS_fnc_exportGUIBaseClasses;` and paste the result into the [description.ext](../topics/Description.ext.md).

### Other Examples

```cpp
class MenuStrip
{
    idc = 120;
    type = CT_MENU_STRIP;
    colorStripBackground[] = { 0, 0, 0, 1 };
    colorStripText[] = { 1, 1, 1, 1 };
    colorStripSelect[] = { 0, 0, 0, 1 };
    colorStripSelectBackground[] =
    {
        "(profilenamespace getvariable ['GUI_BCG_RGB_R', 0.77])",
        "(profilenamespace getvariable ['GUI_BCG_RGB_G', 0.51])",
        "(profilenamespace getvariable ['GUI_BCG_RGB_B', 0.08])",
        1
    };

    colorStripDisabled[] = { 1, 1, 1, 0.25 };
    x = "safezoneX";
    y = "safezoneY";
    w = "safezoneW -     5 * (pixelW * pixelGrid * 0.50)";
    h = "5 * (pixelH * pixelGrid * 0.50)";
    colorStripBackground[] = { 0, 0, 0, 0 };
    colorBackground[] = { 0.1, 0.1, 0.1, 1 };
    font = "RobotoCondensedLight";
    colorBorder[] = { 0, 0, 0, 0 };
    colorText[] = { 1, 1, 1, 1 };
    colorSelect[] = { 0, 0, 0, 1 };
    colorSelectBackground[] =
    {
        "(profilenamespace getvariable ['GUI_BCG_RGB_R', 0.77])",
        "(profilenamespace getvariable ['GUI_BCG_RGB_G', 0.51])",
        "(profilenamespace getvariable ['GUI_BCG_RGB_B', 0.08])",
        1
    };
    colorDisabled[] = { 1, 1, 1, 0.25 };
    colorPicture[] = { 1, 1, 1, 1 };
    colorPictureSelect[] = { 0, 0, 0, 1 };
    colorPictureDisabled[] = { 1, 1, 1, 0.5 };
    arrow = "\a3\3DEN\Data\Controls\ctrlMenu\arrow_ca.paa";
    rowHeight = 0;
    itemSpacingW = 0.0099999998;
    itemSpacingH = 0.0099999998;
    pictureCheckboxEnabled = "\a3\3DEN\Data\Controls\CtrlMenu\pictureCheckboxEnabled_ca.paa";
    pictureCheckboxDisabled = "#(argb,8,8,3)color(0,0,0,0)";
    pictureRadioEnabled = "\a3\3DEN\Data\Controls\CtrlMenu\pictureRadioEnabled_ca.paa";
    pictureRadioDisabled = "#(argb,8,8,3)color(0,0,0,0)";
    class Items
    {
        items[] =
        {
            "entry1",
            "entry2",
            "entry3",
        };

        class entry1
        {
            text = "First Entry";
            items[] =
            {
                "sub1_1",
                "sub1_2"
            };
        };

        class sub1_1
        {
            text = "First Sub Entry";
            action = "systemchat ""Sub entry one."";";
        };

        class sub1_2
        {
            text = "Second Sub Entry";
        };

        class entry2
        {
            text = "Entry 2, no sub menu";
            action = "systemchat ""Entry 2."";";
        };

        class entry3
        {
            text = "Fancy entry 3";
            action = "systemchat ""Entry 3."";";
            data = "CustomData";
            shortcuts[] =
            {
                "512 + 0x31" // CTRL+N
            };

            picture = "\a3\3DEN\Data\Displays\Display3DEN\ToolBar\new_ca.paa";
        };

        class Default;
        class Separator;
    };
};
```

```cpp
class RscMenuStrip
{
    idd = -1;
    movingEnable = true;
    enableSimulation = true;
    onLoad = "";
    onUnload = "";
    class Controls
    {
        class MenuStrip : ctrlMenuStrip
        {
            idc = 1000;
            x = safeZoneX;
            y = (safeZoneY + (safezoneH * 0.132));
            w =  safezoneW;
            h = (safezoneH  * 0.03);
            class Items
            {
                items[] = // First Level Entries, when editing an existing menu strip, one can use the += operator to add new entries without overwriting the old ones
                {
                    "Menu1",
                    "Menu2"
                };

                 class Menu1
                {
                    text = "Menu 1";
                    items[] = // Second Level Entries
                    {
                        "WebLink"
                    };
                };

                class Menu2
                {
                    text = "Menu 2";
                    items[] = // Second Level Entries
                    {
                        "SayHello",
                        "PlayMusic"
                    };
                };

                class WebLink
                {
                    text = "Go to Arma 3 Webpage"; // Display name of menu entry
                    picture = "\A3\Ui_f\data\Logos\arma3_white_ca.paa"; // Picture shown in front of text
                    weblink = "https:// arma3.com/"; // Opens a web page in default webbrowser
                    opensNewWindow = 1; // Adds ... after text, indicating that this menu entry will open a new display
                };

                class SayHello
                {
                    text = "Say Hello";
                    action = "systemChat 'Hello World!'"; // Code executed when entry is clicked
                };

                class PlayMusic
                {
                    text = "Play Music";
                    picture = "\a3\Modules_F_Curator\Data\portraitMusic_ca.paa";
                    action = "playMusic 'Track15_MainTheme'";
                };

                class Default;
                class Separator;
            };
        };
    };
};
```

<sub>Source: [BI Community Wiki — CT MENU STRIP](https://community.bistudio.com/wiki/CT_MENU_STRIP) (revision 377981).</sub>
