home *** CD-ROM | disk | FTP | other *** search
/ GameStar Special 2002 April / GSSH42002.iso / EDITOREN / DS / gmax / gmaxinst_1-1.exe / gmaxsetup11.cab / Macro_UIScheme.mcr < prev    next >
Text File  |  2002-02-13  |  13KB  |  295 lines

  1. -- UI Scheme MacroScript File
  2. --
  3. -- Created:          Nov 1 2000
  4. -- Last Updated:     Dec 15 2000
  5. --             May 17 2001 - Michael Russo - uses new SaveQuadOptions function with .qmo files
  6. --                                           uses .idr instead of .dat for icon dir settings
  7. --             June 7 2001 - Michael Russo - uses new CUI IO methods for quad menus and icon dir
  8. --
  9. -- Author :   Fredrick Ruff, Frank DeLise
  10. -- Version:  3D Studio Max Version 4.0
  11. --
  12. -- 
  13. -- This script allows users to load UI schemes and icon directories.
  14. --***********************************************************************************************
  15. -- MODIFY THIS AT YOUR OWN RISK
  16.  
  17. MacroScript LoadScheme 
  18.     category:"Customize User Interface" 
  19.     internalcategory:"Customize User Interface" 
  20.     tooltip:"Load Custom UI Scheme" 
  21.     ButtonText:"Load Custom UI Scheme"
  22.     SilentErrors:(Debug != True)
  23.     (
  24.         Global UIScheme_Icon_Folder, UIScheme_Icon_Type, UIScheme_Filename, UIScheme_Icon_Setup, LoadSchemename, UIScheme_Root    
  25.         Global UIScheme_Directories, UIScheme_LoadDialog, UIScheme_IconDialog, UIScheme_Bitmap_Init        
  26.         
  27.             fn existFile fname = (getfiles fname).count != 0 
  28.             -- Get filename from an open dialog
  29.             
  30.             --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  31.             -- Default Directory and Filename "DefaultUI"
  32.             --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  33.             
  34.             local DirectorySeed = getdir(#UI)+"\\DefaultUI"
  35.             
  36.             --\\\\\\\\\\\\\\\\\\\\\            
  37.             -- Disable Esacpe Key
  38.             --\\\\\\\\\\\\\\\\\\\\\
  39.             
  40.             EscapeEnable=false
  41.             
  42.             --\\\\\\\\\\\\\\\\\\\\\
  43.             -- Disable Esacpe Key
  44.             --\\\\\\\\\\\\\\\\\\\\\
  45.             
  46.             UIScheme_Filename = getOpenFilename filename:DirectorySeed caption:"Load Custom UI Scheme" types:"UI File(*.cui)|*.cui|Menu File(*.mnu)|*.mnu|Color File(*.clr)|*.clr|Shortcuts File(*.kbd)|*.kbd|Quad Options File(*.qmo)|*.qmo"
  47.             
  48.             ---\\\\\\\\\\\\\\\\\\\\\
  49.             -- Enable Esacpe Key
  50.             --\\\\\\\\\\\\\\\\\\\\\\\
  51.                         
  52.             EscapeEnabled = true
  53.             
  54.             If UIScheme_Filename != undefined do
  55.             (
  56.                 --\\\\\\\\\\\\\\\\\\\\\
  57.                 -- Create Loading dialog
  58.                 --\\\\\\\\\\\\\\\\\\\\\
  59.                 
  60.                 Rollout UIScheme_LoadDialog "Custom Scheme" Width:200 Height:100
  61.                 (
  62.                     label lbl2 "Loading Custom Scheme"  offset:[0,30]
  63.                     label lbl3 "Please Wait..."  
  64.                 )
  65.                 CreateDialog UIScheme_LoadDialog width:200 height:100
  66.                 
  67.                     --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  68.                     -- Load all interface files using name from open dialog
  69.                     --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  70.                     
  71.                     LoadSchemeName = GetFileNameFile UIScheme_Filename
  72.                     
  73.                     --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  74.                     -- Load Menu File, Color File, and Keyboard File
  75.                     --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  76.                                     
  77.                     MenuMan.LoadMenuFile             (LoadSchemeName +".mnu" )
  78.                     ColorMan.LoadColorFile             (LoadSchemeName +".clr" )
  79.                     ActionMan.LoadKeyboardFile         (LoadSchemeName +".kbd" )
  80.                     
  81.                     --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  82.                     -- Load .CUI File and QuadMenu File
  83.                     --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  84.                                                 
  85.                     if (existfile (LoadSchemeName +".cui" )) == true do cui.loadConfig (LoadSchemeName +".cui" )
  86.                     -- russom 06/07/01
  87.                     -- if (existfile (LoadSchemeName +".qmo" )) == true do LoadQuadOptions (GetDir #ui) LoadSchemeName ".qmo"
  88.                     if (existfile (LoadSchemeName +".qmo" )) == true do QuadMenuSettings.LoadSettingsFile (LoadSchemeName+".qmo")
  89.                     --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  90.                     -- Save Quad colors as startup
  91.                     --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  92.                         
  93.                     -- russom SaveQuadOptions (GetDir #ui) "MaxQuadMenus" ".qmo"
  94.                     QuadMenuSettings.SaveSettingsFile "MaxQuadMenus.qmo"
  95.  
  96.                     Print UIScheme_Filename
  97.                     
  98.                     --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  99.                     -- Save CUI file as startup so your changes are loaded when restarting MAX
  100.                     --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  101.     
  102.                     cui.saveConfigAs ("MaxStart.cui")
  103.                     
  104.                     --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  105.                     -- If an Icon .Dat file exisit, Use it when loading Scheme
  106.                     --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  107.                                     
  108.                     -- russom - 05/18/01 - changes for gmax security
  109.                     -- UIScheme_Icon_Folder = OpenFile (GetDir #maxroot + "ui\\" + LoadSchemeName + ".dat")
  110.                     -- If UIScheme_Icon_Folder != undefined then (UIScheme_Icon_Type = ReadLine UIScheme_Icon_Folder)
  111.  
  112.                     -- russom 06/07/01
  113.                     -- UIScheme_Icon_Folder = getINISetting ((GetDir #ui) + "\\" + LoadSchemeName + ".idr") "IconSettings" "Directory"
  114.                     ColorMan.LoadIconFile (LoadSchemeName + ".dat")
  115.                     UIScheme_Icon_Folder = ColorMan.ReadIconFile()
  116.                     if UIScheme_Icon_Folder != "" then (UIScheme_Icon_Type = UIScheme_Icon_Folder )
  117.  
  118.                     --\\\\\\\\\\\\\\\\\\\\\\
  119.                     -- Loading Icons Dialog
  120.                     --\\\\\\\\\\\\\\\\\\\\\\
  121.                     
  122.                     DestroyDialog UIScheme_LoadDialog 
  123.                     
  124.                     UIScheme_Root = (GetDir #maxroot + "ui\\")
  125.                     Try(UIScheme_Bitmap_Init = OpenBitmap (UIScheme_Root + UIScheme_Icon_Type + "\\CreateTypes_16i.bmp"))
  126.                     Catch(Try(UIScheme_Bitmap_Init = OpenBitmap (UIScheme_Root + "Icons" + "\\Null_24i.bmp"))Catch())
  127.                     
  128.                     Try(
  129.                         Rollout UIScheme_IconDialog "Custom Scheme" Width:200 Height:200
  130.                         (
  131.                             Bitmap UIScheme_Icon_Display "" Bitmap:UIScheme_Bitmap_Init 
  132.                             label lbl2 "Loading Icons"  offset:[0,5]
  133.                             label lbl3 "Please Wait..."  
  134.                             
  135.                             On UIScheme_IconDialog Open do (UIScheme_Icon_Display.Bitmap = UIScheme_Bitmap_Init)
  136.                                             
  137.                         )
  138.                         CreateDialog UIScheme_IconDialog width:200 height:100
  139.                         
  140.                         --\\\\\\\\\\\\\
  141.                         -- Load Icons
  142.                         --\\\\\\\\\\\\\
  143.                         
  144.                         ColorMan.SetIconFolder UIScheme_Icon_Type
  145.                         Close UIScheme_Icon_Folder        
  146.                         
  147.                         DestroyDialog UIScheme_IconDialog
  148.                         
  149.                         --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  150.                         -- Force Redraw to clean up the UI
  151.                         --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  152.                         
  153.                         forceCompleteRedraw()
  154.                         
  155.                         --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  156.                         -- End
  157.                         --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  158.                         )
  159.                         Catch(DestroyDialog UIScheme_IconDialog)        
  160.             )
  161.     )
  162.  
  163. MacroScript SaveScheme 
  164.     category:"Customize User Interface" 
  165.     internalcategory:"Customize User Interface" 
  166.     tooltip:"Save Custom UI Scheme" 
  167.     ButtonText:"Save Custom UI Scheme"
  168.     SilentErrors:(Debug != True)
  169.     (
  170.     
  171.     Global UIScheme_Directories_Names, UIScheme_Directories_Name, UIScheme_Bitmap_Preview 
  172.         
  173.         --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  174.         -- Get filename from Save dialog
  175.         --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  176.         
  177.         local DirectorySeed = getdir(#UI)+"\\DefaultUI"
  178.         
  179.         --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  180.         -- Set types of files to load
  181.         --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  182.         
  183.         UIScheme_Filename = getSaveFilename filename:DirectorySeed caption:"Save Custom UI Scheme" types:"UI File(*.cui)|*.cui|Menu File(*.mnu)|*.mnu|Color File(*.clr)|*.clr|Shortcut File(*.kbd)|*.kbd|"
  184.         
  185.         If UIScheme_Filename != undefined do
  186.         (
  187.             Rollout SaveDialog "Custom Scheme" width:200 height:100
  188.             (
  189.                 label lbl2 "Saving Custom Interface Scheme" offset:[0,30]
  190.                 label lbl3 "Please Wait..."  
  191.             )
  192.             CreateDialog SaveDialog width:200 height:100
  193.                 
  194.                 --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  195.                 -- Save all interface file formats out to name aquired from dialog
  196.                 --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  197.                 
  198.                 SaveSchemeName = GetFileNameFile UIScheme_Filename
  199.                 
  200.                 MenuMan.saveMenuFile         (SaveSchemeName +".mnu")
  201.                 ColorMan.saveColorFIle         (SaveSchemeName +".clr" )
  202.                 ActionMan.saveKeyboardFile     (SaveSchemeName +".kbd" )
  203.                 Cui.saveConfigAs             (SaveSchemeName +".cui")
  204.                 
  205.                 --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\            
  206.                 -- Save CUI file as startup so your changes are loaded when restarting MAX
  207.                 --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  208.     
  209.                 cui.saveConfigAs ("MaxStart.cui")
  210.                 
  211.                 --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  212.                 -- Saves Quad Colors into a MAXScript file in your UI directory with .qcl extention
  213.                 --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  214.                 
  215.                 -- russom 06/07/01
  216.                 -- SaveQuadOptions (GetDir #ui) SaveSchemeName ".qmo"
  217.                 QuadMenuSettings.SaveSettingsFile (SaveSchemeName + ".qmo")
  218.             
  219.                 --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  220.                 -- Save Icon Folder setup
  221.                 --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  222.                 
  223.                 If QueryBox "Would You Like to Save an Icon Setup for This Scheme?" title:"UI Scheme Icons" then 
  224.                 (
  225.                     UIScheme_Directories = GetDirectories (GetDir #maxroot + "ui\\*")
  226.                     UIScheme_Directories_Names = #()
  227.                     UIScheme_Root = (GetDir #maxroot + "ui\\")
  228.                     UIScheme_Directories_Name = StringStream
  229.                     UIScheme_Directories_Name = ""
  230.  
  231.                 --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  232.                 -- Parse directories for valid directories only
  233.                 --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  234.                 
  235.                     For D in 1 to UIScheme_Directories.count do
  236.                     (
  237.                         UIScheme_Directories_Name = ""
  238.                         for L in 1 to UIScheme_Directories[D].count do (If UIScheme_Directories[D][L] != UIScheme_Root[L] and UIScheme_Directories[D][L] != "\\" then UIScheme_Directories_Name += UIScheme_Directories[D][L])
  239.                         
  240.                         If UIScheme_Directories_Name != "macroscripts" then (Append UIScheme_Directories_Names UIScheme_Directories_Name)
  241.                     )
  242.                     
  243.                 --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  244.                 -- Icon pack lister, List all valid icon folders
  245.                 --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  246.                 
  247.                     UIScheme_Bitmap_Preview = (UIScheme_Root + "Icons" + "\\CreateTypes_16i.bmp")
  248.                 
  249.                     Rollout UIScheme_IconRoll "Icon Directory"
  250.                     (
  251.                         Bitmap UIScheme_Icon_Preview "" Filename:UIScheme_Bitmap_Preview 
  252.                         ListBox UIScheme_Folders "Icon Packs" items:UIScheme_Directories_Names Height:8
  253.                         Button UIScheme_Folder_Use "Use This Directory" Width:100
  254.                         
  255.                         On UIScheme_IconRoll open do 
  256.                         (
  257.                             Try(
  258.                                     UIScheme_Bitmap_Preview = OpenBitmap (UIScheme_Root + UIScheme_Folders.selected + "\\CreateTypes_16i.bmp")
  259.                                     UIScheme_Icon_Preview.Bitmap = UIScheme_Bitmap_Preview
  260.                                 )Catch()
  261.                         )
  262.     
  263.                         On UIScheme_Folders selected i do
  264.                         (
  265.                                     
  266.                             Try(
  267.                                 UIScheme_Bitmap_Preview = OpenBitmap (UIScheme_Root + UIScheme_Folders.selected + "\\CreateTypes_16i.bmp")
  268.                                 UIScheme_Icon_Preview.Bitmap = UIScheme_Bitmap_Preview
  269.                                 )Catch(Try(UIScheme_Icon_Preview.Bitmap = OpenBitmap (UIScheme_Root + "Icons" + "\\Null_24i.bmp"))Catch())
  270.                             ) 
  271.                         
  272.                         On UIScheme_Folder_Use pressed do 
  273.                         (
  274.                             --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  275.                             -- Generate a Scheme name . dat file containing the directory name
  276.                             --\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  277.                             
  278.                             -- russom - 05/18/01 - changes for gmax security
  279.                             -- UIScheme_Icon_Setup = CreateFile (GetDir #maxroot + "ui\\" + SaveSchemeName + ".dat")
  280.                             -- Format "%" UIScheme_Folders.selected to:UIScheme_Icon_Setup
  281.                             -- Close UIScheme_Icon_Setup
  282.     
  283.                             -- russom 06/07/01                    
  284.                             -- setINISetting ((GetDir #ui) + "\\" + SaveSchemeName + ".idr") "IconSettings" "Directory" ((UIScheme_Folders.selected) as string)
  285.                             ColorMan.SaveIconFile (SaveSchemeName + ".dat") ((UIScheme_Folders.selected) as string)
  286.                             
  287.                             DestroyDialog UIScheme_IconRoll
  288.                         )
  289.                     )
  290.                     CreateDialog UIScheme_IconRoll Width:200 Height:200
  291.                 )
  292.                 
  293.             DestroyDialog SaveDialog
  294.         )
  295.     )