public SelectableText(UITextPhrase self, InfoPanel infoPanel, SelectableList selList, string header, List <string> properties, bool isOption = true)
        {
            this.opdict    = infoPanel.opdict;
            this.uilist    = infoPanel.uielem;
            this.selList   = selList;
            this.infoPanel = infoPanel;
            target         = header;
            values         = properties != null?properties.ToList() : new List <string>();

            if (values.Count > 1 || (values.Count == 1 && values[0].Equals(OptionsDict.SelectableList.removeTag)))
            {
                values.Insert(0, "# " + header);
            }
            this.self         = self;
            this.targetUIdesc = infoPanel.uidesc;
            if (properties != null && properties.Count > 0)
            {
                if (isOption)
                {
                    self.OnClick += SelectOption;
                }
                else
                {
                    self.OnClick += select;
                }

                self.OnMouseOver += ChangeToGrey;
                self.OnMouseOut  += ChangeToWhite;
            }
        }
        public SelectableText AddSelectableList(SelectableList selList, char kind)
        {
            SelectableText selt;

            switch (kind)
            {
            case listKindPositive:
                (selt = this.AddSelectable(OptionsDict.SelectableList.positive, OptionsDict.SelectableList.positiveDescription)).setCustomColor(Color.LightGreen); break;

            case listKindNegative:
                (selt = this.AddSelectable(OptionsDict.SelectableList.negative, OptionsDict.SelectableList.negativeDescription)).setCustomColor(Color.PaleVioletRed); break;

            case listKindNaming:
                (selt = this.AddSelectable(OptionsDict.SelectableList.name, OptionsDict.SelectableList.nameDescription)).setCustomColor(Color.LightGoldenrodYellow); break;

            case listKindOmitRare:
                (selt = this.AddSelectable(OptionsDict.SelectableList.omitRare, OptionsDict.SelectableList.omitRareDescription)).setCustomColor(Color.LightGoldenrodYellow); break;

            default:
                selt = this.AddSelectable("?VVVVVVV select VVVVVVV?", "here you can add what?"); break;
            }


            UITextPhrase textHead = new UITextPhrase(uielem.Count + 1, OptionsDict.SelectableList.addingTag);

            selList.elemNum = 0;
            selList.loc     = uielem.Count + 1;
            //SelectableText newSel = new SelectableText(textHead, uidesc, uielem, selList, opdict, "Add", opdict[selList.which]);sdfd
            SelectableText newSel = new SelectableText(textHead, this, selList, OptionsDict.SelectableList.addingTag, opdict[selList.which]);

            newSel.SetValue(selList.which);

            uielem.Add(textHead);
            newSel.setCustomColor(Color.SlateGray);
            //SelectableText bo = this.AddSelectable("'''''''''''''''''''''''''''''''''''''''''''''''''''''", new List<string>{});
            //if (isPositive) bo.setCustomColor(Color.LightGreen); else bo.setCustomColor(Color.PaleVioletRed);
            return(newSel);
        }
        public SelectableText AddSelectableList(string selListFromDict, char kind)
        {
            SelectableList selList = new SelectableList(selListFromDict);

            return(AddSelectableList(selList, kind));
        }