I'm having issues getting user interfaces to work. It seems to work if I use createDialog, however it acts like a popup and the cursor becomes enabled which isn't ideal for a HUD element.
I peaked at some other scenarios for ArmA 2(Wasteland in this case), figuring it'd be largely the same, and found that they were using cutRsc. However whenever I try to use cutRsc I get an error stating "Resource title testHud not found".
Any help would be appreciated
init.sqf
cutRsc ["testHud","PLAIN"];
description.ext
#include "common.hpp"
#include "userInterface.hpp"
userInterface.hpp (partially gui editor generated)
class testHud {
idd = -1;
fadeout=0;
fadein=0;
duration = 20;
name = "testHud";
onLoad = "uiNamespace setVariable ['testHud', _this select 0]";
class controlsBackground {
class some_text: RscText
{
idc = 1000;
text = "Sup"; //--- ToDo: Localize;
x = -0.6875;
y = -0.38;
w = 0.25;
h = 0.04;
};
};
};
common.hpp (gui editor generated)
///////////////////////////////////////////////////////////////////////////
/// Styles
///////////////////////////////////////////////////////////////////////////
// Control types
#define CT_STATIC 0
#define CT_BUTTON 1
#define CT_EDIT 2
#define CT_SLIDER 3
#define CT_COMBO 4
#define CT_LISTBOX 5
#define CT_TOOLBOX 6
#define CT_CHECKBOXES 7
#define CT_PROGRESS 8
#define CT_HTML 9
#define CT_STATIC_SKEW 10
#define CT_ACTIVETEXT 11
#define CT_TREE 12
#define CT_STRUCTURED_TEXT 13
#define CT_CONTEXT_MENU 14
#define CT_CONTROLS_GROUP 15
#define CT_SHORTCUTBUTTON 16
#define CT_XKEYDESC 40
#define CT_XBUTTON 41
#define CT_XLISTBOX 42
#define CT_XSLIDER 43
#define CT_XCOMBO 44
#define CT_ANIMATED_TEXTURE 45
#define CT_OBJECT 80
#define CT_OBJECT_ZOOM 81
#define CT_OBJECT_CONTAINER 82
#define CT_OBJECT_CONT_ANIM 83
#define CT_LINEBREAK 98
#define CT_USER 99
#define CT_MAP 100
#define CT_MAP_MAIN 101
#define CT_LISTNBOX 102
// Static styles
#define ST_POS 0x0F
#define ST_HPOS 0x03
#define ST_VPOS 0x0C
#define ST_LEFT 0x00
#define ST_RIGHT 0x01
#define ST_CENTER 0x02
#define ST_DOWN 0x04
#define ST_UP 0x08
#define ST_VCENTER 0x0C
#define ST_TYPE 0xF0
#define ST_SINGLE 0x00
#define ST_MULTI 0x10
#define ST_TITLE_BAR 0x20
#define ST_PICTURE 0x30
#define ST_FRAME 0x40
#define ST_BACKGROUND 0x50
#define ST_GROUP_BOX 0x60
#define ST_GROUP_BOX2 0x70
#define ST_HUD_BACKGROUND 0x80
#define ST_TILE_PICTURE 0x90
#define ST_WITH_RECT 0xA0
#define ST_LINE 0xB0
#define ST_SHADOW 0x100
#define ST_NO_RECT 0x200
#define ST_KEEP_ASPECT_RATIO 0x800
#define ST_TITLE ST_TITLE_BAR + ST_CENTER
// Slider styles
#define SL_DIR 0x400
#define SL_VERT 0
#define SL_HORZ 0x400
#define SL_TEXTURES 0x10
// progress bar
#define ST_VERTICAL 0x01
#define ST_HORIZONTAL 0
// Listbox styles
#define LB_TEXTURES 0x10
#define LB_MULTI 0x20
// Tree styles
#define TR_SHOWROOT 1
#define TR_AUTOCOLLAPSE 2
// MessageBox styles
#define MB_BUTTON_OK 1
#define MB_BUTTON_CANCEL 2
#define MB_BUTTON_USER 4
///////////////////////////////////////////////////////////////////////////
/// Base Classes
///////////////////////////////////////////////////////////////////////////
class RscText
{
access = 0;
type = 0;
idc = -1;
colorBackground[] =
{
0,
0,
0,
0
};
colorText[] =
{
1,
1,
1,
1
};
text = "";
fixedWidth = 0;
x = 0;
y = 0;
h = 0.037;
w = 0.3;
style = 0;
shadow = 1;
colorShadow[] =
{
0,
0,
0,
0.5
};
font = "PuristaMedium";
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
linespacing = 1;
};
class RscStructuredText
{
access = 0;
type = 13;
idc = -1;
style = 0;
colorText[] =
{
1,
1,
1,
1
};
class Attributes
{
font = "PuristaMedium";
color = "#ffffff";
align = "left";
shadow = 1;
};
x = 0;
y = 0;
h = 0.035;
w = 0.1;
text = "";
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
shadow = 1;
};
class RscPicture
{
access = 0;
type = 0;
idc = -1;
style = 48;
colorBackground[] =
{
0,
0,
0,
0
};
colorText[] =
{
1,
1,
1,
1
};
font = "TahomaB";
sizeEx = 0;
lineSpacing = 0;
text = "";
fixedWidth = 0;
shadow = 0;
x = 0;
y = 0;
w = 0.2;
h = 0.15;
};
class RscEdit
{
access = 0;
type = 2;
x = 0;
y = 0;
h = 0.04;
w = 0.2;
colorBackground[] =
{
0,
0,
0,
1
};
colorText[] =
{
0.95,
0.95,
0.95,
1
};
colorSelection[] =
{
"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])",
"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])",
"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])",
1
};
autocomplete = "";
text = "";
size = 0.2;
style = "0x00 + 0x40";
font = "PuristaMedium";
shadow = 2;
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
colorDisabled[] =
{
1,
1,
1,
0.25
};
canModify = 1;
};
class RscCombo
{
access = 0;
type = 4;
colorSelect[] =
{
0,
0,
0,
1
};
colorText[] =
{
0.95,
0.95,
0.95,
1
};
colorBackground[] =
{
0,
0,
0,
1
};
colorScrollbar[] =
{
1,
0,
0,
1
};
soundSelect[] =
{
"",
0.1,
1
};
soundExpand[] =
{
"",
0.1,
1
};
soundCollapse[] =
{
"",
0.1,
1
};
maxHistoryDelay = 1;
class ScrollBar
{
color[] =
{
1,
1,
1,
0.6
};
colorActive[] =
{
1,
1,
1,
1
};
colorDisabled[] =
{
1,
1,
1,
0.3
};
shadow = 0;
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";
};
style = 16;
x = 0;
y = 0;
w = 0.12;
h = 0.035;
shadow = 0;
colorSelectBackground[] =
{
1,
1,
1,
0.7
};
arrowEmpty = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_ca.paa";
arrowFull = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_active_ca.paa";
wholeHeight = 0.45;
color[] =
{
1,
1,
1,
1
};
colorActive[] =
{
1,
0,
0,
1
};
colorDisabled[] =
{
1,
1,
1,
0.25
};
font = "PuristaMedium";
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
};
class RscListBox
{
access = 0;
type = 5;
w = 0.4;
h = 0.4;
rowHeight = 0;
colorText[] =
{
1,
1,
1,
1
};
colorScrollbar[] =
{
1,
0,
0,
0
};
colorSelect[] =
{
0,
0,
0,
1
};
colorSelect2[] =
{
0,
0,
0,
1
};
colorSelectBackground[] =
{
0.95,
0.95,
0.95,
1
};
colorSelectBackground2[] =
{
1,
1,
1,
0.5
};
colorBackground[] =
{
0,
0,
0,
0.3
};
soundSelect[] =
{
"",
0.1,
1
};
arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)";
arrowFull = "#(argb,8,8,3)color(1,1,1,1)";
class ScrollBar
{
color[] =
{
1,
1,
1,
0.6
};
colorActive[] =
{
1,
1,
1,
1
};
colorDisabled[] =
{
1,
1,
1,
0.3
};
shadow = 0;
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";
};
style = 16;
font = "PuristaMedium";
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
shadow = 0;
colorShadow[] =
{
0,
0,
0,
0.5
};
color[] =
{
1,
1,
1,
1
};
colorDisabled[] =
{
1,
1,
1,
0.25
};
period = 1.2;
maxHistoryDelay = 1;
autoScrollSpeed = -1;
autoScrollDelay = 5;
autoScrollRewind = 0;
};
class RscButton
{
access = 0;
type = 1;
text = "";
colorText[] =
{
1,
1,
1,
1
};
colorDisabled[] =
{
0.4,
0.4,
0.4,
1
};
colorBackground[] =
{
"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])",
"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])",
"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])",
0.7
};
colorBackgroundDisabled[] =
{
0.95,
0.95,
0.95,
1
};
colorBackgroundActive[] =
{
"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])",
"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])",
"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])",
1
};
colorFocused[] =
{
"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])",
"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])",
"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])",
1
};
colorShadow[] =
{
0,
0,
0,
1
};
colorBorder[] =
{
0,
0,
0,
1
};
soundEnter[] =
{
"\A3\ui_f\data\sound\onover",
0.09,
1
};
soundPush[] =
{
"\A3\ui_f\data\sound\new1",
0,
0
};
soundClick[] =
{
"\A3\ui_f\data\sound\onclick",
0.07,
1
};
soundEscape[] =
{
"\A3\ui_f\data\sound\onescape",
0.09,
1
};
style = 2;
x = 0;
y = 0;
w = 0.095589;
h = 0.039216;
shadow = 2;
font = "PuristaMedium";
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
offsetX = 0.003;
offsetY = 0.003;
offsetPressedX = 0.002;
offsetPressedY = 0.002;
borderSize = 0;
};
class RscShortcutButton
{
type = 16;
x = 0.1;
y = 0.1;
class HitZone
{
left = 0;
top = 0;
right = 0;
bottom = 0;
};
class ShortcutPos
{
left = 0;
top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
w = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)";
h = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
};
class TextPos
{
left = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)";
top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
right = 0.005;
bottom = 0;
};
shortcuts[] =
{
};
textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)";
color[] =
{
1,
1,
1,
1
};
color2[] =
{
0.95,
0.95,
0.95,
1
};
colorDisabled[] =
{
1,
1,
1,
0.25
};
colorBackground[] =
{
"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])",
"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])",
"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])",
1
};
colorBackground2[] =
{
1,
1,
1,
1
};
class Attributes
{
font = "PuristaMedium";
color = "#E5E5E5";
align = "left";
shadow = "true";
};
idc = -1;
style = 0;
default = 0;
shadow = 1;
w = 0.183825;
h = "((((safezoneW / safezoneH) min 1.2) / 1.2) / 20)";
animTextureDefault = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa";
animTextureNormal = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa";
animTextureDisabled = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa";
animTextureOver = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\over_ca.paa";
animTextureFocused = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\focus_ca.paa";
animTexturePressed = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\down_ca.paa";
periodFocus = 1.2;
periodOver = 0.8;
period = 0.4;
font = "PuristaMedium";
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
text = "";
soundEnter[] =
{
"\A3\ui_f\data\sound\onover",
0.09,
1
};
soundPush[] =
{
"\A3\ui_f\data\sound\new1",
0,
0
};
soundClick[] =
{
"\A3\ui_f\data\sound\onclick",
0.07,
1
};
soundEscape[] =
{
"\A3\ui_f\data\sound\onescape",
0.09,
1
};
action = "";
class AttributesImage
{
font = "PuristaMedium";
color = "#E5E5E5";
align = "left";
};
};
class RscShortcutButtonMain
{
idc = -1;
style = 0;
default = 0;
w = 0.313726;
h = 0.104575;
color[] =
{
1,
1,
1,
1
};
colorDisabled[] =
{
1,
1,
1,
0.25
};
class HitZone
{
left = 0;
top = 0;
right = 0;
bottom = 0;
};
class ShortcutPos
{
left = 0.0145;
top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2)) / 2";
w = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2) * (3/4)";
h = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2)";
};
class TextPos
{
left = "(((safezoneW / safezoneH) min 1.2) / 32) * 1.5";
top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20)*2 - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2)) / 2";
right = 0.005;
bottom = 0;
};
animTextureNormal = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\normal_ca.paa";
animTextureDisabled = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\disabled_ca.paa";
animTextureOver = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\over_ca.paa";
animTextureFocused = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\focus_ca.paa";
animTexturePressed = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\down_ca.paa";
animTextureDefault = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButtonMain\normal_ca.paa";
period = 0.5;
font = "PuristaMedium";
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2)";
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.2)";
text = "";
soundEnter[] =
{
"\A3\ui_f\data\sound\onover",
0.09,
1
};
soundPush[] =
{
"\A3\ui_f\data\sound\new1",
0,
0
};
soundClick[] =
{
"\A3\ui_f\data\sound\onclick",
0.07,
1
};
soundEscape[] =
{
"\A3\ui_f\data\sound\onescape",
0.09,
1
};
action = "";
class Attributes
{
font = "PuristaMedium";
color = "#E5E5E5";
align = "left";
shadow = "false";
};
class AttributesImage
{
font = "PuristaMedium";
color = "#E5E5E5";
align = "false";
};
};
class RscFrame
{
type = 0;
idc = -1;
style = 64;
shadow = 2;
colorBackground[] =
{
0,
0,
0,
0
};
colorText[] =
{
1,
1,
1,
1
};
font = "PuristaMedium";
sizeEx = 0.02;
text = "";
};
class RscSlider
{
access = 0;
type = 3;
style = 1024;
w = 0.3;
color[] =
{
1,
1,
1,
0.8
};
colorActive[] =
{
1,
1,
1,
1
};
shadow = 0;
h = 0.025;
};
class IGUIBack
{
type = 0;
idc = 124;
style = 128;
text = "";
colorText[] =
{
0,
0,
0,
0
};
font = "PuristaMedium";
sizeEx = 0;
shadow = 0;
x = 0.1;
y = 0.1;
w = 0.1;
h = 0.1;
colorbackground[] =
{
"(profilenamespace getvariable ['IGUI_BCG_RGB_R',0])",
"(profilenamespace getvariable ['IGUI_BCG_RGB_G',1])",
"(profilenamespace getvariable ['IGUI_BCG_RGB_B',1])",
"(profilenamespace getvariable ['IGUI_BCG_RGB_A',0.8])"
};
};
class RscCheckbox
{
idc = -1;
type = 7;
style = 0;
x = "LINE_X(XVAL)";
y = "LINE_Y";
w = "LINE_W(WVAL)";
h = 0.029412;
colorText[] =
{
1,
0,
0,
1
};
color[] =
{
0,
0,
0,
0
};
colorBackground[] =
{
0,
0,
1,
1
};
colorTextSelect[] =
{
0,
0.8,
0,
1
};
colorSelectedBg[] =
{
"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])",
"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])",
"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])",
1
};
colorSelect[] =
{
0,
0,
0,
1
};
colorTextDisable[] =
{
0.4,
0.4,
0.4,
1
};
colorDisable[] =
{
0.4,
0.4,
0.4,
1
};
font = "PuristaMedium";
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)";
rows = 1;
columns = 1;
strings[] =
{
"UNCHECKED"
};
checked_strings[] =
{
"CHECKED"
};
};
class RscButtonMenu
{
idc = -1;
type = 16;
style = "0x02 + 0xC0";
default = 0;
shadow = 0;
x = 0;
y = 0;
w = 0.095589;
h = 0.039216;
animTextureNormal = "#(argb,8,8,3)color(1,1,1,1)";
animTextureDisabled = "#(argb,8,8,3)color(1,1,1,1)";
animTextureOver = "#(argb,8,8,3)color(1,1,1,0.5)";
animTextureFocused = "#(argb,8,8,3)color(1,1,1,1)";
animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)";
animTextureDefault = "#(argb,8,8,3)color(1,1,1,1)";
colorBackground[] =
{
0,
0,
0,
0.8
};
colorBackground2[] =
{
1,
1,
1,
0.5
};
color[] =
{
1,
1,
1,
1
};
color2[] =
{
1,
1,
1,
1
};
colorText[] =
{
1,
1,
1,
1
};
colorDisabled[] =
{
1,
1,
1,
0.25
};
period = 1.2;
periodFocus = 1.2;
periodOver = 1.2;
size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
class TextPos
{
left = "0.25 * (((safezoneW / safezoneH) min 1.2) / 40)";
top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
right = 0.005;
bottom = 0;
};
class Attributes
{
font = "PuristaLight";
color = "#E5E5E5";
align = "left";
shadow = "false";
};
class ShortcutPos
{
left = "(6.25 * (((safezoneW / safezoneH) min 1.2) / 40)) - 0.0225 - 0.005";
top = 0.005;
w = 0.0225;
h = 0.03;
};
};
class RscButtonMenuOK
{
idc = 1;
shortcuts[] =
{
"0x00050000 + 0",
28,
57,
156
};
default = 1;
text = "OK";
};
class RscButtonMenuCancel
{
idc = 2;
shortcuts[] =
{
"0x00050000 + 1"
};
text = "Cancel";
};
class RscControlsGroup
{
class VScrollbar
{
color[] =
{
1,
1,
1,
1
};
width = 0.021;
autoScrollSpeed = -1;
autoScrollDelay = 5;
autoScrollRewind = 0;
shadow = 0;
};
class HScrollbar
{
color[] =
{
1,
1,
1,
1
};
height = 0.028;
shadow = 0;
};
class ScrollBar
{
color[] =
{
1,
1,
1,
0.6
};
colorActive[] =
{
1,
1,
1,
1
};
colorDisabled[] =
{
1,
1,
1,
0.3
};
shadow = 0;
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";
};
class Controls
{
};
type = 15;
idc = -1;
x = 0;
y = 0;
w = 1;
h = 1;
shadow = 0;
style = 16;
};
Solution
description.ext
#include "common.hpp"
// In order for this to work with cutRsc it needs to be defined within RscTitles
class RscTitles {
#include "userInterface.hpp"
};