DialogControls-ControlsGroup

From Bohemia Interactive Community
Revision as of 17:51, 29 January 2012 by Mikero (talk | contribs) (→‎Example)
Jump to navigation Jump to search

CT_CONTROLS_GROUP Type=15

TokenNames common to most controls, such as x,y,w,h,text,idc... are not listed here.

  • The x and y coords of the child control are relative to the parent class, the height and width are not
  • If the height and / or width of the child control are greater than the parent control then scrollbars will be seen
    • This allows the creation of scrollable active text controls etc
  • The entire child class needs to be defined in the parents subclass class Controls {};
Properties
Name Type Remark
VScrollbar class
HScrollbar class
ScrollBar class
Controls class


class VScrollbar

Properties
Name Type Remark
autoScrollSpeed' integer typically -1
autoScrollDelay integer in seconds
autoScrollRewind' boolean
color color array
shadow integer
width float


class HScrollbar

Properties
Name Type Remark
color color array
height float
shadow integer


class Scrollbar

Properties
Name Type Remark
color color array
colorActive color array
colorDisabled color array
thumb string path to texture or "#(argb,8,8,3)color(1,1,1,1)";
arrowEmpty/Full string path to texture or "#(argb,8,8,3)color(1,1,1,1)";
border string path to texture or "#(argb,8,8,3)color(1,1,1,1)";


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

  • In this example, the child control My_RscStructuredText is higher (h value) than the parent control, so a vertical scrollbar is automatically created, which allows scrolling the entire length of the structured text display
  • 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, and b) must repeat the entire thing with the addition of color.

class RscControlsGroup { type = CT_CONTROLS_GROUP; idc = -1; style = ST_MULTI; x = 0; y = 0; w = 1; h = 1; shadow=0; class VScrollbar { width = 0.021; autoScrollSpeed = -1; autoScrollDelay = 5; autoScrollRewind = 0; shadow=0; }; class HScrollbar { height = 0.028; shadow=0; }; class ScrollBar { 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)"; }; class Controls{};// an empty class telling the engine, no custom, additional controls }; class dialog { class controls { class MyControls:RscControlsGroup { x = (safeZoneX + (SafezoneW * 0.0363)); // scalability code which resizes correctly no matter what gui size or screen dimensions is used y = (safeZoneY + (SafezoneH * 0.132)); // scalability code which resizes correctly no matter what gui size or screen dimensions is used w = (SafezoneW * 0.31); // scalability code which resizes correctly no matter what gui size or screen dimensions is used h = (SafezoneH * 0.752); // scalability code which resizes correctly no matter what gui size or screen dimensions is used class Controls { ...class whatever additional controls you want }; }; }; };