Jump to content
Sign in to follow this  
rejenorst

Text Box Scrollbar

Recommended Posts

Hi I am just wondering if its possible to create a simple scrollbar into a textbox?

I've created a fully working dialog but have limited space for the textbox I am using and am wondering if someone can help me out as I am trying to get a scrollbar into the textbox.

My RSC dialogue code for the textbox:

class comtext {

idc = 1000;

type = CT_STATIC; // defined constant

style = ST_MULTI; // defined constant

colorText[] = { 1, 1, 1, 1 };

colorBackground[] = { 0.1, 1, 0.1, 0 };

lineSpacing = 1;

font = FontM; // defined constant

sizeEx = 0.023;

x = 0.3; y = 0.1;

w = 0.4; h = 0.03;

};

And the actual Dialog window, class minfo is the one that needs the scrollbar. I wouldn't mind adding it to the Rsc (above) so that its automatic:

//--- HIRE.

class hire {

movingEnable = 1;//--- The dialog window can be moved.

idd = 1003;

onLoad = ""; //--- Script loaded upon creation.

class controlsBackground {

class Mainback : RscPicture {

x = 0.2;

y = 0.2;

w = 0.6;

h = 0.6;

moving = 1;

text = "caller.paa";

};

};

class controls {

class listboxA : RscListBox {

idc = 108;

x = 0.23;

y = 0.25;

w = 0.2;

h = 0.25;

onLBSelChanged = "_wepsel1 = lbCurSel 108;_text1 = lbText [108, _wepsel1];[_text1]exec 'minfo.sqs';"

};

class buttonA : RscButton {

idc = 109;

x = 0.625;

y = 0.47;

w = 0.13;

h = 0.05;

text = "HIRE";

action = "_wepsel1 = lbCurSel 108;_wepsel2 = lbCurSel 109;_text1 = lbText [104, _wepsel1];_text2 = lbText [105, _wepsel2];hint format ['WEAPON:%1 MERC:%2',(_text1),(_text2)];[(_text1),(_text2)]exec 'hire.sqs'";

};

class buttonB : RscButton {

idc = 110;

x = 0.475;

y = 0.47;

w = 0.13;

h = 0.05;

text = "EXIT";

action = "closedialog 0;";

};

class minfo : comtext {

idc = 111;

x = 0.44;

y = 0.35;

w = 0.325;

h = 0.12;

text = "";

};

class profile : RscPicture {

idc = 112;

x = 0.55;

y = 0.22;

w = 0.12;

h = 0.12;

moving = 1;

text = "profile.paa";

};

class prices : comtext {

idc = 113;

x = 0.23;

y = 0.51;

w = 0.2;

h = 0.02;

text = "Cost: $0.00";

};

};

};

And example of code I am looking at for the scroll bar, taken from:

http://ru.armacomref.wikia.com/wiki/Dialog_Control

class My_RscControlsgroup

{

type = 15;

idc = -1;

style = 0;

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 VScrollbar

{

color[] = {1, 1, 1, 1};

width = 0.021;

autoScrollSpeed = -1;

autoScrollDelay = 5;

autoScrollRewind = 0;

};

class HScrollbar

{

color[] = {1, 1, 1, 1};

height = 0.028;

};

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

{

class My_RscStructuredText

{

idc = 55;

colorBackground[] = {1,1,1,0.3};

x = 0;

y = 0;

w = (SafezoneW * 0.3);

h = (SafezoneH * 3);

text = "";

size = 0.02;

class Attributes

{

font = "TahomaB";

color = "#106A1A";

align = "center";

valign = "middle";

shadow = false;

shadowColor = "#ff0000";

size = "1";

};

};

};

};

---------- Post added at 12:11 PM ---------- Previous post was at 10:46 AM ----------

Alternatively if someone has a structured text and scrollbar template they can show me I'd settle for that. Thanks.

Share this post


Link to post
Share on other sites

Since this has no replies but it's a prime search result candidate, I will ask here so there's an answer for future reference:

I'm trying to use dialogs for the first time. How do you get a scrollbar to show up in a text box? The wiki just says something about the text box 'h' value being higher than the parent control, but I've tried it and nothing happened (what I thought it was, anyway). I've also tried adding scrollbox entries to everything but still nothing.

Could someone who knows please look at this and see if there's anything noticably wrong? (Text box highlighted; text is added externally)

///////////////////////////////////////////////////////////////////////////
/// 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[] = {0.8784,0.8471,0.651,1};
text = "";
fixedWidth = 0;
x = 0;
y = 0;
h = 0.037;
w = 0.3;
style = 0;
shadow = 2;
font = "Zeppelin32";
SizeEx = 0.03921;
};
class RscStructuredText
{
access = 0;
type = 13;
idc = -1;
style = 0;
colorText[] = {0.8784,0.8471,0.651,1};
class Attributes
{
	font = "Zeppelin32";
	color = "#e0d8a6";
	align = "center";
	shadow = 1;
};
x = 0;
y = 0;
h = 0.035;
w = 0.1;
text = "";
size = 0.09921;
shadow = 2;


};


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 = 0;
x = 0;
y = 0;
h = 0.04;
w = 0.2;
colorBackground[] = {0,0,0,1};
colorText[] = {0.95,0.95,0.95,1};
colorSelection[] = {0.8784,0.8471,0.651,1};
autocomplete = "";
text = "";
size = 0.2;
style = "0x00 + 0x40";
font = "Zeppelin32";
shadow = 2;
sizeEx = 0.03921;
};
class RscCombo
{
access = 0;
type = 4;
style = 0;
colorSelect[] = {0.023529,0,0.0313725,1};
colorText[] = {0.023529,0,0.0313725,1};
colorBackground[] = {0.95,0.95,0.95,1};
colorScrollbar[] = {0.023529,0,0.0313725,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 = "\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";
};
x = 0;
y = 0;
w = 0.12;
h = 0.035;
shadow = 0;
colorSelectBackground[] = {0.8784,0.8471,0.651,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};
colorActive[] = {0,0,0,1};
colorDisabled[] = {0,0,0,0.3};
font = "Zeppelin32";
sizeEx = 0.03921;
};
class RscListBox
{
       idc = -1;
//access = 0;
type = 5;
w = 0.4;
h = 0.1;
rowHeight = 0.03;
colorText[] = {0.8784,0.8471,0.651,1};
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,0,0,1};
colorSelectBackground2[] = {0.8784,0.8471,0.651,1};
colorBackground[] = {0,0,0,0.5};
soundSelect[] = {"",0.1,1};
arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)";
arrowFull = "#(argb,8,8,3)color(1,1,1,1)";

style = 0 + 0x10;
font = "Zeppelin32";
shadow = 2;
sizeEx = 0.04921;
color[] = {1,1,1,1};
period = 0;
maxHistoryDelay = 1;
autoScrollSpeed = -1;
autoScrollDelay = 5;
autoScrollRewind = 0;

class ScrollBar {
	color[] = {1, 1, 1, 0.6};
	colorActive[] = {1, 1, 1, 1};
	colorDisabled[] = {1, 1, 1, 0.3};
	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 RscButton
{
access = 0;
type = 1;
text = "";
colorText[] = {0.8784,0.8471,0.651,1};
colorDisabled[] = {0.4,0.4,0.4,1};
colorBackground[] = {1,0.537,0,0.5};
colorBackgroundDisabled[] = {0.95,0.95,0.95,1};
colorBackgroundActive[] = {1,0.537,0,1};
colorFocused[] = {1,0.537,0,1};
colorShadow[] = {0.023529,0,0.0313725,1};
colorBorder[] = {0.023529,0,0.0313725,1};
soundEnter[] = {"\ca\ui\data\sound\onover",0.09,1};
soundPush[] = {"\ca\ui\data\sound\new1",0,0};
soundClick[] = {"\ca\ui\data\sound\onclick",0.07,1};
soundEscape[] = {"\ca\ui\data\sound\onescape",0.09,1};
style = 2;
x = 0;
y = 0;
w = 0.095589;
h = 0.039216;
shadow = 2;
font = "Zeppelin32";
sizeEx = 0.03921;
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.004;
	top = 0.029;
	right = 0.004;
	bottom = 0.029;
};
class ShortcutPos
{
	left = 0.0145;
	top = 0.026;
	w = 0.0392157;
	h = 0.0522876;
};
class TextPos
{
	left = 0.05;
	top = 0.034;
	right = 0.005;
	bottom = 0.005;
};
shortcuts[] = {};
textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)";
color[] = {0.8784,0.8471,0.651,1};
color2[] = {0.95,0.45,0.25,1};
colorDisabled[] = {1,1,1,0.25};
colorBackground[] = {1,1,1,1};
colorBackground2[] = {1,1,1,0.4};
class Attributes
{
	font = "Zeppelin32";
	color = "#E5E5E5";
	align = "left";
	shadow = "true";
};
idc = -1;
style = 0;
default = 0;
shadow = 2;
w = 0.183825;
h = 0.104575;
periodFocus = 1.2;
periodOver = 0.8;
animTextureNormal = "\ca\ui\data\ui_button_normal_ca.paa";
animTextureDisabled = "\ca\ui\data\ui_button_disabled_ca.paa";
animTextureOver = "\ca\ui\data\ui_button_over_ca.paa";
animTextureFocused = "\ca\ui\data\ui_button_focus_ca.paa";
animTexturePressed = "\ca\ui\data\ui_button_down_ca.paa";
animTextureDefault = "\ca\ui\data\ui_button_default_ca.paa";
period = 0.4;
font = "Zeppelin32";
size = 0.03921;
sizeEx = 0.03921;
text = "";
soundEnter[] = {"\ca\ui\data\sound\onover",0.09,1};
soundPush[] = {"\ca\ui\data\sound\new1",0,0};
soundClick[] = {"\ca\ui\data\sound\onclick",0.07,1};
soundEscape[] = {"\ca\ui\data\sound\onescape",0.09,1};
action = "";
class AttributesImage
{
	font = "Zeppelin32";
	color = "#E5E5E5";
	align = "left";
};
};
class RscShortcutButtonMain
{
idc = -1;
style = 0;
default = 0;
w = 0.313726;
h = 0.104575;
color[] = {0.8784,0.8471,0.651,1};
colorDisabled[] = {1,1,1,0.25};
class HitZone
{
	left = 0;
	top = 0;
	right = 0;
	bottom = 0;
};
class ShortcutPos
{
	left = 0.0204;
	top = 0.026;
	w = 0.0392157;
	h = 0.0522876;
};
class TextPos
{
	left = 0.08;
	top = 0.034;
	right = 0.005;
	bottom = 0.005;
};
animTextureNormal = "\ca\ui\data\ui_button_main_normal_ca.paa";
animTextureDisabled = "\ca\ui\data\ui_button_main_disabled_ca.paa";
animTextureOver = "\ca\ui\data\ui_button_main_over_ca.paa";
animTextureFocused = "\ca\ui\data\ui_button_main_focus_ca.paa";
animTexturePressed = "\ca\ui\data\ui_button_main_down_ca.paa";
animTextureDefault = "\ca\ui\data\ui_button_main_normal_ca.paa";
period = 0.5;
font = "Zeppelin32";
size = 0.03921;
sizeEx = 0.03921;
text = "";
soundEnter[] = {"\ca\ui\data\sound\onover",0.09,1};
soundPush[] = {"\ca\ui\data\sound\new1",0,0};
soundClick[] = {"\ca\ui\data\sound\onclick",0.07,1};
soundEscape[] = {"\ca\ui\data\sound\onescape",0.09,1};
action = "";
class Attributes
{
	font = "Zeppelin32";
	color = "#E5E5E5";
	align = "left";
	shadow = "false";
};
class AttributesImage
{
	font = "Zeppelin32";
	color = "#E5E5E5";
	align = "false";
};
};
class RscFrame
{
type = 0;
idc = -1;
style = 64;
shadow = 2;
colorBackground[] = {0,0,0,0};
colorText[] = {0.8784,0.8471,0.651,1};
font = "Zeppelin32";
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 RscDisplayTest
{
idd = 3000;
       type = CT_COMBO;
movingenable = false;
       onLoad = "uiNamespace setVariable ['d_MyRscTitle', _this select 0]";


  	class VScrollbar  {
	color[] = {1,1,1,1 };
	width = 0.021000;
	autoScrollSpeed = -1;
	autoScrollDelay = 5;
	autoScrollRewind = 0;
};

class HScrollbar {
	color[] = {1, 1, 1, 1};
	height = 0.028;
};

       class ScrollBar  {// for ARMA 2
	color[] = {1,1,1,0.600000 };
	colorActive[] = {1,1,1,1 };
	colorDisabled[] = {1,1,1,0.300000 };
	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
{


	class MyBackground: RscText
	{
		idc = 1000;
		x = 0.3125 * safezoneW + safezoneX;
		y = 0.35 * safezoneH + safezoneY;
		w = 0.375 * safezoneW;
		h = 0.5 * safezoneH;
		colorBackground[] = {0,0,0,0.5};
                       moving = 0;
	};
	class MyHeader: RscText
	{
		style = ST_CENTER;

		idc = 1001;
		text = "Email Exchange";
		x = 0.3125 * safezoneW + safezoneX;
		y = 0.35 * safezoneH + safezoneY;
		w = 0.375 * safezoneW;
		h = 0.05 * safezoneH;
		colorBackground[] = {0,0,0,0.5};
	};


              [color="DarkRed"] class MyTextBox: RscStructuredText
	{
                       type = CT_STRUCTURED_TEXT
                       style = ST_MULTI;
                       lineSpacing = 1;
		idc = 1235;
                       size = 0.09;  


	        text = " ";

		x = 0.32815 * safezoneW + safezoneX;
		y = 0.4575 * safezoneH + safezoneY;
		w = 0.343 * safezoneW;
		h = 0.315 * safezoneH;



	};[/color]

               class MyEditbox: RscEdit
	{
		idc = 1234;
	        text = "Email Exchange";
		x = 0.328125 * safezoneW + safezoneX;
		y = 0.425 * safezoneH + safezoneY;
		w = 0.34375 * safezoneW;
		h = 0.35 * safezoneH;
	};
	class MyButtonOK: RscShortcutButton
	{
		onButtonClick = "hint ctrltext ((ctrlParent (_this select 0)) displayCtrl 1235);";

		idc = 1700;
		text = "Ok";
		x = 0.53125 * safezoneW + safezoneX;
		y = 0.775 * safezoneH + safezoneY;
		w = 0.140625 * safezoneW;
		h = 0.1 * safezoneH;
	};
	class MyButtonBack: RscShortcutButton
	{
		onButtonClick = "((ctrlParent (_this select 0)) closeDisplay 3000);";

		idc = 1701;
		text = "Cancel";
		x = 0.328125 * safezoneW + safezoneX;
		y = 0.775 * safezoneH + safezoneY;
		w = 0.140625 * safezoneW;
		h = 0.1 * safezoneH;
	};
};
};

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  

×