Because I find the old icons set clearer and more visually efficient that the one currently provided with 3dsMAx since release 2010, I wrote this little script to install it properly.
There are indeed a few things to care about with how 3dsMax handles icons since R 2010. One of them is that 32 bits BMP format is now the standard, so no need anymore for an additional mask image. Those masks are still supported though and may introduce some mess in the GUI if not properly removed when switching back from the old style look to the current one.
Here is the visual difference between the two sets:
Script dialog window
The script dialog is quite simple and self explanatory:
Technical notes for Maxscripters
The script works in a quite simple way: we unzip the icons set we what to use and, in the case of the current icons set, we remove the deprecated icons.
Two points worth being noted because they are powerful features that can be used in other scripts: the use of 7zip and the function HiddentDOSCommand.
In order to save some space on the hard drive, I choose to compress the icons sets. We then have 2 x 2.5Mo of data instead of 2 x 17Mo. To do so, I used an open-source free-ware archiver named 7Zip. 7Zip is well documented and works very well in command line.
Introduced in 3dsMax 2009
Here is how these features are used in WkOldStyleLook.ms (see highlighted lines):
fn mfUnarchiveIcons rDataDir rArchiveName rTargetDir =
local lArchiveFileFullName = rDataDir + rArchiveName
local lbUnarchivingIsOk = false
local lbSendLogToFile = true
-- we create the command line to unzip the archive
local lCommandsStr = ""
lCommandsStr += "\"" + mSCRIPTROOTDIR + "7zipA\\7za.exe\" e \"" + lArchiveFileFullName + "\" -o\"" + rTargetDir + "\" -y"
-- we can choose to redirect the 7zip output to a file, as a log file
if lbSendLogToFile then lCommandsStr += " > \"" + rDataDir + "log.txt\" \n\r" else lCommandsStr += " \n\r"
-- we then execute the command to create the archive
local lExitCode = undefined
HiddenDOSCommand lCommandsStr exitCode:&lExitCode prompt:("Applying icons from " + rArchiveName + "...")
lbUnarchivingIsOk = 0 == lExitCode
if lbUnarchivingIsOk then
messagebox ("Icons set have been successfully applied\n\nYou need to relaunch 3dsMax to see them\n") title:"WkOldStyleLook"
else messagebox ("A problem occured during the unzipping of the new icons set;\nSee log.txt in the following directory for more information:\n\n" + rDataDir + "\n") title:"WkOldStyleLook Warning"