DialogControls-ListBoxes

From Bohemia Interactive Community
Revision as of 15:23, 8 June 2020 by 7erra (talk | contribs) (→‎Attributes: items attribute)
Jump to navigation Jump to search

Template:SideTOC

Attributes

TokenNames common to most controls, such as x, y, w, h, text, idc... can be found 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

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.
drawSideArrows 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, idcLeft and idcRight 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 - 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 (Arma 3 only) class see DialogControls-Sliders x x
ScrollBar class see DialogControls-Sliders x x
xColumn1,2,3 float x
disableOverflow boolean Don't allow text to continue in next column x
selectWithRMB boolean Arma 3 logo black.pngDEV Enable row selection with the right mouse button x x
items class Default entries for the listbox columns.
class items
{
	class Presence
	{
		text = "This is column1";
		value = 1; // lnbValue
		data = "value"; // 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)

WuChaoRen ctListBox.png

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)

WuChaoRen ctXListBox.png

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)

WuChaoRen 000.png WuChaoRen 001.png WuChaoRen 002.png WuChaoRen 003.png

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)

WuChaoRen004.png

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; 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]]; WuChaoRen lbColor.png lbSort [_ctrl, "DESC"]; lbSortByValue _ctrl; WuChaoRen lbSortByValue.png if (_ctrl lbIsSelected _current) then { _ctrl lbDelete _current; WuChaoRen lbDelete.png lbClear _ctrl; WuChaoRen lbClear.png }; } 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; 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] ]; WuChaoRen 001.png _CT_LISTNBOX lnbDeleteColumn 0; WuChaoRen 002.png _CT_LISTNBOX lnbDeleteRow 1; WuChaoRen 003.png 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.