// =========================================================================== // Copyright 2018 Autodesk, Inc. All rights reserved. // // Use of this software is subject to the terms of the Autodesk license // agreement provided at the time of installation or download, or which // otherwise accompanies this software in either electronic or hard copy form. // =========================================================================== // // Create sub menus to for each image file format // // These tables translate between the internal representation of the // image formats and the UI that is presented to the user. // // Fill up the below tables alphabetically. // NOTE !!!! WARNING !!!! NOTE !!!! WARNING !!!! NOTE !!!! WARNING !!!! // If you are changing one of the menuItem fields below or adding new ones // or whatever, be certain to also update the fields in the // 'createImageFormats()' procedure of createImageFormats.mel // // TODO: There has got to be a better way of implementing this mechanism. // global proc buildImageFormatsMenu( int $wantVector, int $wantMovie, int $wantSixteen, int $wantPSDLayered, int $wantQuantel ) { global string $gImgExt[]; if (size( $gImgExt ) == 0) { // If the file format array has not been initialized yet, do so. // This routine may be called in dynPaintMenus.mel during the // file save for PFX canvas images. createImageFormats(); } if($wantVector) { int $enable = true; menuItem -label (uiRes("m_buildImageFormatsMenu.kMacromediaSWF")) -data 60 -enable $enable; menuItem -label (uiRes("m_buildImageFormatsMenu.kSwift3DImporter")) -data 63 -enable $enable; menuItem -label (uiRes("m_buildImageFormatsMenu.kEncapsulatedPostscript")) -data 9 -enable $enable; menuItem -label (uiRes("m_buildImageFormatsMenu.kAdobeIllustrator")) -data 61 -enable $enable; menuItem -label (uiRes("m_buildImageFormatsMenu.kSVG")) -data 62 -enable $enable; menuItem -d true -data 999; } menuItem -label (uiRes("m_buildImageFormatsMenu.kAliasPIX")) -data 6; if ($wantMovie && `about -nt`) { menuItem -label (uiRes("m_buildImageFormatsMenu.kAVI")) -data 23; } menuItem -label (uiRes("m_buildImageFormatsMenu.kCineon")) -data 11; menuItem -label (uiRes("m_buildImageFormatsMenu.kDDS")) -data 35; if (!$wantVector) { // It's already in the vector formats menuItem -label (uiRes("m_buildImageFormatsMenu.kEPS")) -data 9; } menuItem -label (uiRes("m_buildImageFormatsMenu.kGIF")) -data 0; menuItem -label (uiRes("m_buildImageFormatsMenu.kJPEG")) -data 8; if (`about -mac`) { menuItem -label (uiRes("m_buildImageFormatsMenu.kMacPaint")) -data 30; } menuItem -label (uiRes("m_buildImageFormatsMenu.kMayaIFF")) -data 7; if ($wantSixteen) { menuItem -label (uiRes("m_buildImageFormatsMenu.kMaya16IFF")) -data 10; } menuItem -label (uiRes("m_buildImageFormatsMenu.kPSD")) -data 31; if ($wantPSDLayered) { menuItem -label (uiRes("m_buildImageFormatsMenu.kPSDLayered")) -data 36; } menuItem -label (uiRes("m_buildImageFormatsMenu.kPNG")) -data 32; if ($wantQuantel) { menuItem -label (uiRes("m_buildImageFormatsMenu.kQuantel")) -data 12; } if (`about -mac`) { menuItem -label (uiRes("m_buildImageFormatsMenu.kQuickDraw")) -data 33; menuItem -label (uiRes("m_buildImageFormatsMenu.kQuicktimeImage")) -data 34; } if ( $wantMovie ) { menuItem -label (uiRes("m_buildImageFormatsMenu.kQuicktimeMovie")) -data 22; } menuItem -label (uiRes("m_buildImageFormatsMenu.kRLA")) -data 2; menuItem -label (uiRes("m_buildImageFormatsMenu.kSGI")) -data 5; if ($wantSixteen) { menuItem -label (uiRes("m_buildImageFormatsMenu.kSGI16")) -data 13; } menuItem -label (uiRes("m_buildImageFormatsMenu.kSoftImage")) -data 1; menuItem -label (uiRes("m_buildImageFormatsMenu.kTarga")) -data 19; menuItem -label (uiRes("m_buildImageFormatsMenu.kTiff")) -data 3; if ($wantSixteen) { menuItem -label (uiRes("m_buildImageFormatsMenu.kTiff16")) -data 4; } menuItem -label (uiRes("m_buildImageFormatsMenu.kWindowsBitmap")) -data 20; // ADSK_CLR_MGT_BEGIN // 40 is EXR string $currentRenderer = currentRenderer(); if( $currentRenderer == "mayaHardware2" ) { menuItem -label (uiRes("m_buildImageFormatsMenu.kEXR")) -data 40; } // ADSK_CLR_MGT_END // Add the IMF plug-in items global string $gImfPlugInKey[]; // This is the unique imf keyword global string $gImfPlugInExt[]; // File extension int $size = size($gImfPlugInKey); if ($size == 0) return; int $i; $val = 1000; menuItem -d true; for ($i=0; $i<$size; $i++) { string $imfPluginName = `imfPlugins -q -pn $gImfPlugInKey[$i]`; menuItem -label ($imfPluginName + " (" + $gImfPlugInExt[$i] + ")") -data $val; $val++; } } global proc int imageFormatIsIMFPlugin( int $val ) { return ($val >= 1000); } global proc int imageFormatsMenuImfAttrId( string $menu ) { int $sel = `optionMenuGrp -q -sl $menu` - 1; string $items[] = `optionMenuGrp -q -itemListShort $menu`; int $val = `menuItem -q -data $items[$sel]`; return $val; } global proc string imageFormatsMenuImfKey(string $menu) { global string $gImfPlugInKey[]; global string $gImfKey[]; int $val = imageFormatsMenuImfAttrId( $menu ); if (imageFormatIsIMFPlugin($val)) { // IMF plugin return $gImfPlugInKey[$val-1000]; } return $gImfKey[$val]; } global proc string imageFormatsMenuImfExt(string $menu) { global string $gImfPlugInExt[]; global string $gImgExt[]; int $val = imageFormatsMenuImfAttrId( $menu ); if (imageFormatIsIMFPlugin($val)) { // IMF plugin return $gImfPlugInExt[$val-1000]; } if ($gImgExt[$val] != "") return $gImgExt[$val]; return "iff"; } global proc imageFormatsMenuSelectImfKey(string $menu, string $key) { global string $gImfPlugInKey[]; global string $gImfKey[]; int $i; int $sel = `optionMenuGrp -q -sl $menu` - 1; string $items[] = `optionMenuGrp -q -itemListShort $menu`; for ($i = 0 ; $i < size($items) ; $i++ ) { int $val = `menuItem -q -data $items[$i]`; if (imageFormatIsIMFPlugin($val)) { // IMF plugin if ($key == $gImfPlugInKey[$val-1000]) { optionMenuGrp -edit -sl ($i+1) $menu; return; } } else { if ($key == $gImfKey[$val]) { optionMenuGrp -edit -sl ($i+1) $menu; return; } } } // We did not find this key, try iff for ($i = 0 ; $i < size($items) ; $i++ ) { int $val = `menuItem -q -data $items[$i]`; if (($val < 1000) && ($gImfKey[$val] == "iff")) { optionMenuGrp -edit -sl ($i+1) $menu; return; } } // Could not find iff either, use the first item. optionMenuGrp -edit -sl 1 $menu; }