void ProcessQueue()
    {
        Debug.LogError("ProcessQueue count=" + queues.Count);
        if (queues != null && queues.Count > 0)
        {
            DialogBoxQueue queue = (DialogBoxQueue)queues[0];
            queues.RemoveAt(0);

            labelText.text = queue.sText;
            labelText.gameObject.SetActive(false);
            labelText.gameObject.SetActive(true);
            labelTitle.text = queue.sTitle;
            lastSender      = queue.sender;
            this.sExec      = queue.sExec;
            //Debug.LogError("showcancel="+queue.bShowCancel);

            GUI_Dialog.InsertStack(this.gameObject);
            buttonCancel.gameObject.SetActive(queue.bShowCancel);
            //Show ();
        }
    }
    public void Show(string sTitle, string sText, bool bShowCancel, string sExec, GameObject sender)
    {
        DialogBoxQueue queue = new DialogBoxQueue();

        queue.sTitle      = sTitle;
        queue.sText       = sText;
        queue.bShowCancel = bShowCancel;
        queue.sExec       = sExec;
        queue.sender      = sender;

        queues.Add(queue);
        if (!isVisible())
        {
            ProcessQueue();
        }

        if (sExec == "energyFull")
        {
            buttonAds.gameObject.SetActive(false);
            buttonOK.gameObject.SetActive(true);
            buttonShare.gameObject.SetActive(false);
            buttonInvite.gameObject.SetActive(false);
            buttonAddFund.gameObject.SetActive(false);
        }

        else if (sExec == "confirmAch")
        {
            buttonAds.gameObject.SetActive(false);
            buttonOK.gameObject.SetActive(true);
            buttonShare.gameObject.SetActive(false);
            buttonInvite.gameObject.SetActive(false);
            buttonAddFund.gameObject.SetActive(false);
        }

        else if (sExec != "levelup" && sExec != "confirm" && sExec != "confirmAch" && sExec != "FreeEnergy" && sExec != "AddFund")
        {
            buttonShare.gameObject.SetActive(false);
            buttonInvite.gameObject.SetActive(false);
            buttonAds.gameObject.SetActive(false);
            buttonAddFund.gameObject.SetActive(false);
            Debug.Log("?");
        }

        else if (sExec == "AddFund")
        {
            buttonAddFund.gameObject.SetActive(true);
            buttonAds.gameObject.SetActive(false);
            buttonOK.gameObject.SetActive(false);
            buttonShare.gameObject.SetActive(false);
            buttonInvite.gameObject.SetActive(false);
            Debug.Log("addfund");
        }

        else if (sExec == "FreeEnergy")
        {
            buttonAds.gameObject.SetActive(true);
            buttonOK.gameObject.SetActive(true);
            buttonShare.gameObject.SetActive(false);
            buttonInvite.gameObject.SetActive(false);
            buttonAddFund.gameObject.SetActive(false);
        }

        else
        {
            buttonAds.gameObject.SetActive(false);
            buttonOK.gameObject.SetActive(true);
            buttonAddFund.gameObject.SetActive(false);
        }
    }