[text] Expose position_to_coords()

The clutter_text_position_to_coords() is useful for ClutterText
subclasses.

See bug:

  http://bugzilla.openedhand.com/show_bug.cgi?id=1521

Based on a patch by: Raymond Liu <raymond.liu@intel.com>
This commit is contained in:
Emmanuele Bassi 2009-05-06 17:18:12 +01:00
parent a28b9f31eb
commit d0ad5a8abb
3 changed files with 18 additions and 4 deletions

View File

@ -469,7 +469,7 @@ clutter_text_coords_to_position (ClutterText *text,
return index_ + trailing;
}
/*
/**
* clutter_text_position_to_coords:
* @self: a #ClutterText
* @position: position in characters
@ -480,19 +480,28 @@ clutter_text_coords_to_position (ClutterText *text,
* Retrieves the coordinates of the given @position.
*
* Return value: %TRUE if the conversion was successful
*
* Since: 1.0
*/
static gboolean
gboolean
clutter_text_position_to_coords (ClutterText *self,
gint position,
gfloat *x,
gfloat *y,
gfloat *line_height)
{
ClutterTextPrivate *priv = self->priv;
ClutterTextPrivate *priv;
PangoRectangle rect;
gint password_char_bytes = 1;
gint index_;
g_return_val_if_fail (CLUTTER_IS_TEXT (self), FALSE);
priv = self->priv;
if (position < -1 || position > priv->n_chars)
return FALSE;
if (priv->password_char != 0)
password_char_bytes = g_unichar_to_utf8 (priv->password_char, NULL);
@ -527,7 +536,6 @@ clutter_text_position_to_coords (ClutterText *self,
if (line_height)
*line_height = CLUTTER_UNITS_FROM_PANGO_UNIT (rect.height);
/* FIXME: should return false if coords were outside text */
return TRUE;
}

View File

@ -198,6 +198,11 @@ void clutter_text_set_single_line_mode (ClutterText *sel
gboolean clutter_text_get_single_line_mode (ClutterText *self);
gboolean clutter_text_activate (ClutterText *self);
gboolean clutter_text_position_to_coords (ClutterText *self,
gint position,
gfloat *x,
gfloat *y,
gfloat *line_height);
G_END_DECLS

View File

@ -1599,6 +1599,7 @@ clutter_text_get_cursor_size
<SUBSECTION>
clutter_text_activate
clutter_text_position_to_coords
<SUBSECTION Standard>
CLUTTER_IS_TEXT