Exemplo n.º 1
0
static void
log_object_text_caret_moved (EventLog *log, const AccessibleEvent *event)
{
	AccessibleText *text;
	long int start, end, offset, text_length;

	if (!log_sanity_check_text (log, event))
		return;

	offset = event->detail1;

	log_message (log, "caret moved (%s) to %d on ", event->type, offset);
	log_accessible (log, event->source);

	text = Accessible_getText (event->source);

	offset = event->detail1;
	text_length = AccessibleText_getCharacterCount (text);
	if (offset < 0 || offset > text_length) {
		log_error (log, TRUE, "caret moved beyond end of text %d characters long", text_length);
		return;
	}

	AccessibleText_getTextAtOffset (text, offset, 
					SPI_TEXT_BOUNDARY_SENTENCE_START,
					&start, &end);
	log_message (log, "offsets: sentance_start %d->%d, ", start, end);
	AccessibleText_getTextAtOffset (text, offset, 
					SPI_TEXT_BOUNDARY_SENTENCE_END,
					&start, &end);
	log_message (log, "sentance_end %d->%d, ", start, end);
	AccessibleText_getTextAtOffset (text, offset, 
					SPI_TEXT_BOUNDARY_LINE_START,
					&start, &end);
	log_message (log, "line_start %d->%d, ", start, end);
	AccessibleText_getTextAtOffset (text, offset, 
					SPI_TEXT_BOUNDARY_LINE_END,
					&start, &end);
	log_message (log, "line_end %d->%d, ", start, end);

	AccessibleText_getTextAtOffset (text, offset, 
					SPI_TEXT_BOUNDARY_WORD_START,
					&start, &end);
	log_message (log, "word_start %d->%d, ", start, end);
	AccessibleText_getTextAtOffset (text, offset, 
					SPI_TEXT_BOUNDARY_WORD_END,
					&start, &end);
	log_message (log, "word_end %d->%d, ", start, end);
	log_message (log, "\n");
}
static void
test_text (AccessibleText *text)
{
	char *str;

	fprintf (stderr, "Testing text ...\n");

	g_assert (AccessibleText_getCharacterCount (text) ==
		  strlen (TEST_STRING_A));

	str = AccessibleText_getText (text, 0, WHOLE_STRING);
	g_assert (!strcmp (str, TEST_STRING_A));
	SPI_freeString (str);

	str = AccessibleText_getText (text, 0, 5);
	g_assert (!strncmp (str, TEST_STRING_A, 5));
	SPI_freeString (str);

	AccessibleText_setCaretOffset (text, 7);
	g_assert (AccessibleText_getCaretOffset (text) == 7);

	/* FIXME: lots more tests - selections etc. etc. */
}
Exemplo n.º 3
0
char * windows_text ( SQByteArray * _pointer )
{
   char * text = NULL;
   Accessible * accessibleObject = windows_to_accessible(_pointer);
   if ( Accessible_isText(accessibleObject) == SPI_TRUE )
   {
       AccessibleText * textObj = Accessible_getText(accessibleObject);
       long count = AccessibleText_getCharacterCount ( textObj );
       text = AccessibleText_getText ( textObj, 0, count );
       AccessibleText_unref ( textObj );
       return windows_string(text);
   }
   else if ( Accessible_isValue(accessibleObject) == SPI_TRUE )
   {
       AccessibleValue * valueObj = Accessible_getValue(accessibleObject);

       double current = AccessibleValue_getCurrentValue ( valueObj );
       text = malloc(SQ_MAX_VALUE_LENGTH);
       SNPRINTF_FUNCTION ( text, SQ_MAX_VALUE_LENGTH, "%f", current );
       return text;
   }
   return SQ_STRDUP_FUNCTION("");
}