Adds an ability to replace buttons
This commit is contained in:
parent
4a5aa07e57
commit
a83616b67e
2 changed files with 16 additions and 45 deletions
|
@ -6,6 +6,7 @@
|
|||
|
||||
08-2024 INITIAL RELEASE
|
||||
* Finished hooking up listener and timer
|
||||
* Add ability to replace menu buttons (Toggles)
|
||||
|
||||
06-2024 INITIAL VERSION
|
||||
* Manage memory more efficiently than all other current systems
|
||||
|
@ -33,6 +34,7 @@ integer LINK_SIGNAL_REGISTER_MENU = 0602242;
|
|||
integer LINK_SIGNAL_RESET = 0602243;
|
||||
integer LINK_SIGNAL_MENU_DATA = 0602244;
|
||||
integer LINK_SIGNAL_MENU_BACK = 0801241;
|
||||
integer LINK_SIGNAL_REPLACE_BUTTON = 0804241;
|
||||
|
||||
|
||||
|
||||
|
@ -595,6 +597,17 @@ default
|
|||
}
|
||||
|
||||
llLinksetDataWrite("menus." + (string)i, sJson);
|
||||
} else if(n == LINK_SIGNAL_REPLACE_BUTTON) {
|
||||
string jsMenu = readMenu(llJsonGetValue(m, ["menu"]));
|
||||
list lButtons = llJson2List(llJsonGetValue(jsMenu, ["buttons"]));
|
||||
|
||||
integer iIndex = llListFindList(lButtons, [llJsonGetValue(m,["btn"])]);
|
||||
if(iIndex != -1) {
|
||||
lButtons = llListReplaceList(lButtons, [llJsonGetValue(m, ["newBtn"])], iIndex, iIndex);
|
||||
jsMenu = llJsonSetValue(jsMenu, ["buttons"], llList2Json(JSON_ARRAY, lButtons));
|
||||
updateMenu(llJsonGetValue(m,["menu"]), jsMenu);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ integer LINK_SIGNAL_REGISTER_MENU = 0602242;
|
|||
integer LINK_SIGNAL_RESET = 0602243;
|
||||
integer LINK_SIGNAL_MENU_DATA = 0602244;
|
||||
integer LINK_SIGNAL_MENU_BACK = 0801241;
|
||||
integer LINK_SIGNAL_REPLACE_BUTTON = 0804241;
|
||||
|
||||
|
||||
string PREVIOUS_MENU = "<--";
|
||||
|
@ -69,49 +70,6 @@ returnMenu(key kID, string sMenu, integer iPage, string sReply) {
|
|||
llMessageLinked(LINK_SET, LINK_SIGNAL_MENU_BACK, llList2Json(JSON_OBJECT, ["menu", sMenu, "page", iPage, "reply", sReply]), kID);
|
||||
}
|
||||
|
||||
integer g_iDebugIndent=0;
|
||||
integer DEBUG_ENABLED() {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
DEBUG_FUNC(integer iEnter, string sLabel, list lParams) {
|
||||
if(!DEBUG_ENABLED()) return;
|
||||
if(iEnter){
|
||||
llOwnerSay(MakeIndent() + "ENTER " + sLabel + " [" + llList2CSV(lParams) + "]");
|
||||
g_iDebugIndent++;
|
||||
} else {
|
||||
g_iDebugIndent --;
|
||||
if(g_iDebugIndent<0)g_iDebugIndent=0;
|
||||
|
||||
llOwnerSay(MakeIndent() + "LEAVE " + sLabel + " [" + llList2CSV(lParams) + "]");
|
||||
}
|
||||
}
|
||||
|
||||
DEBUG_STMT(integer iEnter, string sLabel) {
|
||||
if(!DEBUG_ENABLED()) return;
|
||||
if(iEnter) {
|
||||
llOwnerSay(MakeIndent() + "STMT " + sLabel);
|
||||
g_iDebugIndent ++;
|
||||
}else {
|
||||
g_iDebugIndent--;
|
||||
if(g_iDebugIndent<0)g_iDebugIndent=0;
|
||||
|
||||
llOwnerSay(MakeIndent() + "RET " + sLabel);
|
||||
}
|
||||
}
|
||||
|
||||
DEBUG(string sMsg) {
|
||||
if(!DEBUG_ENABLED()) return;
|
||||
llOwnerSay(MakeIndent() + " > " + sMsg);
|
||||
}
|
||||
|
||||
string MakeIndent()
|
||||
{
|
||||
integer i = 0;
|
||||
string sIndent = "";
|
||||
for(i = 0;i<g_iDebugIndent;i++){
|
||||
sIndent += " ";
|
||||
}
|
||||
|
||||
return "[" + llGetScriptName() + "] " + sIndent;
|
||||
replaceMenuButton(string sMenu, string sButton, string sNewButton) {
|
||||
llMessageLinked(LINK_SET, LINK_SIGNAL_REPLACE_BUTTON, llList2Json(JSON_OBJECT, ["menu", sMenu, "btn", sButton, "newBtn", sNewButton]), "");
|
||||
}
|
Loading…
Reference in a new issue