This commit is contained in:
Vortrex
2022-06-07 10:24:19 -05:00
parent 3298aabca3
commit e34c8c9636
2 changed files with 287 additions and 429 deletions

View File

@@ -5,59 +5,48 @@ mexui.util.monthNames = ['january', 'february', 'march', 'april', 'may', 'june',
mexui.util.weekDayNames = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'];
// functions
mexui.util.extend = function(d, b)
{
mexui.util.extend = function (d, b) {
d.prototype = Object.create(b.prototype);
d.prototype.constructor = b;
};
mexui.util.isPointInRectangle = function(point, position, size)
{
mexui.util.isPointInRectangle = function (point, position, size) {
if (!point)
return false; // temp bug fix
return point.x >= position.x && point.y >= position.y && point.x <= (position.x + size.x) && point.y <= (position.y + size.y);
};
mexui.util.isCursorInRectangle = function(position, size)
{
mexui.util.isCursorInRectangle = function (position, size) {
return mexui.util.isPointInRectangle(gui.cursorPosition, position, size);
};
mexui.util.addVec2 = function(vec2a, vec2b)
{
mexui.util.addVec2 = function (vec2a, vec2b) {
return new Vec2(vec2a.x + vec2b.x, vec2a.y + vec2b.y);
};
mexui.util.subtractVec2 = function(vec2a, vec2b)
{
mexui.util.subtractVec2 = function (vec2a, vec2b) {
return new Vec2(vec2a.x - vec2b.x, vec2a.y - vec2b.y);
};
mexui.util.addVec3 = function(vec3a, vec3b)
{
mexui.util.addVec3 = function (vec3a, vec3b) {
return new Vec3(vec3a.x + vec3b.x, vec3a.y + vec3b.y, vec3a.z + vec3b.z);
};
mexui.util.createControlConstructor = function(controlName, hasEntries, constructor)
{
mexui.util.createControlConstructor = function (controlName, hasEntries, constructor) {
mexui.Control[controlName] = constructor;
mexui.util.extend(mexui.Control[controlName], hasEntries ? mexui.Entity.ControlWithEntries : mexui.Component.Control);
};
mexui.util.linkBaseControlStyles = function(controlName, derivedStyles)
{
mexui.util.linkBaseControlStyles = function (controlName, derivedStyles) {
mexui.Control[controlName].defaultStyles = mexui.util.linkStyles(mexui.Component.Control.defaultStyles, derivedStyles);
};
mexui.util.linkStyles = function(baseStyles, derivedStyles)
{
mexui.util.linkStyles = function (baseStyles, derivedStyles) {
derivedStyles = derivedStyles || {};
for(var k in baseStyles)
{
switch(k)
{
for (var k in baseStyles) {
switch (k) {
case 'focus':
case 'hover':
continue;
@@ -81,29 +70,23 @@ mexui.util.linkStyles = function(baseStyles, derivedStyles)
//return derivedStyles;
};
mexui.util.linkGlobalStyles = function(baseStyles, derivedStyles)
{
mexui.util.linkGlobalStyles = function (baseStyles, derivedStyles) {
derivedStyles = derivedStyles || {};
for(var k in derivedStyles)
{
switch(k)
{
for (var k in derivedStyles) {
switch (k) {
case 'focus':
case 'hover':
continue;
}
if(!(derivedStyles[k].__proto__ instanceof Object))
{
if (!(derivedStyles[k].__proto__ instanceof Object)) {
derivedStyles[k].__proto__ = baseStyles.all;
}
}
for(var k in derivedStyles)
{
switch(k)
{
for (var k in derivedStyles) {
switch (k) {
case 'focus':
case 'hover':
continue;
@@ -117,26 +100,20 @@ mexui.util.linkGlobalStyles = function(baseStyles, derivedStyles)
}
*/
if(derivedStyles[k].focus)
{
if(!(derivedStyles[k].focus.__proto__ instanceof Object))
{
if (derivedStyles[k].focus) {
if (!(derivedStyles[k].focus.__proto__ instanceof Object)) {
derivedStyles[k].focus.__proto__ = baseStyles.all;
}
if(derivedStyles[k].focus.hover)
{
if(!(derivedStyles[k].focus.hover.__proto__ instanceof Object))
{
if (derivedStyles[k].focus.hover) {
if (!(derivedStyles[k].focus.hover.__proto__ instanceof Object)) {
derivedStyles[k].focus.hover.__proto__ = baseStyles.all;
}
}
}
if(derivedStyles[k].hover)
{
if(!(derivedStyles[k].hover.__proto__ instanceof Object))
{
if (derivedStyles[k].hover) {
if (!(derivedStyles[k].hover.__proto__ instanceof Object)) {
derivedStyles[k].hover.__proto__ = baseStyles.all;
}
}
@@ -145,57 +122,47 @@ mexui.util.linkGlobalStyles = function(baseStyles, derivedStyles)
return derivedStyles;
};
String.prototype.repeat = function(count)
{
String.prototype.repeat = function (count) {
return Array(count + 1).join(this);
};
mexui.util.isLetter = function(character)
{
mexui.util.isLetter = function (character) {
var ord = character.charCodeAt(0);
return (ord >= 65 && ord <= 90) || (ord >= 97 && ord <= 122);
};
mexui.util.isDigit = function(character)
{
mexui.util.isDigit = function (character) {
var ord = character.charCodeAt(0);
return ord >= 48 && ord <= 57;
};
mexui.util.isLetterOrDigit = function(character)
{
mexui.util.isLetterOrDigit = function (character) {
return mexui.util.isLetter(character) || mexui.util.isDigit(character);
};
mexui.util.isCharacterInOctetRange = function(character, min, max)
{
mexui.util.isCharacterInOctetRange = function (character, min, max) {
var ord = character.charCodeAt(0);
return ord >= min && ord <= max;
};
mexui.util.interpolateScalar = function(a, b, f)
{
mexui.util.interpolateScalar = function (a, b, f) {
return a + ((b - a) * f);
};
mexui.util.doesContainEOLChar = function(text)
{
mexui.util.doesContainEOLChar = function (text) {
return text.indexOf("\n") != -1 || text.indexOf("\r") != -1;
};
mexui.util.splitLines = function(text)
{
mexui.util.splitLines = function (text) {
text = text.replace("\r\n", "\n");
text = text.replace("\r", "\n");
return text.split("\n");
};
mexui.util.getStringCount = function(text, find)
{
mexui.util.getStringCount = function (text, find) {
var count = 0;
var index = 0;
for(;;)
{
for (; ;) {
index = text.indexOf(find, index);
if (index == -1)
break;
@@ -205,72 +172,59 @@ mexui.util.getStringCount = function(text, find)
return count;
};
mexui.util.stack = function()
{
mexui.util.stack = function () {
var err = new Error();
console.log(err.stack);
};
mexui.util.deg = function(rad)
{
mexui.util.deg = function (rad) {
return rad * (180 / Math.PI);
};
mexui.util.rad = function(deg)
{
mexui.util.rad = function (deg) {
return deg * (Math.PI / 180);
};
mexui.util.round = function(x, n)
{
mexui.util.round = function (x, n) {
return parseFloat(Math.round(x * Math.pow(10, n)) / Math.pow(10, n)).toFixed(n);
};
mexui.util.getCenterPosition = function(largerSize, smallerSize)
{
mexui.util.getCenterPosition = function (largerSize, smallerSize) {
return new Vec2(
(largerSize.x - smallerSize.x) / 2.0,
(largerSize.y - smallerSize.y) / 2.0
);
};
mexui.util.getWindowSize = function()
{
return new Vec2(gta.width, gta.height);
mexui.util.getWindowSize = function () {
return new Vec2(game.width, game.height);
};
mexui.util.isRectangleInsideRectangle = function(pos1, size1, pos2, size2)
{
mexui.util.isRectangleInsideRectangle = function (pos1, size1, pos2, size2) {
return !(pos2.x > (pos1.x + size1.x) ||
(pos2.x + size2.x) < pos1.x ||
pos2.y > (pos1.y + size1.y) ||
(pos2.y + size2.y) < pos1.y);
};
mexui.util.mergeStyles = function(styles, pseudoPartNames)
{
mexui.util.mergeStyles = function (styles, pseudoPartNames) {
var styles3 = {};
var styles2 = [styles];
while(styles2[0])
{
while (styles2[0]) {
styles2 = [styles2[0]];
for(var i in pseudoPartNames)
{
for (var i in pseudoPartNames) {
var pseudoPartName = pseudoPartNames[i];
if (styles2[0] && styles2[0].hasOwnProperty(pseudoPartName))
styles2.push(styles2[0][pseudoPartName]);
}
for(var i=styles2.length-1; i>=0; i--)
{
for (var i = styles2.length - 1; i >= 0; i--) {
if (styles2[i] == null)
continue;
for(var k in styles2[i])
{
switch(k)
{
for (var k in styles2[i]) {
switch (k) {
case 'focus':
case 'hover':
@@ -285,8 +239,7 @@ mexui.util.mergeStyles = function(styles, pseudoPartNames)
continue;
}
if(styles2[i].hasOwnProperty(k) && styles3[k] == null)
{
if (styles2[i].hasOwnProperty(k) && styles3[k] == null) {
var styleValue = styles2[i][k];
/*
@@ -354,8 +307,7 @@ mexui.util.mergeStyles = function(styles, pseudoPartNames)
}
}
for(var i in styles2)
{
for (var i in styles2) {
if (styles2[i])
styles2[i] = styles2[i].__proto__;
}
@@ -364,30 +316,24 @@ mexui.util.mergeStyles = function(styles, pseudoPartNames)
return styles3;
};
mexui.util.getTransitionStyles = function(styles, pseudoPartNames, progress)
{
mexui.util.getTransitionStyles = function (styles, pseudoPartNames, progress) {
var styles3 = {};
var styles2 = [styles];
while(styles2[0])
{
while (styles2[0]) {
styles2 = [styles2[0]];
for(var i in pseudoPartNames)
{
for (var i in pseudoPartNames) {
var pseudoPartName = pseudoPartNames[i];
if (styles2[0] && styles2[0].hasOwnProperty(pseudoPartName))
styles2.push(styles2[0][pseudoPartName]);
}
for(var i=styles2.length-1; i>=0; i--)
{
for (var i = styles2.length - 1; i >= 0; i--) {
if (styles2[i] == null)
continue;
for(var k in styles2[i])
{
switch(k)
{
for (var k in styles2[i]) {
switch (k) {
case 'focus':
case 'hover':
@@ -396,12 +342,10 @@ mexui.util.getTransitionStyles = function(styles, pseudoPartNames, progress)
continue;
}
if(styles2[i].hasOwnProperty(k) && styles3[k] == null)
{
if (styles2[i].hasOwnProperty(k) && styles3[k] == null) {
var styleValue = styles2[i][k];
if(i > 0)
{
if (i > 0) {
var mainStyleValue = styles2[0][k];
var pseudoStyleValue = styles2[i][k];
@@ -415,8 +359,7 @@ mexui.util.getTransitionStyles = function(styles, pseudoPartNames, progress)
}
}
for(var i in styles2)
{
for (var i in styles2) {
if (styles2[i])
styles2[i] = styles2[i].__proto__;
}
@@ -425,10 +368,8 @@ mexui.util.getTransitionStyles = function(styles, pseudoPartNames, progress)
return styles3;
};
mexui.util.interpolateStyle = function(styleName, progress, styleValueFrom, styleValueTo)
{
switch(styleName)
{
mexui.util.interpolateStyle = function (styleName, progress, styleValueFrom, styleValueTo) {
switch (styleName) {
case 'backgroundColour':
case 'backgroundColor':
case 'textColour':
@@ -447,25 +388,21 @@ mexui.util.interpolateStyle = function(styleName, progress, styleValueFrom, styl
}
};
mexui.util.interpolateColour = function(progress, styleValueFrom, styleValueTo)
{
mexui.util.interpolateColour = function (progress, styleValueFrom, styleValueTo) {
var rgbFrom = mexui.util.fromColour(styleValueFrom);
var rgbTo = mexui.util.fromColour(styleValueTo);
var rgba = [];
for(var i=0; i<4; i++)
{
for (var i = 0; i < 4; i++) {
rgba[i] = mexui.util.interpolateScalar(progress, rgbFrom[i], rgbTo[i]);
}
return toColour.apply(null, rgba);
};
mexui.util.interpolateScalar = function(progress, valueFrom, valueTo)
{
mexui.util.interpolateScalar = function (progress, valueFrom, valueTo) {
return valueFrom + ((valueTo - valueFrom) * progress);
};
mexui.util.fromColour = function(colour)
{
mexui.util.fromColour = function (colour) {
return [
(colour >> 16) & 0xFF,
(colour >> 8) & 0xFF,
@@ -474,45 +411,37 @@ mexui.util.fromColour = function(colour)
];
};
mexui.util.time = function()
{
return gta.tickCount;
mexui.util.time = function () {
return sdl.ticks;
};
mexui.util.isIntChar = function(character)
{
mexui.util.isIntChar = function (character) {
return mexui.util.isPositiveIntChar(character);
};
mexui.util.isPositiveIntChar = function(character)
{
mexui.util.isPositiveIntChar = function (character) {
return mexui.util.isDigit(character) || character == '-' || character == '+' || character == 'e' || character == 'E';
};
mexui.util.isFloatChar = function(character)
{
mexui.util.isFloatChar = function (character) {
return mexui.util.isIntChar(character) || character == '.';
};
mexui.util.isPositiveFloatChar = function(character)
{
mexui.util.isPositiveFloatChar = function (character) {
return mexui.util.isPositiveIntChar(character) || character == '.';
};
mexui.util.isInt = function(str)
{
mexui.util.isInt = function (str) {
var strInt = parseInt(str);
return !isNaN(strInt) && str.length == (strInt + '').length;
};
mexui.util.isPositiveInt = function(str)
{
mexui.util.isPositiveInt = function (str) {
var strInt = parseInt(str);
return !isNaN(strInt) && strInt >= 0 && str.length == (strInt + '').length;
};
mexui.util.isFloat = function(str)
{
mexui.util.isFloat = function (str) {
var strFloat = parseFloat(str);
var firstDot = str.indexOf('.');
var addOffset = (str.substr(str.length - 2, 2) == '.0' && firstDot == (str.length - 2)) ? 2 : 0;
@@ -521,8 +450,7 @@ mexui.util.isFloat = function(str)
return !isNaN(strFloat) && str.length == ((strFloat + '').length + addOffset);
};
mexui.util.isPositiveFloat = function(str)
{
mexui.util.isPositiveFloat = function (str) {
var strFloat = parseFloat(str);
var firstDot = str.indexOf('.');
var addOffset = (str.substr(str.length - 2, 2) == '.0' && firstDot == (str.length - 2)) ? 2 : 0;
@@ -531,20 +459,16 @@ mexui.util.isPositiveFloat = function(str)
return !isNaN(strFloat) && strFloat >= 0.0 && str.length == ((strFloat + '').length + addOffset);
};
mexui.util.isMonthName = function(text)
{
mexui.util.isMonthName = function (text) {
return mexui.util.inArrayOrStartsWithInArray(text, mexui.util.monthNames, 3);
};
mexui.util.isWeekDayName = function(text)
{
mexui.util.isWeekDayName = function (text) {
return mexui.util.inArrayOrStartsWithInArray(text, mexui.util.weekDayNames, 3);
};
mexui.util.isDayIdSuffix = function(text)
{
switch(text.toLowerCase())
{
mexui.util.isDayIdSuffix = function (text) {
switch (text.toLowerCase()) {
case 'st':
case 'nd':
case 'rd':
@@ -554,10 +478,8 @@ mexui.util.isDayIdSuffix = function(text)
return false;
};
mexui.util.isDayIdSuffixForDayId = function(dayId, text)
{
switch(text.toLowerCase())
{
mexui.util.isDayIdSuffixForDayId = function (dayId, text) {
switch (text.toLowerCase()) {
case 'st': return dayId == 1 || dayId == 21 || dayId == 31;
case 'nd': return dayId == 2 || dayId == 22;
case 'rd': return dayId == 3 || dayId == 23;
@@ -566,13 +488,11 @@ mexui.util.isDayIdSuffixForDayId = function(dayId, text)
}
};
mexui.util.isDayId = function(text)
{
mexui.util.isDayId = function (text) {
if (text.length == 2 && text.substr(0, 1) == '0')
text = text.substr(1);
if(mexui.util.isPositiveInt(text))
{
if (mexui.util.isPositiveInt(text)) {
var _int = parseInt(text);
if (_int >= 1 && _int <= 31)
return true;
@@ -581,19 +501,15 @@ mexui.util.isDayId = function(text)
return false;
};
mexui.util.isDayIdWithOptionalSuffix = function(text)
{
mexui.util.isDayIdWithOptionalSuffix = function (text) {
if (mexui.util.isDayId(text))
return true;
if(text.length > 2)
{
if (text.length > 2) {
var last2Chars = text.substr(text.length - 2, 2);
if(mexui.util.isDayIdSuffix(last2Chars))
{
if (mexui.util.isDayIdSuffix(last2Chars)) {
var textWithoutLast2Chars = text.substr(0, text.length - 2);
if(mexui.util.isDayId(textWithoutLast2Chars) && mexui.util.isDayIdSuffixForDayId(parseInt(textWithoutLast2Chars), last2Chars))
{
if (mexui.util.isDayId(textWithoutLast2Chars) && mexui.util.isDayIdSuffixForDayId(parseInt(textWithoutLast2Chars), last2Chars)) {
return true;
}
}
@@ -602,24 +518,18 @@ mexui.util.isDayIdWithOptionalSuffix = function(text)
return false;
};
mexui.util.inArrayOrStartsWithInArray = function(text, arr, startsWithCharCount)
{
mexui.util.inArrayOrStartsWithInArray = function (text, arr, startsWithCharCount) {
text = text.toLowerCase();
for(var i in arr)
{
if(text === arr[i])
{
for (var i in arr) {
if (text === arr[i]) {
return true;
}
}
if(text.length == startsWithCharCount)
{
for(var i in arr)
{
if(text === arr[i].substr(0, startsWithCharCount))
{
if (text.length == startsWithCharCount) {
for (var i in arr) {
if (text === arr[i].substr(0, startsWithCharCount)) {
return true;
}
}
@@ -628,14 +538,12 @@ mexui.util.inArrayOrStartsWithInArray = function(text, arr, startsWithCharCount)
return false;
};
mexui.util.isMonthIdOrName = function(text)
{
mexui.util.isMonthIdOrName = function (text) {
var text2 = text;
if (text2.length == 2 && text2.substr(0, 1) == '0')
text2 = text2.substr(1);
if(mexui.util.isPositiveInt(text2))
{
if (mexui.util.isPositiveInt(text2)) {
var _int = parseInt(text2);
if (_int >= 1 && _int <= 12)
return true;
@@ -644,14 +552,12 @@ mexui.util.isMonthIdOrName = function(text)
return mexui.util.isMonthName(text);
};
mexui.util.isWeekDayId = function(text)
{
mexui.util.isWeekDayId = function (text) {
var text2 = text;
if (text2.length == 2 && text2.substr(0, 1) == '0')
text2 = text2.substr(1);
if(mexui.util.isPositiveInt(text2))
{
if (mexui.util.isPositiveInt(text2)) {
var _int = parseInt(text2);
if (_int >= 1 && _int <= 7)
return true;
@@ -660,14 +566,12 @@ mexui.util.isWeekDayId = function(text)
return false;
};
mexui.util.isWeekDayIdOrName = function(text)
{
mexui.util.isWeekDayIdOrName = function (text) {
var text2 = text;
if (text2.length == 2 && text2.substr(0, 1) == '0')
text2 = text2.substr(1);
if(mexui.util.isPositiveInt(text2))
{
if (mexui.util.isPositiveInt(text2)) {
var _int = parseInt(text2);
if (_int >= 1 && _int <= 7)
return true;
@@ -676,8 +580,7 @@ mexui.util.isWeekDayIdOrName = function(text)
return mexui.util.isWeekDayName(text);
};
mexui.util.expand2DigitYear = function(year, twoDigitYearCapOffset)
{
mexui.util.expand2DigitYear = function (year, twoDigitYearCapOffset) {
var currentFullYear = new Date().getFullYear();
var currentTwoDigitYearPlusCapOffset = parseInt((currentFullYear + '').substr(2, 2)) + twoDigitYearCapOffset;
if (year <= currentTwoDigitYearPlusCapOffset)
@@ -687,8 +590,7 @@ mexui.util.expand2DigitYear = function(year, twoDigitYearCapOffset)
return year;
};
mexui.util.isYear = function(text, minYear, maxYear, twoDigitYearCapOffset)
{
mexui.util.isYear = function (text, minYear, maxYear, twoDigitYearCapOffset) {
var _int = parseInt(text);
if (isNaN(_int))

View File

@@ -15,78 +15,64 @@ mexui.focusedControl = null;
mexui.hoveredComponent = null;
// initialization
mexui.init = function()
{
mexui.init = function () {
mexui.native.loadImage('mexui/Images/down-arrow.png', 'downArrow');
mexui.bindEvents();
mexui.startTimers();
};
// events
mexui.bindEvents = function()
{
addEventHandler('onMouseDown', function(event, mouse, button)
{
mexui.bindEvents = function () {
addEventHandler('onMouseDown', function (event, mouse, button) {
var e = mexui.triggerEvent('onMouseDown', { button: button });
if(!e.clickedAControl)
{
if (!e.clickedAControl) {
mexui.focusedControl = null;
}
});
addEventHandler('onMouseUp', function(event, mouse, button)
{
addEventHandler('onMouseUp', function (event, mouse, button) {
mexui.triggerEvent('onMouseUp', { button: button });
});
addEventHandler('onMouseMove', function(event, mouse, isAbsolute, position)
{
addEventHandler('onMouseMove', function (event, mouse, isAbsolute, position) {
if (isAbsolute)
return;
mexui.triggerEvent('onMouseMove', new Vec2(position.x, position.y), true);
});
addEventHandler('onMouseWheel', function(event, mouse, offset, flipped)
{
addEventHandler('onMouseWheel', function (event, mouse, offset, flipped) {
mexui.triggerEvent('onMouseWheel', offset);
});
addEventHandler('onKeyDown', function(event, key, pkey, mods)
{
addEventHandler('onKeyDown', function (event, key, pkey, mods) {
mexui.triggerEvent('onKeyDown', key, mods);
if(key == SDLK_TAB)
{
if (key == SDLK_TAB) {
mexui.cycleFocusedControl();
}
});
addEventHandler('onCharacter', function(event, character)
{
addEventHandler('onCharacter', function (event, character) {
mexui.triggerEvent('onCharacter', character);
if(character == 't' || character == 'T')
{
if (character == 't' || character == 'T') {
var textInput = mexui.getFocusedTextInput();
if(textInput)
{
if (textInput) {
//event.preventDefault();
}
}
});
{
var eventName = gta.game == GAME_GTA_SA ? 'onDrawnHUD' : 'onBeforeDrawHUD';
addEventHandler(eventName, function(event)
{
var eventName = (game.game == VRR_GAME_GTA_SA || game.game == VRR_GAME_MAFIA_ONE) ? 'onDrawnHUD' : 'onBeforeDrawHUD';
addEventHandler(eventName, function (event) {
mexui.render();
});
}
};
mexui.unbindEvents = function()
{
mexui.unbindEvents = function () {
removeEventHandler('onMouseDown');
removeEventHandler('onMouseUp');
removeEventHandler('onMouseMove');
@@ -97,43 +83,34 @@ mexui.unbindEvents = function()
};
// timers
mexui.startTimers = function()
{
mexui.startTimers = function () {
setInterval(mexui.toggleTextInputCaretShownForBlink, 400);
};
// render
mexui.render = function()
{
for(var i in mexui.windows)
{
mexui.render = function () {
for (var i in mexui.windows) {
if (mexui.windows[i].shown)
mexui.windows[i].render.call(mexui.windows[i]);
}
for(var i in mexui.windows)
{
for (var i in mexui.windows) {
if (mexui.windows[i].shown)
mexui.windows[i].renderAfter.call(mexui.windows[i]);
}
};
// model
mexui.triggerEvent = function(eventName, data, callBaseMethodFirst)
{
mexui.triggerEvent = function (eventName, data, callBaseMethodFirst) {
var e = new mexui.Component.Event();
if (data.button !== undefined)
e.button = data.button;
var windows = mexui.windows.slice(0, mexui.windows.length).reverse();
for(var i in windows)
{
if(windows[i].shown)
{
if(callBaseMethodFirst)
{
if(mexui.Entity.Component.prototype[eventName])
{
for (var i in windows) {
if (windows[i].shown) {
if (callBaseMethodFirst) {
if (mexui.Entity.Component.prototype[eventName]) {
mexui.Entity.Component.prototype[eventName].call(windows[i], e, data);
if (e.used)
break;
@@ -143,14 +120,12 @@ mexui.triggerEvent = function(eventName, data, callBaseMethodFirst)
if (e.used)
break;
}
else
{
else {
windows[i][eventName].call(windows[i], e, data);
if (e.used)
break;
if(mexui.Entity.Component.prototype[eventName])
{
if (mexui.Entity.Component.prototype[eventName]) {
mexui.Entity.Component.prototype[eventName].call(windows[i], e, data);
if (e.used)
break;
@@ -161,29 +136,24 @@ mexui.triggerEvent = function(eventName, data, callBaseMethodFirst)
return e;
};
mexui.getTopWindow = function()
{
for(var i = mexui.windows.length - 1, j = 0; i >= j; i--)
{
mexui.getTopWindow = function () {
for (var i = mexui.windows.length - 1, j = 0; i >= j; i--) {
if (mexui.windows[i].shown)
return mexui.windows[i];
}
return null;
};
mexui.getShownWindows = function()
{
mexui.getShownWindows = function () {
var shownWindows = [];
for(var i = mexui.windows.length - 1, j = 0; i >= j; i--)
{
for (var i = mexui.windows.length - 1, j = 0; i >= j; i--) {
if (mexui.windows[i].shown)
shownWindows.push(mexui.windows[i]);
}
return shownWindows;
};
mexui.getNextShownWindows = function(afterWindow)
{
mexui.getNextShownWindows = function (afterWindow) {
var shownWindows = mexui.getShownWindows();
var windowIndex = shownWindows.indexOf(afterWindow);
@@ -197,15 +167,13 @@ mexui.getNextShownWindows = function(afterWindow)
return shownWindows;
};
mexui.cycleFocusedControl = function()
{
mexui.cycleFocusedControl = function () {
// no windows are created
if (mexui.windows.length == 0)
return;
// no control is focused
if(!mexui.focusedControl)
{
if (!mexui.focusedControl) {
var topWindow = mexui.getTopWindow();
if (!topWindow)
return;
@@ -217,28 +185,24 @@ mexui.cycleFocusedControl = function()
// a control is focused
var focusedControlWindow = mexui.focusedControl.window;
var nextControl = focusedControlWindow.getNextShownControl(mexui.focusedControl);
if(nextControl)
{
if (nextControl) {
mexui.focusedControl = nextControl;
return;
}
// set focus to first control on next window that has a control shown
var shownWindows = mexui.getNextShownWindows(focusedControlWindow);
for(var i in shownWindows)
{
for (var i in shownWindows) {
var window = shownWindows[i];
var firstControl = window.getFirstShownControl();
if(firstControl)
{
if (firstControl) {
mexui.focusedControl = firstControl;
return;
}
}
};
mexui.getFocusedTextInput = function()
{
mexui.getFocusedTextInput = function () {
if (!mexui.focusedControl)
return null;
@@ -248,8 +212,7 @@ mexui.getFocusedTextInput = function()
return mexui.focusedControl;
};
mexui.toggleTextInputCaretShownForBlink = function()
{
mexui.toggleTextInputCaretShownForBlink = function () {
var textInput = mexui.getFocusedTextInput();
if (!textInput)
return;
@@ -257,45 +220,38 @@ mexui.toggleTextInputCaretShownForBlink = function()
textInput.caretShownForBlink = !textInput.caretShownForBlink;
};
mexui.setHoveredComponent = function(component)
{
mexui.setHoveredComponent = function (component) {
//component.hovered = true;
mexui.hoveredComponent = component;
};
mexui.clearHoveredComponent = function()
{
mexui.clearHoveredComponent = function () {
//mexui.hoveredComponent.hovered = false;
mexui.hoveredComponent = null;
};
// api
mexui.window = function(x, y, w, h, title, styles)
{
mexui.window = function (x, y, w, h, title, styles) {
var window = new mexui.Component.Window(x, y, w, h, title, styles);
mexui.windows.push(window);
return window;
};
mexui.isAnyWindowShown = function()
{
for(var i in mexui.windows)
{
mexui.isAnyWindowShown = function () {
for (var i in mexui.windows) {
if (mexui.windows[i].shown)
return true;
}
return false;
};
mexui.setInput = function(showInput)
{
mexui.setInput = function (showInput) {
gui.showCursor(showInput, !showInput);
if(localClient.player && gta.game != GAME_GTA_IV)
{
if (localClient.player && game.game >= GAME_GTA_IV) {
if (showInput)
gta.setCameraLookAtEntity(new Vec3(gta.cameraMatrix.m41, gta.cameraMatrix.m42, gta.cameraMatrix.m43), localPlayer, false);
game.setCameraLookAtEntity(new Vec3(game.cameraMatrix.m41, game.cameraMatrix.m42, game.cameraMatrix.m43), localPlayer, false);
else
gta.restoreCamera(false);
game.restoreCamera(false);
}
};