You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Tools/maya/script/cryValidateMessageControl.mel

256 lines
8.5 KiB
Plaintext

/*
* All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
* its licensors.
*
* For complete copyright and license terms please see the LICENSE at the root of this
* distribution (the "License"). All use of this software is governed by the License,
* or, if provided, by the license below or the license accompanying this file. Do not
* remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*
*/
// Original file Copyright Crytek GMBH or its affiliates, used under license.
global proc cryValidateMessageControlClose()
{
if( `window -exists CRYVALIDATEMESSAGECONTROL_WINDOW` )
{
deleteUI -window CRYVALIDATEMESSAGECONTROL_WINDOW;
}
}
proc string cryValidateMessageControlGetMessageData()
{
string $s;
// messageType, MessageDesc, ignorable, disabled
//$s = "messageType1,Message Description 1,1,1;messageType1,Message Description 2,1,1;messageType1,Message Description 3,1,1;messageType1,Message Description 4,1,1;";
$s = `cryValidatePlugin messages getMessageData`;
return $s;
}
global proc string[] cryValidateMessageControlDecodeMessageDataString( string $messageData )
{
string $decode[];
string $tokens[];
$numTokens = `tokenize $messageData "," $tokens`;
if( $numTokens == 5 )
{
$decode[0] = $tokens[0]; // Message Type
$decode[1] = $tokens[1]; // Message Desc
$decode[2] = $tokens[2]; // Editable
$decode[3] = $tokens[3]; // Ignorable
$decode[4] = $tokens[4]; // Disabled
}
return $decode;
}
global proc cryValidateMessageControlSettingChange()
{
global int $cryValidateMessageControlSettingsHaveChanged = 0;
$cryValidateMessageControlSettingsHaveChanged = 1;
if( `control -exists CRYVALIDATEMESSAGECONTROL_SAVE` )
{
button -e -enable true CRYVALIDATEMESSAGECONTROL_SAVE;
}
}
proc cryValidateMessageControlPopulateMessageList()
{
global string $g_validateMessageControlHiLight = "";
setParent CRYVALIDATEMESSAGECONTROL_COLUMNLAYOUT;
string $childControls[];
$childControls = `layout -q -childArray CRYVALIDATEMESSAGECONTROL_COLUMNLAYOUT`;
for( $child in $childControls )
{
deleteUI $child;
}
string $s;
$s = `cryValidateMessageControlGetMessageData`;
if( size($s) > 0 )
{
string $messages[];
$messageCount = `tokenize $s ";" $messages`;
int $messageNum = 0;
for( $message in $messages )
{
string $decode[];
$decode = `cryValidateMessageControlDecodeMessageDataString $message`;
string $messageType = $decode[0];
string $messageDesc = $decode[1];
int $editable = $decode[2];
int $ignorable = $decode[3];
int $disabled = $decode[4];
setParent CRYVALIDATEMESSAGECONTROL_COLUMNLAYOUT;
print("Message `"+$message+"` MessageType `"+$messageType+"`\n");
$rowName = `rowLayout -numberOfColumns 3 -columnWidth3 200 80 80 -adjustableColumn 1 -columnAlign 1 "left"
-columnAlign 2 "center" -columnAlign 3 "center"
-columnAttach 2 "both" 0 -columnAttach 3 "both" 0 -bgc .4 .4 .4
$messageType`; // Name the rowLayout with the messageType so we know what it's about.
// If we launched the settings widow using a perticular message, hilight it.
if( $g_validateMessageControlHiLight != "" )
{
if( `strcmp $g_validateMessageControlHiLight $messageType` == 0 )
rowLayout -edit -bgc .45 .45 .45 $messageType;
}
{
string $messageText = $messageDesc;
if( size($messageText) == 0 || $messageText == " " )
$messageText = "* Message With No Description *";
$messageTextControl = `text -h 22 -label (" " + $messageText)`;
checkBox -v $ignorable -label "Ignorable" -enable $editable -cc("cryValidateMessageControlSettingChange");
checkBox -v $disabled -label "Disabled" -enable $editable -cc("cryValidateMessageControlSettingChange");
}
setParent ..;
$messageNum++;
}
}
else
{
text -label "No validate messages." -align "center" -bgc .4 .4 .4;
}
}
proc cryValidateMessageControlCreateWindow()
{
// If the window exists but is not visible, close it - and reset the messages.
if( `window -ex CRYVALIDATEMESSAGECONTROL_WINDOW` && !`window -q -vis CRYVALIDATEMESSAGECONTROL_WINDOW`)
{
cryValidateCloseAndReset;
}
if(!`window -ex CRYVALIDATEMESSAGECONTROL_WINDOW`)
{
if(`windowPref -exists CRYVALIDATEMESSAGECONTROL_WINDOW`)
{
windowPref -wh 800 400 -tlc `windowPref -q -topEdge CRYVALIDATEMESSAGECONTROL_WINDOW` `windowPref -q -leftEdge CRYVALIDATEMESSAGECONTROL_WINDOW` CRYVALIDATEMESSAGECONTROL_WINDOW;
//windowPref -remove CRYVALIDATEMESSAGECONTROL_WINDOW;
}
window -titleBar true -title "Lumberyard Validate Messages" -wh 800 400 -sizeable true -mnb false -mxb false CRYVALIDATEMESSAGECONTROL_WINDOW;
formLayout -numberOfDivisions 100 -visible false CRYVALIDATEMESSAGECONTROL_FORMLAYOUT;
{
scrollLayout -childResizable true -hst 0 -vst 15 -bgc .4 .4 .4 CRYVALIDATEMESSAGECONTROL_SCROLLLAYOUT;
{
columnLayout -adjustableColumn true -columnOffset "both" 5 -rowSpacing 5 -bgc .4 .4 .4 CRYVALIDATEMESSAGECONTROL_COLUMNLAYOUT;
{
}
setParent ..;
}
setParent ..;
button -label "Reset to Defaults" -command ("cryValidateMessageControlReset") CRYVALIDATEMESSAGECONTROL_RESET;
button -label "Save" -enable false -command ("cryValidateMessageControlSave") CRYVALIDATEMESSAGECONTROL_SAVE;
button -label "Close" -command ("cryValidateMessageControlClose") CRYVALIDATEMESSAGECONTROL_CLOSE;
}
formLayout -edit
-attachForm CRYVALIDATEMESSAGECONTROL_SCROLLLAYOUT "top" 5
-attachForm CRYVALIDATEMESSAGECONTROL_SCROLLLAYOUT "left" 5
-attachForm CRYVALIDATEMESSAGECONTROL_SCROLLLAYOUT "right" 5
-attachControl CRYVALIDATEMESSAGECONTROL_SCROLLLAYOUT "bottom" 5 CRYVALIDATEMESSAGECONTROL_CLOSE
-attachForm CRYVALIDATEMESSAGECONTROL_RESET "bottom" 5
-attachForm CRYVALIDATEMESSAGECONTROL_RESET "left" 5
-attachPosition CRYVALIDATEMESSAGECONTROL_RESET "right" 5 33
-attachNone CRYVALIDATEMESSAGECONTROL_RESET "top"
-attachForm CRYVALIDATEMESSAGECONTROL_SAVE "bottom" 5
-attachPosition CRYVALIDATEMESSAGECONTROL_SAVE "left" 5 33
-attachPosition CRYVALIDATEMESSAGECONTROL_SAVE "right" 5 66
-attachNone CRYVALIDATEMESSAGECONTROL_SAVE "top"
-attachForm CRYVALIDATEMESSAGECONTROL_CLOSE "bottom" 5
-attachPosition CRYVALIDATEMESSAGECONTROL_CLOSE "left" 5 66
-attachForm CRYVALIDATEMESSAGECONTROL_CLOSE "right" 5
-attachNone CRYVALIDATEMESSAGECONTROL_CLOSE "top"
CRYVALIDATEMESSAGECONTROL_FORMLAYOUT;
// Make sure the latest data is loaded before populating the list.
cryValidatePlugin messages loadMessageData;
cryValidateMessageControlPopulateMessageList;
showWindow CRYVALIDATEMESSAGECONTROL_WINDOW;
}
}
global proc cryValidateMessageControl( string $hilightMessageType )
{
global string $g_validateMessageControlHiLight = "";
$g_validateMessageControlHiLight = $hilightMessageType;
cryValidateMessageControlCreateWindow( );
}
/////////////////////////////////////////////////////////
// Util functions for saving/reseting etc.
/////////////////////////////////////////////////////////
global proc cryValidateMessageControlReset()
{
cryValidatePlugin messages resetMessageData;
// Populate the list without reloading the data. It will need to be saved before the optionVar string will get changed.
cryValidateMessageControlPopulateMessageList;
//cryValidateMessageControlSave;
if( `control -exists CRYVALIDATEMESSAGECONTROL_SAVE` )
{
button -e -enable true CRYVALIDATEMESSAGECONTROL_SAVE;
}
}
global proc cryValidateMessageControlSave()
{
string $s = "";
setParent CRYVALIDATEMESSAGECONTROL_COLUMNLAYOUT;
string $childControls[];
$childControls = `layout -q -childArray CRYVALIDATEMESSAGECONTROL_COLUMNLAYOUT`;
for( $child in $childControls )
{
string $messageType = "";
// Get the messageType from the rowLayout name
{
string $layoutName = `layout -q -fullPathName $child`;
string $tokens[];
$numTokens = `tokenize $layoutName "|" $tokens`;
if( $numTokens > 0 )
$messageType = $tokens[$numTokens-1];
}
string $rowChildren[];
$rowChildren = `layout -q -childArray $child`;
int $ignorable = `checkBox -q -v $rowChildren[1]`;
int $disabled = `checkBox -q -v $rowChildren[2]`;
if( size($s) > 0 )
$s += ";";
$s += ($messageType+","+$ignorable+","+$disabled);
//print ("Type : "+$messageType+","+$ignorable+","+$disabled+"\n");
}
optionVar -sv "cryValidateMessageControl" $s;
if( `control -exists CRYVALIDATEMESSAGECONTROL_SAVE` )
{
button -e -enable false CRYVALIDATEMESSAGECONTROL_SAVE;
}
}