Dialog with more than 12 buttons

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Hi

i searched a long time for a way to put more than 12 buttons in a dialog. here is my way:

key user;
integer channel = 0; //insert a channel here - 0 is public
list targets;
string selected;     //the selected option is saved in this variable
integer site = 1;    
integer lala()
{
        integer length = llGetListLength(targets);
        list show; //is simple buffer to safe what is shown on this page
        integer start_to_show = (site - 1)*10;
        integer i;
        integer end_to_show = start_to_show + 10;
        if(end_to_show > length)
        {
            end_to_show = length;
        }
        i = start_to_show;        
        while(i < end_to_show)
        {
            show += llList2String(targets,i);
            i++;
        }
        if(site != 1) 
        {
            show += ["<<<"]; 
        }
        if(end_to_show != length)
        {
            show += [">>>"];
        }        
        llDialog(user,"lala",show,channel);
        return 1;
}
default
{
    state_entry()
    {
        llSay(0, "Ready!");
    }

    touch_start(integer total_number)
    {
        user = llDetectedKey(0);
        targets = ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23"]; // here are the buttons to display
        state show_targets;
    }
}

state show_targets
{
    state_entry()
    {
        lala();
        llListen(channel,"",user,"");
    }
    listen( integer channel, string name, key id, string message )
    {
        if(message == "<<<")
        {
            site -= 1;
            lala();
        }
        else if(message == ">>>")
        {
            site += 1;
            lala();
        }
        else
        {
            selected = message;
            state default;
        }
    }
}

ok, i say it too, i was not so good in "find the right name for your funktion, but it works.

the selected option is saved in the string "selected".

I hope you can understand my code and my bad english and this is helpfull for you

--Matthias Gasser 13:57, 8 April 2007 (PDT)

PS: damn, how can i put my code in this nice boxes are displayed everywere?

Use the <pre> tags until(if ever) the <lsl> tags are functional. I've changed yours already.
--DoteDote Edison 18:05, 8 April 2007 (EDT)