CT MENU STRIP: Difference between revisions
(redirected to DialogControls-Menu) |
Lou Montana (talk | contribs) m (Text replacement - " ( *class [a-zA-Z0-9_]+): *([a-zA-Z0-9_]+ *) " to " $1 : $2 ") |
||
(16 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
# | {{CT|intro | ||
|macro = CT_MENU_STRIP | |||
|value = 47 | |||
|description = Control with expandable sublists. The top bar in 3den uses this CT. | |||
|gallery=File:a3 ct menu strip.jpg{{!}}[[CT_MENU_STRIP]] in [[:Category:Eden Editor|Eden Editor]]. | |||
|commands = | |||
* [[:Category:Command_Group:_GUI_Control_-_Menu|Commands: Menu]] | |||
|events = | |||
}} | |||
{{CT|abc start}} | |||
=== A === | |||
{{CT|attribute | |||
|name=arrow | |||
|type1=String | |||
|value1="\a3\3DEN\Data\Controls\ctrlMenu\arrow_ca.paa" | |||
|description= Icon used to navigate from second to third level. | |||
}} | |||
=== C === | |||
{{CT|attribute | |||
|name=colorBorder | |||
|type1=Array | |||
|value1={0,0,0,0} | |||
|description= Color of the border drawn around the menu strip and the flyout. | |||
}} | |||
{{CT|attribute | |||
|name=colorPicture | |||
|type1=Array | |||
|value1={1,1,1,1} | |||
|description= Default picture color. | |||
}} | |||
{{CT|attribute | |||
|name=colorPictureDisabled | |||
|type1=Array | |||
|value1={1,1,1,0.5} | |||
|description= Picture color when menu strip is disabled. | |||
}} | |||
{{CT|attribute | |||
|name=colorPictureSelect | |||
|type1=Array | |||
|value1={0,0,0,1} | |||
|description= Picture color when entry is selected. All levels! | |||
}} | |||
{{CT|attribute | |||
|name=colorSelect | |||
|type1=Array | |||
|value1={0,0,0,1} | |||
|description= Text color when entry is selected. All levels! | |||
}} | |||
{{CT|attribute | |||
|name=colorSelectBackground | |||
|type1=Array | |||
|value1={"(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} | |||
|description= Background color when entry is selected. Only sub first level. | |||
}} | |||
{{CT|attribute | |||
|name=colorStripBackground | |||
|type1=Array | |||
|value1={0,0,0,0} | |||
|description= Background color. | |||
}} | |||
{{CT|attribute | |||
|name=colorStripDisabled | |||
|type1=Array | |||
|value1={1,1,1,0.25} | |||
|description= Does not seem to do anything. | |||
}} | |||
{{CT|attribute | |||
|name=colorStripSelect | |||
|type1=Array | |||
|value1={0,0,0,1} | |||
|description= Does not seem to do anything. | |||
}} | |||
{{CT|attribute | |||
|name=colorStripSelectBackground | |||
|type1=Array | |||
|value1={"(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} | |||
|description= Background color when entry is selected. First level only! | |||
}} | |||
{{CT|attribute | |||
|name=colorStripText | |||
|type1=Array | |||
|value1={1,1,1,1} | |||
|description= Text color | |||
}} | |||
=== I === | |||
{{CT|attribute | |||
|name=Items | |||
|type1=Class | |||
|value1=class Items | |||
{ | |||
items[] = {"MissionNew"}; //First level entries | |||
class MissionNew | |||
{ | |||
action = "systemChat str _this"; //Action that is called when entry is selected. _this contains the control and the path to the entry e.g. [control#10, [0, 1, 5]] | |||
data = "Data"; //Data, see menuSetData, menuData. String only. If set in Eden Editor it means that the functionality is handle in engine | |||
default = "true"; //Sets the default state of the entry. Needs type property to be defined | |||
opensNewWindow = 1; //... is added to the action, indicating that a new window will be opened. In this example, displayed text would be "New..." | |||
picture = "\a3\3DEN\Data\Displays\Display3DEN\ToolBar\new_ca.paa"; //Picture displayed to the left | |||
shortcuts[] = {"512 + 0x31"}; //Shortcut that will automatically execute attached action | |||
text = "New"; //Text displayed | |||
type = "Checkbox2"; //Control type used for indicating the selection state. Only "Checkbox" seems to work | |||
value = 1337; //Value, see menuSetValue, menuValue. Number only | |||
weblink = "https://arma3.com/"; //URL, see menuSetURL, menuURL | |||
}; | |||
class Default; //Default entry. Needs to be defined otherwise error is shown upon creation of the display | |||
class Separator; //Needs to be defined to create a separator | |||
}; | |||
|description=List of entries ordered in subclasses. The {{hl|Default}} class needs to be defined. | |||
}} | |||
{{CT|attribute | |||
|name=itemSpacingH | |||
|type1=Number | |||
|value1=0.01 | |||
|description=Vertical distance between two entries. Will cause icons and text to not be aligned anymore if anything else than default value is used. Real use is unknown and should probably not be changed. | |||
}} | |||
{{CT|attribute | |||
|name=itemSpacingW | |||
|type1=Number | |||
|value1=0.01 | |||
|description=Horizontal distance between two entries. (Seems to have no effect) | |||
}} | |||
=== P === | |||
{{CT|attribute | |||
|name=pictureCheckboxDisabled | |||
|type1=String | |||
|value1="#(argb,8,8,3)color(0,0,0,0)" | |||
|description= Icon shown if entry was disabled. Seems to have no effect since there is no way to disable an entry. | |||
}} | |||
{{CT|abc end}} | |||
{{CT|examples}} | |||
== Other Examples == | |||
<syntaxhighlight lang="cpp"> | |||
class MenuStrip | |||
{ | |||
idc=120; | |||
type=CT_MENU_STRIP; | |||
colorStripBackground[]={0,0,0,1}; | |||
colorStripText[]={1,1,1,1}; | |||
colorStripSelect[]={0,0,0,1}; | |||
colorStripSelectBackground[]= | |||
{ | |||
"(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 | |||
}; | |||
colorStripDisabled[]={1,1,1,0.25}; | |||
x="safezoneX"; | |||
y="safezoneY"; | |||
w="safezoneW - 5 * (pixelW * pixelGrid * 0.50)"; | |||
h="5 * (pixelH * pixelGrid * 0.50)"; | |||
colorStripBackground[]={0,0,0,0}; | |||
colorBackground[]={0.1,0.1,0.1,1}; | |||
font="RobotoCondensedLight"; | |||
colorBorder[]={0,0,0,0}; | |||
colorText[]={1,1,1,1}; | |||
colorSelect[]={0,0,0,1}; | |||
colorSelectBackground[]= | |||
{ | |||
"(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 | |||
}; | |||
colorDisabled[]={1,1,1,0.25}; | |||
colorPicture[]={1,1,1,1}; | |||
colorPictureSelect[]={0,0,0,1}; | |||
colorPictureDisabled[]={1,1,1,0.5}; | |||
arrow="\a3\3DEN\Data\Controls\ctrlMenu\arrow_ca.paa"; | |||
rowHeight=0; | |||
itemSpacingW=0.0099999998; | |||
itemSpacingH=0.0099999998; | |||
pictureCheckboxEnabled="\a3\3DEN\Data\Controls\CtrlMenu\pictureCheckboxEnabled_ca.paa"; | |||
pictureCheckboxDisabled="#(argb,8,8,3)color(0,0,0,0)"; | |||
pictureRadioEnabled="\a3\3DEN\Data\Controls\CtrlMenu\pictureRadioEnabled_ca.paa"; | |||
pictureRadioDisabled="#(argb,8,8,3)color(0,0,0,0)"; | |||
class Items | |||
{ | |||
items[]= | |||
{ | |||
"entry1", | |||
"entry2", | |||
"entry3", | |||
}; | |||
class entry1 | |||
{ | |||
text="First Entry"; | |||
items[]= | |||
{ | |||
"sub1_1", | |||
"sub1_2" | |||
}; | |||
}; | |||
class sub1_1 | |||
{ | |||
text="First Sub Entry"; | |||
action= systemchat ""Sub entry one."";"; | |||
}; | |||
class sub1_2 | |||
{ | |||
text="Second Sub Entry"; | |||
}; | |||
class entry2 | |||
{ | |||
text="Entry 2, no sub menu"; | |||
action="systemchat ""Entry 2."";"; | |||
}; | |||
class entry3 | |||
{ | |||
text="Fancy entry 3"; | |||
action ="systemchat ""Entry 3."";"; | |||
data="CustomData"; | |||
shortcuts[]= | |||
{ | |||
"512 + 0x31" // STRG+N | |||
}; | |||
picture="\a3\3DEN\Data\Displays\Display3DEN\ToolBar\new_ca.paa"; | |||
}; | |||
class Default; | |||
class Separator; | |||
}; | |||
}; | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="cpp"> | |||
class RscMenuStrip | |||
{ | |||
idd = -1; | |||
movingEnable = true; | |||
enableSimulation = true; | |||
onLoad = ""; | |||
onUnload = ""; | |||
class Controls | |||
{ | |||
class MenuStrip : ctrlMenuStrip | |||
{ | |||
idc = 1000; | |||
x = safeZoneX; | |||
y = (safeZoneY + (safezoneH * 0.132)); | |||
w = safezoneW; | |||
h = (safezoneH * 0.03); | |||
class Items | |||
{ | |||
items[] = //First Level Entries, when editing an existing menu strip, one can use the += operator to add new entries without overwriting the old ones | |||
{ | |||
"Menu1", | |||
"Menu2" | |||
}; | |||
class Menu1 | |||
{ | |||
text = "Menu 1"; | |||
items[] = //Second Level Entries | |||
{ | |||
"WebLink" | |||
}; | |||
}; | |||
class Menu2 | |||
{ | |||
text = "Menu 2"; | |||
items[] = //Second Level Entries | |||
{ | |||
"SayHello", | |||
"PlayMusic" | |||
}; | |||
}; | |||
class WebLink | |||
{ | |||
text = "Go to Arma 3 Webpage"; //Display name of menu entry | |||
picture = "\A3\Ui_f\data\Logos\arma3_white_ca.paa"; //Picture shown in front of text | |||
weblink = "https://arma3.com/"; //Opens a web page in default webbrowser | |||
opensNewWindow = 1; //Adds ... after text, indicating that this menu entry will open a new display | |||
}; | |||
class SayHello | |||
{ | |||
text = "Say Hello"; | |||
action = "systemChat 'Hello World!'"; //Code executed when entry is clicked | |||
}; | |||
class PlayMusic | |||
{ | |||
text = "Play Music"; | |||
picture = "\a3\Modules_F_Curator\Data\portraitMusic_ca.paa"; | |||
action = "playMusic 'Track15_MainTheme'"; | |||
}; | |||
class Default; | |||
class Separator; | |||
}; | |||
}; | |||
}; | |||
}; | |||
</syntaxhighlight> | |||
[[Category: Control Types]] |
Latest revision as of 10:58, 6 December 2023
Control Types / MACRO (TYPE VALUE) | |
---|---|
Text/Image/Video |
CT_STATIC (0) | CT_EDIT (2) | CT_HTML (9) | CT_STRUCTURED_TEXT (13) |
Buttons |
CT_BUTTON (1) | CT_ACTIVETEXT (11) | CT_SHORTCUTBUTTON (16) | CT_CHECKBOX (77) | CT_XBUTTON (41) |
Lists |
CT_COMBO (4) | CT_TOOLBOX (6) | CT_CHECKBOXES (7) | CT_TREE (12) | CT_CONTROLS_TABLE (19) | CT_XCOMBO (44) | CT_LISTBOX (5) | CT_LISTNBOX (102) | CT_LISTNBOX_CHECKABLE (104) | CT_XLISTBOX (45) |
3D Objects |
CT_OBJECT (80) | CT_OBJECT_ZOOM (81) | CT_OBJECT_CONTAINER (82) | CT_OBJECT_CONT_ANIM (83) |
Maps |
CT_MAP (100) | CT_MAP_MAIN (101) |
Meta |
CT_SLIDER (3) | CT_XSLIDER (43) | CT_PROGRESS (8) | CT_CONTROLS_GROUP (15) | CT_WEBBROWSER (106) | CT_EXTENSION (107) |
Menu |
CT_CONTEXT_MENU (14) | CT_MENU (46) | CT_MENU_STRIP (47) |
Unknown |
CT_STATIC_SKEW (10) | CT_HITZONES (17) | CT_VEHICLETOGGLES (18) | CT_XKEYDESC (40) | CT_ANIMATED_TEXTURE (45) | CT_LINEBREAK (98) | CT_USER (99) | CT_ITEMSLOT (103) | CT_VEHICLE_DIRECTION (105) |
Introduction
Control with expandable sublists. The top bar in 3den uses this CT.
Related commands & functions
Related User Interface Eventhandlers
Alphabetical Order
#define CT_MENU_STRIP 47
A
arrow
- Type
- String
- Description
- Icon used to navigate from second to third level.
arrow = "\a3\3DEN\Data\Controls\ctrlMenu\arrow_ca.paa";
C
colorBorder
- Type
- Array
- Description
- Color of the border drawn around the menu strip and the flyout.
colorBorder[] = {0,0,0,0};
colorPicture
- Type
- Array
- Description
- Default picture color.
colorPicture[] = {1,1,1,1};
colorPictureDisabled
- Type
- Array
- Description
- Picture color when menu strip is disabled.
colorPictureDisabled[] = {1,1,1,0.5};
colorPictureSelect
- Type
- Array
- Description
- Picture color when entry is selected. All levels!
colorPictureSelect[] = {0,0,0,1};
colorSelect
- Type
- Array
- Description
- Text color when entry is selected. All levels!
colorSelect[] = {0,0,0,1};
colorSelectBackground
- Type
- Array
- Description
- Background color when entry is selected. Only sub first level.
colorSelectBackground[] = {"(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};
colorStripBackground
- Type
- Array
- Description
- Background color.
colorStripBackground[] = {0,0,0,0};
colorStripDisabled
- Type
- Array
- Description
- Does not seem to do anything.
colorStripDisabled[] = {1,1,1,0.25};
colorStripSelect
- Type
- Array
- Description
- Does not seem to do anything.
colorStripSelect[] = {0,0,0,1};
colorStripSelectBackground
- Type
- Array
- Description
- Background color when entry is selected. First level only!
colorStripSelectBackground[] = {"(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};
colorStripText
- Type
- Array
- Description
- Text color
colorStripText[] = {1,1,1,1};
I
Items
- Type
- Class
- Description
- List of entries ordered in subclasses. The Default class needs to be defined.
class Items
{
items[] = {"MissionNew"}; //First level entries
class MissionNew
{
action = "systemChat str _this"; //Action that is called when entry is selected. _this contains the control and the path to the entry e.g. [control#10, [0, 1, 5]]
data = "Data"; //Data, see menuSetData, menuData. String only. If set in Eden Editor it means that the functionality is handle in engine
default = "true"; //Sets the default state of the entry. Needs type property to be defined
opensNewWindow = 1; //... is added to the action, indicating that a new window will be opened. In this example, displayed text would be "New..."
picture = "\a3\3DEN\Data\Displays\Display3DEN\ToolBar\new_ca.paa"; //Picture displayed to the left
shortcuts[] = {"512 + 0x31"}; //Shortcut that will automatically execute attached action
text = "New"; //Text displayed
type = "Checkbox2"; //Control type used for indicating the selection state. Only "Checkbox" seems to work
value = 1337; //Value, see menuSetValue, menuValue. Number only
weblink = "https://arma3.com/"; //URL, see menuSetURL, menuURL
};
class Default; //Default entry. Needs to be defined otherwise error is shown upon creation of the display
class Separator; //Needs to be defined to create a separator
};
itemSpacingH
- Type
- Number
- Description
- Vertical distance between two entries. Will cause icons and text to not be aligned anymore if anything else than default value is used. Real use is unknown and should probably not be changed.
itemSpacingH = 0.01;
itemSpacingW
- Type
- Number
- Description
- Horizontal distance between two entries. (Seems to have no effect)
itemSpacingW = 0.01;
P
pictureCheckboxDisabled
- Type
- String
- Description
- Icon shown if entry was disabled. Seems to have no effect since there is no way to disable an entry.
pictureCheckboxDisabled = "#(argb,8,8,3)color(0,0,0,0)";
Default Classes
Other Examples
class MenuStrip
{
idc=120;
type=CT_MENU_STRIP;
colorStripBackground[]={0,0,0,1};
colorStripText[]={1,1,1,1};
colorStripSelect[]={0,0,0,1};
colorStripSelectBackground[]=
{
"(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
};
colorStripDisabled[]={1,1,1,0.25};
x="safezoneX";
y="safezoneY";
w="safezoneW - 5 * (pixelW * pixelGrid * 0.50)";
h="5 * (pixelH * pixelGrid * 0.50)";
colorStripBackground[]={0,0,0,0};
colorBackground[]={0.1,0.1,0.1,1};
font="RobotoCondensedLight";
colorBorder[]={0,0,0,0};
colorText[]={1,1,1,1};
colorSelect[]={0,0,0,1};
colorSelectBackground[]=
{
"(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
};
colorDisabled[]={1,1,1,0.25};
colorPicture[]={1,1,1,1};
colorPictureSelect[]={0,0,0,1};
colorPictureDisabled[]={1,1,1,0.5};
arrow="\a3\3DEN\Data\Controls\ctrlMenu\arrow_ca.paa";
rowHeight=0;
itemSpacingW=0.0099999998;
itemSpacingH=0.0099999998;
pictureCheckboxEnabled="\a3\3DEN\Data\Controls\CtrlMenu\pictureCheckboxEnabled_ca.paa";
pictureCheckboxDisabled="#(argb,8,8,3)color(0,0,0,0)";
pictureRadioEnabled="\a3\3DEN\Data\Controls\CtrlMenu\pictureRadioEnabled_ca.paa";
pictureRadioDisabled="#(argb,8,8,3)color(0,0,0,0)";
class Items
{
items[]=
{
"entry1",
"entry2",
"entry3",
};
class entry1
{
text="First Entry";
items[]=
{
"sub1_1",
"sub1_2"
};
};
class sub1_1
{
text="First Sub Entry";
action= systemchat ""Sub entry one."";";
};
class sub1_2
{
text="Second Sub Entry";
};
class entry2
{
text="Entry 2, no sub menu";
action="systemchat ""Entry 2."";";
};
class entry3
{
text="Fancy entry 3";
action ="systemchat ""Entry 3."";";
data="CustomData";
shortcuts[]=
{
"512 + 0x31" // STRG+N
};
picture="\a3\3DEN\Data\Displays\Display3DEN\ToolBar\new_ca.paa";
};
class Default;
class Separator;
};
};
class RscMenuStrip
{
idd = -1;
movingEnable = true;
enableSimulation = true;
onLoad = "";
onUnload = "";
class Controls
{
class MenuStrip : ctrlMenuStrip
{
idc = 1000;
x = safeZoneX;
y = (safeZoneY + (safezoneH * 0.132));
w = safezoneW;
h = (safezoneH * 0.03);
class Items
{
items[] = //First Level Entries, when editing an existing menu strip, one can use the += operator to add new entries without overwriting the old ones
{
"Menu1",
"Menu2"
};
class Menu1
{
text = "Menu 1";
items[] = //Second Level Entries
{
"WebLink"
};
};
class Menu2
{
text = "Menu 2";
items[] = //Second Level Entries
{
"SayHello",
"PlayMusic"
};
};
class WebLink
{
text = "Go to Arma 3 Webpage"; //Display name of menu entry
picture = "\A3\Ui_f\data\Logos\arma3_white_ca.paa"; //Picture shown in front of text
weblink = "https://arma3.com/"; //Opens a web page in default webbrowser
opensNewWindow = 1; //Adds ... after text, indicating that this menu entry will open a new display
};
class SayHello
{
text = "Say Hello";
action = "systemChat 'Hello World!'"; //Code executed when entry is clicked
};
class PlayMusic
{
text = "Play Music";
picture = "\a3\Modules_F_Curator\Data\portraitMusic_ca.paa";
action = "playMusic 'Track15_MainTheme'";
};
class Default;
class Separator;
};
};
};
};