Jump to content
Sign in to follow this  
HazJ

Dialogs - Rsc Listbox & Rsc Combo Box

Recommended Posts

Hi, I am very new to making dialogs and I am currently stuck and need some help please. I have made a 'Rsc Listbox' and a 'Rsc Combo Box' but I don't know how to make it execute a script when clicked/selected? I have tried this but I am getting no where with it as I think it is too complex for me... Any help would be much appreciated! :)

Dirty Haz

Share this post


Link to post
Share on other sites

select a group/squad from a list (labelled idc = 1500)

_index = lbCurSel 1500;
_returnedGroup = lbText [1500, _index];
_selectedGroup = lbSetCurSel [1500, _index];
_playergrp = group player;

{
 if (side _x == side player) then 
	{			
	  _GroupName set [count _GroupName,_x];
	};
  } foreach allGroups;

      _array1 = _GroupName;
	_array2 = [_playerGrp];
	_array3 = _array1 - _array2;		


_selected = _array3 select (_index);
hint format ["Selected Group: %1",_selected];

Share this post


Link to post
Share on other sites

Thanks but I have no idea where to put this... Can you explain please? :)

Dirty Haz

Edit/Update:

Also, how do I make it execute a script?

Dirty Haz

Edited by Dirty Haz
Edit/Update

Share this post


Link to post
Share on other sites

in a basic way - that is another script that you create and place that stuff in there - lets say the group join function/script

when the dialog pops up - u click and highlight a group in the list

you then have an execute button - that when pressed e.g


//this is from the gui menu

idc = 1500;
       	text = "Engineer"; //--- ToDo: Localize;
       	action="[] spawn groupjoin";   //this line here is a function that calls the group join function/script
       	x = 0.304051 * safezoneW + safezoneX;
       	y = 0.313069 * safezoneH + safezoneY;
       	w = 0.0721917 * safezoneW;
       	h = 0.0439838 * safezoneH;

it calls groupjoin script

in that script you should have....

_index = lbCurSel 1500;
_returnedGroup = lbText [1500, _index];
_selectedGroup = lbSetCurSel [1500, _index];
_playergrp = group player;

{
 if (side _x == side player) then 
	{			
	  _GroupName set [count _GroupName,_x];
	};
  } foreach allGroups;

      _array1 = _GroupName;
	_array2 = [_playerGrp];
	_array3 = _array1 - _array2;		


_selected = _array3 select (_index);
hint format ["Selected Group: %1",_selected];

this script then checks ibcursel 1500 - which is the idc 1500 box - it looks at what the cursor has selected and then returns the group

thats when you then do stuff with it

Share this post


Link to post
Share on other sites

Below is what I have so far...

description.ext:

class RscPicture {
type = 0;
idc = -1;
style = 48;
colorText[] = {0.75, 0.75, 0.75, 1};
colorBackground[] = {0, 0, 0, 0};
font = "puristaMedium";
sizeEx = 0.025;
soundClick[] = {"ui\ui_ok", 0.2, 1};
soundEnter[] = {"ui\ui_over", 0.2, 1};
soundEscape[] = {"ui\ui_cc", 0.2, 1};
soundPush[] = {"", 0.2, 1};
w = 0.275;
h = 0.04;
text = "";
};

class RscListBox {
idc = 2100;
type = 5;
style = 0 + 0x10;
font = "puristaMedium";
sizeEx = 0.04221;
rowHeight = 0.03;
color[] = {1, 1, 1, 1};
colorDisabled[] = {};
colorText[] = {1, 1, 1, 0.75};
colorScrollbar[] = {0.95, 0.95, 0.95, 1};
colorSelect[] = {0.95, 0.95, 0.95, 1};
colorSelect2[] = {0.95, 0.95, 0.95, 1};
colorSelectBackground[] = {0.6, 0.8392, 0.4706, 1.0};
colorSelectBackground2[] = {0.6, 0.8392, 0.4706, 1.0};
columns[] = {0.1, 0.7, 0.1, 0.1};
period = 0;
colorBackground[] = {0, 0, 0, 1};
maxHistoryDelay = 1.0;
autoScrollSpeed = -1;
autoScrollDelay = 5;
autoScrollRewind = 0;
soundSelect[] = {"\ca\ui\data\sound\new1", 0.09, 1};

class ScrollBar {
color[] = {1, 1, 1, 0.6};
colorDisabled[] = {};
colorActive[] = {1, 1, 1, 1};
thumb = "\ca\ui\data\igui_scrollbar_thumb_ca.paa";
arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa";
arrowEmpty = "\ca\ui\data\igui_arrow_top_ca.paa";
border = "\ca\ui\data\igui_border_scroll_ca.paa";
};
};

class RscCombo {
idc = 2100;
type = 4;
style = 1;
x = 0;
y = 0;
w = 0.3;
h = 0.035;
colorSelect[] = {0.023529, 0, 0.0313725, 1};
colorText[] = {0.023529, 0, 0.0313725, 1};
colorBackground[] = {0.95, 0.95, 0.95, 1};
colorSelectBackground[] = {0.543, 0.5742, 0.4102, 1.0};
colorScrollbar[] = {0.023529, 0, 0.0313725, 1};
arrowEmpty = "\ca\ui\data\ui_arrow_combo_ca.paa";
arrowFull = "\ca\ui\data\ui_arrow_combo_active_ca.paa";
wholeHeight = 0.45;
color[] = {0, 0, 0, 0.6};
colorDisabled[] = {};
colorActive[] = {0, 0, 0, 1};
font = "puristaMedium";
sizeEx = 0.031;
soundSelect[] = {"\ca\ui\data\sound\new1", 0.09, 1};
soundExpand[] = {"\ca\ui\data\sound\new1", 0.09, 1};
soundCollapse[] = {"\ca\ui\data\sound\new1", 0.09, 1};
maxHistoryDelay = 1.0;

class ScrollBar {
color[] = {1, 1, 1, 0.6};
colorDisabled[] = {};
colorActive[] = {1, 1, 1, 1};
thumb = "\ca\ui\data\ui_scrollbar_thumb_ca.paa";
arrowFull = "\ca\ui\data\ui_arrow_top_active_ca.paa";
arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa";
border = "\ca\ui\data\ui_border_scroll_ca.paa";
};
};

class Sample {
movingEnable = 1;
idd = 10001;
onLoad = "ExecVM 'test.sqf'";
class controlsBackground {
class Mainback : RscPicture {
x = 0.04;
y = 0.01;
w = 1.25;
h = 1.67;
moving = 1;
text = "\ca\ui\data\igui_background_buy_units_ca.paa";
};
};
class controls {
class listboxA : RscListBox {
idc = 2100;
x = 0.043;
y = 0.167676;
w = 0.45;
h = 0.444;
};
class comboA: RscCombo {
idc = 2100;
x = 0.65;
w = 0.3;
y = 0.127;
};
};
};

test.sqf:

{lbAdd[2100,_x]} forEach ["Listbox 1","Listbox 2","Listbox 3"];
{lbAdd[2100,_x]} forEach ["Combo 1","Combo 2","Combo 3"];

Again, sorry. I am very new to this but really want to learn it! :)

Dirty Haz

Share this post


Link to post
Share on other sites

That is for buttons though, right? I know how to do them. I need help with 'Rsc Listbox' + 'Rsc Combo Box' but it seems very hard as there is only one class block thingy unlike the buttons.

Dirty Haz

Share this post


Link to post
Share on other sites

You can use the same process, instead of using the button to execute, you can use a loop that runs whilst a dialog is opened. That loop reads whats in the list and then executes it, by reading what is in that particular position of the list.

Share this post


Link to post
Share on other sites

I still don't get it! Very sorry... I am trying really hard though. I understand what your saying sort of but I don't know how to do it. With buttons, you can call a script like this:

action = "[] execVM 'scriptname.sqf';";

In 'Rsc Listbox' and 'Rsc Combo Box' you don't have that at all... There is only one class as where buttons have multiple ones.

Dirty Haz

Share this post


Link to post
Share on other sites

What exactly are you trying to do? Sorry just most of the post seems jibberish to me. If you explain exactly what you are doing/want I might be able to help you.

Share this post


Link to post
Share on other sites

Heres something that works to show you the setup but thats all it does (not pretty).

Most of your description.ext from above would throw errors at you as it has lots of pictures from arma2

Base_Classes.hpp

#define GUI_GRID_X	(0)
#define GUI_GRID_Y	(0)
#define GUI_GRID_W	(0.025)
#define GUI_GRID_H	(0.04)
#define GUI_GRID_WAbs	(1)
#define GUI_GRID_HAbs	(1)

///////////////////////////////////////////////////////////////////////////
/// 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
};
colorDisabled[] =
{
	1,
	1,
	1,
	0.25
};
colorSelection[] =
{
	"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])",
	"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])",
	"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",
	1
};
autocomplete = "";
text = "";
size = 0.2;
style = "0x00 + 0x40";
font = "PuristaMedium";
shadow = 2;
sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
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[] =
{
	"\A3\ui_f\data\sound\RscCombo\soundSelect",
	0.1,
	1
};
soundExpand[] =
{
	"\A3\ui_f\data\sound\RscCombo\soundExpand",
	0.1,
	1
};
soundCollapse[] =
{
	"\A3\ui_f\data\sound\RscCombo\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
};
colorDisabled[] =
{
	1,
	1,
	1,
	0.25
};
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[] =
{
	"\A3\ui_f\data\sound\RscListbox\soundSelect",
	0.09,
	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
};
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.69])",
	"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])",
	"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",
	0.7
};
colorBackgroundDisabled[] =
{
	0.95,
	0.95,
	0.95,
	1
};
colorBackgroundActive[] =
{
	"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])",
	"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])",
	"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",
	1
};
colorFocused[] =
{
	"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])",
	"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])",
	"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",
	1
};
colorShadow[] =
{
	0,
	0,
	0,
	1
};
colorBorder[] =
{
	0,
	0,
	0,
	1
};
soundEnter[] =
{
	"\A3\ui_f\data\sound\RscButton\soundEnter",
	0.09,
	1
};
soundPush[] =
{
	"\A3\ui_f\data\sound\RscButton\soundPush",
	0.09,
	1
};
soundClick[] =
{
	"\A3\ui_f\data\sound\RscButton\soundClick",
	0.09,
	1
};
soundEscape[] =
{
	"\A3\ui_f\data\sound\RscButton\soundEscape",
	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.69])",
	"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])",
	"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",
	1
};
colorBackground2[] =
{
	1,
	1,
	1,
	1
};
soundEnter[] =
{
	"\A3\ui_f\data\sound\RscButton\soundEnter",
	0.09,
	1
};
soundPush[] =
{
	"\A3\ui_f\data\sound\RscButton\soundPush",
	0.09,
	1
};
soundClick[] =
{
	"\A3\ui_f\data\sound\RscButton\soundClick",
	0.09,
	1
};
soundEscape[] =
{
	"\A3\ui_f\data\sound\RscButton\soundEscape",
	0.09,
	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 = "";
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 = "";
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.69])",
	"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])",
	"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",
	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;
};
soundEnter[] =
{
	"\A3\ui_f\data\sound\RscButtonMenu\soundEnter",
	0.09,
	1
};
soundPush[] =
{
	"\A3\ui_f\data\sound\RscButtonMenu\soundPush",
	0.09,
	1
};
soundClick[] =
{
	"\A3\ui_f\data\sound\RscButtonMenu\soundClick",
	0.09,
	1
};
soundEscape[] =
{
	"\A3\ui_f\data\sound\RscButtonMenu\soundEscape",
	0.09,
	1
};
};
class RscButtonMenuOK
{
idc = 1;
shortcuts[] =
{
	"0x00050000 + 0",
	28,
	57,
	156
};
default = 1;
text = "OK";
soundPush[] =
{
	"\A3\ui_f\data\sound\RscButtonMenuOK\soundPush",
	0.09,
	1
};
};
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;
};

Description.ext

#include "Base_Classes.hpp"


class Sample {
movingEnable = 1;
idd = 10001;
onLoad = "_this ExecVM 'test.sqf'";
class controlsBackground {
	class Mainback : RscPicture {
		x = 0.04;
		y = 0.01;
		w = 1;
		h = 1;
		moving = 1;
		text = "#(argb,8,8,3)color(0,0,0,0.8)";
	};
};
class controls {
	class listboxA : RscListBox {
		idc = 2100;
		style = ST_MULTI;
		x = 0.043;
		y = 0.167676;
		w = 0.45;
		h = 0.444;
		tooltip = "Choose Type"; //--- ToDo: Localize;
		colorSelect[] = {0,0,1,1};
		rowHeight = 0.01;
	};
	class comboA: RscCombo {
		idc = 2101;
		x = 0.65;
		w = 0.3;
		y = 0.127;
	};
};
};

test.sqf

//test.sqf
disableSerialization;

//Define idc's for controls for easy access
_listBoxA = 2100;
_comboA = 2101;

//store display, passed from onLoad
_display = _this select 0;

//Add to our lb and combo lists
{
_index = lbAdd [_listBoxA, _x];
} forEach ["Listbox 1","Listbox 2","Listbox 3"];
{
_index = lbAdd [_comboA, _x];
} forEach ["Combo 1","Combo 2","Combo 3"];

//set an event to fire when a selection is made in listBoxA
(_display displayCtrl _listboxA)  ctrlAddEventHandler ["LBSelChanged","_this execVM 'scriptName.sqf'"];
//set an event to fire when a selection is made in comboA
(_display displayCtrl _comboA)  ctrlAddEventHandler ["LBSelChanged","_this execVM 'scriptName.sqf'"];

scriptName.sqf

//scriptName.sqf
disableSerialization;

//Get the passed ctrl
_ctrl = _this select 0;

//Get passed selected index
_index = _this select 1;

//test message with info
hint format ["You select index: %1\n of ctrl: %2\n which contains %3",_index, ctrlIDC _ctrl, _ctrl lbText _index];

init.sqf

player addaction ["Sample", { createDialog "Sample"; }]

I do believe you can enter the eventHandlers into the display code itself but i have only tried this way so far.

Share this post


Link to post
Share on other sites

@Larrow - Thanks, I will look at that!

@Tonic - This here. I would like them (each) to execute a script when clicked please if possible.

Dirty Haz

---------- Post added at 08:31 PM ---------- Previous post was at 08:22 PM ----------

Thank you everyone, I have now got it working... WOOHOO!!! I did what Larrow said. :)

Dirty Haz

Share this post


Link to post
Share on other sites

Oh, you want to look into onLBSelChanged or onLBDblClick.

onLBDblClick executes when you double click on a row.

onLBSelChanged executes when the row selection has changed.

Example:

class vasGear : VAS_RscListBox 
	{
		idc = 2501;
		text = "";
		sizeEx = 0.032;
		onLBSelChanged = "_this spawn VAS_fnc_details";
		onLBDblClick = "_this spawn VAS_fnc_quickItem;";

		x = 0.12; y = 0.31;
		w = 0.275; h = 0.340;
	};

That is a part out of VAS.

onLBSelChanged it executes and checks if there is magazine info about the gun in the selection, if so other stuff runs and displays info.

onLBDblClick it executes when you double click on a selection and adds the item to you.

That's only an example out of VAS though, with either method you'll want to be able to identify which row is what and what it is meant to execute, to do that when you fill your list you can use lbSetData and when retrieving it you can do:

private["_ctrl","_curSel"];
_ctrl = _this select 0;
_curSel = _this select 1;

if((_ctrl lbData _curSel) == "Execute") then
{
[] execVM "myexecutescript.sqf";
};

It's pretty much what Larrow put up, difference is I put the ctrl eventhandler in the dialog and not via script.

Share this post


Link to post
Share on other sites

Is there anyway to open up a saved dialog in the GUI Editor once it has been closed? I have tried Ctrl + O but nothing happens? Plus, this is for code format or something... :confused:

Dirty Haz

Share this post


Link to post
Share on other sites

Thank you to everyone who has helped me so far but I have a few more questions... Is there anyway to open up a saved dialog in the GUI Editor once it has been closed? I have tried Ctrl + I/O but nothing happens. How would I change some structured or normal dialog text (not via hint, titleText, etc) after I make a variable true? Does anyone have any examples for a loading/moving bar? Any help would be much appreciated! :)

Dirty Haz

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×