home *** CD-ROM | disk | FTP | other *** search
Wrap
-- Quad Menu Option Functions -- -- Created: Sept 20 2000 -- Last Updated: May 16 2001 Michael Russo -- Use ini file format instead of startup .ms file -- -- Author : Fred Ruff -- Version: 3D Studio Max Version 4.0 -- --*********************************************************************************************** -- MODIFY THIS AT YOUR OWN RISK -- -- Functions: -- -- SaveQuadOptions: This function store the quad colors from the advanced quad menu options -- dialog into an ini file. -- -- LoadQuadOptions: This function loads the quad colors from the specified ini file. -- -- -- Startup: -- -- Calls LoadQuadOptions for MaxQuadMenus.qmo to load the startup quad menu settings -- -- -- Utility functions -- fn GetStringFromColor cColor = ( return (((cColor.r) as string) + " " + ((cColor.g) as string) + " " + ((cColor.b) as string)) ) fn GetColorFromString sString = ( local cColor = (color 1 1 1 ) local lStr = (sString as StringStream) cColor.r = readValue lStr cColor.g = readValue lStr cColor.b = readValue lStr return (cColor as color) ) -- -- SaveQuadOptions -- fn SaveQuadOptions quadFilePath quadFileName quadExtention = ( try ( local QMS = QuadMenuSettings local iniFile = quadFilePath + "\\" + quadFileName + quadExtention for Quadnum = 1 to 4 do ( local section = "QuadColors" + Quadnum as string setINISetting iniFile section "TitleBarBackgroundColor" (GetStringFromColor (QMS.GetTitleBarBackgroundColor QuadNum)) as string setINISetting iniFile section "TitleBarTextColor" (GetStringFromColor (QMS.GetTitleBarTextColor QuadNum)) as string setINISetting iniFile section "ItemBackgroundColor" (GetStringFromColor (QMS.GetItemBackgroundColor QuadNum)) as string setINISetting iniFile section "ItemTextColor" (GetStringFromColor (QMS.GetItemTextColor QuadNum)) as string setINISetting iniFile section "LastExecutedItemTextColor" (GetStringFromColor (QMS.GetLastExecutedItemTextColor QuadNum)) as string setINISetting iniFile section "HighlightedItemBackgroundColor" (GetStringFromColor (QMS.GetHighlightedItemBackgroundColor QuadNum)) as string setINISetting iniFile section "HighlightedItemTextColor" (GetStringFromColor (QMS.GetHighlightedItemTextColor QuadNum)) as string setINISetting iniFile section "BorderColor" (GetStringFromColor (QMS.GetBorderColor QuadNum)) as string setINISetting iniFile section "DisabledShadowColor" (GetStringFromColor (QMS.GetDisabledShadowColor QuadNum)) as string setINISetting iniFile section "DisabledHighlightColor" (GetStringFromColor (QMS.GetDisabledHighlightColor QuadNum)) as string ) -- Interaction Settings setINISetting iniFile "Interaction" "UseLastExecutedItem" ((QMS.GetUseLastExecutedItem()) as string) -- Animation Settings setINISetting iniFile "Animation" "DisplayMethod" ((QMS.GetDisplayMethod()) as string) setINISetting iniFile "Animation" "AnimatedStepTime" ((QMS.GetAnimatedStepTime()) as string) setINISetting iniFile "Animation" "AnimatedSteps" ((QMS.GetAnimatedSteps()) as string) -- Display Settings setINISetting iniFile "Display" "SubMenuPauseTime" ((QMS.GetSubMenuPauseTime()) as string) setINISetting iniFile "Display" "Opacity" ((QMS.GetOpacity()) as string) setINISetting iniFile "Display" "RemoveRedundantSeparators" ((QMS.GetRemoveRedundantSeparators()) as string) -- Position Settings setINISetting iniFile "Position" "InitialCursorLocXInBox_0to1" ((QMS.GetInitialCursorLocXInBox_0to1()) as string) setINISetting iniFile "Position" "InitialCursorLocYInBox_0to1" ((QMS.GetInitialCursorLocYInBox_0to1()) as string) setINISetting iniFile "Position" "FirstQuadDisplayed" ((QMS.GetFirstQuadDisplayed()) as string) setINISetting iniFile "Position" "MirrorQuad" ((QMS.GetMirrorQuad()) as string) setINISetting iniFile "Position" "RepositionWhenClipped" ((QMS.GetRepositionWhenClipped()) as string) setINISetting iniFile "Position" "MoveCursorOnReposition" ((QMS.GetMoveCursorOnReposition()) as string) setINISetting iniFile "Position" "ReturnCursorAfterReposition" ((QMS.GetReturnCursorAfterReposition()) as string) -- Size Settings setINISetting iniFile "Size" "BorderSize" ((QMS.GetBorderSize()) as string) setINISetting iniFile "Size" "UseUniformQuadWidth" ((QMS.GetUseUniformQuadWidth()) as string) setINISetting iniFile "Size" "UseUniformItemHeight" ((QMS.GetUseUniformItemHeight()) as string) setINISetting iniFile "Size" "HorizontalMarginInPoints" ((QMS.GetHorizontalMarginInPoints()) as string) setINISetting iniFile "Size" "VerticalMarginInPoints" ((QMS.GetVerticalMarginInPoints()) as string) -- Font Settings setINISetting iniFile "Font" "ItemFontFace" ((QMS.GetItemFontFace()) as string) setINISetting iniFile "Font" "ItemFontSize" ((QMS.GetItemFontSize()) as string) setINISetting iniFile "Font" "TitleFontFace" ((QMS.GetTitleFontFace()) as string) setINISetting iniFile "Font" "TitleFontSize" ((QMS.GetTitleFontSize()) as string) ) Catch ( local str = "Error Saving " + quadFilePath + "\\" + quadFileName + quadExtention +"\n(The file may be read only.)\n\nAdvanced Quad Options not saved." messagebox str ) ) -- -- LoadQuadOptions -- fn LoadQuadOptions quadFilePath quadFileName quadExtention = ( try ( local QMS = QuadMenuSettings local iniFile = quadFilePath + "\\" + quadFileName + quadExtention for Quadnum = 1 to 4 do ( local section = "QuadColors" + Quadnum as string QMS.SetTitleBarBackgroundColor QuadNum (GetColorFromString (getINISetting iniFile section "TitleBarBackgroundColor")) QMS.SetTitleBarTextColor QuadNum (GetColorFromString (getINISetting iniFile section "TitleBarTextColor")) QMS.SetItemBackgroundColor QuadNum (GetColorFromString (getINISetting iniFile section "ItemBackgroundColor")) QMS.SetItemTextColor QuadNum (GetColorFromString (getINISetting iniFile section "ItemTextColor")) QMS.SetLastExecutedItemTextColor QuadNum (GetColorFromString (getINISetting iniFile section "LastExecutedItemTextColor")) QMS.SetHighlightedItemBackgroundColor QuadNum (GetColorFromString (getINISetting iniFile section "HighlightedItemBackgroundColor")) QMS.SetHighlightedItemTextColor QuadNum (GetColorFromString (getINISetting iniFile section "HighlightedItemTextColor")) QMS.SetBorderColor QuadNum (GetColorFromString (getINISetting iniFile section "BorderColor")) QMS.SetDisabledShadowColor QuadNum (GetColorFromString (getINISetting iniFile section "DisabledShadowColor")) QMS.SetDisabledHighlightColor QuadNum (GetColorFromString (getINISetting iniFile section "DisabledHighlightColor")) ) -- Interaction Settings QMS.SetUseLastExecutedItem (readValue ((getINISetting iniFile "Interaction" "UseLastExecutedItem") as StringStream)) -- Animation Settings QMS.SetDisplayMethod (readValue ((getINISetting iniFile "Animation" "DisplayMethod") as StringStream)) QMS.SetAnimatedStepTime (readValue ((getINISetting iniFile "Animation" "AnimatedStepTime") as StringStream)) QMS.SetAnimatedSteps (readValue ((getINISetting iniFile "Animation" "AnimatedSteps") as StringStream)) -- Display Settings QMS.SetSubMenuPauseTime (readValue ((getINISetting iniFile "Display" "SubMenuPauseTime") as StringStream)) QMS.SetOpacity (readValue ((getINISetting iniFile "Display" "Opacity") as StringStream)) QMS.SetRemoveRedundantSeparators (readValue ((getINISetting iniFile "Display" "RemoveRedundantSeparators") as StringStream)) -- Position Settings local cursorLocX = (readValue ((getINISetting iniFile "Position" "InitialCursorLocXInBox_0to1") as StringStream)) local cursorLocY = (readValue ((getINISetting iniFile "Position" "InitialCursorLocYInBox_0to1") as StringStream)) QMS.SetInitialCursorLocInBox_0to1 cursorLocX cursorLocY QMS.SetFirstQuadDisplayed (readValue ((getINISetting iniFile "Position" "FirstQuadDisplayed") as StringStream)) QMS.SetMirrorQuad (readValue ((getINISetting iniFile "Position" "MirrorQuad") as StringStream)) QMS.SetRepositionWhenClipped (readValue ((getINISetting iniFile "Position" "RepositionWhenClipped") as StringStream)) QMS.SetMoveCursorOnReposition (readValue ((getINISetting iniFile "Position" "MoveCursorOnReposition") as StringStream)) QMS.SetReturnCursorAfterReposition (readValue ((getINISetting iniFile "Position" "ReturnCursorAfterReposition") as StringStream)) -- Size Settings QMS.SetBorderSize (readValue ((getINISetting iniFile "Size" "BorderSize") as StringStream)) QMS.SetUseUniformQuadWidth (readValue ((getINISetting iniFile "Size" "UseUniformQuadWidth") as StringStream)) QMS.SetUseUniformItemHeight (readValue ((getINISetting iniFile "Size" "UseUniformItemHeight") as StringStream)) QMS.SetHorizontalMarginInPoints (readValue ((getINISetting iniFile "Size" "HorizontalMarginInPoints") as StringStream)) QMS.SetVerticalMarginInPoints (readValue ((getINISetting iniFile "Size" "VerticalMarginInPoints") as StringStream)) -- Font Settings QMS.SetItemFontFace (getINISetting iniFile "Font" "ItemFontFace") QMS.SetItemFontSize (readValue ((getINISetting iniFile "Font" "ItemFontSize") as StringStream)) QMS.SetTitleFontFace (getINISetting iniFile "Font" "TitleFontFace") QMS.SetTitleFontSize (readValue ((getINISetting iniFile "Font" "TitleFontSize") as StringStream)) ) Catch ( local str = "Error Loading " + quadFilePath + "\\" + quadFileName + quadExtention +"\n(The file may be read only.)\n\nAdvanced Quad Options not be loaded." messagebox str ) ) -- -- Startup -- fn LoadDefaultQuadMenuOptions = ( -- russom 06/07/01 -- LoadQuadOptions (getdir(#UI)) "MaxQuadMenus" ".qmo" QuadMenuSettings.LoadSettingsFile "MaxQuadMenus.qmo" ) -- call LoadDefaultQuadMenuOptions at startup LoadDefaultQuadMenuOptions()