435 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			435 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /*//////////////////////////////////////////////////////////////////////////////
 | |
| // Script Name: 0i_nui
 | |
| ////////////////////////////////////////////////////////////////////////////////
 | |
|  Include script for handling window displays.
 | |
| 
 | |
|  Use the following to get/set window information.
 | |
|  string sBind = NuiGetNthBind (oPlayer, nToken, FALSE, #);
 | |
|  json jMenuInfo = NuiGetBind (oPlayer, nToken, sBind);
 | |
|  # Gets json information for window :
 | |
|  0 - string - "window_title"
 | |
|  1 - json - "window_geometry" : "h", "w", "x", "y"
 | |
|  2 - bool - "window_resizable"
 | |
|  3 - bool - "window_closable"
 | |
|  4 - bool - "window_transparent"
 | |
|  5 - bool - "window_border"
 | |
| 
 | |
|  Layout pixel sizes:
 | |
|  Pixel height Title bar 33.
 | |
|  Pixel height Top border 10, between widgets 8, bottom border 10.
 | |
|  Pixel width Left border 10, between widgets 4, right border 10.
 | |
| 
 | |
|  Group outer lines add 12 to the vertical and horizontal lines.
 | |
| *///////////////////////////////////////////////////////////////////////////////
 | |
| #include "0i_main"
 | |
| #include "nw_inc_nui"
 | |
| struct stComboBox
 | |
| {
 | |
|     json jIndex;
 | |
|     json jCombo;
 | |
|     json jRow;
 | |
|     json jResRefArray;
 | |
|     json jWinArray;
 | |
|     json jCanSummon; // Index of all the summons in summons.2da
 | |
| };
 | |
| 
 | |
| // Saves the menu to the campaign database.
 | |
| void SaveMenuToCampaignDb(object oPC, int nToken, string sWndId);
 | |
| // Returns the middle of the screen for the x position.
 | |
| // oPC using the menu.
 | |
| // fMenuWidth - the width of the menu to display.
 | |
| float GetGUIWidthMiddle(object oPC, float fMenuWidth);
 | |
| 
 | |
| // Returns the middle of the screen for the y position.
 | |
| // oPC using the menu.
 | |
| // fMenuHeight - the height of the menu to display.
 | |
| float GetGUIHeightMiddle(object oPC, float fMenuHeight);
 | |
| 
 | |
| // Checks to see if sWndId is open.
 | |
| // If the window is open it removes it and returns FALSE
 | |
| // If the window is closed it returns TRUE
 | |
| int IsWindowClosed(object oPC, string sWndId);
 | |
| 
 | |
| // Returns the Window ID (nToken).
 | |
| // oPC is the PC using the menu.
 | |
| // jLayout is the Layout of the menu.
 | |
| // sWinID is the string ID for this window.
 | |
| // sTitle is the Title of the menu.
 | |
| // fX is the X position of the menu (-1.0: Centers, -2.0: UpperRight on Mouse, -3.0: Centers top of mouse).
 | |
| // fY is the Y position of the menu (-1.0: Centers, -2.0: UpperRight on Mouse, -3.0: Centers top of mouse).
 | |
| // fWidth is the width of the menu.
 | |
| // fHeight is the height of the menu.
 | |
| // bResize - TRUE will all it to be resized.
 | |
| // bCollapse - TRUE will allow the window to be collapsable.
 | |
| // bClose - TRUE will allow the window to be closed.
 | |
| // bTransparent - TRUE makes the menu transparent.
 | |
| // bBorder - TRUE makes the menu have a border.
 | |
| // sEventScript will fire this event script for this window.
 | |
| int SetWindow(object oPC, json jLayout, string sWinID, string sTitle, float fX, float fY, float fWidth, float fHeight, int bResize, int bCollapse, int bClose, int bTransparent, int bBorder, string sEventScript = "");
 | |
| 
 | |
| // Creates a label element in jRow.
 | |
| // jRow is the row the label goes into.
 | |
| // sLabel is the text placed in the label.
 | |
| //     If "" is passed then it will create a bind of sId + "_label".
 | |
| // fWidth is the width of the label.
 | |
| // fHeight is the Height of the label.
 | |
| // nHAlign is horizonal align [NUI_HALING_*].
 | |
| // nVAlign is vertial align [NUI_VALING_*].
 | |
| // sId is the bind the event uses sId + "_event".
 | |
| // sTooltip is the tooltip bind value.
 | |
| json CreateLabel(json jRow, string sLabel, string sId, float fWidth, float fHeight, int nHAlign = 0, int nVAlign = 0, float fMargin = -1.0, string sTooltip = "");
 | |
| 
 | |
| // Creates a basic button element in jRow.
 | |
| // jRow is the row the label goes into.
 | |
| // sLabel is the text placed in the button. If "" is passed then it will
 | |
| // create a bind of sId + "_label".
 | |
| // sId is the binds for the button and the event uses sId + "_event".
 | |
| // fWidth is the width of the button.
 | |
| // fHeight is the Height of the button.
 | |
| // fMargin is the space around the button.
 | |
| // sTooltip is the tooltip bind value.
 | |
| json CreateButton(json jRow, string sLabel, string sId, float fWidth, float fHeight, float fMargin = -1.0, string sTooltip = "");
 | |
| 
 | |
| // Creates a basic button select element in jRow.
 | |
| // jRow is the row the label goes into.
 | |
| // sLabel is the text placed in the button. If "" is passed then it will
 | |
| // create a bind of sId + "_label".
 | |
| // sId is the binds for the button and the event uses sId + "_event".
 | |
| // fWidth is the width of the button.
 | |
| // fHeight is the Height of the button.
 | |
| // sTooltip is the tooltip bind value.
 | |
| json CreateButtonSelect(json jRow, string sLabel, string sId, float fWidth, float fHeight, string sToolTip = "");
 | |
| 
 | |
| // Creates a button element with an image in jRow.
 | |
| // jRow is the row the label goes into.
 | |
| // sImage is the resref of the image to use.
 | |
| //     If "" is passed then it will create a bind of sId + "_image".
 | |
| // sId is the binds for the button and the event uses sId + "_event".
 | |
| // fWidth is the width of the button.
 | |
| // fHeight is the Height of the button.
 | |
| // fMargin is the space around the button.
 | |
| // sTooltip is the tooltip bind value.
 | |
| json CreateButtonImage(json jRow, string sResRef, string sId, float fWidth, float fHeight, float fMargin = -1.0, string sTooltip = "");
 | |
| 
 | |
| // Creates a basic text box that is not editable element in jRow.
 | |
| // jRow is the row the TextEdit box goes into.
 | |
| // sId is the bind variable so we can change the text.
 | |
| // fWidth the width of the box.
 | |
| // fHeight the height of the box.
 | |
| // bBorder will add border TRUE or remove it FALSE.
 | |
| // nScroll use NUI_SCROLLBARS_*
 | |
| // sTooltip is the tooltip bind value.
 | |
| json CreateTextBox(json jRow, string sId, float fWidth, float fHeight, int bBorder = TRUE, int nScroll = NUI_SCROLLBARS_AUTO, string sTooltip = "");
 | |
| 
 | |
| // Creates a basic text edit box element in jRow.
 | |
| // jRow is the row the TextEdit box goes into.
 | |
| // sPlaceHolderBind is the bind for Placeholder.
 | |
| // sValueBind is the bind variable so we can change the text.
 | |
| // nMaxLength is the maximum lenght of the text (1 - 65535)
 | |
| // bMultiline - True or False that is has multiple lines.
 | |
| // fWidth the width of the box.
 | |
| // fHeight the height of the box.
 | |
| // sTooltip is the tooltip bind value.
 | |
| json CreateTextEditBox(json jRow, string sPlaceHolderBind, string sValueBind, int nMaxLength, int bMultiline, float fWidth, float fHeight, string sToolTip = "");
 | |
| 
 | |
| // Creates a combo box element in jRow.
 | |
| // jRow is the row the combo goes into.
 | |
| // jCombo is the elements/list for the combo box. Use NuiComboEntry to add.
 | |
| // sId is the binds for the combo and the event uses sId + "_event"
 | |
| //      sId + "_selected" is the bind for the selection in the combo box.
 | |
| // fWidth is the width of the combo.
 | |
| // fHeight is the Height of the combo.
 | |
| // sTooltip is the tooltip bind value.
 | |
| json CreateCombo(json jRow, json jCombo, string sId, float fWidth, float fHeight, string sToolTip = "");
 | |
| 
 | |
| // Creates an image element in jRow.
 | |
| // jRow is the row the Image goes into.
 | |
| // sImage is the resref of the image to use. If "" is passed then it will
 | |
| // create a bind of sId + "_image".
 | |
| // nAspect is the aspect of the image NUI_ASPECT_*.
 | |
| // nHAlign is the horizontal alignment of the image NUI_HALIGN_*.
 | |
| // nVAlign is the vertical alignment of the image NUI_VALIGN_*.
 | |
| // fWidth the width of the box.
 | |
| // fHeight the height of the box.
 | |
| // sTooltip is the tooltip bind value.
 | |
| json CreateImage(json jRow, string sResRef, string sId, int nAspect, int nHAlign, int nVAlign, float fWidth, float fHeight, float fMargin = -1.0, string sToolTip = "");
 | |
| 
 | |
| // Creates a check box element in jRow.
 | |
| // jRow is the row the Checkbox box goes into.
 | |
| // sLabel is the text placed in the label.
 | |
| //     If "" is passed then it will create a bind of sId + "_label".
 | |
| // sId is the bind variable so we can change the text.
 | |
| //     sId + "_check" is the Bind:bool for if it is checked or not.
 | |
| // fWidth is the width of the label.
 | |
| // fHeight is the Height of the label.
 | |
| // sTooltip is the tooltip bind value.
 | |
| json CreateCheckBox(json jRow, string sLabel, string sId, float fWidth, float fHeight, string sToolTip = "");
 | |
| 
 | |
| // Creates a slider (Int based) element in jRow
 | |
| // jRow is the row the Check box goes into.
 | |
| // sId is the bind name.
 | |
| // The binds are as follows.
 | |
| // Value: sId + "_value"
 | |
| // Minimum: sId + "_min"
 | |
| // Maximum: sId + "_max"
 | |
| // Step size: sId + "_stepsize"
 | |
| // fWidth is the width of the slider.
 | |
| // fHeight is the Height of the slider.
 | |
| // sTooltip is the tooltip bind value.
 | |
| json CreateSlider(json jRow, string sId, float fWidth, float fHeight, string sToolTip = "");
 | |
| 
 | |
| // Creates an Options element in jRow.
 | |
| // jRow is the row the Options will start on.
 | |
| // sId is the bind name.
 | |
| // The binds are as follows:
 | |
| //      Value: sId + "_value"
 | |
| //      Event is sId + "_event"
 | |
| // nDirection: NUI_DIRECTION_*
 | |
| // fWidth is the width of the options labels.
 | |
| // fHeight is the height of the options labels.
 | |
| // sTooltip is the tooltip bind value.
 | |
| json CreateOptions(json jRow, string sId, int nDirection, json jLabels, float fWidth, float fHeight, string sToolTip = "");
 | |
| 
 | |
| // Creates a list element in jRow.
 | |
| // jRow is the row the list will start on.
 | |
| // jElements is the list of elements in the list. Use NuiListTemplateCell to add.
 | |
| // sId is the bind name.
 | |
| // The binds are Event is sId + "_event".
 | |
| // Row count is bound to sId + "_count".
 | |
| // fRowHeight is the height of the rendered rows.
 | |
| // fWidth is the width of the options labels.
 | |
| // fHeight is the height of the options labels.
 | |
| // sTooltip is the tooltip bind value.
 | |
| json CreateList(json jRow, json jElements, string sId, float fRowHeight, float fWidth, float fHeight, string sTooltip = "");
 | |
| 
 | |
| // Placed here temporarily until we can clean up our includes!
 | |
| void ai_SetDMWAccessButton(int nButton, int bOn = TRUE);
 | |
| int ai_GetDMWAccessButton(int nButton);
 | |
| void ai_SetDMAIAccessButton(int nButton, int bOn = TRUE);
 | |
| int ai_GetDMAIAccessButton(int nButton);
 | |
| 
 | |
| void SaveMenuToCampaignDb(object oPC, int nToken, string sWndId)
 | |
| {
 | |
|     json jGeometry = NuiGetBind(oPC, nToken, "window_geometry");
 | |
|     float fX = JsonGetFloat(JsonObjectGet(jGeometry, "x"));
 | |
|     float fY = JsonGetFloat(JsonObjectGet(jGeometry, "y"));
 | |
|     string sName = ai_RemoveIllegalCharacters(GetName(oPC));
 | |
|     json jLocations = ai_GetCampaignDbJson("locations", sName, AI_DM_TABLE);
 | |
|     json jNUI = JsonObjectGet(jLocations, sWndId);
 | |
|     if(JsonGetType(jNUI) == JSON_TYPE_NULL) jNUI = JsonObject();
 | |
|     jNUI = JsonObjectSet(jNUI, "x", JsonFloat(fX));
 | |
|     jNUI = JsonObjectSet(jNUI, "y", JsonFloat(fY));
 | |
|     jLocations = JsonObjectSet(jLocations, sWndId, jNUI);
 | |
|     ai_SetCampaignDbJson("locations", jLocations, sName, AI_DM_TABLE);
 | |
| }
 | |
| 
 | |
| float GetGUIWidthMiddle(object oPC, float fMenuWidth)
 | |
| {
 | |
|     // Get players window information.
 | |
|     float fGUI_Width = IntToFloat(GetPlayerDeviceProperty(oPC, PLAYER_DEVICE_PROPERTY_GUI_WIDTH));
 | |
|     float fGUI_Scale = IntToFloat(GetPlayerDeviceProperty(oPC, PLAYER_DEVICE_PROPERTY_GUI_SCALE)) / 100.0;
 | |
|     fMenuWidth = fMenuWidth * fGUI_Scale;
 | |
|     return (fGUI_Width / 2.0) - (fMenuWidth / 2.0);
 | |
| }
 | |
| float GetGUIHeightMiddle(object oPC, float fMenuHeight)
 | |
| {
 | |
|     // Get players window information.
 | |
|     float fGUI_Height = IntToFloat(GetPlayerDeviceProperty(oPC, PLAYER_DEVICE_PROPERTY_GUI_HEIGHT));
 | |
|     float fGUI_Scale = IntToFloat(GetPlayerDeviceProperty(oPC, PLAYER_DEVICE_PROPERTY_GUI_SCALE)) / 100.0;
 | |
|     fMenuHeight = fMenuHeight * fGUI_Scale;
 | |
|     return (fGUI_Height / 2.0) - (fMenuHeight / 2.0);
 | |
| }
 | |
| int IsWindowClosed(object oPC, string sWndId)
 | |
| {
 | |
|     int nToken = NuiFindWindow(oPC, sWndId);
 | |
|     if(nToken)
 | |
|     {
 | |
|         NuiDestroy(oPC, nToken);
 | |
|         return FALSE;
 | |
|     }
 | |
|     return TRUE;
 | |
| }
 | |
| int SetWindow(object oPC, json jLayout, string sWinID, string sTitle, float fX, float fY, float fWidth, float fHeight, int bResize, int bCollapse, int bClose, int bTransparent, int bBorder, string sEventScript = "")
 | |
| {
 | |
|     json jWindow;
 | |
|     if (bCollapse) jWindow = NuiWindow (jLayout, NuiBind ("window_title"), NuiBind ("window_geometry"),
 | |
|     NuiBind ("window_resizable"), JsonNull (), NuiBind ("window_closable"),
 | |
|     NuiBind ("window_transparent"), NuiBind ("window_border"));
 | |
| 
 | |
|     else jWindow = NuiWindow (jLayout, NuiBind ("window_title"), NuiBind ("window_geometry"),
 | |
|     NuiBind ("window_resizable"), JsonBool (FALSE), NuiBind ("window_closable"),
 | |
|     NuiBind ("window_transparent"), NuiBind ("window_border"));
 | |
| 
 | |
|     int nToken = NuiCreate (oPC, jWindow, sWinID, sEventScript);
 | |
|     if(!bCollapse && !bClose && !bBorder) NuiSetBind (oPC, nToken, "window_title", JsonBool (FALSE));
 | |
|     else NuiSetBind (oPC, nToken, "window_title", JsonString (sTitle));
 | |
|     if (fX == -1.0) fX = GetGUIWidthMiddle (oPC, fWidth);
 | |
|     if (fY == -1.0) fY = GetGUIHeightMiddle (oPC, fHeight);
 | |
|     int nScale = GetPlayerDeviceProperty(oPC, PLAYER_DEVICE_PROPERTY_GUI_SCALE);
 | |
|     if(nScale != 100)
 | |
|     {
 | |
|         fHeight = fHeight * (IntToFloat(1050 - nScale) / 1000.0);
 | |
|         fWidth = fWidth * (IntToFloat(1200 - nScale) / 1000.0);
 | |
|     }
 | |
|     NuiSetBind (oPC, nToken, "window_geometry", NuiRect (fX,
 | |
|                 fY, fWidth, fHeight));
 | |
|     NuiSetBind (oPC, nToken, "window_resizable", JsonBool (bResize));
 | |
|     NuiSetBind (oPC, nToken, "window_closable", JsonBool (bClose));
 | |
|     NuiSetBind (oPC, nToken, "window_transparent", JsonBool (bTransparent));
 | |
|     NuiSetBind (oPC, nToken, "window_border", JsonBool (bBorder));
 | |
|     return nToken;
 | |
| }
 | |
| json CreateLabel(json jRow, string sLabel, string sId, float fWidth, float fHeight, int nHAlign = 0, int nVAlign = 0, float fMargin = -1.0, string sTooltip = "")
 | |
| {
 | |
|     json jLabel;
 | |
|     if(sLabel == "") jLabel = NuiId(NuiLabel(NuiBind(sId + "_label"), JsonInt(nHAlign), JsonInt(nVAlign)), sId);
 | |
|     else jLabel = NuiId(NuiLabel(JsonString(sLabel), JsonInt(nHAlign), JsonInt(nVAlign)), sId);
 | |
|     jLabel = NuiWidth(jLabel, fWidth);
 | |
|     jLabel = NuiHeight(jLabel, fHeight);
 | |
|     if (fMargin > -1.0) jLabel = NuiMargin(jLabel, fMargin);
 | |
|     if(sTooltip != "") jLabel = NuiTooltip (jLabel, NuiBind (sTooltip));
 | |
|     return JsonArrayInsert(jRow, jLabel);
 | |
| }
 | |
| json CreateButton(json jRow, string sLabel, string sId, float fWidth, float fHeight, float fMargin = -1.0, string sTooltip = "")
 | |
| {
 | |
|     json jButton;
 | |
|     if(sLabel == "") jButton = NuiEnabled(NuiId(NuiButton(NuiBind (sId + "_label")), sId), NuiBind(sId + "_event"));
 | |
|     else jButton = NuiEnabled(NuiId(NuiButton(JsonString(sLabel)), sId), NuiBind(sId + "_event"));
 | |
|     jButton = NuiWidth(jButton, fWidth);
 | |
|     jButton = NuiHeight(jButton, fHeight);
 | |
|     if (fMargin > -1.0) jButton = NuiMargin(jButton, fMargin);
 | |
|     if (sTooltip != "") jButton = NuiTooltip(jButton, NuiBind (sTooltip));
 | |
|     return JsonArrayInsert(jRow, jButton);
 | |
| }
 | |
| json CreateButtonSelect(json jRow, string sLabel, string sId, float fWidth, float fHeight, string sTooltip = "")
 | |
| {
 | |
|     json jButton;
 | |
|     if(sLabel == "") jButton = NuiEnabled(NuiId(NuiButtonSelect(NuiBind (sId + "_label"), NuiBind(sId)), sId), NuiBind(sId + "_event"));
 | |
|     else jButton = NuiEnabled(NuiId(NuiButtonSelect(JsonString(sLabel), NuiBind(sId)), sId), NuiBind(sId + "_event"));
 | |
|     jButton = NuiWidth(jButton, fWidth);
 | |
|     jButton = NuiHeight(jButton, fHeight);
 | |
|     if(sTooltip != "") jButton = NuiTooltip(jButton, NuiBind (sTooltip));
 | |
|     return JsonArrayInsert(jRow, jButton);
 | |
| }
 | |
| json CreateButtonImage(json jRow, string sResRef, string sId, float fWidth, float fHeight, float fMargin = -1.0, string sTooltip = "")
 | |
| {
 | |
|     json jButton;
 | |
|     if(sResRef == "") jButton = NuiEnabled(NuiId (NuiButtonImage(NuiBind(sId + "_image")), sId), NuiBind(sId + "_event"));
 | |
|     else jButton = NuiEnabled(NuiId(NuiButtonImage(JsonString(sResRef)), sId), NuiBind(sId + "_event"));
 | |
|     jButton = NuiWidth(jButton, fWidth);
 | |
|     jButton = NuiHeight(jButton, fHeight);
 | |
|     if(fMargin > -1.0) jButton = NuiMargin(jButton, fMargin);
 | |
|     if(sTooltip != "") jButton = NuiTooltip(jButton, NuiBind (sTooltip));
 | |
|     jButton = NuiEncouraged(jButton, NuiBind(sId + "_encouraged"));
 | |
|     return JsonArrayInsert(jRow, jButton);
 | |
| }
 | |
| json CreateTextBox(json jRow, string sId, float fWidth, float fHeight, int bBorder = TRUE, int nScroll = NUI_SCROLLBARS_AUTO, string sTooltip = "")
 | |
| {
 | |
|     json jTextBox = NuiEnabled(NuiText(NuiBind(sId), bBorder, nScroll), NuiBind(sId + "_event"));
 | |
|     jTextBox = NuiWidth(jTextBox, fWidth);
 | |
|     jTextBox = NuiHeight(jTextBox, fHeight);
 | |
|     if(sTooltip != "") jTextBox = NuiTooltip(jTextBox, NuiBind (sTooltip));
 | |
|     return JsonArrayInsert(jRow, JsonObjectSet(jTextBox, "text_color", NuiColor (255, 0, 0)));
 | |
| }
 | |
| json CreateTextEditBox(json jRow, string sPlaceHolderBind, string sValueBind, int nMaxLength, int bMultiline, float fWidth, float fHeight, string sTooltip = "")
 | |
| {
 | |
|     json jObject = NuiEnabled(NuiTextEdit(NuiBind(sPlaceHolderBind), NuiBind(sValueBind), nMaxLength, bMultiline), NuiBind(sValueBind + "_event"));
 | |
|     jObject = NuiWidth(jObject, fWidth);
 | |
|     jObject = NuiHeight(jObject, fHeight);
 | |
|     if(sTooltip != "") jObject = NuiTooltip(jObject, NuiBind (sTooltip));
 | |
|     return JsonArrayInsert(jRow, jObject);
 | |
| }
 | |
| json CreateCombo(json jRow, json jList, string sId, float fWidth, float fHeight, string sTooltip = "")
 | |
| {
 | |
|     json jCombo;
 | |
|     if(JsonGetType(jList) == JSON_TYPE_NULL)
 | |
|     {
 | |
|         jCombo = NuiId(NuiCombo(NuiBind(sId + "_list"), NuiBind(sId + "_selected")), sId + "_event");
 | |
|     }
 | |
|     jCombo = NuiId(NuiCombo(jList, NuiBind (sId + "_selected")), sId);
 | |
|     jCombo = NuiEnabled(jCombo, NuiBind (sId + "_event"));
 | |
|     jCombo = NuiWidth(jCombo, fWidth);
 | |
|     jCombo = NuiHeight(jCombo, fHeight);
 | |
|     if(sTooltip != "") jCombo = NuiTooltip(jCombo, NuiBind(sTooltip));
 | |
|     return JsonArrayInsert(jRow, jCombo);
 | |
| }
 | |
| json CreateImage(json jRow, string sResRef, string sId, int nAspect, int nHAlign, int nVAlign, float fWidth, float fHeight, float fMargin = -1.0, string sTooltip = "")
 | |
| {
 | |
|     json jImage;
 | |
|     if(sResRef == "") jImage = NuiEnabled(NuiId(NuiImage(NuiBind(sId + "_image"), JsonInt(nAspect), JsonInt(nHAlign), JsonInt(nVAlign)), sId), NuiBind(sId + "_event"));
 | |
|     else jImage = NuiEnabled(NuiId(NuiImage(JsonString(sResRef), JsonInt(nAspect), JsonInt(nHAlign), JsonInt(nVAlign)), sId), NuiBind(sId + "_event"));
 | |
|     jImage = NuiWidth(jImage, fWidth);
 | |
|     jImage = NuiHeight(jImage, fHeight);
 | |
|     if (fMargin > -1.0) jImage = NuiMargin(jImage, fMargin);
 | |
|     if(sTooltip != "") jImage = NuiTooltip(jImage, NuiBind(sTooltip));
 | |
|     return JsonArrayInsert(jRow, jImage);
 | |
| }
 | |
| json CreateCheckBox(json jRow, string sLabel, string sId, float fWidth, float fHeight, string sTooltip = "")
 | |
| {
 | |
|     json jCheckBox;
 | |
|     if(sLabel == "") jCheckBox = NuiEnabled(NuiId(NuiCheck(NuiBind(sId + "_label"), NuiBind(sId + "_check")), sId), NuiBind(sId + "_event"));
 | |
|     else jCheckBox = NuiEnabled(NuiId(NuiCheck(JsonString(sLabel), NuiBind(sId + "_check")), sId), NuiBind(sId + "_event"));
 | |
|     jCheckBox = NuiWidth(jCheckBox, fWidth);
 | |
|     jCheckBox = NuiHeight(jCheckBox, fHeight);
 | |
|     if (sTooltip != "") jCheckBox = NuiTooltip (jCheckBox, NuiBind (sTooltip));
 | |
|     return JsonArrayInsert(jRow, jCheckBox);
 | |
| }
 | |
| json CreateSlider(json jRow, string sId, float fWidth, float fHeight, string sTooltip = "")
 | |
| {
 | |
|     json jSlider;
 | |
|     jSlider = NuiEnabled(NuiId(NuiSlider(NuiBind(sId + "_value"), NuiBind(sId + "_min"), NuiBind(sId + "_max"), NuiBind(sId + "_stepsize")), sId), NuiBind(sId + "_event"));
 | |
|     jSlider = NuiWidth(jSlider, fWidth);
 | |
|     jSlider = NuiHeight(jSlider, fHeight);
 | |
|     if(sTooltip != "") jSlider = NuiTooltip(jSlider, NuiBind(sTooltip));
 | |
|     return JsonArrayInsert(jRow, jSlider);
 | |
| }
 | |
| json CreateOptions(json jRow, string sId, int nDirection, json jLabels, float fWidth, float fHeight, string sTooltip = "")
 | |
| {
 | |
|     json jOption;
 | |
|     jOption = NuiEnabled(NuiId(NuiOptions(nDirection, jLabels, NuiBind(sId + "_value")), sId), NuiBind(sId + "_event"));
 | |
|     jOption = NuiWidth(jOption, fWidth);
 | |
|     jOption = NuiHeight(jOption, fHeight);
 | |
|     if(sTooltip != "") jOption = NuiTooltip (jOption, NuiBind (sTooltip));
 | |
|     return JsonArrayInsert(jRow, jOption);
 | |
| }
 | |
| json CreateList(json jRow, json jElements, string sId, float fRowHeight, float fWidth, float fHeight, string sTooltip = "")
 | |
| {
 | |
|     json jList;
 | |
|     jList = NuiId(NuiList(jElements, NuiBind(sId), fRowHeight), sId + "_id");
 | |
|     jList = NuiWidth(jList, fWidth);
 | |
|     jList = NuiHeight(jList, fHeight);
 | |
|     if (sTooltip != "") jList = NuiTooltip(jList, NuiBind(sTooltip));
 | |
|     return JsonArrayInsert(jRow, jList);
 | |
| }
 | |
| void ai_SetDMWAccessButton(int nButton, int bOn = TRUE)
 | |
| {
 | |
|     json jRules = ai_GetCampaignDbJson("rules");
 | |
|     int nWidgetButtons = JsonGetInt(JsonObjectGet(jRules, sDMWidgetAccessVarname));
 | |
|     if(bOn) nWidgetButtons = nWidgetButtons | nButton;
 | |
|     else nWidgetButtons = nWidgetButtons & ~nButton;
 | |
|     SetLocalInt(GetModule(), sDMWidgetAccessVarname, nWidgetButtons);
 | |
|     jRules = JsonObjectSet(jRules, sDMWidgetAccessVarname, JsonInt(nWidgetButtons));
 | |
|     ai_SetCampaignDbJson("rules", jRules);
 | |
| }
 | |
| int ai_GetDMWAccessButton(int nButton)
 | |
| {
 | |
|     int nWidgetButtons = GetLocalInt(GetModule(), sDMWidgetAccessVarname);
 | |
|     return nWidgetButtons & nButton;
 | |
| }
 | |
| void ai_SetDMAIAccessButton(int nButton, int bOn = TRUE)
 | |
| {
 | |
|     json jRules = ai_GetCampaignDbJson("rules");
 | |
|     int nWidgetButtons = JsonGetInt(JsonObjectGet(jRules, sDMAIAccessVarname));
 | |
|     if(bOn) nWidgetButtons = nWidgetButtons | nButton;
 | |
|     else nWidgetButtons = nWidgetButtons & ~nButton;
 | |
|     SetLocalInt(GetModule(), sDMAIAccessVarname, nWidgetButtons);
 | |
|     jRules = JsonObjectSet(jRules, sDMAIAccessVarname, JsonInt(nWidgetButtons));
 | |
|     ai_SetCampaignDbJson("rules", jRules);
 | |
| }
 | |
| int ai_GetDMAIAccessButton(int nButton)
 | |
| {
 | |
|     int nWidgetButtons = GetLocalInt(GetModule(), sDMAIAccessVarname);
 | |
|     return nWidgetButtons & nButton;
 | |
| }
 | |
| 
 |