--======================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> function Skin.AddThemesToMenu(sThemesFolderPath, bRecurse, nMenuID, nInsertPosition) --[[>> << This functions must be preceeded bt Menu.AddMainMenu in the On Preload section. Place >> << this in the On Show section >> <<<<<<<<<<<<<<<<<<<<<===================================================================--]] tMenu = Application.GetMenu(); tThemes = File.Find(sThemesFolderPath, "*.msstyles", bRecurse, false, nil, nil); if not tThemes then Application.ExitScript(); end if nInsertPosition <= 0 then nInsertPosition = 1; elseif nInsertPosition > Table.Count(tMenu) then nInsertPosition = Table.Count(tMenu); end tMenu[nInsertPosition].SubMenu = {}; for nThemeIndex, sTheme in tThemes do tMenu[nInsertPosition].SubMenu[nThemeIndex] = {}; tMenu[nInsertPosition].SubMenu[nThemeIndex].Text = String.SplitPath(sTheme).Filename tMenu[nInsertPosition].SubMenu[nThemeIndex].ID = nMenuID + (nThemeIndex * 10); tMenu[nInsertPosition].SubMenu[nThemeIndex].Checked = false; tMenu[nInsertPosition].SubMenu[nThemeIndex].Enabled = true; tMenu[nInsertPosition].SubMenu[nThemeIndex].SubMenu = {}; tSubThemes = Skin.GetSubstyles(sTheme); for nSubThemeIndex, sSubTheme in tSubThemes do sSubThemeName = String.Left(sSubTheme, String.Length(sSubTheme) - 4); tMenu[nInsertPosition].SubMenu[nThemeIndex].SubMenu[nSubThemeIndex] = {}; tMenu[nInsertPosition].SubMenu[nThemeIndex].SubMenu[nSubThemeIndex].Text = sSubThemeName; tMenu[nInsertPosition].SubMenu[nThemeIndex].SubMenu[nSubThemeIndex].ID = nMenuID + (nThemeIndex * 10) + nSubThemeIndex; tMenu[nInsertPosition].SubMenu[nThemeIndex].SubMenu[nSubThemeIndex].Checked = false; tMenu[nInsertPosition].SubMenu[nThemeIndex].SubMenu[nSubThemeIndex].Enabled = true; tMenu[nInsertPosition].SubMenu[nThemeIndex].SubMenu[nSubThemeIndex].SubMenu = {}; sThemePath = String.Replace(sTheme, "\\", "\\\\", false); sMenuCode = [[Skin.ApplySkin(Application.GetWndHandle(), ]]; sMenuCode = sMenuCode.."\""..sThemePath.."\""; sMenuCode = sMenuCode..[[, ]] sMenuCode = sMenuCode.."\""..sSubTheme.."\""; sMenuCode = sMenuCode..[[);]]; Menu.CodeSet(tMenu[nInsertPosition].SubMenu[nThemeIndex].SubMenu[nSubThemeIndex].ID, sSubThemeName, sMenuCode); end nNextMenuItem = nThemeIndex + 1; end --create the seperator tMenu[nInsertPosition].SubMenu[nNextMenuItem] = {} tMenu[nInsertPosition].SubMenu[nNextMenuItem].Text = "---"; tMenu[nInsertPosition].SubMenu[nNextMenuItem].ID = nMenuID + 1000; tMenu[nInsertPosition].SubMenu[nNextMenuItem].Checked = false; tMenu[nInsertPosition].SubMenu[nNextMenuItem].Enabled = true; tMenu[nInsertPosition].SubMenu[nNextMenuItem].SubMenu = {}; nNextMenuItem = nNextMenuItem + 1; --create the default theme menu item tMenu[nInsertPosition].SubMenu[nNextMenuItem] = {} tMenu[nInsertPosition].SubMenu[nNextMenuItem].Text = "Default"; tMenu[nInsertPosition].SubMenu[nNextMenuItem].ID = nMenuID + 1001; tMenu[nInsertPosition].SubMenu[nNextMenuItem].Checked = false; tMenu[nInsertPosition].SubMenu[nNextMenuItem].Enabled = true; tMenu[nInsertPosition].SubMenu[nNextMenuItem].SubMenu = {}; sMenuCode = [[result = Skin.ApplySkin(Application.GetWndHandle(), "WinXP.msstyles", "");]]; Menu.CodeSet(nMenuID + 1001, "Default", sMenuCode); Application.SetMenu(tMenu); -->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> end--|||||||||||||END FUNCTION||||||||||||||||| -->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>