示例#1
0
// set the default text to display
void textbox_text(textbox *tb, char *text)
{
	if (tb->text) free(tb->text);
	tb->text = strdup(text);
	tb->cursor = MAX(0, MIN(strlen(text), tb->cursor));
	textbox_extents(tb);
}
示例#2
0
// set an input prompt for edit mode
void textbox_prompt( textbox *tb, char *text )
{
    if ( tb->prompt ) free( tb->prompt );

    tb->prompt = strdup( text );
    textbox_extents( tb );
}
示例#3
0
// remove text
void textbox_delete(textbox *tb, int pos, int dlen)
{
	int len = strlen(tb->text);
	pos = MAX(0, MIN(len, pos));
	// move everything after pos+dlen down
	char *at = tb->text + pos;
	memmove(at, at + dlen, len - pos);
	textbox_extents(tb);
}
示例#4
0
// insert text
void textbox_insert(textbox *tb, int pos, char *str)
{
	int len = strlen(tb->text), slen = strlen(str);
	pos = MAX(0, MIN(len, pos));
	// expand buffer
	tb->text = realloc(tb->text, len + slen + 1);
	// move everything after cursor upward
	char *at = tb->text + pos;
	memmove(at + slen, at, len - pos + 1);
	// insert new str
	memmove(at, str, slen);
	textbox_extents(tb);
}