CT STATIC: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "<syntaxhighlight lang="cpp">class" to "<syntaxhighlight lang="cpp"> class")
m (Text replacement - " ( *class [a-zA-Z0-9_]+): *([a-zA-Z0-9_]+ *) " to " $1 : $2 ")
 
(12 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[Category: Control Types]]
{{CT|intro
{{CT|intro


|macro = CT_STATIC
|macro = CT_STATIC
|value = 0
|value = 0
|description =Static controls represent exactly that: static data. Static means there is NO possible user interaction. CT_STATIC is primarily used for texts, dialog backgrounds, pictures (and videos). The constant ''type'' property for these controls usually is <tt>CT_STATIC</tt>.
|description =Static controls represent exactly that: static data. Static means there is NO possible user interaction. CT_STATIC is primarily used for texts, dialog backgrounds, pictures (and videos). The constant ''type'' property for these controls usually is {{hl|CT_STATIC}}.
}}
}}


{{CT|abc start}}
{{CT|abc start}}
=== A ===
=== A ===
{{CT|attribute
{{CT|attribute
|name=align
|name=align
Line 32: Line 32:


=== B ===
=== B ===
{{CT|attribute
{{CT|attribute
|name=background
|name=background
Line 39: Line 40:
}}
}}


{{CT|attribute
=== C ===
|name=backgroundType
|type1=Number
|value1=0
|description=
}}


=== C ===
{{CT|attribute
{{CT|attribute
|name=centerU
|name=centerU
Line 73: Line 68:
|value1={0.23,0.35,0.42,0.9}
|value1={0.23,0.35,0.42,0.9}
|description=Not applicable for this type as it can not be active.
|description=Not applicable for this type as it can not be active.
}}
{{CT|attribute
|name=colorbackgroundx
|type1=Array
|value1={"(profilenamespace getvariable ['IGUI_BCG_RGB_R',0])","(profilenamespace getvariable ['IGUI_BCG_RGB_G',1])","(profilenamespace getvariable ['IGUI_BCG_RGB_B',1])","(profilenamespace getvariable ['IGUI_BCG_RGB_A',0.8])"}
|description=
}}
}}


Line 90: Line 78:


=== F ===
=== F ===
{{CT|attribute
{{CT|attribute
|name=fixedWidth
|name=fixedWidth
Line 97: Line 86:
}}
}}


=== I ===
=== L ===
{{CT|attribute
|name=idcx
|type1=Number
|value1=920
|description=
}}


=== L ===
{{CT|attribute
{{CT|attribute
|name=lines
|name=lines
Line 127: Line 109:
}}
}}


=== O ===
=== S ===
{{CT|attribute
|name=optionDescription
|type1=String
|value1="Shows in chat window who killed the player."
|description=
}}


{{CT|attribute
|name=optionPicture
|type1=String
|value1="\A3\Ui_f\data\GUI\Rsc\RscDisplayGameOptions\Diff_DetectedMines_co.paa"
|description=
}}
=== S ===
{{CT|attribute
{{CT|attribute
|name=sortDown
|name=sortDown
Line 158: Line 126:


=== T ===
=== T ===
{{CT|attribute
|name=textLoad
|type1=String
|value1="Open"
|description=
}}
{{CT|attribute
|name=textMerge
|type1=String
|value1="Merge"
|description=
}}
{{CT|attribute
|name=textSave
|type1=String
|value1="Save As"
|description=
}}


{{CT|attribute
{{CT|attribute
Line 185: Line 133:
|type2=String
|type2=String
|value2="4 / (32 * pixelH)"
|value2="4 / (32 * pixelH)"
|description=Height of one tile. Used with ST_TILE_PICTURE to create a repeating wall of pictures, such as the fullscreen backgrounds in the [[Eden Editor]]. Uses [[GUI Coordinates]].
|description=Height of one tile. Used with ST_TILE_PICTURE to create a repeating wall of pictures, such as the fullscreen backgrounds in the [[:Category:Eden Editor|Eden Editor]]. Uses [[GUI Coordinates]].
}}
}}


Line 194: Line 142:
|type2=String
|type2=String
|value2="8 / (32 * pixelW)"
|value2="8 / (32 * pixelW)"
|description=Width of one tile. Used with ST_TILE_PICTURE to create a repeating wall of pictures, such as the fullscreen backgrounds in the [[Eden Editor]]. Uses [[GUI Coordinates]].
|description=Width of one tile. Used with ST_TILE_PICTURE to create a repeating wall of pictures, such as the fullscreen backgrounds in the [[:Category:Eden Editor|Eden Editor]]. Uses [[GUI Coordinates]].
}}
}}


=== W ===
=== W ===
{{CT|attribute
{{CT|attribute
|name=widgetLineWidth
|name=widgetLineWidth
Line 208: Line 157:


{{CT|examples}}
{{CT|examples}}
=== RscText ===
=== RscText ===
[[Image:Dialog controls text.jpg|thumb||''Hello world'' text with semi-transparent background]]
Most often this type of control will be used to add text to dialogs. If you want the text to change dynamically while playing the mission, you should set the ''idc'' property to a positive number, which allows usage of the [[ctrlSetText]] function. Text alignment can be controlled using the ''style'' property and the <tt>ST_*</tt> constants.


By default, this will only display a '''single line''' (and cut the overflow); use <tt>ST_MULTI</tt> if you intend to use multiple lines. This also requires setting the property ''lineSpacing'', which indicates the relative space between lines; usually, you can set this to 1 for normal line spacing.
[[File:Dialog controls text.jpg|thumb||''Hello world'' text with semi-transparent background]]
Most often this type of control will be used to add text to dialogs. If you want the text to change dynamically while playing the mission, you should set the ''idc'' property to a positive number, which allows usage of the [[ctrlSetText]] function. Text alignment can be controlled using the ''style'' property and the {{hl|ST_*}} constants.
 
By default, this will only display a '''single line''' (and cut the overflow); use {{hl|ST_MULTI}} if you intend to use multiple lines. This also requires setting the property ''lineSpacing'', which indicates the relative space between lines; usually, you can set this to 1 for normal line spacing.


<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
Line 241: Line 192:
};
};
</syntaxhighlight>
</syntaxhighlight>
==== Trivia ====
When an RscText control with IDC 101 is added to the map, it displays the current time.
<sqf>
private _ctrl = findDisplay 12 ctrlCreate ["RscText", 101];
_ctrl ctrlSetPosition [0,0,1,1];
_ctrl ctrlCommit 0;
_ctrl ctrlSetFontHeight 0.5;
</sqf>


=== RscLine ===
=== RscLine ===
[[Image:Arma RscLine.png|thumb||RscLine control with black background.]]
 
[[File:Arma RscLine.png|thumb||RscLine control with black background.]]
Draws a single line from top left to bottom right corner of the control.
Draws a single line from top left to bottom right corner of the control.
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
class RscLine: RscText
class RscLine : RscText
{
{
idc = -1;
idc = -1;
Line 261: Line 222:


=== RscFrame ===
=== RscFrame ===
[[Image:Arma RscFrame.png|thumb||Example of a RscFrame in the {{arma3}} server browser.]]
 
[[File:Arma RscFrame.png|thumb||Example of a RscFrame in the {{arma3}} server browser.]]
Frame that outlines the control's borders. When text is set it appears on the top line to the left.
Frame that outlines the control's borders. When text is set it appears on the top line to the left.
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
Line 284: Line 246:


=== RscPicture ===
=== RscPicture ===
Using specific style constants you can enhance your dialogs with pictures too. These pictures should reside in your mission folder as [[PAA File Format|paa]]-files. Then set your ''style'' property to <tt>ST_PICTURE</tt> (to display it once) or <tt>ST_TILE_PICTURE</tt> (to tile it) and use the ''text'' property to locate the paa image you want to use, relative to your addon or mission folder (''absolute paths should not be used'').


[[Image:Dialog controls picture.jpg|thumb|100px|Dialog control showing a picture]]
Using specific style constants you can enhance your dialogs with pictures too. These pictures should reside in your mission folder as [[PAA File Format|paa]]-files. Then set your ''style'' property to {{hl|ST_PICTURE}} (to display it once) or {{hl|ST_TILE_PICTURE}} (to tile it) and use the ''text'' property to locate the paa image you want to use, relative to your addon or mission folder (''absolute paths should not be used'').
 
[[File:Dialog controls picture.jpg|thumb|100px|Dialog control showing a picture]]
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
class RscPicture
class RscPicture
Line 314: Line 277:
</syntaxhighlight>
</syntaxhighlight>


=== RscPictureKeepAspectRatio ===
=== RscPictureKeepAspect ===
 
Same as RscPicture, but keeps the image the same ratio as in the source file.
Same as RscPicture, but keeps the image the same ratio as in the source file.
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
class RscPictureKeepAspect: RscPicture
class RscPictureKeepAspect : RscPicture
{
{
style = ST_MULTI + ST_TITLE_BAR + ST_KEEP_ASPECT_RATIO;
style = ST_MULTI + ST_TITLE_BAR + ST_KEEP_ASPECT_RATIO;
Line 323: Line 287:
</syntaxhighlight>
</syntaxhighlight>


{{ArgTitle|RscVideo|3|{{GVI|arma2oa|1.56}}}}
{{ArgTitle|3|RscVideo|{{GVI|arma2oa|1.56}}}}


All settings are same as for pictures, only source file must be of ''.OGV'' format. Two additional properties are available - ''autoplay'' (when 1, video starts automatically) and ''loops'' (defines how many times video will be played in loop).
All settings are same as for pictures, only source file must be of ''.OGV'' format. Two additional properties are available - ''autoplay'' (when 1, video starts automatically) and ''loops'' (defines how many times video will be played in loop).


For video encoding, you can use:
For video encoding, you can use:
* [http://www.v2v.cc/~j/ffmpeg2theora/download.html ffmpeg2theora]
* {{Link|http://www.v2v.cc/~j/ffmpeg2theora/download.html|ffmpeg2theora}}
* [http://sourceforge.net/projects/theoraconverter/ Theora Converter .NET (GUI for ffmpeg2theora)]
* {{Link|http://sourceforge.net/projects/theoraconverter/|Theora Converter .NET (GUI for ffmpeg2theora)}}


<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
class RscVideo: RscPicture
class RscVideo : RscPicture
{
{
autoplay = 1;
autoplay = 1;
Line 338: Line 302:
};
};
</syntaxhighlight>
</syntaxhighlight>


== Other Classes ==
== Other Classes ==
=== Static background ===
=== Static background ===
[[Image:Dialog controls background.jpg|thumb||Semi-transparent background]]
 
[[File:Dialog controls background.jpg|thumb||Semi-transparent background]]
One can also use this control type to add solid background to dialogs by simply leaving the ''text'' property empty. This way, it will look like a regular rectangle.
One can also use this control type to add solid background to dialogs by simply leaving the ''text'' property empty. This way, it will look like a regular rectangle.


Line 350: Line 317:
   colorBackground[] = { 1, 0.1, 0.1, 0.8 };
   colorBackground[] = { 1, 0.1, 0.1, 0.8 };
   text = "";
   text = "";
};</syntaxhighlight>
};
</syntaxhighlight>
 
 
[[Category: Control Types]]

Latest revision as of 10:58, 6 December 2023

Introduction

Static controls represent exactly that: static data. Static means there is NO possible user interaction. CT_STATIC is primarily used for texts, dialog backgrounds, pictures (and videos). The constant type property for these controls usually is CT_STATIC.


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_STATIC 0



A

align

Type
String
Description
Alignment of text. Values can be "left", "center" or "right". Seems to have no effect. Use ST_LEFT/ST_CENTER/ST_RIGHT instead.
align = "center";


angle

Type
Number
Description
Rotation of the image. See ctrlSetAngle.
angle = 180;


autoplay

Type
Number
Description
Used on video controls. 1 means that the video starts playing as soon as the UI is opened.
autoplay = 0;


B

background

Type
Number
Description
n/a
background = 1;


C

centerU

Type
Number
Description
Sets the horizontal center for the rotation of images with ST_PICTURE controls. 0 is left border of the control, 1 is right border. See also: ctrlSetAngle.
centerU = 0.5;


centerV

Type
Number
Description
Sets the vertical center for the rotation of images with ST_PICTURE controls. 0 is top border of the control, 1 is bottom border. See also: ctrlSetAngle.
centerV = 0.5;


color

Type
Array
Description
Most likely without function.
color[] = {1,1,1,1};


colorActive

Type
Array
Description
Not applicable for this type as it can not be active.
colorActive[] = {0.23,0.35,0.42,0.9};


colorShadow

Type
Array
Description
Color of the shadow of the text.
colorShadow[] = {0,0,0,1};


F

fixedWidth

Type
Number
Description
Makes normal text like "LALALA" appear like "L A L A L A".
fixedWidth = 0;


L

lines

Type
Number
Description
n/a
lines = 3;


lineSpacing

Type
Number
Description
Space between lines, required if the style was set to ST_MULTI.
lineSpacing = 0;


loops

Type
Number
Description
Defines how many times video will be restarted.
loops = 0;


S

sortDown

Type
String
Description
n/a
sortDown = "\a3\ui_f\data\gui\rsc\rscdisplaymultiplayer\arrow_down_ca.paa";


sortUp

Type
String
Description
n/a
sortUp = "\a3\ui_f\data\gui\rsc\rscdisplaymultiplayer\arrow_up_ca.paa";


T

tileH

Type
Number, String
Description
Height of one tile. Used with ST_TILE_PICTURE to create a repeating wall of pictures, such as the fullscreen backgrounds in the Eden Editor. Uses GUI Coordinates.

Number example:

tileH = 1;

String example:

tileH = "4 / (32 * pixelH)";


tileW

Type
Number, String
Description
Width of one tile. Used with ST_TILE_PICTURE to create a repeating wall of pictures, such as the fullscreen backgrounds in the Eden Editor. Uses GUI Coordinates.

Number example:

tileW = 1;

String example:

tileW = "8 / (32 * pixelW)";


W

widgetLineWidth

Type
Number
Description
n/a
widgetLineWidth = 10;



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.


RscText

Hello world text with semi-transparent background

Most often this type of control will be used to add text to dialogs. If you want the text to change dynamically while playing the mission, you should set the idc property to a positive number, which allows usage of the ctrlSetText function. Text alignment can be controlled using the style property and the ST_* constants.

By default, this will only display a single line (and cut the overflow); use ST_MULTI if you intend to use multiple lines. This also requires setting the property lineSpacing, which indicates the relative space between lines; usually, you can set this to 1 for normal line spacing.

class RscText
{
	deletable = 0;
	fade = 0;
	access = 0;
	type = CT_STATIC;
	idc = -1;
	colorBackground[] = {0,0,0,0};
	colorText[] = {1,1,1,1};
	text = "";
	fixedWidth = 0;
	x = 0;
	y = 0;
	h = 0.037;
	w = 0.3;
	style = ST_LEFT;
	shadow = 1;
	colorShadow[] = {0,0,0,0.5};
	font = "RobotoCondensed";
	SizeEx = GUI_TEXT_SIZE_MEDIUM;
	linespacing = 1;
	tooltipColorText[] = {1,1,1,1};
	tooltipColorBox[] = {1,1,1,1};
	tooltipColorShade[] = {0,0,0,0.65};
};

Trivia

When an RscText control with IDC 101 is added to the map, it displays the current time.

private _ctrl = findDisplay 12 ctrlCreate ["RscText", 101]; _ctrl ctrlSetPosition [0,0,1,1]; _ctrl ctrlCommit 0; _ctrl ctrlSetFontHeight 0.5;

RscLine

RscLine control with black background.

Draws a single line from top left to bottom right corner of the control.

class RscLine : RscText
{
	idc = -1;
	style = ST_MULTI + ST_TITLE_BAR + ST_HUD_BACKGROUND;
	x = 0.17;
	y = 0.48;
	w = 0.66;
	h = 0;
	text = "";
	colorBackground[] = {0,0,0,0};
	colorText[] = {1,1,1,1};
};

RscFrame

Example of a RscFrame in the Arma 3 server browser.

Frame that outlines the control's borders. When text is set it appears on the top line to the left.

class RscFrame
{
	type = CT_STATIC;
	idc = -1;
	deletable = 0;
	style = ST_FRAME;
	shadow = 2;
	colorBackground[] = {0,0,0,0};
	colorText[] = {1,1,1,1};
	font = "RobotoCondensed";
	sizeEx = 0.02;
	text = "";
	x = 0;
	y = 0;
	w = 0.3;
	h = 0.3;
};

RscPicture

Using specific style constants you can enhance your dialogs with pictures too. These pictures should reside in your mission folder as paa-files. Then set your style property to ST_PICTURE (to display it once) or ST_TILE_PICTURE (to tile it) and use the text property to locate the paa image you want to use, relative to your addon or mission folder (absolute paths should not be used).

Dialog control showing a picture
class RscPicture
{
	deletable = 0;
	fade = 0;
	access = 0;
	type = CT_STATIC;
	idc = -1;
	style = ST_MULTI + ST_TITLE_BAR;
	colorBackground[] = {0,0,0,0};
	colorText[] = {1,1,1,1};
	font = "TahomaB";
	sizeEx = 0;
	lineSpacing = 0;
	text = "";
	fixedWidth = 0;
	shadow = 0;
	x = 0;
	y = 0;
	w = 0.2;
	h = 0.15;
	tooltipColorText[] = {1,1,1,1};
	tooltipColorBox[] = {1,1,1,1};
	tooltipColorShade[] = {0,0,0,0.65};
};

RscPictureKeepAspect

Same as RscPicture, but keeps the image the same ratio as in the source file.

class RscPictureKeepAspect : RscPicture
{
	style = ST_MULTI + ST_TITLE_BAR + ST_KEEP_ASPECT_RATIO;
};

RscVideo

All settings are same as for pictures, only source file must be of .OGV format. Two additional properties are available - autoplay (when 1, video starts automatically) and loops (defines how many times video will be played in loop).

For video encoding, you can use:

class RscVideo : RscPicture
{
	autoplay = 1;
	loops = 1;
};


Other Classes

Static background

Semi-transparent background

One can also use this control type to add solid background to dialogs by simply leaving the text property empty. This way, it will look like a regular rectangle.

class MyRedBackgroundExample
{
  /* ... same as the text example, except for */
  colorBackground[] = { 1, 0.1, 0.1, 0.8 };
  text = "";
};