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

◆ InsertAtInt()

bool System.ComponentModel.MaskedTextProvider.InsertAtInt ( string input,
int position,
out int testPosition,
out MaskedTextResultHint resultHint,
bool testOnly )
inlineprivate

Definition at line 785 of file MaskedTextProvider.cs.

786 {
787 if (input.Length == 0)
788 {
789 testPosition = position;
791 return true;
792 }
793 if (!TestString(input, position, out testPosition, out resultHint))
794 {
795 return false;
796 }
797 int num = FindEditPositionFrom(position, direction: true);
798 bool flag = FindAssignedEditPositionInRange(num, testPosition, direction: true) != -1;
800 if (flag && testPosition == _testString.Length - 1)
801 {
802 resultHint = MaskedTextResultHint.UnavailableEditPosition;
804 return false;
805 }
806 int num2 = FindEditPositionFrom(testPosition + 1, direction: true);
807 if (flag)
808 {
810 while (true)
811 {
812 if (num2 == -1)
813 {
814 resultHint = MaskedTextResultHint.UnavailableEditPosition;
816 return false;
817 }
818 CharDescriptor charDescriptor = _stringDescriptor[num];
819 if (charDescriptor.IsAssigned && !TestChar(_testString[num], num2, out resultHint2))
820 {
823 return false;
824 }
825 if (num == lastAssignedPosition)
826 {
827 break;
828 }
829 num = FindEditPositionFrom(num + 1, direction: true);
830 num2 = FindEditPositionFrom(num2 + 1, direction: true);
831 }
833 {
835 }
836 }
837 if (testOnly)
838 {
839 return true;
840 }
841 if (flag)
842 {
843 while (num >= position)
844 {
845 CharDescriptor charDescriptor2 = _stringDescriptor[num];
846 if (charDescriptor2.IsAssigned)
847 {
848 SetChar(_testString[num], num2);
849 }
850 else
851 {
853 }
854 num2 = FindEditPositionFrom(num2 - 1, direction: false);
855 num = FindEditPositionFrom(num - 1, direction: false);
856 }
857 }
858 SetString(input, position);
859 return true;
860 }
void SetString(string input, int testPosition)
bool TestString(string input, int position, out int testPosition, out MaskedTextResultHint resultHint)
bool TestChar(char input, int position, out MaskedTextResultHint resultHint)
int FindAssignedEditPositionInRange(int startPosition, int endPosition, bool direction)
int FindEditPositionFrom(int position, bool direction)

References System.ComponentModel.MaskedTextProvider._stringDescriptor, System.ComponentModel.MaskedTextProvider._testString, System.ComponentModel.MaskedTextProvider.FindAssignedEditPositionInRange(), System.ComponentModel.MaskedTextProvider.FindEditPositionFrom(), System.input, System.ComponentModel.MaskedTextProvider.LastAssignedPosition, System.Text.StringBuilder.Length, System.ComponentModel.MaskedTextProvider.ResetChar(), System.ComponentModel.MaskedTextProvider.SetChar(), System.ComponentModel.MaskedTextProvider.SetString(), System.ComponentModel.MaskedTextProvider.TestChar(), and System.ComponentModel.MaskedTextProvider.TestString().

Referenced by System.ComponentModel.MaskedTextProvider.InsertAt().