DialogControls-ListBoxes: Difference between revisions
(page overhaul) |
Tag: Undo |
||
Line 1: | Line 1: | ||
{{ | {{SideTOC}} | ||
== Attributes == | |||
{{Informative|TokenNames common to most controls, such as x, y, w, h, text, idc... can be found [[Arma:_GUI_Configuration#Common_Properties|'''here''']].}} | |||
| | |||
}} | |||
The following tokenNames are valid for: | |||
= | *CT_LISTBOX=5 | ||
*CT_XLISTBOX=42 | |||
*CT_LISTNBOX=102 | |||
*CT_XCOMBO=44 | |||
For listBoxes, the usage of 'ST_' style constants (ST_MULTI & ST_TITLE_BAR) behave differently than expected for other controls, so use the corresponding 'LB_' (LB_TEXTURES & LB_MULTI) list box style variants instead. | |||
= | style = LB_TEXTURES; // solid scrollbar | ||
style = LB_MULTI; // multiple item selection | |||
=== | {| class="wikitable" border="1" align="left" cellpadding="3" cellspacing="0" | | ||
{{ | ! colspan="3" bgcolor="#bbbbff" | Properties | ||
| | ! colspan="3" bgcolor="#bbbbff" | Applies to | ||
| | |- | ||
| | ! bgcolor="#ddddff" | Name | ||
| | ! bgcolor="#ddddff" | Type | ||
}} | ! bgcolor="#ddddff" | Remark | ||
! bgcolor="#ddddff" | 5 | |||
! bgcolor="#ddddff" | 42 | |||
! bgcolor="#ddddff" | 102 | |||
|- | |||
| '''active''' | |||
| [[Boolean]] | |||
| | |||
| x | |||
| | |||
| | |||
|- | |||
| '''autoScroll...''' | |||
| [[Integer]]s | |||
| applies to Speed,Delay,Rewind | |||
| x | |||
| | |||
| x | |||
|- | |||
| '''arrowEmpty/Full''' | |||
| color | |||
| | |||
| x | |||
| x | |||
| x | |||
|- | |||
| '''border''' | |||
| texture | |||
| | |||
| | |||
| x | |||
| | |||
|- | |||
| '''canDrag''' | |||
| [[Boolean]] | |||
| | |||
| x | |||
| | |||
| x | |||
|- | |||
| '''colorScrollbar''' | |||
| color | |||
| | |||
| x | |||
| | |||
| | |||
|- | |||
| '''color''' | |||
| color | |||
| | |||
| | |||
| | |||
| x | |||
|- | |||
| '''colorPlayerItem''' | |||
| color | |||
| | |||
| | |||
| | |||
| x | |||
|- | |||
| '''colorActive''' | |||
| color | |||
| | |||
| | |||
| x | |||
| | |||
|- | |||
| '''colorDisabled''' | |||
| color | |||
| | |||
| | |||
| x | |||
| | |||
|- | |||
| '''colorSelect''' | |||
| color | |||
| | |||
| x | |||
| x | |||
| x | |||
|- | |||
| '''colorSelect2''' | |||
| color | |||
| | |||
| x | |||
| | |||
| x | |||
|- | |||
| '''colorSelectBackground''' | |||
| color | |||
| | |||
| x | |||
| | |||
| x | |||
|- | |||
| '''colorSelectBackground2''' | |||
| color | |||
| | |||
| x | |||
| | |||
| x | |||
|- | |||
| '''columns''' | |||
| [[Float]] array | |||
| define the left starting position of each column. The values are offsets ratios (not spacing ratios). Tip: Use {-0.01} in first column to fix unwanted offset, if desired. | |||
| | |||
| | |||
| x | |||
|- | |||
| '''disabled/enabled''' | |||
| [[Boolean]] | |||
| | |||
| x | |||
| | |||
| | |||
|-| | |||
| '''disabledCtrlColor''' | |||
| color | |||
| | |||
| x | |||
| | |||
| | |||
|- | |||
| '''drawSideArrows''' | |||
| [[Boolean]] | |||
| Each row can be linked to 2 arrow buttons which are shown on the left and right of the row. | |||
{{Important| <tt>drawSideArrows</tt> attribute is irrelevant and does not control the appearance of the left and right arrows/buttons despite the intention, and it could be ignored all together. Instead, <tt>idcLeft</tt> and <tt>idcRight</tt> attributes control these arrows/buttons in the following manner: If any of the two are set to -1, the arrows/buttons are not shown. Otherwise, provided both idcs are pointing to the valid controls, the arrows/buttons are shown}} | |||
| | |||
| | |||
| x | |||
|- | |||
| '''idcLeft/Right''' | |||
| [[Integer]] | |||
| the IDC of the control to be used for the left/right button. | |||
| | |||
| | |||
| x | |||
|- | |||
| '''mainCollumW''' | |||
| [[Float]] | |||
| width of the left column 0..1; default 0.4 - <u>Only relevant to config keys dialog (type = 5; idc = 102)</u> | |||
| x | |||
| | |||
| | |||
|- | |||
| '''secndCollumW''' | |||
| [[Float]] | |||
| width of the right column 0..1; default 0.6 - <u>Only relevant to config keys dialog (type = 5; idc = 102)</u> | |||
| x | |||
| | |||
| | |||
|- | |||
| '''disabledKeyColor''' | |||
| color | |||
| color of the disabled key binding; default {0.3,0.3,0.3,1} - <u>Only relevant to config keys dialog (type = 5; idc = 102)</u> | |||
| x | |||
| | |||
| | |||
|- | |||
| '''collisionColor''' | |||
| color | |||
| color of the collision key binding; default {1,0,0,1} - <u>Only relevant to config keys dialog (type = 5; idc = 102)</u> | |||
| x | |||
| | |||
| | |||
|- | |||
| '''LineSpacing''' | |||
| [[Float]] | |||
| | |||
| | |||
| | |||
| x | |||
|- | |||
| '''maxHistoryDelay''' | |||
| [[Float]] | |||
| | |||
| x | |||
| | |||
| x | |||
|- | |||
| '''period''' | |||
| [[Float]] | |||
| Flash period | |||
| x | |||
| | |||
| x | |||
|- | |||
| '''rowHeight''' | |||
| [[Float]] | |||
| the height of a single row in the elapsed box. | |||
| x | |||
| | |||
| x | |||
|- | |||
| '''rows''' | |||
| [[Integer]] | |||
| | |||
| x | |||
| | |||
| | |||
|- | |||
| '''SoundSelect''' | |||
| class | |||
| | |||
| x | |||
| x | |||
| x | |||
|- | |||
| '''ListScrollBar''' (Prior to Arma 3 use ScrollBar) | |||
| class | |||
| Note: scrollbars might not show if h and w properties of the ListBox are not 0. see also [[DialogControls-Sliders]] | |||
| x | |||
| | |||
| x | |||
|- | |||
| '''xColumn1,2,3''' | |||
| [[Float]] | |||
| | |||
| | |||
| | |||
| x | |||
|- | |||
| '''disableOverflow''' || [[Boolean]] || Don't allow text to continue in next column || || || x | |||
|- | |||
| '''selectWithRMB''' || [[Boolean]] || Enable row selection with the right mouse button (Since {{arma3}} v2.00) || x || || x | |||
|- | |||
| '''Items''' || class || Default entries for the listbox columns. | |||
<syntaxhighlight lang="cpp"> | |||
class Items | |||
{ | |||
class Presence | |||
{ | |||
text = "This is column1"; // lbText/lnbText | |||
value = 1; // lbValue/lnbValue | |||
data = "value"; // lbData/lnbData | |||
}; | |||
class Name | |||
{ | |||
text = "This is column 2"; | |||
value = -1; | |||
}; | |||
}; | |||
</syntaxhighlight> | |||
| | |||
| | |||
| x | |||
|- | |||
|}<br clear="all"> | |||
RscListNBox | |||
*Using -1 for idcLeft/idcRight will use the full row width. Using a valid idc will reserve sides for arrows and link with those controls. | |||
*idcLeft/idcRight bug?: Using -1 for either idc will link to first control with an idc using -1, instead of treating it as an unused idc. Workaround: number every idc in dialog rather than leaving any idc as -1. | |||
{{ | ==RscListBox== | ||
<syntaxhighlight lang="cpp">class RscListBox | |||
{ | |||
access = 0; | |||
type = 5; | |||
}} | style = 0; | ||
w = 0.4; | |||
h = 0.4; | |||
font = "TahomaB"; | |||
sizeEx = 0.04; | |||
rowHeight = 0; | |||
colorText[] = {1,1,1,1}; | |||
colorScrollbar[] = {1,1,1,1}; | |||
colorSelect[] = {0,0,0,1}; | |||
colorSelect2[] = {1,0.5,0,1}; | |||
colorSelectBackground[] = {0.6,0.6,0.6,1}; | |||
colorSelectBackground2[] = {0.2,0.2,0.2,1}; | |||
colorBackground[] = {0,0,0,1}; | |||
maxHistoryDelay = 1.0; | |||
soundSelect[] = {"",0.1,1}; | |||
period = 1; | |||
autoScrollSpeed = -1; | |||
autoScrollDelay = 5; | |||
autoScrollRewind = 0; | |||
arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; | |||
arrowFull = "#(argb,8,8,3)color(1,1,1,1)"; | |||
shadow = 0; | |||
class ListScrollBar : ScrollBar //ListScrollBar is class name required for Arma 3 | |||
{ | |||
color[] = {1,1,1,0.6}; | |||
colorActive[] = {1,1,1,1}; | |||
colorDisabled[] = {1,1,1,0.3}; | |||
thumb = "#(argb,8,8,3)color(1,1,1,1)"; | |||
arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; | |||
arrowFull = "#(argb,8,8,3)color(1,1,1,1)"; | |||
border = "#(argb,8,8,3)color(1,1,1,1)"; | |||
shadow = 0; | |||
}; | |||
};</syntaxhighlight> | |||
{{ | ==RscXListBox== | ||
<syntaxhighlight lang="cpp">class RscXListBox | |||
{ | |||
type = 42; | |||
color[] = {1,1,1,0.6}; | |||
} | colorActive[] = {1,1,1,1}; | ||
colorDisabled[] = {1,1,1,0.3}; | |||
arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; | |||
arrowFull = "#(argb,8,8,3)color(1,0.5,0,1)"; | |||
border = "#(argb,8,8,3)color(0,0,0,1)"; | |||
colorSelect[] = {1,1,1,1}; | |||
colorText[] = {1,1,1,0.8}; | |||
soundSelect[] = {"",0.1,1}; | |||
};</syntaxhighlight> | |||
{{ | ==RscListNBox== | ||
<syntaxhighlight lang="cpp">class RscListNBox | |||
{ | |||
access = 0; | |||
type = CT_LISTNBOX;// 102; | |||
}} | style =ST_MULTI; | ||
w = 0.4; h = 0.4; | |||
font = "TahomaB"; | |||
sizeEx = 0.04; | |||
colorText[] = {0.8784, 0.8471, 0.651, 1}; | |||
colorBackground[] = {0, 0, 0, 1}; | |||
autoScrollSpeed = -1; | |||
autoScrollDelay = 5; | |||
autoScrollRewind = 0; | |||
arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; | |||
arrowFull = "#(argb,8,8,3)color(1,1,1,1)"; | |||
columns[] = {0.3, 0.6, 0.7}; | |||
color[] = {1, 1, 1, 1}; | |||
colorScrollbar[] = {0.95, 0.95, 0.95, 1}; | |||
colorSelect[] = {0.95, 0.95, 0.95, 1}; | |||
colorSelect2[] = {0.95, 0.95, 0.95, 1}; | |||
colorSelectBackground[] = {0, 0, 0, 1}; | |||
colorSelectBackground2[] = {0.8784, 0.8471, 0.651, 1}; | |||
drawSideArrows = 0; | |||
idcLeft = -1; | |||
idcRight = -1; | |||
maxHistoryDelay = 1; | |||
rowHeight = 0; | |||
soundSelect[] = {"", 0.1, 1}; | |||
period = 1; | |||
shadow = 2; | |||
class ScrollBar | |||
{ | |||
arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; | |||
arrowFull = "#(argb,8,8,3)color(1,1,1,1)"; | |||
border = "#(argb,8,8,3)color(1,1,1,1)"; | |||
color[] = {1,1,1,0.6}; | |||
colorActive[] = {1,1,1,1}; | |||
colorDisabled[] = {1,1,1,0.3}; | |||
thumb = "#(argb,8,8,3)color(1,1,1,1)"; | |||
}; | |||
};</syntaxhighlight> | |||
==Templates== | |||
===RscListBox (A3 1.28 Template)=== | |||
[[file:WuChaoRen_ctListBox.png]]<br><br> | |||
<syntaxhighlight lang="cpp">class _CT_LISTBOX | |||
{ | |||
access = 0; // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified) | |||
idc = CT_LISTBOX; // Control identification (without it, the control won't be displayed) | |||
type = CT_LISTBOX; // Type is 5 | |||
style = ST_LEFT + LB_TEXTURES; // Style | |||
default = 0; // Control selected by default (only one within a display can be used) | |||
blinkingPeriod = 0; // Time in which control will fade out and back in. Use 0 to disable the effect. | |||
x = 1 * GUI_GRID_CENTER_W + GUI_GRID_CENTER_X; // Horizontal coordinates | |||
y = 11 * GUI_GRID_CENTER_H + GUI_GRID_CENTER_Y; // Vertical coordinates | |||
w = 10 * GUI_GRID_CENTER_W; // Width | |||
h = 3 * GUI_GRID_CENTER_H; // Height | |||
{ | colorBackground[] = {0.2,0.2,0.2,1}; // Fill color | ||
colorSelectBackground[] = {1,0.5,0,1}; // Selected item fill color | |||
colorSelectBackground2[] = {0,0,0,1}; // Selected item fill color (oscillates between this and colorSelectBackground) | |||
=== | sizeEx = GUI_GRID_CENTER_H; // Text size | ||
{ | font = GUI_FONT_NORMAL; // Font from CfgFontFamilies | ||
shadow = 0; // Shadow (0 - none, 1 - directional, color affected by colorShadow, 2 - black outline) | |||
colorText[] = {1,1,1,1}; // Text and frame color | |||
colorDisabled[] = {1,1,1,0.5}; // Disabled text color | |||
{ | colorSelect[] = {1,1,1,1}; // Text selection color | ||
colorSelect2[] = {1,1,1,1}; // Text selection color (oscillates between this and colorSelect) | |||
colorShadow[] = {0,0,0,0.5}; // Text shadow color (used only when shadow is 1) | |||
pictureColor[] = {1,0.5,0,1}; // Picture color | |||
pictureColorSelect[] = {1,1,1,1}; // Selected picture color | |||
pictureColorDisabled[] = {1,1,1,0.5}; // Disabled picture color | |||
tooltip = "CT_LISTBOX"; // Tooltip text | |||
tooltipColorShade[] = {0,0,0,1}; // Tooltip background color | |||
tooltipColorText[] = {1,1,1,1}; // Tooltip text color | |||
tooltipColorBox[] = {1,1,1,1}; // Tooltip frame color | |||
period = 1; // Oscillation time between colorSelect/colorSelectBackground2 and colorSelect2/colorSelectBackground when selected | |||
rowHeight = 1.5 * GUI_GRID_CENTER_H; // Row height | |||
itemSpacing = 0; // Height of empty space between items | |||
maxHistoryDelay = 1; // Time since last keyboard type search to reset it | |||
canDrag = 1; // 1 (true) to allow item dragging | |||
soundSelect[] = {"\A3\ui_f\data\sound\RscListbox\soundSelect",0.09,1}; // Sound played when an item is selected | |||
// Scrollbar configuration (applied only when LB_TEXTURES style is used) | |||
class ListScrollBar //In older games this class is "ScrollBar" | |||
{ | |||
width = 0; // width of ListScrollBar | |||
height = 0; // height of ListScrollBar | |||
scrollSpeed = 0.01; // scroll speed of ListScrollBar | |||
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; // Arrow | |||
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; // Arrow when clicked on | |||
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; // Slider background (stretched vertically) | |||
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; // Dragging element (stretched vertically) | |||
= | color[] = {1,1,1,1}; // Scrollbar color | ||
{ | }; | ||
onCanDestroy = "systemChat str ['onCanDestroy',_this]; true"; | |||
onDestroy = "systemChat str ['onDestroy',_this]; false"; | |||
onSetFocus = "systemChat str ['onSetFocus',_this]; false"; | |||
onKillFocus = "systemChat str ['onKillFocus',_this]; false"; | |||
onKeyDown = "systemChat str ['onKeyDown',_this]; false"; | |||
onKeyUp = "systemChat str ['onKeyUp',_this]; false"; | |||
onMouseButtonDown = "systemChat str ['onMouseButtonDown',_this]; false"; | |||
onMouseButtonUp = "systemChat str ['onMouseButtonUp',_this]; false"; | |||
onMouseButtonClick = "systemChat str ['onMouseButtonClick',_this]; false"; | |||
onMouseButtonDblClick = "systemChat str ['onMouseButtonDblClick',_this]; false"; | |||
onMouseZChanged = "systemChat str ['onMouseZChanged',_this]; false"; | |||
onMouseMoving = ""; | |||
onMouseHolding = ""; | |||
onLBSelChanged = "systemChat str ['onLBSelChanged',_this]; false"; | |||
onLBDblClick = "systemChat str ['onLBDblClick',_this]; false"; | |||
onLBDrag = "systemChat str ['onLBDrag',_this]; false"; | |||
onLBDragging = "systemChat str ['onLBDragging',_this]; false"; | |||
onLBDrop = "systemChat str ['onLBDrop',_this]; false"; | |||
};</syntaxhighlight> | |||
}; | |||
</syntaxhighlight> | |||
== | ===RscXListBox (A3 1.28 Template)=== | ||
[[File:WuChaoRen_ctXListBox.png]]<br><br> | |||
<syntaxhighlight lang="cpp">class _CT_XLISTBOX | <syntaxhighlight lang="cpp">class _CT_XLISTBOX | ||
{ | { | ||
Line 236: | Line 512: | ||
onLBDblClick = "systemChat str ['onLBDblClick',_this]; false"; | onLBDblClick = "systemChat str ['onLBDblClick',_this]; false"; | ||
};</syntaxhighlight> | };</syntaxhighlight> | ||
===RscListNBox (A3 1.28 Template)=== | |||
[[File:WuChaoRen 000.png]] [[File:WuChaoRen 001.png]] [[File:WuChaoRen 002.png]] [[File:WuChaoRen 003.png]]<br><br> | |||
<syntaxhighlight lang="cpp">class _CT_LISTNBOX_RIGHT: _CT_BUTTON | |||
{ | |||
idc = 1000; | |||
text = "<"; | |||
borderSize = 0; | |||
colorShadow[] = {0,0,0,0}; | |||
}; | |||
class _CT_LISTNBOX_LEFT: _CT_LISTNBOX_RIGHT | |||
{ | |||
idc = 1001; | |||
text = ">"; | |||
}; | |||
class _CT_LISTNBOX | |||
{ | |||
access = 0; // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified) | |||
idc = CT_LISTNBOX; // Control identification (without it, the control won't be displayed) | |||
type = CT_LISTNBOX; // Type 102 | |||
style = ST_LEFT + LB_TEXTURES; // Style | |||
default = 0; // Control selected by default (only one within a display can be used) | |||
blinkingPeriod = 0; // Time in which control will fade out and back in. Use 0 to disable the effect. | |||
x = 29 * GUI_GRID_CENTER_W + GUI_GRID_CENTER_X; // Horizontal coordinates | |||
y = 15 * GUI_GRID_CENTER_H + GUI_GRID_CENTER_Y; // Vertical coordinates | |||
w = 10 * GUI_GRID_CENTER_W; // Width | |||
h = 3 * GUI_GRID_CENTER_H; // Height | |||
colorSelectBackground[] = {1,0.5,0,1}; // Selected item fill color | |||
colorSelectBackground2[] = {0,0,0,1}; // Selected item fill color (oscillates between this and colorSelectBackground) | |||
sizeEx = GUI_GRID_CENTER_H; // Text size | |||
font = GUI_FONT_NORMAL; // Font from CfgFontFamilies | |||
shadow = 0; // Shadow (0 - none, 1 - directional, color affected by colorShadow, 2 - black outline) | |||
colorText[] = {1,1,1,1}; // Text and frame color | |||
colorDisabled[] = {1,1,1,0.5}; // Disabled text color | |||
colorSelect[] = {1,1,1,1}; // Text selection color | |||
colorSelect2[] = {1,1,1,1}; // Text selection color (oscillates between this and colorSelect) | |||
colorShadow[] = {0,0,0,0.5}; // Text shadow color (used only when shadow is 1) | |||
tooltip = "CT_LISTNBOX"; // Tooltip text | |||
tooltipColorShade[] = {0,0,0,1}; // Tooltip background color | |||
tooltipColorText[] = {1,1,1,1}; // Tooltip text color | |||
tooltipColorBox[] = {1,1,1,1}; // Tooltip frame color | |||
columns[] = {0.1,0.4}; // Horizontal coordinates of columns (relative to list width, in range from 0 to 1) | |||
drawSideArrows = 1; // 1 to draw buttons linked by idcLeft and idcRight on both sides of selected line. They are resized to line height | |||
idcLeft = 1000; // Left button IDC | |||
idcRight = 1001; // Right button IDC | |||
period = 1; // Oscillation time between colorSelect/colorSelectBackground2 and colorSelect2/colorSelectBackground when selected | |||
rowHeight = GUI_GRID_CENTER_H; // Row height | |||
maxHistoryDelay = 1; // Time since last keyboard type search to reset it | |||
soundSelect[] = {"\A3\ui_f\data\sound\RscListbox\soundSelect",0.09,1}; // Sound played when an item is selected | |||
// Scrollbar configuration (applied only when LB_TEXTURES style is used) | |||
class ListScrollBar | |||
{ | |||
width = 0; // width of ListScrollBar | |||
height = 0; // height of ListScrollBar | |||
scrollSpeed = 0.01; // scrollSpeed of ListScrollBar | |||
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; // Arrow | |||
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; // Arrow when clicked on | |||
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; // Slider background (stretched vertically) | |||
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; // Dragging element (stretched vertically) | |||
color[] = {1,1,1,1}; // Scrollbar color | |||
}; | |||
onCanDestroy = "systemChat str ['onCanDestroy',_this]; true"; | |||
onDestroy = "systemChat str ['onDestroy',_this]; false"; | |||
onSetFocus = "systemChat str ['onSetFocus',_this]; false"; | |||
onKillFocus = "systemChat str ['onKillFocus',_this]; false"; | |||
onKeyDown = "systemChat str ['onKeyDown',_this]; false"; | |||
onKeyUp = "systemChat str ['onKeyUp',_this]; false"; | |||
onMouseButtonDown = "systemChat str ['onMouseButtonDown',_this]; false"; | |||
onMouseButtonUp = "systemChat str ['onMouseButtonUp',_this]; false"; | |||
onMouseButtonClick = "systemChat str ['onMouseButtonClick',_this]; false"; | |||
onMouseButtonDblClick = "systemChat str ['onMouseButtonDblClick',_this]; false"; | |||
onMouseZChanged = "systemChat str ['onMouseZChanged',_this]; false"; | |||
onMouseMoving = ""; | |||
onMouseHolding = ""; | |||
onLBSelChanged = "systemChat str ['onLBSelChanged',_this]; false"; | |||
onLBDblClick = "systemChat str ['onLBDblClick',_this]; false"; | |||
};</syntaxhighlight> | |||
===RscXComboBox (A3 1.28 Template)=== | |||
[[File:WuChaoRen004.png]]<br><br> | |||
<syntaxhighlight lang="cpp">class _CT_XCOMBO // Xbox combo box, cannot be controlled with mouse | |||
{ | |||
access = 0; // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified) | |||
idc = CT_XCOMBO; // Control identification (without it, the control won't be displayed) | |||
type = CT_XCOMBO; // Type is 44 | |||
style = ST_LEFT + LB_TEXTURES; // Style | |||
default = 0; // Control selected by default (only one within a display can be used) | |||
blinkingPeriod = 0; // Time in which control will fade out and back in. Use 0 to disable the effect. | |||
x = 12 * GUI_GRID_CENTER_W + GUI_GRID_CENTER_X; // Horizontal coordinates | |||
y = 22 * GUI_GRID_CENTER_H + GUI_GRID_CENTER_Y; // Vertical coordinates | |||
w = 10 * GUI_GRID_CENTER_W; // Width | |||
h = 1 * GUI_GRID_CENTER_H; // Height | |||
colorSelectBackground2[] = {0,0,0,1}; // Selected fill color (oscillates between this and List >> colorSelectBackground) | |||
colorBorder[] = {1,0,1,1}; // arrow color | |||
colorSelectBorder[] = {1,1,1,1}; // Selected arrow color | |||
colorDisabledBorder[] = {0,1,1,1}; // arrow color when disabled | |||
sizeEx = GUI_GRID_CENTER_H; // Text size | |||
font = GUI_FONT_NORMAL; // Font from CfgFontFamilies | |||
shadow = 0; // Shadow (0 - none, 1 - N/A, 2 - black outline) | |||
colorText[] = {1,1,1,1}; // Text color | |||
colorSelect[] = {1,1,1,1}; // Selected text color | |||
colorSelect2[] = {1,1,1,1}; // Selected text color (oscillates between this and colorSelect) | |||
colorDisabled[] = {1,1,1,0.5}; // Disabled text color | |||
tooltip = "CT_XCOMBO"; // Tooltip text | |||
tooltipColorShade[] = {0,0,0,1}; // Tooltip background color | |||
tooltipColorText[] = {1,1,1,1}; // Tooltip text color | |||
tooltipColorBox[] = {1,1,1,1}; // Tooltip frame color | |||
soundExpand[] = {"\A3\ui_f\data\sound\RscCombo\soundExpand",0.1,1}; // Sound played when the list is expanded | |||
soundCollapse[] = {"\A3\ui_f\data\sound\RscCombo\soundCollapse",0.1,1}; // Sound played when the list is collapsed | |||
soundSelect[] = {"\A3\ui_f\data\sound\RscCombo\soundSelect",0.1,1}; // Sound played when an item is selected | |||
// List title (not moved when display is dragged) | |||
class Title | |||
{ | |||
text = "CT_XCOMBO"; | |||
x = 12 * GUI_GRID_CENTER_W + GUI_GRID_CENTER_X; // Horizontal coordinates | |||
y = 21 * GUI_GRID_CENTER_H + GUI_GRID_CENTER_Y; // Vertical coordinates | |||
w = 10 * GUI_GRID_CENTER_W; // Width | |||
h = 1 * GUI_GRID_CENTER_H; // Height | |||
colorBackground[] = {0.2,0.2,0.2,1}; // Fill color | |||
colorSelectBackground[] = {1,0.5,0,1}; // Selected item fill color | |||
colorBorder[] = {0,0,0,1}; // Border color | |||
colorSelectBorder[] = {0,0,0,1}; // Selected border color | |||
colorDisabledBorder[] = {1,1,1,1}; // Disabled border color | |||
font = GUI_FONT_NORMAL; // Font from CfgFontFamilies | |||
size = GUI_GRID_CENTER_H; // Text size | |||
colorText[] = {1,1,1,1}; // Text color | |||
colorSelect[] = {1,1,1,1}; // Selected text color | |||
colorDisabled[] = {1,1,1,0.5}; // Disabled text color | |||
}; | |||
// Item list displayed when arrow right is pressed while the control is in focus (not moved when display is dragged) | |||
class List | |||
{ | |||
x = 22 * GUI_GRID_CENTER_W + GUI_GRID_CENTER_X; // Horizontal coordinates | |||
y = 22 * GUI_GRID_CENTER_H + GUI_GRID_CENTER_Y; // Vertical coordinates | |||
w = 10 * GUI_GRID_CENTER_W; // Width | |||
h = 5 * GUI_GRID_CENTER_H; // Height | |||
colorBackground[] = {0.2,0.2,0.2,1}; // List fill color | |||
colorSelectBackground[] = {1,0.5,0,1}; // Selected item fill color (oscillates between this and colorSelectBackground2 in control root) | |||
colorBorder[] = {1,1,1,1}; // List scrollbar color (combined with Scrollbar >> color) | |||
rowHeight = 1 * GUI_GRID_CENTER_H; // Row height | |||
sizeEx = GUI_GRID_CENTER_H; // Text size | |||
colorText[] = {1,1,1,1}; // Text color | |||
colorSelect[] = {1,1,1,1}; // Selected text color (oscillates between this and colorSelect2 in control root) | |||
}; | |||
// Scrollbar configuration (applied only when LB_TEXTURES style is used) | |||
class ScrollBar | |||
{ | |||
width = 0; // width of scrollBar | |||
height = 0; // height of scrollbar | |||
scrollSpeed = 0.01; // speed of scroll bar | |||
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; // Arrow | |||
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; // Arrow when clicked on | |||
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; // Slider background (stretched vertically) | |||
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; // Dragging element (stretched vertically) | |||
color[] = {1,1,1,1}; // Scrollbar color (combined with List >> colorBorder) | |||
}; | |||
onCanDestroy = "systemChat str ['onCanDestroy',_this]; true"; | |||
onDestroy = "systemChat str ['onDestroy',_this]; false"; | |||
onMouseEnter = "systemChat str ['onMouseEnter',_this]; false"; | |||
onMouseExit = "systemChat str ['onMouseExit',_this]; false"; | |||
onSetFocus = "systemChat str ['onSetFocus',_this]; false"; | |||
onKillFocus = "systemChat str ['onKillFocus',_this]; false"; | |||
onKeyDown = "systemChat str ['onKeyDown',_this]; false"; | |||
onKeyUp = "systemChat str ['onKeyUp',_this]; false"; | |||
onMouseButtonDown = "systemChat str ['onMouseButtonDown',_this]; false"; | |||
onMouseButtonUp = "systemChat str ['onMouseButtonUp',_this]; false"; | |||
onMouseButtonClick = "systemChat str ['onMouseButtonClick',_this]; false"; | |||
onMouseButtonDblClick = "systemChat str ['onMouseButtonDblClick',_this]; false"; | |||
onMouseZChanged = "systemChat str ['onMouseZChanged',_this]; false"; | |||
onMouseMoving = ""; | |||
onMouseHolding = ""; | |||
onLBSelChanged = "systemChat str ['onLBSelChanged',_this]; false"; | |||
onLBDblClick = "systemChat str ['onLBDblClick',_this]; false"; | |||
onLBListSelChanged = "systemChat str ['onLBListSelChanged',_this]; false"; | |||
};</syntaxhighlight> | |||
==Scripting Examples== | |||
===CT_LISTBOX=== | |||
(A3 1.28)lb command family overview. | |||
<code> | |||
//lb command family can be used with CT_COMBO, CT_LISTBOX, CT_XLISTBOX & CT_XCOMBO | |||
[[private]] ["_current","_data","_pic","_value","_size","_color"]; | |||
{ | |||
_ctrl = _x; | |||
{ | |||
_ctrl [[lbAdd]] [[getText]] (_x >> "displayName"); | |||
_ctrl [[lbSetPicture]] [_foreachindex,[[getText]] (_x >> "texture")]; | |||
_ctrl [[lbSetTooltip]] [_foreachindex,[[getText]] (_x >> "displayName")]; | |||
} [[forEach]] ("[[isClass]] _x" [[configClasses]] ([[configFile]] >> "CfgRanks")); | |||
_ctrl [[lbSetCurSel]] 0; | |||
[[File:WuChaoRen_lbCommand001.png]] | |||
_current = [[lbCurSel]] _ctrl; | |||
_ctrl [[lbSetData]] [_current,"hi"]; | |||
_data = _ctrl [[lbData]] _current; | |||
_pic = _ctrl [[lbPicture]] _current; | |||
_ctrl [[lbSetValue]] [_current, 1]; | |||
_value = _ctrl [[lbValue]] _current; | |||
_size = [[lbSize]] _ctrl; | |||
_color = _ctrl [[lbColor]] _current; | |||
_ctrl [[lbSetColor]] [_current, [(_color [[select]] 0) / 2, (_color [[select]] 1) / 4, 0, 1]]; | |||
[[File:WuChaoRen_lbColor.png]] | |||
[[lbSort]] [_ctrl, "DESC"]; | |||
[[lbSortByValue]] _ctrl; | |||
[[File:WuChaoRen_lbSortByValue.png]] | |||
[[if]] (_ctrl [[lbIsSelected]] _current) [[then]] { | |||
_ctrl [[lbDelete]] _current; | |||
[[File:WuChaoRen_lbDelete.png]] | |||
[[lbClear]] _ctrl; | |||
[[File:WuChaoRen_lbClear.png]] | |||
}; | |||
} [[forEach]] [ | |||
_CT_COMBO, | |||
_CT_LISTBOX, | |||
_CT_XLISTBOX, | |||
_CT_XCOMBO | |||
]; | |||
</code> | |||
===CT_LISTNBOX=== | |||
(A3 1.28)As for invisible data processing, [[lnbAddArray]], [[lnbAddColumn]], [[lnbData]], [[lnbGetColumnsPosition]], [[lnbSetColumnsPos]], [[lnbSetData]], [[lnbSetText]], [[lnbSetValue]], [[lnbText]] and [[lnbValue]] store data types into exact position of the listNbox with different spaces. Accessing data with coordinate command at nearly the same syntax: | |||
<code> | |||
//Set same value to one position of a [[Control]] | |||
_ctrl [[lnbSetData]] [ [0,0],"#1"]; | |||
[[lnbSetColumnsPos]] [102, [0,1], 1]; | |||
_ctrl [[lnbSetText]] [ [0,1], "#1"]; | |||
_ctrl [[lnbSetValue]] [ [0,0],1]; | |||
//Accessing the value disregard affecting one another. | |||
_ctrl [[lnbData]] [0,0]; //"#1" | |||
[[lnbGetColumnsPosition]] _ctrl //[1]; | |||
_ctrl [[lnbText]] [0,0];//"#1" | |||
_ctrl [[lnbValue]] [0,0];//1 | |||
</code> | |||
For a direct visible control over CT_LISTNBOX: | |||
<code> | |||
0 = [_CT_LISTNBOX] [[spawn]] { | |||
[[private]] ["_CT_LISTNBOX","_color","_current","_pic"]; | |||
[[disableSerialization]]; | |||
_CT_LISTNBOX = _this [[select]] 0; | |||
{ | |||
_CT_LISTNBOX [[lnbAddRow]] [<nowiki/>[[getText]] (_x >> "displayNameShort"),[[getText]] (_x >> "displayName")]; | |||
_CT_LISTNBOX [[lnbSetPicture]] [ [_foreachIndex,0],[[getText]] (_x >> "texture")]; | |||
} [[forEach]] ("[[isClass]] _x" [[configClasses]] ([[configFile]] >> "CfgRanks")); | |||
_CT_LISTNBOX [[lnbSetCurSelRow]] 0; | |||
[[Image:WuChaoRen_000.png]] | |||
_current = [[lnbCurSelRow]] _CT_LISTNBOX; | |||
_color = _CT_LISTNBOX [[lnbColor]] [_current,0]; | |||
_CT_LISTNBOX [[lnbSetColor]] [ [_current,1], [(_color [[select]] 0)/2,0,0,1] ]; | |||
[[Image:WuChaoRen_001.png]] | |||
_CT_LISTNBOX [[lnbDeleteColumn]] 0; | |||
[[Image:WuChaoRen_002.png]] | |||
_CT_LISTNBOX [[lnbDeleteRow]] 1; | |||
[[Image:WuChaoRen_003.png]] | |||
[[sleep]] 1; | |||
[[lnbClear]] _CT_LISTNBOX;//Clear all items but control still remains just invisible. | |||
}; | |||
</code> | |||
A combined use of both invisible and visible data processing commands alive the [[Control]]. | |||
[[Category: Dialogs|ListBoxes]] |
Revision as of 13:51, 29 November 2020
Attributes
The following tokenNames are valid for:
- CT_LISTBOX=5
- CT_XLISTBOX=42
- CT_LISTNBOX=102
- CT_XCOMBO=44
For listBoxes, the usage of 'ST_' style constants (ST_MULTI & ST_TITLE_BAR) behave differently than expected for other controls, so use the corresponding 'LB_' (LB_TEXTURES & LB_MULTI) list box style variants instead.
style = LB_TEXTURES; // solid scrollbar style = LB_MULTI; // multiple item selection
Properties | Applies to | ||||
---|---|---|---|---|---|
Name | Type | Remark | 5 | 42 | 102 |
active | Boolean | x | |||
autoScroll... | Integers | applies to Speed,Delay,Rewind | x | x | |
arrowEmpty/Full | color | x | x | x | |
border | texture | x | |||
canDrag | Boolean | x | x | ||
colorScrollbar | color | x | |||
color | color | x | |||
colorPlayerItem | color | x | |||
colorActive | color | x | |||
colorDisabled | color | x | |||
colorSelect | color | x | x | x | |
colorSelect2 | color | x | x | ||
colorSelectBackground | color | x | x | ||
colorSelectBackground2 | color | x | x | ||
columns | Float array | define the left starting position of each column. The values are offsets ratios (not spacing ratios). Tip: Use {-0.01} in first column to fix unwanted offset, if desired. | x | ||
disabled/enabled | Boolean | x | |||
disabledCtrlColor | color | x | |||
drawSideArrows | Boolean | Each row can be linked to 2 arrow buttons which are shown on the left and right of the row. | x | ||
idcLeft/Right | Integer | the IDC of the control to be used for the left/right button. | x | ||
mainCollumW | Float | width of the left column 0..1; default 0.4 - Only relevant to config keys dialog (type = 5; idc = 102) | x | ||
secndCollumW | Float | width of the right column 0..1; default 0.6 - Only relevant to config keys dialog (type = 5; idc = 102) | x | ||
disabledKeyColor | color | color of the disabled key binding; default {0.3,0.3,0.3,1} - Only relevant to config keys dialog (type = 5; idc = 102) | x | ||
collisionColor | color | color of the collision key binding; default {1,0,0,1} - Only relevant to config keys dialog (type = 5; idc = 102) | x | ||
LineSpacing | Float | x | |||
maxHistoryDelay | Float | x | x | ||
period | Float | Flash period | x | x | |
rowHeight | Float | the height of a single row in the elapsed box. | x | x | |
rows | Integer | x | |||
SoundSelect | class | x | x | x | |
ListScrollBar (Prior to Arma 3 use ScrollBar) | class | Note: scrollbars might not show if h and w properties of the ListBox are not 0. see also DialogControls-Sliders | x | x | |
xColumn1,2,3 | Float | x | |||
disableOverflow | Boolean | Don't allow text to continue in next column | x | ||
selectWithRMB | Boolean | Enable row selection with the right mouse button (Since Arma 3 v2.00) | x | x | |
Items | class | Default entries for the listbox columns.
class Items
{
class Presence
{
text = "This is column1"; // lbText/lnbText
value = 1; // lbValue/lnbValue
data = "value"; // lbData/lnbData
};
class Name
{
text = "This is column 2";
value = -1;
};
};
|
x |
RscListNBox
- Using -1 for idcLeft/idcRight will use the full row width. Using a valid idc will reserve sides for arrows and link with those controls.
- idcLeft/idcRight bug?: Using -1 for either idc will link to first control with an idc using -1, instead of treating it as an unused idc. Workaround: number every idc in dialog rather than leaving any idc as -1.
RscListBox
class RscListBox
{
access = 0;
type = 5;
style = 0;
w = 0.4;
h = 0.4;
font = "TahomaB";
sizeEx = 0.04;
rowHeight = 0;
colorText[] = {1,1,1,1};
colorScrollbar[] = {1,1,1,1};
colorSelect[] = {0,0,0,1};
colorSelect2[] = {1,0.5,0,1};
colorSelectBackground[] = {0.6,0.6,0.6,1};
colorSelectBackground2[] = {0.2,0.2,0.2,1};
colorBackground[] = {0,0,0,1};
maxHistoryDelay = 1.0;
soundSelect[] = {"",0.1,1};
period = 1;
autoScrollSpeed = -1;
autoScrollDelay = 5;
autoScrollRewind = 0;
arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)";
arrowFull = "#(argb,8,8,3)color(1,1,1,1)";
shadow = 0;
class ListScrollBar : ScrollBar //ListScrollBar is class name required for Arma 3
{
color[] = {1,1,1,0.6};
colorActive[] = {1,1,1,1};
colorDisabled[] = {1,1,1,0.3};
thumb = "#(argb,8,8,3)color(1,1,1,1)";
arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)";
arrowFull = "#(argb,8,8,3)color(1,1,1,1)";
border = "#(argb,8,8,3)color(1,1,1,1)";
shadow = 0;
};
};
RscXListBox
class RscXListBox
{
type = 42;
color[] = {1,1,1,0.6};
colorActive[] = {1,1,1,1};
colorDisabled[] = {1,1,1,0.3};
arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)";
arrowFull = "#(argb,8,8,3)color(1,0.5,0,1)";
border = "#(argb,8,8,3)color(0,0,0,1)";
colorSelect[] = {1,1,1,1};
colorText[] = {1,1,1,0.8};
soundSelect[] = {"",0.1,1};
};
RscListNBox
class RscListNBox
{
access = 0;
type = CT_LISTNBOX;// 102;
style =ST_MULTI;
w = 0.4; h = 0.4;
font = "TahomaB";
sizeEx = 0.04;
colorText[] = {0.8784, 0.8471, 0.651, 1};
colorBackground[] = {0, 0, 0, 1};
autoScrollSpeed = -1;
autoScrollDelay = 5;
autoScrollRewind = 0;
arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)";
arrowFull = "#(argb,8,8,3)color(1,1,1,1)";
columns[] = {0.3, 0.6, 0.7};
color[] = {1, 1, 1, 1};
colorScrollbar[] = {0.95, 0.95, 0.95, 1};
colorSelect[] = {0.95, 0.95, 0.95, 1};
colorSelect2[] = {0.95, 0.95, 0.95, 1};
colorSelectBackground[] = {0, 0, 0, 1};
colorSelectBackground2[] = {0.8784, 0.8471, 0.651, 1};
drawSideArrows = 0;
idcLeft = -1;
idcRight = -1;
maxHistoryDelay = 1;
rowHeight = 0;
soundSelect[] = {"", 0.1, 1};
period = 1;
shadow = 2;
class ScrollBar
{
arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)";
arrowFull = "#(argb,8,8,3)color(1,1,1,1)";
border = "#(argb,8,8,3)color(1,1,1,1)";
color[] = {1,1,1,0.6};
colorActive[] = {1,1,1,1};
colorDisabled[] = {1,1,1,0.3};
thumb = "#(argb,8,8,3)color(1,1,1,1)";
};
};
Templates
RscListBox (A3 1.28 Template)
class _CT_LISTBOX
{
access = 0; // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified)
idc = CT_LISTBOX; // Control identification (without it, the control won't be displayed)
type = CT_LISTBOX; // Type is 5
style = ST_LEFT + LB_TEXTURES; // Style
default = 0; // Control selected by default (only one within a display can be used)
blinkingPeriod = 0; // Time in which control will fade out and back in. Use 0 to disable the effect.
x = 1 * GUI_GRID_CENTER_W + GUI_GRID_CENTER_X; // Horizontal coordinates
y = 11 * GUI_GRID_CENTER_H + GUI_GRID_CENTER_Y; // Vertical coordinates
w = 10 * GUI_GRID_CENTER_W; // Width
h = 3 * GUI_GRID_CENTER_H; // Height
colorBackground[] = {0.2,0.2,0.2,1}; // Fill color
colorSelectBackground[] = {1,0.5,0,1}; // Selected item fill color
colorSelectBackground2[] = {0,0,0,1}; // Selected item fill color (oscillates between this and colorSelectBackground)
sizeEx = GUI_GRID_CENTER_H; // Text size
font = GUI_FONT_NORMAL; // Font from CfgFontFamilies
shadow = 0; // Shadow (0 - none, 1 - directional, color affected by colorShadow, 2 - black outline)
colorText[] = {1,1,1,1}; // Text and frame color
colorDisabled[] = {1,1,1,0.5}; // Disabled text color
colorSelect[] = {1,1,1,1}; // Text selection color
colorSelect2[] = {1,1,1,1}; // Text selection color (oscillates between this and colorSelect)
colorShadow[] = {0,0,0,0.5}; // Text shadow color (used only when shadow is 1)
pictureColor[] = {1,0.5,0,1}; // Picture color
pictureColorSelect[] = {1,1,1,1}; // Selected picture color
pictureColorDisabled[] = {1,1,1,0.5}; // Disabled picture color
tooltip = "CT_LISTBOX"; // Tooltip text
tooltipColorShade[] = {0,0,0,1}; // Tooltip background color
tooltipColorText[] = {1,1,1,1}; // Tooltip text color
tooltipColorBox[] = {1,1,1,1}; // Tooltip frame color
period = 1; // Oscillation time between colorSelect/colorSelectBackground2 and colorSelect2/colorSelectBackground when selected
rowHeight = 1.5 * GUI_GRID_CENTER_H; // Row height
itemSpacing = 0; // Height of empty space between items
maxHistoryDelay = 1; // Time since last keyboard type search to reset it
canDrag = 1; // 1 (true) to allow item dragging
soundSelect[] = {"\A3\ui_f\data\sound\RscListbox\soundSelect",0.09,1}; // Sound played when an item is selected
// Scrollbar configuration (applied only when LB_TEXTURES style is used)
class ListScrollBar //In older games this class is "ScrollBar"
{
width = 0; // width of ListScrollBar
height = 0; // height of ListScrollBar
scrollSpeed = 0.01; // scroll speed of ListScrollBar
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; // Arrow
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; // Arrow when clicked on
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; // Slider background (stretched vertically)
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; // Dragging element (stretched vertically)
color[] = {1,1,1,1}; // Scrollbar color
};
onCanDestroy = "systemChat str ['onCanDestroy',_this]; true";
onDestroy = "systemChat str ['onDestroy',_this]; false";
onSetFocus = "systemChat str ['onSetFocus',_this]; false";
onKillFocus = "systemChat str ['onKillFocus',_this]; false";
onKeyDown = "systemChat str ['onKeyDown',_this]; false";
onKeyUp = "systemChat str ['onKeyUp',_this]; false";
onMouseButtonDown = "systemChat str ['onMouseButtonDown',_this]; false";
onMouseButtonUp = "systemChat str ['onMouseButtonUp',_this]; false";
onMouseButtonClick = "systemChat str ['onMouseButtonClick',_this]; false";
onMouseButtonDblClick = "systemChat str ['onMouseButtonDblClick',_this]; false";
onMouseZChanged = "systemChat str ['onMouseZChanged',_this]; false";
onMouseMoving = "";
onMouseHolding = "";
onLBSelChanged = "systemChat str ['onLBSelChanged',_this]; false";
onLBDblClick = "systemChat str ['onLBDblClick',_this]; false";
onLBDrag = "systemChat str ['onLBDrag',_this]; false";
onLBDragging = "systemChat str ['onLBDragging',_this]; false";
onLBDrop = "systemChat str ['onLBDrop',_this]; false";
};
RscXListBox (A3 1.28 Template)
class _CT_XLISTBOX
{
access = 0; // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified)
idc = CT_XLISTBOX; // Control identification (without it, the control won't be displayed)
type = CT_XLISTBOX; // Type is 42
style = SL_HORZ + ST_CENTER + LB_TEXTURES; // Style
default = 0; // Control selected by default (only one within a display can be used)
blinkingPeriod = 0; // Time in which control will fade out and back in. Use 0 to disable the effect.
x = 12 * GUI_GRID_CENTER_W + GUI_GRID_CENTER_X; // Horizontal coordinates
y = 17 * GUI_GRID_CENTER_H + GUI_GRID_CENTER_Y; // Vertical coordinates
w = 10 * GUI_GRID_CENTER_W; // Width
h = 1 * GUI_GRID_CENTER_H; // Height
color[] = {1,1,1,1}; // Arrow color
colorActive[] = {1,0.5,0,1}; // Selected arrow color
sizeEx = GUI_GRID_CENTER_H; // Text size
font = GUI_FONT_NORMAL; // Font from CfgFontFamilies
shadow = 0; // Shadow (0 - none, 1 - N/A, 2 - black outline)
colorText[] = {1,1,1,1}; // Text color
colorSelect[] = {1,0.5,0,1}; // Selected text color
colorDisabled[] = {1,1,1,0.5}; // Disabled text color
tooltip = "CT_XLISTBOX"; // Tooltip text
tooltipColorShade[] = {0,0,0,1}; // Tooltip background color
tooltipColorText[] = {1,1,1,1}; // Tooltip text color
tooltipColorBox[] = {1,1,1,1}; // Tooltip frame color
arrowEmpty = "\A3\ui_f\data\gui\cfg\slider\arrowEmpty_ca.paa"; // Arrow
arrowFull = "\A3\ui_f\data\gui\cfg\slider\arrowFull_ca.paa"; // Arrow when clicked on
border = "\A3\ui_f\data\gui\cfg\slider\border_ca.paa"; // Fill texture
soundSelect[] = {"\A3\ui_f\data\sound\RscListbox\soundSelect",0.09,1}; // Sound played when an item is selected
onCanDestroy = "systemChat str ['onCanDestroy',_this]; true";
onDestroy = "systemChat str ['onDestroy',_this]; false";
onSetFocus = "systemChat str ['onSetFocus',_this]; false";
onKillFocus = "systemChat str ['onKillFocus',_this]; false";
onKeyDown = "systemChat str ['onKeyDown',_this]; false";
onKeyUp = "systemChat str ['onKeyUp',_this]; false";
onMouseButtonDown = "systemChat str ['onMouseButtonDown',_this]; false";
onMouseButtonUp = "systemChat str ['onMouseButtonUp',_this]; false";
onMouseButtonClick = "systemChat str ['onMouseButtonClick',_this]; false";
onMouseButtonDblClick = "systemChat str ['onMouseButtonDblClick',_this]; false";
onMouseZChanged = "systemChat str ['onMouseZChanged',_this]; false";
onMouseMoving = "";
onMouseHolding = "";
onLBSelChanged = "systemChat str ['onLBSelChanged',_this]; false";
onLBDblClick = "systemChat str ['onLBDblClick',_this]; false";
};
RscListNBox (A3 1.28 Template)
class _CT_LISTNBOX_RIGHT: _CT_BUTTON
{
idc = 1000;
text = "<";
borderSize = 0;
colorShadow[] = {0,0,0,0};
};
class _CT_LISTNBOX_LEFT: _CT_LISTNBOX_RIGHT
{
idc = 1001;
text = ">";
};
class _CT_LISTNBOX
{
access = 0; // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified)
idc = CT_LISTNBOX; // Control identification (without it, the control won't be displayed)
type = CT_LISTNBOX; // Type 102
style = ST_LEFT + LB_TEXTURES; // Style
default = 0; // Control selected by default (only one within a display can be used)
blinkingPeriod = 0; // Time in which control will fade out and back in. Use 0 to disable the effect.
x = 29 * GUI_GRID_CENTER_W + GUI_GRID_CENTER_X; // Horizontal coordinates
y = 15 * GUI_GRID_CENTER_H + GUI_GRID_CENTER_Y; // Vertical coordinates
w = 10 * GUI_GRID_CENTER_W; // Width
h = 3 * GUI_GRID_CENTER_H; // Height
colorSelectBackground[] = {1,0.5,0,1}; // Selected item fill color
colorSelectBackground2[] = {0,0,0,1}; // Selected item fill color (oscillates between this and colorSelectBackground)
sizeEx = GUI_GRID_CENTER_H; // Text size
font = GUI_FONT_NORMAL; // Font from CfgFontFamilies
shadow = 0; // Shadow (0 - none, 1 - directional, color affected by colorShadow, 2 - black outline)
colorText[] = {1,1,1,1}; // Text and frame color
colorDisabled[] = {1,1,1,0.5}; // Disabled text color
colorSelect[] = {1,1,1,1}; // Text selection color
colorSelect2[] = {1,1,1,1}; // Text selection color (oscillates between this and colorSelect)
colorShadow[] = {0,0,0,0.5}; // Text shadow color (used only when shadow is 1)
tooltip = "CT_LISTNBOX"; // Tooltip text
tooltipColorShade[] = {0,0,0,1}; // Tooltip background color
tooltipColorText[] = {1,1,1,1}; // Tooltip text color
tooltipColorBox[] = {1,1,1,1}; // Tooltip frame color
columns[] = {0.1,0.4}; // Horizontal coordinates of columns (relative to list width, in range from 0 to 1)
drawSideArrows = 1; // 1 to draw buttons linked by idcLeft and idcRight on both sides of selected line. They are resized to line height
idcLeft = 1000; // Left button IDC
idcRight = 1001; // Right button IDC
period = 1; // Oscillation time between colorSelect/colorSelectBackground2 and colorSelect2/colorSelectBackground when selected
rowHeight = GUI_GRID_CENTER_H; // Row height
maxHistoryDelay = 1; // Time since last keyboard type search to reset it
soundSelect[] = {"\A3\ui_f\data\sound\RscListbox\soundSelect",0.09,1}; // Sound played when an item is selected
// Scrollbar configuration (applied only when LB_TEXTURES style is used)
class ListScrollBar
{
width = 0; // width of ListScrollBar
height = 0; // height of ListScrollBar
scrollSpeed = 0.01; // scrollSpeed of ListScrollBar
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; // Arrow
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; // Arrow when clicked on
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; // Slider background (stretched vertically)
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; // Dragging element (stretched vertically)
color[] = {1,1,1,1}; // Scrollbar color
};
onCanDestroy = "systemChat str ['onCanDestroy',_this]; true";
onDestroy = "systemChat str ['onDestroy',_this]; false";
onSetFocus = "systemChat str ['onSetFocus',_this]; false";
onKillFocus = "systemChat str ['onKillFocus',_this]; false";
onKeyDown = "systemChat str ['onKeyDown',_this]; false";
onKeyUp = "systemChat str ['onKeyUp',_this]; false";
onMouseButtonDown = "systemChat str ['onMouseButtonDown',_this]; false";
onMouseButtonUp = "systemChat str ['onMouseButtonUp',_this]; false";
onMouseButtonClick = "systemChat str ['onMouseButtonClick',_this]; false";
onMouseButtonDblClick = "systemChat str ['onMouseButtonDblClick',_this]; false";
onMouseZChanged = "systemChat str ['onMouseZChanged',_this]; false";
onMouseMoving = "";
onMouseHolding = "";
onLBSelChanged = "systemChat str ['onLBSelChanged',_this]; false";
onLBDblClick = "systemChat str ['onLBDblClick',_this]; false";
};
RscXComboBox (A3 1.28 Template)
class _CT_XCOMBO // Xbox combo box, cannot be controlled with mouse
{
access = 0; // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified)
idc = CT_XCOMBO; // Control identification (without it, the control won't be displayed)
type = CT_XCOMBO; // Type is 44
style = ST_LEFT + LB_TEXTURES; // Style
default = 0; // Control selected by default (only one within a display can be used)
blinkingPeriod = 0; // Time in which control will fade out and back in. Use 0 to disable the effect.
x = 12 * GUI_GRID_CENTER_W + GUI_GRID_CENTER_X; // Horizontal coordinates
y = 22 * GUI_GRID_CENTER_H + GUI_GRID_CENTER_Y; // Vertical coordinates
w = 10 * GUI_GRID_CENTER_W; // Width
h = 1 * GUI_GRID_CENTER_H; // Height
colorSelectBackground2[] = {0,0,0,1}; // Selected fill color (oscillates between this and List >> colorSelectBackground)
colorBorder[] = {1,0,1,1}; // arrow color
colorSelectBorder[] = {1,1,1,1}; // Selected arrow color
colorDisabledBorder[] = {0,1,1,1}; // arrow color when disabled
sizeEx = GUI_GRID_CENTER_H; // Text size
font = GUI_FONT_NORMAL; // Font from CfgFontFamilies
shadow = 0; // Shadow (0 - none, 1 - N/A, 2 - black outline)
colorText[] = {1,1,1,1}; // Text color
colorSelect[] = {1,1,1,1}; // Selected text color
colorSelect2[] = {1,1,1,1}; // Selected text color (oscillates between this and colorSelect)
colorDisabled[] = {1,1,1,0.5}; // Disabled text color
tooltip = "CT_XCOMBO"; // Tooltip text
tooltipColorShade[] = {0,0,0,1}; // Tooltip background color
tooltipColorText[] = {1,1,1,1}; // Tooltip text color
tooltipColorBox[] = {1,1,1,1}; // Tooltip frame color
soundExpand[] = {"\A3\ui_f\data\sound\RscCombo\soundExpand",0.1,1}; // Sound played when the list is expanded
soundCollapse[] = {"\A3\ui_f\data\sound\RscCombo\soundCollapse",0.1,1}; // Sound played when the list is collapsed
soundSelect[] = {"\A3\ui_f\data\sound\RscCombo\soundSelect",0.1,1}; // Sound played when an item is selected
// List title (not moved when display is dragged)
class Title
{
text = "CT_XCOMBO";
x = 12 * GUI_GRID_CENTER_W + GUI_GRID_CENTER_X; // Horizontal coordinates
y = 21 * GUI_GRID_CENTER_H + GUI_GRID_CENTER_Y; // Vertical coordinates
w = 10 * GUI_GRID_CENTER_W; // Width
h = 1 * GUI_GRID_CENTER_H; // Height
colorBackground[] = {0.2,0.2,0.2,1}; // Fill color
colorSelectBackground[] = {1,0.5,0,1}; // Selected item fill color
colorBorder[] = {0,0,0,1}; // Border color
colorSelectBorder[] = {0,0,0,1}; // Selected border color
colorDisabledBorder[] = {1,1,1,1}; // Disabled border color
font = GUI_FONT_NORMAL; // Font from CfgFontFamilies
size = GUI_GRID_CENTER_H; // Text size
colorText[] = {1,1,1,1}; // Text color
colorSelect[] = {1,1,1,1}; // Selected text color
colorDisabled[] = {1,1,1,0.5}; // Disabled text color
};
// Item list displayed when arrow right is pressed while the control is in focus (not moved when display is dragged)
class List
{
x = 22 * GUI_GRID_CENTER_W + GUI_GRID_CENTER_X; // Horizontal coordinates
y = 22 * GUI_GRID_CENTER_H + GUI_GRID_CENTER_Y; // Vertical coordinates
w = 10 * GUI_GRID_CENTER_W; // Width
h = 5 * GUI_GRID_CENTER_H; // Height
colorBackground[] = {0.2,0.2,0.2,1}; // List fill color
colorSelectBackground[] = {1,0.5,0,1}; // Selected item fill color (oscillates between this and colorSelectBackground2 in control root)
colorBorder[] = {1,1,1,1}; // List scrollbar color (combined with Scrollbar >> color)
rowHeight = 1 * GUI_GRID_CENTER_H; // Row height
sizeEx = GUI_GRID_CENTER_H; // Text size
colorText[] = {1,1,1,1}; // Text color
colorSelect[] = {1,1,1,1}; // Selected text color (oscillates between this and colorSelect2 in control root)
};
// Scrollbar configuration (applied only when LB_TEXTURES style is used)
class ScrollBar
{
width = 0; // width of scrollBar
height = 0; // height of scrollbar
scrollSpeed = 0.01; // speed of scroll bar
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; // Arrow
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; // Arrow when clicked on
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; // Slider background (stretched vertically)
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; // Dragging element (stretched vertically)
color[] = {1,1,1,1}; // Scrollbar color (combined with List >> colorBorder)
};
onCanDestroy = "systemChat str ['onCanDestroy',_this]; true";
onDestroy = "systemChat str ['onDestroy',_this]; false";
onMouseEnter = "systemChat str ['onMouseEnter',_this]; false";
onMouseExit = "systemChat str ['onMouseExit',_this]; false";
onSetFocus = "systemChat str ['onSetFocus',_this]; false";
onKillFocus = "systemChat str ['onKillFocus',_this]; false";
onKeyDown = "systemChat str ['onKeyDown',_this]; false";
onKeyUp = "systemChat str ['onKeyUp',_this]; false";
onMouseButtonDown = "systemChat str ['onMouseButtonDown',_this]; false";
onMouseButtonUp = "systemChat str ['onMouseButtonUp',_this]; false";
onMouseButtonClick = "systemChat str ['onMouseButtonClick',_this]; false";
onMouseButtonDblClick = "systemChat str ['onMouseButtonDblClick',_this]; false";
onMouseZChanged = "systemChat str ['onMouseZChanged',_this]; false";
onMouseMoving = "";
onMouseHolding = "";
onLBSelChanged = "systemChat str ['onLBSelChanged',_this]; false";
onLBDblClick = "systemChat str ['onLBDblClick',_this]; false";
onLBListSelChanged = "systemChat str ['onLBListSelChanged',_this]; false";
};
Scripting Examples
CT_LISTBOX
(A3 1.28)lb command family overview.
//lb command family can be used with CT_COMBO, CT_LISTBOX, CT_XLISTBOX & CT_XCOMBO
private ["_current","_data","_pic","_value","_size","_color"];
{
_ctrl = _x;
{
_ctrl lbAdd getText (_x >> "displayName");
_ctrl lbSetPicture [_foreachindex,getText (_x >> "texture")];
_ctrl lbSetTooltip [_foreachindex,getText (_x >> "displayName")];
} forEach ("isClass _x" configClasses (configFile >> "CfgRanks"));
_ctrl lbSetCurSel 0;
_current = lbCurSel _ctrl;
_ctrl lbSetData [_current,"hi"];
_data = _ctrl lbData _current;
_pic = _ctrl lbPicture _current;
_ctrl lbSetValue [_current, 1];
_value = _ctrl lbValue _current;
_size = lbSize _ctrl;
_color = _ctrl lbColor _current;
_ctrl lbSetColor [_current, [(_color select 0) / 2, (_color select 1) / 4, 0, 1]];
lbSort [_ctrl, "DESC"];
lbSortByValue _ctrl;
if (_ctrl lbIsSelected _current) then {
_ctrl lbDelete _current;
lbClear _ctrl;
};
} forEach [
_CT_COMBO,
_CT_LISTBOX,
_CT_XLISTBOX,
_CT_XCOMBO
];
CT_LISTNBOX
(A3 1.28)As for invisible data processing, lnbAddArray, lnbAddColumn, lnbData, lnbGetColumnsPosition, lnbSetColumnsPos, lnbSetData, lnbSetText, lnbSetValue, lnbText and lnbValue store data types into exact position of the listNbox with different spaces. Accessing data with coordinate command at nearly the same syntax:
//Set same value to one position of a Control
_ctrl lnbSetData [ [0,0],"#1"];
lnbSetColumnsPos [102, [0,1], 1];
_ctrl lnbSetText [ [0,1], "#1"];
_ctrl lnbSetValue [ [0,0],1];
//Accessing the value disregard affecting one another.
_ctrl lnbData [0,0]; //"#1"
lnbGetColumnsPosition _ctrl //[1];
_ctrl lnbText [0,0];//"#1"
_ctrl lnbValue [0,0];//1
For a direct visible control over CT_LISTNBOX:
0 = [_CT_LISTNBOX] spawn {
private ["_CT_LISTNBOX","_color","_current","_pic"];
disableSerialization;
_CT_LISTNBOX = _this select 0;
{
_CT_LISTNBOX lnbAddRow [getText (_x >> "displayNameShort"),getText (_x >> "displayName")];
_CT_LISTNBOX lnbSetPicture [ [_foreachIndex,0],getText (_x >> "texture")];
} forEach ("isClass _x" configClasses (configFile >> "CfgRanks"));
_CT_LISTNBOX lnbSetCurSelRow 0;
_current = lnbCurSelRow _CT_LISTNBOX;
_color = _CT_LISTNBOX lnbColor [_current,0];
_CT_LISTNBOX lnbSetColor [ [_current,1], [(_color select 0)/2,0,0,1] ];
_CT_LISTNBOX lnbDeleteColumn 0;
_CT_LISTNBOX lnbDeleteRow 1;
sleep 1;
lnbClear _CT_LISTNBOX;//Clear all items but control still remains just invisible.
};
A combined use of both invisible and visible data processing commands alive the Control.