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
|
08-2024 INITIAL RELEASE
|
||||||
* Finished hooking up listener and timer
|
* Finished hooking up listener and timer
|
||||||
|
* Add ability to replace menu buttons (Toggles)
|
||||||
|
|
||||||
06-2024 INITIAL VERSION
|
06-2024 INITIAL VERSION
|
||||||
* Manage memory more efficiently than all other current systems
|
* 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_RESET = 0602243;
|
||||||
integer LINK_SIGNAL_MENU_DATA = 0602244;
|
integer LINK_SIGNAL_MENU_DATA = 0602244;
|
||||||
integer LINK_SIGNAL_MENU_BACK = 0801241;
|
integer LINK_SIGNAL_MENU_BACK = 0801241;
|
||||||
|
integer LINK_SIGNAL_REPLACE_BUTTON = 0804241;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -595,6 +597,17 @@ default
|
||||||
}
|
}
|
||||||
|
|
||||||
llLinksetDataWrite("menus." + (string)i, sJson);
|
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_RESET = 0602243;
|
||||||
integer LINK_SIGNAL_MENU_DATA = 0602244;
|
integer LINK_SIGNAL_MENU_DATA = 0602244;
|
||||||
integer LINK_SIGNAL_MENU_BACK = 0801241;
|
integer LINK_SIGNAL_MENU_BACK = 0801241;
|
||||||
|
integer LINK_SIGNAL_REPLACE_BUTTON = 0804241;
|
||||||
|
|
||||||
|
|
||||||
string PREVIOUS_MENU = "<--";
|
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);
|
llMessageLinked(LINK_SET, LINK_SIGNAL_MENU_BACK, llList2Json(JSON_OBJECT, ["menu", sMenu, "page", iPage, "reply", sReply]), kID);
|
||||||
}
|
}
|
||||||
|
|
||||||
integer g_iDebugIndent=0;
|
replaceMenuButton(string sMenu, string sButton, string sNewButton) {
|
||||||
integer DEBUG_ENABLED() {
|
llMessageLinked(LINK_SET, LINK_SIGNAL_REPLACE_BUTTON, llList2Json(JSON_OBJECT, ["menu", sMenu, "btn", sButton, "newBtn", sNewButton]), "");
|
||||||
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;
|
|
||||||
}
|
|
Loading…
Reference in a new issue