string InputReadString(string current_string, int max_length)
Check for cursor_pos equalling -1 as the input confirmed.
There may have a minor bug at the moment, where input can reverse. Possibly replated to a bad cursor_pos value being taken.
string InputReadString(string current_string, int max_length)
// Pass: Variable name of string, Maximum allow characters
// Returns: The string after input
// Requires: Global int cursor_pos
{
UpdateControls(); // Just In Case
if(key[SCAN_BACKSP]) // Delete chr before cursor
{
lastpressed = 0;
key[SCAN_BACKSP] = 0;
if (cursor_pos > 0) // If there is a chr before the cursor
{
max_length = len(current_string) - cursor_pos;
cursor_pos--;
return left(current_string, cursor_pos)
+ right(current_string, max_length);
}
}
else if(key[SCAN_DEL] || key[211]) // Delete chr after cursor
{
lastpressed = 0;
key[SCAN_DEL] = 0; // Num pad DEL key
key[211] = 0; // Delete key
// If there is a chr after the cursor
if (cursor_pos < len(current_string))
{
max_length = len(current_string) - cursor_pos - 1;
return left(current_string, cursor_pos)
+ right(current_string, max_length);
}
}
else if(key[SCAN_ENTER]) // Input completed
{
lastpressed = 0;
cursor_pos = -1; // Check for -1 as a confirm of string input
}
else if(key[SCAN_TAB]) // Move to next input
{
key[SCAN_TAB] = 0;
cursor_pos = -1; // Check for -1 as a input move
}
else if(key[SCAN_UP]) // Up to start of string
{
key[SCAN_UP] = 0;
cursor_pos = 0;
}
else if(key[SCAN_DOWN]) // Down to end of string
{
key[SCAN_DOWN] = 0;
cursor_pos = len(current_string);
}
else if(key[SCAN_LEFT]) // Move cursor left one space
{
key[SCAN_LEFT] = 0;
if (cursor_pos > 0) cursor_pos--;
}
else if(key[SCAN_RIGHT]) // Move cursor right one space
{
key[SCAN_RIGHT] = 0;
if (cursor_pos < len(current_string)) cursor_pos++;
}
else if(lastpressed)
{
lastpressed = 0;
if(key[SCAN_V]) // Move cursor right one space
{
if (key[SCAN_CTRL] && len(clipboard.text))
{
key[SCAN_V] = 0;
cursor_pos = len(clipboard.text);
if (cursor_pos > max_length)
{
cursor_pos = max_length;
return left(clipboard.text, max_length);
}
else return clipboard.text;
}
}
// If it's a string-able chr, and string is not too long
if (len(chr(lastkey)) && len(current_string) < max_length)
{
max_length = len(current_string) - cursor_pos;
cursor_pos++;
return left(current_string, cursor_pos - 1) + chr(lastkey)
+ right(current_string, max_length);
}
}
lastpressed = 0;
return current_string;
}There are no talkbacks on this documentation page yet. Post the first?
Doc Nav |
![]() |
Your docs |
![]() |