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

  1. -- Quad Menu Option Functions
  2. --
  3. -- Created:          Sept 20 2000
  4. -- Last Updated:    May 16 2001     Michael Russo
  5. --                    Use ini file format instead of startup .ms file
  6. --
  7. -- Author :   Fred Ruff
  8. -- Version:  3D Studio Max Version 4.0
  9. --
  10. --***********************************************************************************************
  11. -- MODIFY THIS AT YOUR OWN RISK
  12. --
  13. -- Functions:
  14. --
  15. -- SaveQuadOptions:  This function store the quad colors from the advanced quad menu options
  16. --                   dialog into an ini file.
  17. --
  18. -- LoadQuadOptions:  This function loads the quad colors from the specified ini file.
  19. --
  20. -- 
  21. -- Startup:
  22. --
  23. -- Calls LoadQuadOptions for MaxQuadMenus.qmo to load the startup quad menu settings
  24. --
  25.  
  26. --
  27. -- Utility functions
  28. --
  29. fn GetStringFromColor cColor =
  30. (
  31.     return (((cColor.r) as string) + " " + ((cColor.g) as string) + " " + ((cColor.b) as string))
  32. )
  33.  
  34. fn GetColorFromString sString =
  35. (
  36.  
  37.     local cColor = (color 1 1 1 )
  38.     local lStr = (sString as StringStream)
  39.  
  40.     cColor.r = readValue lStr
  41.     cColor.g = readValue lStr
  42.     cColor.b = readValue lStr
  43.  
  44.     return (cColor as color)
  45. )
  46.  
  47. --
  48. -- SaveQuadOptions
  49. --
  50. fn SaveQuadOptions quadFilePath quadFileName quadExtention =
  51. (
  52.     try (
  53.         local QMS = QuadMenuSettings
  54.         local iniFile = quadFilePath + "\\" + quadFileName + quadExtention 
  55.  
  56.         for Quadnum = 1 to 4 do
  57.         (
  58.             local section = "QuadColors" + Quadnum as string
  59.             setINISetting iniFile section "TitleBarBackgroundColor"            (GetStringFromColor (QMS.GetTitleBarBackgroundColor QuadNum)) as string
  60.             setINISetting iniFile section "TitleBarTextColor"                (GetStringFromColor (QMS.GetTitleBarTextColor QuadNum)) as string
  61.             setINISetting iniFile section "ItemBackgroundColor"                (GetStringFromColor (QMS.GetItemBackgroundColor QuadNum)) as string
  62.             setINISetting iniFile section "ItemTextColor"                    (GetStringFromColor (QMS.GetItemTextColor QuadNum)) as string
  63.             setINISetting iniFile section "LastExecutedItemTextColor"        (GetStringFromColor (QMS.GetLastExecutedItemTextColor QuadNum)) as string
  64.             setINISetting iniFile section "HighlightedItemBackgroundColor"    (GetStringFromColor (QMS.GetHighlightedItemBackgroundColor QuadNum)) as string
  65.             setINISetting iniFile section "HighlightedItemTextColor"        (GetStringFromColor (QMS.GetHighlightedItemTextColor QuadNum)) as string
  66.             setINISetting iniFile section "BorderColor"                        (GetStringFromColor (QMS.GetBorderColor QuadNum)) as string
  67.             setINISetting iniFile section "DisabledShadowColor"                (GetStringFromColor (QMS.GetDisabledShadowColor QuadNum)) as string
  68.             setINISetting iniFile section "DisabledHighlightColor"            (GetStringFromColor (QMS.GetDisabledHighlightColor QuadNum)) as string
  69.         )
  70.  
  71.         -- Interaction Settings
  72.         setINISetting iniFile "Interaction" "UseLastExecutedItem"        ((QMS.GetUseLastExecutedItem()) as string)
  73.  
  74.         -- Animation Settings
  75.         setINISetting iniFile "Animation" "DisplayMethod"                ((QMS.GetDisplayMethod()) as string)
  76.         setINISetting iniFile "Animation" "AnimatedStepTime"            ((QMS.GetAnimatedStepTime()) as string)
  77.         setINISetting iniFile "Animation" "AnimatedSteps"                ((QMS.GetAnimatedSteps()) as string)
  78.     
  79.         -- Display Settings
  80.         setINISetting iniFile "Display" "SubMenuPauseTime"                ((QMS.GetSubMenuPauseTime()) as string)
  81.         setINISetting iniFile "Display" "Opacity"                        ((QMS.GetOpacity()) as string)
  82.         setINISetting iniFile "Display" "RemoveRedundantSeparators"        ((QMS.GetRemoveRedundantSeparators()) as string)
  83.  
  84.         -- Position Settings
  85.         setINISetting iniFile "Position" "InitialCursorLocXInBox_0to1"    ((QMS.GetInitialCursorLocXInBox_0to1()) as string)
  86.         setINISetting iniFile "Position" "InitialCursorLocYInBox_0to1"    ((QMS.GetInitialCursorLocYInBox_0to1()) as string)
  87.         setINISetting iniFile "Position" "FirstQuadDisplayed"            ((QMS.GetFirstQuadDisplayed()) as string)
  88.         setINISetting iniFile "Position" "MirrorQuad"                    ((QMS.GetMirrorQuad()) as string)
  89.         setINISetting iniFile "Position" "RepositionWhenClipped"        ((QMS.GetRepositionWhenClipped()) as string)
  90.         setINISetting iniFile "Position" "MoveCursorOnReposition"        ((QMS.GetMoveCursorOnReposition()) as string)
  91.         setINISetting iniFile "Position" "ReturnCursorAfterReposition"    ((QMS.GetReturnCursorAfterReposition()) as string)
  92.         
  93.         -- Size Settings
  94.         setINISetting iniFile "Size" "BorderSize"                        ((QMS.GetBorderSize()) as string)
  95.         setINISetting iniFile "Size" "UseUniformQuadWidth"                ((QMS.GetUseUniformQuadWidth()) as string)
  96.         setINISetting iniFile "Size" "UseUniformItemHeight"                ((QMS.GetUseUniformItemHeight()) as string)
  97.         setINISetting iniFile "Size" "HorizontalMarginInPoints"            ((QMS.GetHorizontalMarginInPoints()) as string)
  98.         setINISetting iniFile "Size" "VerticalMarginInPoints"            ((QMS.GetVerticalMarginInPoints()) as string)
  99.     
  100.         -- Font Settings
  101.         setINISetting iniFile "Font" "ItemFontFace"                        ((QMS.GetItemFontFace()) as string)
  102.         setINISetting iniFile "Font" "ItemFontSize"                        ((QMS.GetItemFontSize()) as string)
  103.         setINISetting iniFile "Font" "TitleFontFace"                    ((QMS.GetTitleFontFace()) as string)
  104.         setINISetting iniFile "Font" "TitleFontSize"                    ((QMS.GetTitleFontSize()) as string)
  105.  
  106.     )
  107.     Catch (
  108.             local str = "Error Saving " + quadFilePath + "\\" + quadFileName + quadExtention +"\n(The file may be read only.)\n\nAdvanced Quad Options not saved."
  109.             messagebox str
  110.     )
  111. )
  112.  
  113. --
  114. -- LoadQuadOptions
  115. --
  116. fn LoadQuadOptions quadFilePath quadFileName quadExtention =
  117. (
  118.     try (
  119.         local QMS = QuadMenuSettings
  120.         local iniFile = quadFilePath + "\\" + quadFileName + quadExtention 
  121.  
  122.         for Quadnum = 1 to 4 do
  123.         (
  124.             local section = "QuadColors" + Quadnum as string
  125.  
  126.             QMS.SetTitleBarBackgroundColor QuadNum            (GetColorFromString (getINISetting iniFile section "TitleBarBackgroundColor"))
  127.             QMS.SetTitleBarTextColor QuadNum                (GetColorFromString (getINISetting iniFile section "TitleBarTextColor"))
  128.             QMS.SetItemBackgroundColor QuadNum                (GetColorFromString (getINISetting iniFile section "ItemBackgroundColor"))
  129.             QMS.SetItemTextColor QuadNum                    (GetColorFromString (getINISetting iniFile section "ItemTextColor"))
  130.             QMS.SetLastExecutedItemTextColor QuadNum        (GetColorFromString (getINISetting iniFile section "LastExecutedItemTextColor"))
  131.             QMS.SetHighlightedItemBackgroundColor QuadNum    (GetColorFromString (getINISetting iniFile section "HighlightedItemBackgroundColor"))
  132.             QMS.SetHighlightedItemTextColor QuadNum            (GetColorFromString (getINISetting iniFile section "HighlightedItemTextColor"))
  133.             QMS.SetBorderColor QuadNum                        (GetColorFromString (getINISetting iniFile section "BorderColor"))
  134.             QMS.SetDisabledShadowColor QuadNum                (GetColorFromString (getINISetting iniFile section "DisabledShadowColor"))
  135.             QMS.SetDisabledHighlightColor QuadNum            (GetColorFromString (getINISetting iniFile section "DisabledHighlightColor"))
  136.         )
  137.  
  138.         -- Interaction Settings
  139.         QMS.SetUseLastExecutedItem            (readValue ((getINISetting iniFile "Interaction" "UseLastExecutedItem") as StringStream))
  140.  
  141.         -- Animation Settings
  142.         QMS.SetDisplayMethod                (readValue ((getINISetting iniFile "Animation" "DisplayMethod") as StringStream))
  143.         QMS.SetAnimatedStepTime                (readValue ((getINISetting iniFile "Animation" "AnimatedStepTime") as StringStream))
  144.         QMS.SetAnimatedSteps                (readValue ((getINISetting iniFile "Animation" "AnimatedSteps") as StringStream))
  145.  
  146.         -- Display Settings
  147.         QMS.SetSubMenuPauseTime                (readValue ((getINISetting iniFile "Display" "SubMenuPauseTime") as StringStream))
  148.         QMS.SetOpacity                        (readValue ((getINISetting iniFile "Display" "Opacity") as StringStream))
  149.         QMS.SetRemoveRedundantSeparators    (readValue ((getINISetting iniFile "Display" "RemoveRedundantSeparators") as StringStream))
  150.  
  151.         -- Position Settings
  152.         local cursorLocX =                    (readValue ((getINISetting iniFile "Position" "InitialCursorLocXInBox_0to1") as StringStream))
  153.         local cursorLocY =                    (readValue ((getINISetting iniFile "Position" "InitialCursorLocYInBox_0to1") as StringStream))
  154.         QMS.SetInitialCursorLocInBox_0to1    cursorLocX cursorLocY
  155.         QMS.SetFirstQuadDisplayed            (readValue ((getINISetting iniFile "Position" "FirstQuadDisplayed") as StringStream))
  156.         QMS.SetMirrorQuad                    (readValue ((getINISetting iniFile "Position" "MirrorQuad") as StringStream))
  157.         QMS.SetRepositionWhenClipped        (readValue ((getINISetting iniFile "Position" "RepositionWhenClipped") as StringStream))
  158.         QMS.SetMoveCursorOnReposition        (readValue ((getINISetting iniFile "Position" "MoveCursorOnReposition") as StringStream))
  159.         QMS.SetReturnCursorAfterReposition    (readValue ((getINISetting iniFile "Position" "ReturnCursorAfterReposition") as StringStream))
  160.         
  161.         -- Size Settings
  162.         QMS.SetBorderSize                    (readValue ((getINISetting iniFile "Size" "BorderSize") as StringStream))
  163.         QMS.SetUseUniformQuadWidth            (readValue ((getINISetting iniFile "Size" "UseUniformQuadWidth") as StringStream))
  164.         QMS.SetUseUniformItemHeight            (readValue ((getINISetting iniFile "Size" "UseUniformItemHeight") as StringStream))
  165.         QMS.SetHorizontalMarginInPoints        (readValue ((getINISetting iniFile "Size" "HorizontalMarginInPoints") as StringStream))
  166.         QMS.SetVerticalMarginInPoints        (readValue ((getINISetting iniFile "Size" "VerticalMarginInPoints") as StringStream))
  167.  
  168.         -- Font Settings
  169.         QMS.SetItemFontFace                    (getINISetting iniFile "Font" "ItemFontFace")
  170.         QMS.SetItemFontSize                    (readValue ((getINISetting iniFile "Font" "ItemFontSize") as StringStream))
  171.         QMS.SetTitleFontFace                (getINISetting iniFile "Font" "TitleFontFace")
  172.         QMS.SetTitleFontSize                (readValue ((getINISetting iniFile "Font" "TitleFontSize") as StringStream))
  173.  
  174.     )
  175.     Catch (
  176.             local str = "Error Loading " + quadFilePath + "\\" + quadFileName + quadExtention +"\n(The file may be read only.)\n\nAdvanced Quad Options not be loaded."
  177.             messagebox str
  178.     )
  179. )
  180.  
  181.  
  182. --
  183. -- Startup
  184. --
  185. fn LoadDefaultQuadMenuOptions =
  186. (
  187.     -- russom 06/07/01
  188.     -- LoadQuadOptions (getdir(#UI)) "MaxQuadMenus" ".qmo"
  189.  
  190.     QuadMenuSettings.LoadSettingsFile "MaxQuadMenus.qmo"
  191. )
  192.  
  193. -- call LoadDefaultQuadMenuOptions at startup
  194. LoadDefaultQuadMenuOptions()
  195.