DialogControls-ControlsGroup

From Bohemia Interactive Community
Revision as of 14:32, 21 March 2020 by R3vo (talk | contribs) (merged tables)
Jump to navigation Jump to search

Template:SideTOC

CT_CONTROLS_GROUP Type=15

TokenNames common to most controls, such as x, y, w, h, text, idc... can be found here.
  • Any child controls need to be defined in the controlsGroup's subclass Controls {};
  • The x and y coords of any child controls are relative to the controlsGroups position. The height and width are not and are in screen space dimensions.
  • If the position or height/width of any child controls cause any part of the child control to fall outside the dimensions of the controlsGroup then scrollbars will be seen
    • This allows the creation of scrollable active text controls etc


Classes
Name Type Remark
ScrollBar class Default parent class for all scrollbar settings
VScrollbar class Settings relating to Vertical scrollbar
HScrollbar class Settings relating to Horizontal scrollbar
Controls class Any user added controls to be contained within the controlsGroup



class Scrollbar, VScrollbar, HScrollbar

Parent class used to define all available properties of VScrollbar and HScrollbar. Not all available properties make sense for each of these as outlined below.

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


class Controls

  • Additional user added controls of any type can be added in a derived class. The base is empty because the engine looks for it regardless.

Example Config

  • If the h value of a child control inside the controls class is larger than the h value of the controls group, a vertical scroll bar will be created. The same applies to the horizontal scroll bar.
  • Positioning of controls inside control groups is relative to controls group's position
  • A generalised screw-up occurs in Arrowhead rscControlGroup where color is not specified for V and H scrollbars and shadow should not have been specified. As a result any deriving class:
    • a) cannot inherit the existing scrollbar
    • b) must repeat the entire thing with the addition of color.


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