/// <summary> /// Split entry type and expr/prompt /// </summary> /// <param name="src">source line</param> /// <param name="entryType">entry type</param> /// <param name="value">expr or prompt</param> /// <returns>isSuccess</returns> private static bool GetEntryTypeValue(string src, out MenuEntryType entryType, out string value) { var match = FindEntryTypeValueRegex.Match(src); var type = match.Groups["key"].Value; value = match.Groups["val"].Value; return(Enum.TryParse(type, true, out entryType)); }
// // =============================================================================== // Create a new Menu Entry // =============================================================================== // public void AddEntry(string EntryName, string ParentiEntryName, string ImageLink, string ImageOverLink, string Link, string Caption, string OnClickJavascript = "", string Ignore1 = "", string ImageOpenLink = "", bool NewWindow = false) { string iEntryName; string UcaseEntryName; // iEntryName = EntryName.Replace(",", ""); UcaseEntryName = iEntryName.ToUpperInvariant(); // if (string.IsNullOrWhiteSpace(iEntryName)) { return; } if (UsedEntries.Contains(UcaseEntryName)) { return; } UsedEntries.Add(UcaseEntryName); if ((iEntryName != "") & (Strings.InStr(1, UsedEntries + ",", "," + UcaseEntryName + ",", Constants.vbBinaryCompare) == 0)) { UsedEntries = UsedEntries + "," + UcaseEntryName; if (iEntryCount >= iEntrySize) { iEntrySize = iEntrySize + 10; var oldIEntry = iEntry; iEntry = new MenuEntryType[iEntrySize + 1]; if (oldIEntry != null) { Array.Copy(oldIEntry, iEntry, Math.Min(iEntrySize + 1, oldIEntry.Length)); } } MenuEntryType withBlock = iEntry[iEntryCount]; withBlock.Link = Link; withBlock.Image = ImageLink; withBlock.OnClick = OnClickJavascript; withBlock.Name = UcaseEntryName; withBlock.ParentName = ParentiEntryName.ToUpperInvariant(); withBlock.ImageOver = ImageOverLink; withBlock.ImageOpen = ImageOpenLink; withBlock.NewWindow = NewWindow; withBlock.Caption = string.IsNullOrWhiteSpace(Caption) ? iEntryName : Caption; EntryIndexName.SetPointer(UcaseEntryName, iEntryCount); iEntryCount = iEntryCount + 1; } }