CT CONTROLS GROUP: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "{{TODO" to "{{Wiki|todo")
m (Text replacement - "\{\{( *)Important( *)\|" to "{{$1Feature$2|$2important$2|")
Line 6: Line 6:
|value = 15
|value = 15
|description = Container control for other controls. The child controls have to be defined in the '''controls''' subclass. The child controls' positions are calculated relatively to the control group, so x = 0 and y = 0 moves the child control to the top left corner of the controls group. If the position or height/width of any child controls cause any part of the child control to fall outside the dimensions of the controls group then scrollbars will become visible. This allows for the creation of scrollable text controls for example. Control groups are not visible by themselves, therefore most of the common attributes, eg. colorBackground, do not apply.
|description = Container control for other controls. The child controls have to be defined in the '''controls''' subclass. The child controls' positions are calculated relatively to the control group, so x = 0 and y = 0 moves the child control to the top left corner of the controls group. If the position or height/width of any child controls cause any part of the child control to fall outside the dimensions of the controls group then scrollbars will become visible. This allows for the creation of scrollable text controls for example. Control groups are not visible by themselves, therefore most of the common attributes, eg. colorBackground, do not apply.
{{Important|*A generalised screw-up occurs in Arrowhead rscControlGroup where color is not specified for V and H scrollbars and shadow should not have been specified. As a result any deriving class:  
{{Feature|important|*A generalised screw-up occurs in Arrowhead rscControlGroup where color is not specified for V and H scrollbars and shadow should not have been specified. As a result any deriving class:  
**a) cannot inherit the existing scrollbar
**a) cannot inherit the existing scrollbar
**b) must repeat the entire thing with the addition of color.}}
**b) must repeat the entire thing with the addition of color.}}

Revision as of 02:08, 7 February 2021


Introduction

Container control for other controls. The child controls have to be defined in the controls subclass. The child controls' positions are calculated relatively to the control group, so x = 0 and y = 0 moves the child control to the top left corner of the controls group. If the position or height/width of any child controls cause any part of the child control to fall outside the dimensions of the controls group then scrollbars will become visible. This allows for the creation of scrollable text controls for example. Control groups are not visible by themselves, therefore most of the common attributes, eg. colorBackground, do not apply.

  • A generalised screw-up occurs in Arrowhead rscControlGroup where color is not specified for V and H scrollbars and shadow should not have been specified. As a result any deriving class:
    • a) cannot inherit the existing scrollbar
    • b) must repeat the entire thing with the addition of color.


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_CONTROLS_GROUP 15


🚧
TODO: Find out which attributes actually work because most of them have no effect

A

adminOnly

Type
Number
Description
n/a
adminOnly = 1;


C

controls

Type
Class
Description
Any user added controls to be contained within the controls group.
class controls
{
	class Subcontrol: RscText
	{
		text = "This is a sub control";
		x = 0;
		y = 0;
		w = 10 * GUI_GRID_W;
		h = 1 * GUI_GRID_H;
	};
};


D

disableCustomColors

Type
Number
Description
n/a
disableCustomColors = 1;


G

gunH

Type
Number
Description
n/a
gunH = 0.15;


gunW

Type
Number
Description
n/a
gunW = 0.113;


H

highlightAnimLength

Type
Number
Description
n/a
highlightAnimLength = 1.2;


highlightColorFrom

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


highlightColorTo

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


HScrollbar

Type
Class
Description
Settings relatied to the horizontal (↔) scrollbar.

All available properties of VScrollbar and HScrollbar. Not all available properties make sense for each of these as outlined below.

Properties
Name Type Remark Scrollbar VScrollbar HScrollbar
color color array Color of thumb and arrow heads, also arrow backgrounds when pressed.
x
x
x
colorActive color array Color when the scrollbar is focused.
x
x
x
colorDisabled color array Color when the scrollbar is deactivated.
x
x
x
width Number Width of the controlsGroup's scroll bars in screen space dimensions. Setting to 0 will cause no scrollbar to be shown even if a child falls outside the controlsGroup's dimensions
x
x
height Number Height of the controlsGroup's scroll bars in screen space dimensions. Setting to 0 will cause no scrollbar to be shown even if a child falls outside the controlsGroup's dimensions
x
x
autoScrollEnabled Number 1 - enabled, 0 - disabled, Does not work if there a interactive controls within the controlsGroup e.g Buttons
x
x
autoScrollSpeed Number Default -1, smaller numbers scroll faster, cannot be forced to scroll backwards by supplying negative numbers
x
x
autoScrollDelay Number Time in seconds before autoScroll starts, restarts after user input and time before rewind happens when the end has been reached
x
x
autoScrollRewind Number 0 - disable, 1 - enabled : If autoScroll reaches the bottom of the controlsGroup it will wait autoScrollDelay then fade out, scroll back to the top, fade back in, wait autoScrollDelay before proceeding to start auto scrolling again.
x
x
thumb String Path to texture or Procedural Texture "#(argb,8,8,3)color(1,1,1,1)";
x
x
x
arrowEmpty/Full String Path to texture or Procedural Texture "#(argb,8,8,3)color(1,1,1,1)";
x
x
x
border String Path to texture or Procedural Texture "#(argb,8,8,3)color(1,1,1,1)";
x
x
x
shadow Number
x
x
x
scrollSpeed Number Default 0.06 : Speed of user vertical scroll input when using the mouse wheel, can be set to 0 to disable the user from being able to scroll, can be set to negative number to reverse scroll direction.
x
x
x

class HScrollbar
{
	height = 0;
	color[] = {1,1,1,1};
	colorActive[] = {1,1,1,1};
	colorDisabled[] = {1,1,1,0.3};
	thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";
	arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
	arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
	border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";
	shadow = 0;
	scrollSpeed = 0.06;
	width = 0;
	autoScrollEnabled = 0;
	autoScrollSpeed = -1;
	autoScrollDelay = 5;
	autoScrollRewind = 0;
};


L

lineHeight

Type
String
Description
n/a
lineHeight = "1.2 * 					(			(			((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";


M

magH

Type
Number
Description
n/a
magH = 0.074;


magW

Type
Number
Description
n/a
magW = 0.055;


S

scriptName

Type
String
Description
Used along with scriptPath to compile a UI's script at preStart.

scriptName is both the actual name of the file #.sqf and the name of the compiled function in uinamespace #_script.
UI's only have their scripts compiled if they exist in one of...

  • configFile
  • configFile >> RscTitles
  • configFile >> RscInGameUI
  • configFile >> CfgEden >> Attributes

at preStart.
UI's that have had their scripts compiled in this way can then use an onLoad event with BIS_fnc_initDisplay to call the function when the display is created.

scriptName = "RscHorizontalCompass";


scriptPath

Type
String
Description
Used along with scriptName to compile UI's script at preStart.

The string value is not the path itself but instead is a lookup from CfgScriptPaths.
UI's only have their scripts compiled if they exist in one of...

  • configFile
  • configFile >> RscTitles
  • configFile >> RscInGameUI
  • configFile >> CfgEden >> Attributes

at preStart.
UI's that have had their scripts compiled in this way can then use an onLoad event with BIS_fnc_initDisplay to call the function when the display is created.

scriptPath = "EnochCommon";


soundClick

Type
Array
Description
n/a
soundClick[] = {"",0.1,1};


soundDoubleClick

Type
Array
Description
n/a
soundDoubleClick[] = {"",0.1,1};


soundPush

Type
Array
Description
n/a
soundPush[] = {"",0.1,1};


spacing

Type
Number
Description
n/a
spacing = 0.002;


V

VScrollbar

Type
Class
Description
Settings relatied to the vertical (↕) scrollbar. For details see #HScrollbar
class VScrollbar
{
	width = 0;
	color[] = {1,1,1,1};
	autoScrollEnabled = 1;
	colorActive[] = {1,1,1,1};
	colorDisabled[] = {1,1,1,0.3};
	thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";
	arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
	arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
	border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";
	shadow = 0;
	scrollSpeed = 0.06;
	height = 0;
	autoScrollSpeed = -1;
	autoScrollDelay = 5;
	autoScrollRewind = 0;
};


W

weaponH

Type
Number
Description
n/a
weaponH = 0.15;


weaponW

Type
Number
Description
n/a
weaponW = 0.226;



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.

RscControlsGroup

class RscControlsGroup
{
	deletable = 0;
	fade = 0;
	class VScrollbar: ScrollBar
	{
		color[] = {1,1,1,1};
		width = 0.021;
		autoScrollEnabled = 1;
	};
	class HScrollbar: ScrollBar
	{
		color[] = {1,1,1,1};
		height = 0.028;
	};
	class Controls
	{
	};
	type = CT_CONTROLS_GROUP;
	idc = -1;
	x = 0;
	y = 0;
	w = 1;
	h = 1;
	shadow = 0;
	style = ST_MULTI;
};

Other examples

class Dialog
{
    idd = -1;
    class Controls
    {
        class _CT_CONTROLS_GROUP
        {
            type = 15;
            idc = -1;
            style = 16;
            x = 0;
            y = 0;
            w = 1;
            h = 1;
            shadow = 0;
            class ScrollBar
            {
                color[] = {1,1,1,0.6};
                colorActive[] = {1,1,1,1};
                colorDisabled[] = {1,1,1,0.3};
                thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";
                arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
                arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
                border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";
            };
            class VScrollbar: ScrollBar
            {
                width = 0.021;
                autoScrollSpeed = -1;
                autoScrollDelay = 5;
                autoScrollRewind = 0;
                shadow = 0;
            };
            class HScrollbar: ScrollBar
            {
                height = 0.028;
                shadow = 0;
            };
            class Controls
            {
                class _CT_EDIT
                {
                    idc = -1;
                    onLoad = "params ['_ctrl']; _ctrl ctrlSetText loadFile 'A3\functions_f\Actions\fn_packStaticWeapon.sqf'";
                    type = 2;
                    style = 16;
                    autocomplete = "";
                    canModify = 1;
                    colorBackground[] = {0,0,0,0.5};
                    colorText[] = {1,1,1,1};
                    colorDisabled[] = {1,1,1,0.25};
                    colorSelection[] = {"(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};
                    text = "";
                    x = 0;
                    y = 0;
                    w = 2;
                    h = 2;
                    sizeEx = 0.05;
                    font = "RobotoCondensedLight";
                };
            };
        };
    };
};