CT MENU STRIP: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "{{CT|intro" to "Category: Control Types {{CT|intro ")
m (Text replacement - "{{Inline code|" to "{{ic|")
Line 482: Line 482:
};
};
|description=List of entries ordered in subclasses. The {{Inline code|Default}} class needs to be defined.
|description=List of entries ordered in subclasses. The {{ic|Default}} class needs to be defined.
}}
}}



Revision as of 18:09, 27 February 2021


Introduction

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

Related commands & functions

Related User Interface Eventhandlers

Alphabetical Order

TokenNames common to most controls, such as x, y, w, h, text, idc... can be found here.
Not all of the listed attributes might have an effect nor might the list be complete. All attributes were gathered with this config crawler.
#define CT_MENU_STRIP 47


A

arrow

Type
String
Description
n/a
arrow = "\a3\3DEN\Data\Controls\ctrlMenu\arrow_ca.paa";


C

colorBorder

Type
Array
Description
n/a
colorBorder[] = {0,0,0,0};


colorPicture

Type
Array
Description
n/a
colorPicture[] = {1,1,1,1};


colorPictureDisabled

Type
Array
Description
n/a
colorPictureDisabled[] = {1,1,1,0.5};


colorPictureSelect

Type
Array
Description
n/a
colorPictureSelect[] = {0,0,0,1};


colorSelect

Type
Array
Description
n/a
colorSelect[] = {0,0,0,1};


colorSelectBackground

Type
Array
Description
n/a
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
n/a
colorStripBackground[] = {0,0,0,0};


colorStripDisabled

Type
Array
Description
n/a
colorStripDisabled[] = {1,1,1,0.25};


colorStripSelect

Type
Array
Description
n/a
colorStripSelect[] = {0,0,0,1};


colorStripSelectBackground

Type
Array
Description
n/a
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
n/a
colorStripText[] = {1,1,1,1};


I

Items

Type
Class
Description
List of entries ordered in subclasses. The Default class needs to be defined.
class Items
{
	items[] = {"File","Edit","View","Attributes","Tools","Options","Preview","Help"};
	class File
	{
		text = "Scenario";
		items[] = {"MissionNew","MissionOpen","MissionSave","MissionSaveAs","Separator","MissionPublishSteam","MissionExport","MissionMerge","Separator","MissionStats","MissionAddons","MissionFolder","LogFolder","Separator","Exit"};
		data = "test1";
		value = 1;
	};
	class MissionNew
	{
		text = "New";
		data = "MissionNew";
		shortcuts[] = {"512 + 0x31"};
		picture = "\a3\3DEN\Data\Displays\Display3DEN\ToolBar\new_ca.paa";
		opensNewWindow = 1;
	};
	class MissionOpen
	{
		text = "Open";
		data = "MissionLoad";
		shortcuts[] = {"512 + 0x18"};
		picture = "\a3\3DEN\Data\Displays\Display3DEN\ToolBar\open_ca.paa";
		opensNewWindow = 1;
	};
	class MissionSave
	{
		text = "Save";
		data = "MissionSave";
		shortcuts[] = {"512 + 0x1F"};
		picture = "\a3\3DEN\Data\Displays\Display3DEN\ToolBar\save_ca.paa";
	};
	class MissionSaveAs
	{
		text = "Save As";
		data = "MissionSaveAs";
		shortcuts[] = {"512 + 	1024 + 0x1F"};
		picture = "\a3\3DEN\Data\Displays\Display3DEN\ToolBar\saveas_ca.paa";
		opensNewWindow = 1;
	};
	class MissionPublishSteam
	{
		text = "Publish to Steam Workshop";
		data = "MissionPublishSteam";
		enable = 1;
		action = "do3DENAction 'OpenSteamPublishDialog';";
		picture = "\a3\3DEN\Data\Displays\Display3DEN\ToolBar\steam_ca.paa";
	};
	class MissionExport
	{
		text = "Export";
		items[] = {"MissionExportSP","MissionExportMP","MissionTerrainBuilder","MissionExportSQF"};
	};
	class MissionExportSP
	{
		text = "Export to Singleplayer";
		data = "MissionExportSP";
	};
	class MissionExportMP
	{
		text = "Export to Multiplayer";
		data = "MissionExportMP";
	};
	class MissionTerrainBuilder
	{
		text = "Export to Terrain Builder";
		data = "MissionExportTerrainBuilder";
		action = "[] spawn bis_fnc_3DENExportTerrainBuilder;";
	};
	class MissionExportSQF
	{
		text = "Export to SQF";
		action = "[] call bis_fnc_3DENExportSQF;";
	};
	class MissionMerge
	{
		text = "Merge";
		data = "MissionMerge";
		shortcuts[] = {"512 + 0x32"};
	};
	class MissionFolder
	{
		text = "Open Scenario Folder";
		data = "FolderMission";
	};
	class MissionAddons
	{
		text = "Show Required Addons";
		data = "OpenRequiredAddons";
	};
	class MissionStats
	{
		text = "Statistics";
		action = "[] call bis_fnc_3DENMissionStats;";
	};
	class LogFolder
	{
		text = "Open Log Folder";
		data = "FolderLog";
	};
	class Exit
	{
		text = "Exit";
		data = "Exit3DEN";
	};
	class Edit
	{
		text = "Edit";
		items[] = {"Undo","Redo","Separator","EntitySelectScreen","Separator","Widget","Grid","Vertical","SurfaceSnapToggle","WaypointSnapToggle","Separator","Space","Mode"};
	};
	class Undo
	{
		text = "Undo";
		data = "Undo";
		shortcuts[] = {"512 + 0x2C"};
		picture = "\a3\3DEN\Data\Displays\Display3DEN\ToolBar\undo_ca.paa";
	};
	class Redo
	{
		text = "Redo";
		data = "Redo";
		shortcuts[] = {"512 + 0x15","512 + 	1024 + 0x2C"};
		picture = "\a3\3DEN\Data\Displays\Display3DEN\ToolBar\redo_ca.paa";
	};
	class EntitySelectScreen
	{
		text = "Select All on Screen";
		data = "SelectAllOnScreen";
		shortcuts[] = {"512 + 0x1E"};
	};
	class EntityCut
	{
		text = "Cut";
		data = "CutUnit";
		shortcuts[] = {"512 + 0x2D"};
	};
	class EntityCopy
	{
		text = "Copy";
		data = "CopyUnit";
		shortcuts[] = {"512 + 0x2E"};
	};
	class EntityPaste
	{
		text = "Paste";
		data = "PasteUnit";
		shortcuts[] = {"512 + 0x2F"};
	};
	class EntityPasteOrig
	{
		text = "Paste on Original Position";
		data = "PasteUnitOrig";
		shortcuts[] = {"512 + 	1024 + 0x2F"};
	};
	class EntitySimulation
	{
		xtext = "Preview Simulation";
		data = "SimulateUnit";
		shortcuts[] = {"512 + 0x19"};
		enable = 0;
	};
	class Widget
	{
		text = "Transformation Widget";
		items[] = {"WidgetToggle","WidgetNone","WidgetTranslation","WidgetRotation","WidgetScaling","WidgetArea"};
	};
	class WidgetToggle
	{
		text = "Toggle Widget";
		data = "WidgetToggle";
		shortcuts[] = {57};
	};
	class WidgetNone
	{
		text = "No Widget";
		data = "WidgetNone";
		picture = "\a3\3DEN\Data\Displays\Display3DEN\ToolBar\widget_none_off_ca.paa";
		shortcuts[] = {2};
	};
	class WidgetTranslation
	{
		text = "Translation Widget";
		data = "WidgetTranslation";
		picture = "\a3\3DEN\Data\Displays\Display3DEN\ToolBar\widget_translation_off_ca.paa";
		shortcuts[] = {3};
	};
	class WidgetRotation
	{
		text = "Rotation Widget";
		data = "WidgetRotation";
		picture = "\a3\3DEN\Data\Displays\Display3DEN\ToolBar\widget_rotation_off_ca.paa";
		shortcuts[] = {4};
	};
	class WidgetScaling
	{
		text = "Area Scaling Widget";
		data = "WidgetScale";
		picture = "\a3\3DEN\Data\Displays\Display3DEN\ToolBar\widget_scaling_off_ca.paa";
		shortcuts[] = {5};
	};
	class WidgetArea
	{
		text = "Area Widget";
		data = "WidgetArea";
		picture = "\a3\3DEN\Data\Displays\Display3DEN\ToolBar\widget_area_off_ca.paa";
		shortcuts[] = {6};
	};
	class WidgetSpace
	{
		text = "Toggle Widget Coordinate Space";
		data = "WidgetSpace";
		shortcuts[] = {34};
		enable = 0;
	};
	class WidgetSpaceWorld
	{
		text = "World";
		data = "WidgetSpaceWorld";
		enable = 0;
	};
	class WidgetSpaceLocal
	{
		text = "Selected Entity";
		data = "WidgetSpaceLocal";
		enable = 0;
	};
	class WidgetPosition
	{
		xtext = "Toggle Position";
		data = "WidgetPosition";
		shortcuts[] = {34};
		enable = 0;
	};
	class WidgetPositionEntity
	{
		xtext = "Selected Entity";
		data = "WidgetPositionEntity";
		enable = 0;
	};
	class WidgetPositionMean
	{
		xtext = "Mean Position";
		data = "WidgetPositionMean";
		enable = 0;
	};
	class Grid
	{
		text = "Grid";
		items[] = {"GridTranslationToggle","GridRotationToggle","GridScalingToggle","GridDecrease","GridIncrease"};
	};
	class GridTranslationToggle
	{
		text = "Toggle Translation Grid";
		data = "MoveGridToggle";
		shortcuts[] = {39};
		type = "CheckBox";
		default = "false";
	};
	class GridRotationToggle
	{
		text = "Toggle Rotation Grid";
		data = "RotateGridToggle";
		type = "CheckBox";
		default = "false";
	};
	class GridScalingToggle
	{
		text = "Toggle Area Scaling Grid";
		data = "ScaleGridToggle";
		type = "CheckBox";
		default = "false";
	};
	class GridDecrease
	{
		text = "Decrease Grid Size";
		data = "GridDecrease";
		shortcuts[] = {26};
		action = "['decrease'] call bis_fnc_3DENGrid;";
	};
	class GridIncrease
	{
		text = "Increase Grid Size";
		data = "GridIncrease";
		shortcuts[] = {27};
		action = "['increase'] call bis_fnc_3DENGrid;";
	};
	class Vertical
	{
		text = "Vertical Mode";
		items[] = {"VerticalToggle","VerticalATL","VerticalASL"};
	};
	class VerticalToggle
	{
		text = "Toggle Vertical Mode";
		data = "VerticalToggle";
		shortcuts[] = {40};
	};
	class VerticalATL
	{
		text = "Above Terrain Level (ATL)";
		data = "VerticalATL";
	};
	class VerticalASL
	{
		text = "Above Sea Level (ASL)";
		data = "VerticalASL";
	};
	class SurfaceSnapToggle
	{
		text = "Toggle Surface Snapping";
		data = "SurfaceSnapToggle";
		type = "CheckBox";
		default = "true";
		shortcuts[] = {43};
	};
	class WaypointSnapToggle
	{
		text = "Toggle Waypoint Snapping";
		data = "WaypointSnapToggle";
		type = "CheckBox";
		default = "true";
		shortcuts[] = {53};
	};
	class Space
	{
		text = "Phase";
		items[] = {"SpaceMission","SpaceIntro","SpaceOutroWin","SpaceOutroLose"};
	};
	class SpaceMission
	{
		text = "Scenario";
		data = "MissionPartMission";
	};
	class SpaceIntro
	{
		text = "Intro";
		data = "MissionPartIntro";
	};
	class SpaceOutroWin
	{
		text = "Outro - Win";
		data = "MissionPartOutroWin";
	};
	class SpaceOutroLose
	{
		text = "Outro - Lose";
		data = "MissionPartOutroLoose";
	};
	class Mode
	{
		text = "Asset Type";
		items[] = {"ModeObject","ModeGroup","ModeTrigger","ModeWaypoint","ModeLogic","ModeMarker","ModeFavorite","SubmodeToggle"};
	};
	class ModeObject
	{
		text = "Objects";
		data = "SelectObjectMode";
		shortcuts[] = {59};
	};
	class ModeGroup
	{
		text = "Compositions";
		data = "SelectGroupMode";
		shortcuts[] = {60};
	};
	class ModeTrigger
	{
		text = "Triggers";
		data = "SelectTriggerMode";
		shortcuts[] = {61};
	};
	class ModeWaypoint
	{
		text = "Waypoints";
		data = "SelectWaypointMode";
		shortcuts[] = {62};
	};


itemSpacingH

Type
Number
Description
Vertical distance between two entries.
itemSpacingH = 0.01;


itemSpacingW

Type
Number
Description
Horizontal distance between two entries.
itemSpacingW = 0.01;


P

pictureCheckboxDisabled

Type
String
Description
n/a
pictureCheckboxDisabled = "#(argb,8,8,3)color(0,0,0,0)";


pictureCheckboxEnabled

Type
String
Description
n/a
pictureCheckboxEnabled = "\a3\3DEN\Data\Controls\CtrlMenu\pictureCheckboxEnabled_ca.paa";


pictureRadioDisabled

Type
String
Description
n/a
pictureRadioDisabled = "#(argb,8,8,3)color(0,0,0,0)";


pictureRadioEnabled

Type
String
Description
n/a
pictureRadioEnabled = "\a3\3DEN\Data\Controls\CtrlMenu\pictureRadioEnabled_ca.paa";


R

rowHeight

Type
Number
Description
n/a
rowHeight = 0;



Default Classes

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 keyword).

In older versions, use "Default" call BIS_fnc_exportGUIBaseClasses; and paste the result into the description.ext.


None

Other Examples

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" // STRG+N
			};
			picture="\a3\3DEN\Data\Displays\Display3DEN\ToolBar\new_ca.paa";
		};
	};
};
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 //Default entries, otherwise error is shown upon creation of the display (Needs further investigation)
				{
					text = "Default";
				};
			};
		};
	};
};