class RscButton; class RscControlsGroup; class RscControlsGroupNoScrollbars; class RscListNBox { class ScrollBar; }; class RscMapControl; class RscPicture; class RscPictureKeepAspect; class RscText; class RscToolbox; class RscTree; class EGVAR(common,CompassControl); // Based on RscDisplayEGSpectator (sadly Arma doesn't like display inheritance) class GVAR(display) { idd = IDD_SPEC_DISPLAY; enableSimulation = 1; movingEnable = 0; closeOnMissionEnd = 1; onLoad = QUOTE(_this call FUNC(ui_handleLoad)); onUnload = QUOTE(_this call FUNC(ui_handleUnload)); onKeyDown = QUOTE(_this call FUNC(ui_handleKeyDown)); onKeyUp = QUOTE(_this call FUNC(ui_handleKeyUp)); onMouseMoving = QUOTE(_this call FUNC(ui_handleMouseMoving)); onChildDestroyed = QUOTE(_this call FUNC(ui_handleChildDestroyed)); class ControlsBackground { class MouseHandler: RscText { idc = IDC_MOUSE; onMouseButtonDown = QUOTE(_this call FUNC(ui_handleMouseButtonDown)); onMouseButtonUp = QUOTE(if ((_this select 1) == 1) then { GVAR(holdingRMB) = false; };); onMouseButtonDblClick = QUOTE(_this call FUNC(ui_handleMouseButtonDblClick)); onMouseZChanged = QUOTE(_this call FUNC(ui_handleMouseZChanged)); text = ""; x = "safeZoneXAbs"; y = "safeZoneY"; w = "safeZoneWAbs"; h = "safeZoneH"; colorBackground[] = {1,1,1,0}; style = 16; }; }; class Controls { class List: RscTree { idc = IDC_LIST; onMouseEnter = QUOTE([false] call FUNC(ui_fadeList)); onMouseExit = QUOTE([true] call FUNC(ui_fadeList)); onTreeSelChanged = QUOTE([ARR_2(false,_this)] call FUNC(ui_handleListClick)); onTreeDblClick = QUOTE([ARR_2(true,_this)] call FUNC(ui_handleListClick)); x = "safeZoneX"; y = QUOTE(safeZoneY + H_PART(1.5)); w = QUOTE(W_PART(13.5)); h = QUOTE(safeZoneH - H_PART(1.5)); disableKeyboardSearch = 1; multiselectEnabled = 0; colorBorder[] = {0,0,0,0}; colorBackground[] = {0,0,0,0.75}; expandOnDoubleclick = 1; fade = 0.8; shadow = 1; colorLines[] = {0,0,0,0}; class ScrollBar { width = 0; height = 0; scrollSpeed = 0.1; color[] = {1,1,1,0}; }; }; class Tabs: RscToolbox { idc = IDC_TABS; //onToolBoxSelChanged = QUOTE(_this call FUNC(ui_handleTabSelected)); onMouseEnter = QUOTE([false] call FUNC(ui_fadeList)); onMouseExit = QUOTE([true] call FUNC(ui_fadeList)); x = "safeZoneX"; y = "safezoneY"; w = QUOTE(W_PART(13.5)); h = QUOTE(H_PART(1.5)); fade = 0.5; rows = 1; columns = 1; strings[] = {"$STR_A3_Spectator_Entities"}; values[] = {0}; sizeEx = QUOTE(H_PART(1)); colorBackground[] = {0,0,0,0.75}; colorSelectedBg[] = {0,0,0,0.65}; }; class CameraTypesGroup: RscControlsGroupNoScrollbars { idc = IDC_CAM_TYPES; x = QUOTE(X_PART(15.5)); y = QUOTE(safezoneY + safezoneH - H_PART(2.38)); w = QUOTE(W_PART(8.6)); h = 2.6; class controls { class CameraTypesBackground: RscText { x = QUOTE(W_PART(0.6)); y = QUOTE(H_PART(0.4)); w = QUOTE(W_PART(7.5)); h = QUOTE(H_PART(2)); colorBackground[] = {0,0,0,0.75}; }; class Free: RscButton { style = 48; idc = IDC_FREE; onButtonClick = QUOTE([MODE_FREE] call FUNC(cam_setCameraMode)); x = QUOTE(W_PART(1.3)); y = QUOTE(H_PART(0.8)); w = QUOTE(W_PART(1.63)); h = QUOTE(H_PART(1.37)); colorBackground[] = {0,0,0,0}; colorBackgroundDisabled[] = {0,0,0,0}; colorBackgroundActive[] = {0,0,0,0}; colorFocused[] = {0,0,0,0}; text = CAM_ICON_FREE; tooltip = "$STR_A3_Spectator_free_camera_tooltip"; }; class Follow: RscButton { style = 48; idc = IDC_FOLLOW; onButtonClick = QUOTE([MODE_FOLLOW] call FUNC(cam_setCameraMode)); x = QUOTE(W_PART(3.6)); y = QUOTE(H_PART(0.8)); w = QUOTE(W_PART(1.63)); h = QUOTE(H_PART(1.37)); colorBackground[] = {0,0,0,0}; colorBackgroundDisabled[] = {0,0,0,0}; colorBackgroundActive[] = {0,0,0,0}; colorFocused[] = {0,0,0,0}; text = CAM_ICON_FOLLOW; tooltip = "$STR_A3_Spectator_3pp_camera_tooltip"; }; class Fps: RscButton { style = 48; idc = IDC_FPS; onButtonClick = QUOTE([MODE_FPS] call FUNC(cam_setCameraMode)); x = QUOTE(W_PART(5.8)); y = QUOTE(H_PART(0.8)); w = QUOTE(W_PART(1.63)); h = QUOTE(H_PART(1.37)); colorBackground[] = {0,0,0,0}; colorBackgroundDisabled[] = {0,0,0,0}; colorBackgroundActive[] = {0,0,0,0}; colorFocused[] = {0,0,0,0}; text = CAM_ICON_FPS; tooltip = "$STR_A3_Spectator_1pp_camera_tooltip"; }; }; }; class MapGroup: RscControlsGroupNoScrollbars { idc = IDC_MAP_GROUP; x = 0; y = 0.1; w = 1; h = 0.8; class controls { class MapHeader: RscText { x = 0; y = 0; w = 1; h = 0.05; colorBackground[] = {0,0,0,0.75}; }; class MapFooter: RscText { idc = IDC_MAP_FOOTER; x = 0; y = 0.75; w = 1; h = 0.05; text = ""; style = 2; colorBackground[] = {0,0,0,0.75}; sizeEx = QUOTE(H_PART(1)); }; class GameTimeText: RscText { idc = IDC_TIME; x = 0.01; y = 0.76; w = 0.29; h = 0.03; text = "00:00:00"; sizeEx = QUOTE(H_PART(1)); }; class MapTitle: RscText { idc = IDC_MAP_TITLE; x = 0.01; y = 0.01; w = 0.69; h = 0.03; text = ""; colorText[] = {1,1,1,1}; sizeEx = QUOTE(H_PART(1)); }; class SpectatorsCount: RscText { idc = IDC_MAP_SPEC_NUM; x = 0.97; y = 0.01; w = 0.03; h = 0.03; text = ""; colorText[] = {1,1,1,1}; sizeEx = QUOTE(H_PART(1)); }; class SpectatorsIcon: RscPictureKeepAspect { x = 0.94; y = 0.01; w = 0.03; h = 0.03; text = CAM_ICON_FPS_SELECTED; }; }; }; class Map: RscMapControl { idc = IDC_MAP; onDraw = QUOTE(_this call FUNC(ui_handleMapDraw)); onMouseButtonClick = QUOTE(_this call FUNC(ui_handleMapClick)); x = 0; y = 0.15; w = 1; h = 0.7; maxSatelliteAlpha = 0.75; colorBackground[] = {1,1,1,1}; }; class HelpBackground: RscText { idc = IDC_HELP_BACK; x = QUOTE(safezoneX + safezoneW - W_PART(12)); y = QUOTE(safezoneY + safezoneH - H_PART(8)); w = QUOTE(W_PART(12)); h = QUOTE(H_PART(8)); colorBackground[] = {0,0,0,0.75}; }; class Help: RscListNBox { class ListScrollBar: ScrollBar {}; disableOverflow = 0; rowHeight = QUOTE(H_PART(1)); idc = IDC_HELP; x = QUOTE(safezoneX + safezoneW - W_PART(12)); y = QUOTE(safezoneY + safezoneH - H_PART(12)); w = QUOTE(W_PART(12)); h = QUOTE(H_PART(12)); }; class FocusInfo: RscControlsGroupNoScrollbars { idc = IDC_WIDGET; x = QUOTE(X_PART(12.9)); y = QUOTE(Y_PART(24)); w = QUOTE(W_PART(14.2)); h = QUOTE(H_PART(3.5)); class controls { class UpperBackground: RscText { x = 0; y = 0; w = QUOTE(W_PART(14.2)); h = QUOTE(H_PART(1.4)); colorBackground[] = {0,0,0,0.75}; }; class StatsBackground: RscText { x = 0; y = QUOTE(H_PART(1.5)); w = QUOTE(W_PART(6)); h = QUOTE(H_PART(2)); colorBackground[] = {0,0,0,0.75}; }; class WeaponBackground: RscText { x = QUOTE(W_PART(6.1)); y = QUOTE(H_PART(1.5)); w = QUOTE(W_PART(6)); h = QUOTE(H_PART(2)); colorBackground[] = {1,1,1,0.4}; }; class ThrowableBackground: RscText { x = QUOTE(W_PART(12.2)); y = QUOTE(H_PART(1.5)); w = QUOTE(W_PART(2)); h = QUOTE(H_PART(2)); colorBackground[] = {1,1,1,0.4}; }; class Name: RscText { shadow = 0; idc = IDC_WIDGET_NAME; text = ""; x = QUOTE(W_PART(0.1)); y = QUOTE(H_PART(0.1)); w = QUOTE(W_PART(10.8)); h = QUOTE(H_PART(1.2)); sizeEx = QUOTE(H_PART(1)); }; class VehiclePos: RscPictureKeepAspect { idc = IDC_WIDGET_VEHICLE_POS; text = ""; x = QUOTE(W_PART(11)); y = QUOTE(H_PART(0.2)); w = QUOTE(W_PART(1)); h = QUOTE(H_PART(1)); }; class VehicleType: RscPicture { idc = IDC_WIDGET_VEHICLE; text = ""; x = QUOTE(W_PART(12.1)); y = QUOTE(H_PART(0.2)); w = QUOTE(W_PART(2)); h = QUOTE(H_PART(1)); }; class UnitType: RscPictureKeepAspect { idc = IDC_WIDGET_UNIT; text = ""; x = QUOTE(W_PART(13.1)); y = QUOTE(H_PART(0.2)); w = QUOTE(W_PART(1)); h = QUOTE(H_PART(1)); }; class Kills: RscPictureKeepAspect { text = "a3\Ui_f\data\IGUI\Cfg\MPTable\infantry_ca.paa"; x = QUOTE(W_PART(0.1)); y = QUOTE(H_PART(1.6)); w = QUOTE(W_PART(0.8)); h = QUOTE(H_PART(0.8)); }; class LandKills: RscPictureKeepAspect { text = "a3\Ui_f\data\IGUI\Cfg\MPTable\soft_ca.paa"; x = QUOTE(W_PART(1.1)); y = QUOTE(H_PART(1.6)); w = QUOTE(W_PART(0.8)); h = QUOTE(H_PART(0.8)); }; class ArmoredKills: RscPictureKeepAspect { text = "a3\Ui_f\data\IGUI\Cfg\MPTable\armored_ca.paa"; x = QUOTE(W_PART(2.1)); y = QUOTE(H_PART(1.6)); w = QUOTE(W_PART(0.8)); h = QUOTE(H_PART(0.8)); }; class AirKills: RscPictureKeepAspect { text = "a3\Ui_f\data\IGUI\Cfg\MPTable\air_ca.paa"; x = QUOTE(W_PART(3.1)); y = QUOTE(H_PART(1.6)); w = QUOTE(W_PART(0.8)); h = QUOTE(H_PART(0.8)); }; class Deaths: RscPictureKeepAspect { text = "a3\Ui_f\data\IGUI\Cfg\MPTable\killed_ca.paa"; x = QUOTE(W_PART(4.1)); y = QUOTE(H_PART(1.6)); w = QUOTE(W_PART(0.8)); h = QUOTE(H_PART(0.8)); }; class Total: RscPictureKeepAspect { text = "a3\Ui_f\data\IGUI\Cfg\MPTable\total_ca.paa"; x = QUOTE(W_PART(5.1)); y = QUOTE(H_PART(1.6)); w = QUOTE(W_PART(0.8)); h = QUOTE(H_PART(0.8)); }; class Kills_Count: RscText { style = 2; shadow = 0; idc = IDC_WIDGET_KILLS; text = ""; x = QUOTE(W_PART(0.1)); y = QUOTE(H_PART(2.5)); w = QUOTE(W_PART(0.8)); h = QUOTE(H_PART(0.9)); sizeEx = QUOTE(H_PART(0.7)); }; class LandKills_Count: RscText { style = 2; shadow = 0; idc = IDC_WIDGET_LAND; text = ""; x = QUOTE(W_PART(1.1)); y = QUOTE(H_PART(2.5)); w = QUOTE(W_PART(0.8)); h = QUOTE(H_PART(0.9)); sizeEx = QUOTE(H_PART(0.7)); }; class ArmoredKills_Count: RscText { style = 2; shadow = 0; idc = IDC_WIDGET_ARMORED; text = ""; x = QUOTE(W_PART(2.1)); y = QUOTE(H_PART(2.5)); w = QUOTE(W_PART(0.8)); h = QUOTE(H_PART(0.9)); sizeEx = QUOTE(H_PART(0.7)); }; class AirKills_Count: RscText { style = 2; shadow = 0; idc = IDC_WIDGET_AIR; text = ""; x = QUOTE(W_PART(3.1)); y = QUOTE(H_PART(2.5)); w = QUOTE(W_PART(0.8)); h = QUOTE(H_PART(0.9)); sizeEx = QUOTE(H_PART(0.7)); }; class Deaths_Count: RscText { style = 2; shadow = 0; idc = IDC_WIDGET_DEATHS; text = ""; x = QUOTE(W_PART(4.1)); y = QUOTE(H_PART(2.5)); w = QUOTE(W_PART(0.8)); h = QUOTE(H_PART(0.9)); sizeEx = QUOTE(H_PART(0.7)); }; class Total_Count: RscText { style = 2; shadow = 0; idc = IDC_WIDGET_TOTAL; text = ""; x = QUOTE(W_PART(5.1)); y = QUOTE(H_PART(2.5)); w = QUOTE(W_PART(0.8)); h = QUOTE(H_PART(0.9)); sizeEx = QUOTE(H_PART(0.7)); }; class WeaponPicture: RscPictureKeepAspect { idc = IDC_WIDGET_WEAPON; text = ""; x = QUOTE(W_PART(6.2)); y = QUOTE(H_PART(1.6)); w = QUOTE(W_PART(5.8)); h = QUOTE(H_PART(1.8)); }; class ThrowablePicture: RscPictureKeepAspect { idc = IDC_WIDGET_THROWABLE; text = ""; x = QUOTE(W_PART(12.3)); y = QUOTE(H_PART(1.6)); w = QUOTE(W_PART(1.8)); h = QUOTE(H_PART(1.8)); }; }; }; class compass: EGVAR(common,CompassControl) {}; }; };