CT_TREE

From Bohemia Interactive Community
Revision as of 14:05, 29 November 2020 by R3vo (talk | contribs) (page overhaul)
Jump to navigation Jump to search

Introduction

The CT_TREE, also referred to as tree view (tv), is a control with similar functionality as the CT_LISTBOX. In addition to that it supports multiple levels of entries as well as a search functionality.
Since Arma 3 logo black.png2.01: Multiple selections are now also supported via commands. Important

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_TREE 12


B

borderSize

Type
Number
Description
Shows a border around the control.
borderSize = 0;


C

colorArrow

This attribute is mandatory for the control to work!
Type
Array
Description
Has no effect but without it an error is thrown.
colorArrow[] = {1,1,1,1};


colorBorder

Type
Array
Description
With Inline code determines the color of that border.
colorBorder[] = {0,0,0,0};


colorLines

Type
Array
Description
These lines connect the different entries for better clarity.
colorLines[] = {0,0,0,0};


colorMarked

Type
Array
Description
Background color of all subsequently selected entries when Inline code.
colorMarked[] = {0.2,0.3,0.7,1};


colorMarkedSelected

Type
Array
Description
Background color of the first selected entry with Inline code.
colorMarkedSelected[] = {0,0.5,0.5,1};


colorMarkedText

Type
Array
Description
Text color of secondarly selected entries with Inline code.
colorMarkedText[] = {0,0,0,1};


colorPicture

Type
Array
Description
Left picture color of an unselected entry.
colorPicture[] = {1,1,1,1};


colorPictureDisabled

Type
Array
Description
Left picture color when control is disabled.
colorPictureDisabled[] = {1,1,1,0.25};


colorPictureRight

Type
Array
Description
Right picture color of an unselected entry.
colorPictureRight[] = {1,1,1,1};


colorPictureRightDisabled

Type
Array
Description
Right picture color when control is disabled.
colorPictureRightDisabled[] = {1,1,1,0.25};


colorPictureRightSelected

Type
Array
Description
Right picture color of an selected entry.
colorPictureRightSelected[] = {0,0,0,1};


colorPictureSelected

Type
Array
Description
Left picture color of an selected entry.
colorPictureSelected[] = {1,1,1,1};


colorSearch

Type
Array
Description
Color of the entries that fit the search of the idcSearch listbox.
colorSearch[] = {"(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};


colorSelect

Type
Array
Description
Entry's background when Inline code.
colorSelect[] = {"(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};


colorSelectBackground

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


colorSelectText

Type
Array
Description
Text color of a selected entry with Inline code.
colorSelectText[] = {0,0,0,1};


D

defaultItem

Type
Array
Description
n/a
defaultItem[] = {"BLU_F","Infantry"};


disableKeyboardSearch

Type
Number
Description
n/a
disableKeyboardSearch = 1;


disableSearchHighlight

Type
Number
Description
n/a
disableSearchHighlight = 1;


E

expandedTexture

Type
String
Description
"Arrow" texture on the left side, if non is given ("") a minus with box will be displayed.
expandedTexture = "A3\ui_f\data\gui\rsccommon\rsctree\expandedTexture_ca.paa";


expandOnDoubleclick

Type
Number
Description
Enable/disable expanding and collapsing with double-click.
expandOnDoubleclick = 1;


H

hiddenTexture

Type
String
Description
"Arrow" texture on the left side, if non is given ("") a plus with box will be displayed.
hiddenTexture = "A3\ui_f\data\gui\rsccommon\rsctree\hiddenTexture_ca.paa";


I

iconFolder

Type
String
Description
n/a
iconFolder = "\a3\3DEN\Data\Cfg3DEN\Layer\icon_ca.paa";


iconFolderDefault

Type
String
Description
n/a
iconFolderDefault = "\a3\3DEN\Data\Cfg3DEN\Layer\iconDefault_ca.paa";


idcSearch

Type
Number
Description
IDC of a CT_EDIT control which functions as the search input.
idcSearch = 283;


M

maxHistoryDelay

Type
Number
Description
n/a
maxHistoryDelay = 1;


multiselectEnabled

Type
Number
Description
Enable/disable multi selection with CTRL or SHIFT to select all entries up to the first selected entry.

Informative

multiselectEnabled = 1;



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 import). In older versions, use "Default" call BIS_fnc_exportGUIBaseClasses; and paste the result into the description.ext.

RscExample

class RscTree
{
	deletable = 0;
	fade = 0;
	access = 0;
	type = CT_TREE;
	colorBackground[] = {0,0,0,0};
	colorSelect[] = {1,1,1,0.7};
	colorDisabled[] = {1,1,1,0.25};
	colorText[] = {1,1,1,1};
	colorSelectText[] = {0,0,0,1};
	colorBorder[] = {0,0,0,0};
	colorSearch[] =
	{
		"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.13])",
		"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.54])",
		"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.21])",
		"(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"
	};
	colorMarked[] = {0.2,0.3,0.7,1};
	colorMarkedText[] = {0,0,0,1};
	colorMarkedSelected[] = {0,0.5,0.5,1};
	multiselectEnabled = 0;
	colorPicture[] = {1,1,1,1};
	colorPictureSelected[] = {0,0,0,1};
	colorPictureDisabled[] = {1,1,1,0.25};
	colorPictureRight[] = {1,1,1,1};
	colorPictureRightSelected[] = {0,0,0,1};
	colorPictureRightDisabled[] = {1,1,1,0.25};
	colorArrow[] = {1,1,1,1};
	maxHistoryDelay = 1;
	shadow = 0;
	style = ST_LEFT;
	font = "RobotoCondensed";
	sizeEx = GUI_TEXT_SIZE_MEDIUM;
	expandedTexture = "A3\ui_f\data\gui\rsccommon\rsctree\expandedTexture_ca.paa";
	hiddenTexture = "A3\ui_f\data\gui\rsccommon\rsctree\hiddenTexture_ca.paa";
	x = 0;
	y = 0;
	w = 0.1;
	h = 0.2;
	rowHeight = 0.0439091;
	colorSelectBackground[] = {0,0,0,0.5};
	colorLines[] = {0,0,0,0};
	borderSize = 0;
	expandOnDoubleclick = 1;
	class ScrollBar: ScrollBar
	{
	};
};

Other examples

RscTree with search functionality

class Dialog
{
	idd = -1;
	class Controls
	{
		class _CT_EDIT
		{
			idc = 100;
			type = 2;
			style = "512";
			x = GUI_GRID_CENTER_X + 10 * GUI_GRID_CENTER_W;
			y = GUI_GRID_CENTER_Y + 0 * GUI_GRID_CENTER_H;
			w = 20 * GUI_GRID_CENTER_W;
			h = 2 * GUI_GRID_CENTER_H;
			font = "PuristaMedium";
			sizeEx = 0.04;
			autocomplete = "";
			canModify = true; 
			maxChars = 100; 
			forceDrawCaret = false;
			colorSelection[] = {0,1,0,1};
			colorText[] = {1,1,1,1};
			colorDisabled[] = {1,0,0,1}; 
			colorBackground[] = {0,0,0,0.8};
			text = "";
			tooltip = "Type to search";
		};
		class _CT_TREE
		{
			/* Common properties */
			idc = 200;
            /* Add some entries */
			onLoad = "params ['_tv'];\
					_classes = 'true' configClasses (configFile >> 'CfgVehicles');\
					for '_i' from 0 to 10 do\
					{\
						_tv tvAdd [[], configName selectRandom _classes];\
						for '_j' from 0 to 10 do\
						{\
							_tv tvAdd [[_i], configName selectRandom _classes];\
							for '_k' from 0 to 10 do\
							{\
								_tv tvAdd [[_i, _j], configName selectRandom _classes];\
							};\
						};\
					};";
			moving = 0;
			type = CT_TREE;
			style = ST_LEFT;
			x = GUI_GRID_CENTER_X + 10 * GUI_GRID_CENTER_W;
			y = GUI_GRID_CENTER_Y + 3 * GUI_GRID_CENTER_H;
			w = 20 * GUI_GRID_CENTER_W;
			h = 23 * GUI_GRID_CENTER_H;
			sizeEx = GUI_TEXT_SIZE_MEDIUM;
			font = "RobotoCondensed";
			colorText[] = {1,1,1,1};
			colorBackground[] = {0,0,0,0.8};
			colorDisabled[] = {1,1,1,0.25};
			shadow = 0;
			access = 0;

			/* CT_TREE specific properties */
			idcSearch = 100;
			colorSelect[] = {1,1,1,0.7};
			colorSelectText[] = {0,0,0,1};
			colorBorder[] = {0,0,0,0};
			colorSearch[] =
			{
				"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.13])",
				"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.54])",
				"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.21])",
				"(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"
			};
			colorMarked[] = {0.2,0.3,0.7,1};
			colorMarkedText[] = {0,0,0,1};
			colorMarkedSelected[] = {0,0.5,0.5,1};
			multiselectEnabled = 0;
			colorPicture[] = {1,1,1,1};
			colorPictureSelected[] = {0,0,0,1};
			colorPictureDisabled[] = {1,1,1,0.25};
			colorPictureRight[] = {1,1,1,1};
			colorPictureRightSelected[] = {0,0,0,1};
			colorPictureRightDisabled[] = {1,1,1,0.25};
			colorArrow[] = {1,1,1,1};
			maxHistoryDelay = 1;
			colorSelectBackground[] = {0,0,0,0.5};
			colorLines[] = {0,0,0,0};
			class ScrollBar: ScrollBar
			{
			};
			expandedTexture = "A3\ui_f\data\gui\rsccommon\rsctree\expandedTexture_ca.paa";
			hiddenTexture = "A3\ui_f\data\gui\rsccommon\rsctree\hiddenTexture_ca.paa";
			rowHeight = 0.0439091;
			borderSize = 0;
			expandOnDoubleclick = 1;

			/* CT_TREE user interface eventhandlers */
			onTreeSelChanged = "systemChat str ['onTreeSelChanged',_this]; false";
			onTreeLButtonDown = "systemChat str ['onTreeLButtonDown',_this]; false";
			onTreeDblClick = "systemChat str ['onTreeDblClick',_this]; false";
			onTreeExpanded = "systemChat str ['onTreeExpanded',_this]; false";
			onTreeCollapsed = "systemChat str ['onTreeCollapsed',_this]; false";
			onTreeMouseMove = "systemChat str ['onTreeMouseMove',_this]; false";
			onTreeMouseHold = "systemChat str ['onTreeMouseHold',_this]; false";
			onTreeMouseExit = "systemChat str ['onTreeMouseExit',_this]; false";
		};
	};
};