Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ TestChar()

bool System.ComponentModel.MaskedTextProvider.TestChar ( char input,
int position,
out MaskedTextResultHint resultHint )
inlineprivate

Definition at line 1390 of file MaskedTextProvider.cs.

1391 {
1392 if (!IsPrintableChar(input))
1393 {
1394 resultHint = MaskedTextResultHint.InvalidInput;
1395 return false;
1396 }
1397 CharDescriptor charDescriptor = _stringDescriptor[position];
1399 {
1400 if (SkipLiterals && input == _testString[position])
1401 {
1402 resultHint = MaskedTextResultHint.CharacterEscaped;
1403 return true;
1404 }
1405 resultHint = MaskedTextResultHint.NonEditPosition;
1406 return false;
1407 }
1408 if (input == _promptChar)
1409 {
1410 if (ResetOnPrompt)
1411 {
1412 if (IsEditPosition(charDescriptor) && charDescriptor.IsAssigned)
1413 {
1414 resultHint = MaskedTextResultHint.SideEffect;
1415 }
1416 else
1417 {
1418 resultHint = MaskedTextResultHint.CharacterEscaped;
1419 }
1420 return true;
1421 }
1422 if (!AllowPromptAsInput)
1423 {
1424 resultHint = MaskedTextResultHint.PromptCharNotAllowed;
1425 return false;
1426 }
1427 }
1428 if (input == ' ' && ResetOnSpace)
1429 {
1430 if (IsEditPosition(charDescriptor) && charDescriptor.IsAssigned)
1431 {
1432 resultHint = MaskedTextResultHint.SideEffect;
1433 }
1434 else
1435 {
1436 resultHint = MaskedTextResultHint.CharacterEscaped;
1437 }
1438 return true;
1439 }
1440 switch (Mask[charDescriptor.MaskPosition])
1441 {
1442 case '#':
1443 if (!char.IsDigit(input) && input != '-' && input != '+' && input != ' ')
1444 {
1445 resultHint = MaskedTextResultHint.DigitExpected;
1446 return false;
1447 }
1448 break;
1449 case '0':
1450 if (!char.IsDigit(input))
1451 {
1452 resultHint = MaskedTextResultHint.DigitExpected;
1453 return false;
1454 }
1455 break;
1456 case '9':
1457 if (!char.IsDigit(input) && input != ' ')
1458 {
1459 resultHint = MaskedTextResultHint.DigitExpected;
1460 return false;
1461 }
1462 break;
1463 case 'L':
1464 if (!char.IsLetter(input))
1465 {
1466 resultHint = MaskedTextResultHint.LetterExpected;
1467 return false;
1468 }
1469 if (!IsAsciiLetter(input) && AsciiOnly)
1470 {
1471 resultHint = MaskedTextResultHint.AsciiCharacterExpected;
1472 return false;
1473 }
1474 break;
1475 case '?':
1476 if (!char.IsLetter(input) && input != ' ')
1477 {
1478 resultHint = MaskedTextResultHint.LetterExpected;
1479 return false;
1480 }
1481 if (!IsAsciiLetter(input) && AsciiOnly)
1482 {
1483 resultHint = MaskedTextResultHint.AsciiCharacterExpected;
1484 return false;
1485 }
1486 break;
1487 case '&':
1488 if (!IsAscii(input) && AsciiOnly)
1489 {
1490 resultHint = MaskedTextResultHint.AsciiCharacterExpected;
1491 return false;
1492 }
1493 break;
1494 case 'C':
1495 if (!IsAscii(input) && AsciiOnly && input != ' ')
1496 {
1497 resultHint = MaskedTextResultHint.AsciiCharacterExpected;
1498 return false;
1499 }
1500 break;
1501 case 'A':
1502 if (!IsAlphanumeric(input))
1503 {
1504 resultHint = MaskedTextResultHint.AlphanumericCharacterExpected;
1505 return false;
1506 }
1508 {
1509 resultHint = MaskedTextResultHint.AsciiCharacterExpected;
1510 return false;
1511 }
1512 break;
1513 case 'a':
1514 if (!IsAlphanumeric(input) && input != ' ')
1515 {
1516 resultHint = MaskedTextResultHint.AlphanumericCharacterExpected;
1517 return false;
1518 }
1520 {
1521 resultHint = MaskedTextResultHint.AsciiCharacterExpected;
1522 return false;
1523 }
1524 break;
1525 }
1526 if (input == _testString[position] && charDescriptor.IsAssigned)
1527 {
1529 }
1530 else
1531 {
1533 }
1534 return true;
1535 }
static bool IsLiteralPosition(CharDescriptor charDescriptor)

References System.ComponentModel.MaskedTextProvider._promptChar, System.ComponentModel.MaskedTextProvider._stringDescriptor, System.ComponentModel.MaskedTextProvider._testString, System.ComponentModel.MaskedTextProvider.AllowPromptAsInput, System.ComponentModel.MaskedTextProvider.AsciiOnly, System.input, System.ComponentModel.MaskedTextProvider.IsAciiAlphanumeric(), System.ComponentModel.MaskedTextProvider.IsAlphanumeric(), System.ComponentModel.MaskedTextProvider.IsAscii(), System.ComponentModel.MaskedTextProvider.IsAsciiLetter(), System.ComponentModel.MaskedTextProvider.IsEditPosition(), System.ComponentModel.MaskedTextProvider.IsLiteralPosition(), System.ComponentModel.MaskedTextProvider.IsPrintableChar(), System.ComponentModel.MaskedTextProvider.Mask, System.ComponentModel.MaskedTextProvider.ResetOnPrompt, System.ComponentModel.MaskedTextProvider.ResetOnSpace, and System.ComponentModel.MaskedTextProvider.SkipLiterals.

Referenced by System.ComponentModel.MaskedTextProvider.InsertAtInt(), System.ComponentModel.MaskedTextProvider.RemoveAtInt(), System.ComponentModel.MaskedTextProvider.Replace(), System.ComponentModel.MaskedTextProvider.TestSetChar(), System.ComponentModel.MaskedTextProvider.TestString(), and System.ComponentModel.MaskedTextProvider.VerifyChar().