Pango

 view release on metacpan or  search on metacpan

xs/Pango.xs  view on Meta::CPAN


=for see_also L<Glib::version>
=cut

=for apidoc
=for signature (MAJOR, MINOR, MICRO) = Pango->GET_VERSION_INFO
Fetch as a list the version of pango with which the Perl module was built.
=cut
void
GET_VERSION_INFO (class)
    PPCODE:
	EXTEND (SP, 3);
	PUSHs (sv_2mortal (newSViv (PANGO_MAJOR_VERSION)));
	PUSHs (sv_2mortal (newSViv (PANGO_MINOR_VERSION)));
	PUSHs (sv_2mortal (newSViv (PANGO_MICRO_VERSION)));
	PERL_UNUSED_VAR (ax);

bool
PANGO_CHECK_VERSION (class, int major, int minor, int micro)
    C_ARGS:
	major, minor, micro

xs/PangoAttributes.xs  view on Meta::CPAN

##void pango_attr_iterator_get_font (PangoAttrIterator *iterator, PangoFontDescription *desc, PangoLanguage **language, GSList **extra_attrs);
=for apidoc
=for signature ($desc, $lang, $extra_attrs) = $iterator->get_font
=cut
void
pango_attr_iterator_get_font (PangoAttrIterator *iterator)
    PREINIT:
	PangoFontDescription *desc;
	PangoLanguage *language;
	GSList *extra_attrs, *i;
    PPCODE:
	desc = pango_font_description_new ();
	language = NULL;
	extra_attrs = NULL;
	pango_attr_iterator_get_font (iterator, desc, &language, &extra_attrs);
	XPUSHs (sv_2mortal (newSVPangoFontDescription_copy (desc)));
	XPUSHs (sv_2mortal (newSVPangoLanguage_ornull (language)));
	for (i = extra_attrs; i != NULL; i = i->next)
		XPUSHs (sv_2mortal (newSVPangoAttribute_own (i->data)));
	if (extra_attrs)
		g_slist_free (extra_attrs);

#if PANGO_CHECK_VERSION (1, 2, 0)

##GSList * pango_attr_iterator_get_attrs (PangoAttrIterator *iterator);
void
pango_attr_iterator_get_attrs (PangoAttrIterator *iterator)
    PREINIT:
	GSList *result, *i;
    PPCODE:
	result = pango_attr_iterator_get_attrs (iterator);
	for (i = result; i != NULL; i = i->next)
		XPUSHs (sv_2mortal (newSVPangoAttribute_own (i->data)));
	g_slist_free (result);

#endif

# --------------------------------------------------------------------------- #

MODULE = Pango::Attributes	PACKAGE = Pango	PREFIX = pango_

xs/PangoAttributes.xs  view on Meta::CPAN

be returned in I<$accel_char>.  Two I<$accel_marker> characters following each
other reduce to a single literal I<$accel_marker> character.
=cut
void
pango_parse_markup (class, const gchar_length * markup_text, int length(markup_text), gunichar accel_marker=0)
    PREINIT:
	PangoAttrList * attr_list;
	char * text;
	gunichar accel_char;
	GError * error = NULL;
    PPCODE:
	if (! pango_parse_markup (markup_text, XSauto_length_of_markup_text,
				  accel_marker, &attr_list, &text,
				  &accel_char, &error))
		gperl_croak_gerror (NULL, error);
	EXTEND (SP, 3);
	PUSHs (sv_2mortal (newSVPangoAttrList (attr_list)));
	PUSHs (sv_2mortal (newSVGChar (text)));
	g_free (text);
	if (accel_char) {
		/* adapted from Glib/typemap */

xs/PangoContext.xs  view on Meta::CPAN

###  void pango_context_list_families (PangoContext *context, PangoFontFamily ***families, int *n_families) 
=for apidoc
=for signature @families = $context->list_families
=cut
void
pango_context_list_families (context)
	PangoContext *context
    PREINIT:
	PangoFontFamily **families = NULL;
	int n_families;
    PPCODE:
	pango_context_list_families (context, &families, &n_families);
	if (n_families > 0) {
		int i;
		EXTEND (SP, n_families);
		for (i = 0 ; i < n_families ; i++)
			PUSHs (sv_2mortal (newSVPangoFontFamily (families[i])));
		g_free (families);
	}

##  PangoFont * pango_context_load_font (PangoContext *context, const PangoFontDescription *desc) 

xs/PangoFont.xs  view on Meta::CPAN

=for apidoc @faces = $family->list_faces
Lists the different font faces that make up family. The faces in a family
share a common design, but differ in slant, weight, width and other aspects.
=cut
void
pango_font_family_list_faces (family)
	PangoFontFamily *family
    PREINIT:
	PangoFontFace ** faces = NULL;
	int n_faces;
    PPCODE:
	pango_font_family_list_faces(family, &faces, &n_faces);
	if (n_faces > 0) {
		int i;
		EXTEND(SP,n_faces);
		for (i = 0 ; i < n_faces ; i++)
			PUSHs(sv_2mortal(newSVPangoFontFace(faces[i])));
		g_free (faces);
	}


xs/PangoFont.xs  view on Meta::CPAN

 ## void pango_font_face_list_sizes (PangoFontFace  *face, int **sizes, int *n_sizes);
=for apidoc
=for signature @sizes = $face->list_sizes
List the sizes available for a bitmapped font.  For scalable fonts, this will
return an empty list.
=cut
void
pango_font_face_list_sizes (PangoFontFace *face)
    PREINIT:
	int *sizes=NULL, n_sizes, i;
    PPCODE:
	pango_font_face_list_sizes (face, &sizes, &n_sizes);
	if (n_sizes > 0) {
		EXTEND (SP, n_sizes);
		for (i = 0 ; i < n_sizes ; i++)
			PUSHs (sv_2mortal (newSViv (sizes[i])));
		g_free (sizes);
	}

#endif

xs/PangoFont.xs  view on Meta::CPAN

#endif

## void pango_font_get_glyph_extents (PangoFont *font, PangoGlyph glyph, PangoRectangle *ink_rect, PangoRectangle *logical_rect)
void
pango_font_get_glyph_extents (font, glyph)
	PangoFont *font
	PangoGlyph glyph
    PREINIT:
	PangoRectangle ink_rect;
	PangoRectangle logical_rect;
    PPCODE:
	pango_font_get_glyph_extents (font, glyph, &ink_rect, &logical_rect);
	EXTEND (sp, 2);
	PUSHs (sv_2mortal (newSVPangoRectangle (&ink_rect)));
	PUSHs (sv_2mortal (newSVPangoRectangle (&logical_rect)));

#if PANGO_CHECK_VERSION(1, 10, 0)

PangoFontMap * pango_font_get_font_map (PangoFont *font);

#endif

xs/PangoFontMap.xs  view on Meta::CPAN

	const PangoFontDescription *desc
	PangoLanguage *language

##  void pango_font_map_list_families (PangoFontMap *fontmap, PangoFontFamily ***families, int *n_families)
void
pango_font_map_list_families (fontmap)
	PangoFontMap *fontmap
    PREINIT:
	PangoFontFamily **families = NULL;
	int n_families = 0, i;
    PPCODE:
	pango_font_map_list_families (fontmap, &families, &n_families);
	if (families) {
		EXTEND (sp, n_families);
		for (i = 0; i < n_families; i++)
			PUSHs (sv_2mortal (newSVPangoFontFamily (families[i])));
		g_free (families);
	}

xs/PangoLayout.xs  view on Meta::CPAN

##  void pango_layout_get_log_attrs (PangoLayout *layout, PangoLogAttr **attrs, gint *n_attrs) 
=for apidoc
Returns a list of Pango::LogAttr's
=cut
void
pango_layout_get_log_attrs (layout)
	PangoLayout * layout
    PREINIT:
	PangoLogAttr * attrs = NULL;
	gint n_attrs;
    PPCODE:
	pango_layout_get_log_attrs (layout, &attrs, &n_attrs);
	if (n_attrs) {
		int i;
		EXTEND (SP, n_attrs);
		for (i = 0 ; i < n_attrs; i++)
			PUSHs (sv_2mortal (newSVPangoLogAttr (attrs+i)));
		g_free (attrs);
	}

##  void pango_layout_index_to_pos (PangoLayout *layout, int index_, PangoRectangle *pos) 

xs/PangoLayout.xs  view on Meta::CPAN

=for apidoc
=for signature (strong_pos, weak_pos) = $layout->get_cursor_pos ($index)
=cut
void
pango_layout_get_cursor_pos (layout, index_) 
	PangoLayout *layout
	int index_
    PREINIT:
	PangoRectangle strong_pos;
	PangoRectangle weak_pos;
    PPCODE:
	pango_layout_get_cursor_pos (layout, index_, &strong_pos, &weak_pos);
	EXTEND (sp, 2);
	PUSHs (sv_2mortal (newSVPangoRectangle (&strong_pos)));
	PUSHs (sv_2mortal (newSVPangoRectangle (&weak_pos)));

##  void pango_layout_move_cursor_visually (PangoLayout *layout, gboolean strong, int old_index, int old_trailing, int direction, int *new_index, int *new_trailing) 
void pango_layout_move_cursor_visually (PangoLayout *layout, gboolean strong, int old_index, int old_trailing, int direction, OUTLIST int new_index, OUTLIST int new_trailing) 

##  gboolean pango_layout_xy_to_index (PangoLayout *layout, int x, int y, int *index_, int *trailing) 
=for apidoc
=for signature (index, trailing) = $layout->xy_to_index ($x, $y)
=cut
void
pango_layout_xy_to_index (layout, x, y)
	PangoLayout *layout
	int x
	int y
    PREINIT:
	int index_;
	int trailing;
    PPCODE:
	if (pango_layout_xy_to_index (layout, x, y, &index_, &trailing)) {
		EXTEND (SP, 2);
		PUSHs (sv_2mortal (newSViv (index_)));
		PUSHs (sv_2mortal (newSViv (trailing)));
	}

##  void pango_layout_get_extents (PangoLayout *layout, PangoRectangle *ink_rect, PangoRectangle *logical_rect) 
=for apidoc
=for signature (ink_rect, logical_rect) = $layout->get_extents
=for signature (ink_rect, logical_rect) = $layout->get_pixel_extents
=cut
void
pango_layout_get_extents (layout) 
	PangoLayout *layout
    ALIAS:
	Pango::Layout::get_pixel_extents = 1
    PREINIT:
	PangoRectangle ink_rect;
	PangoRectangle logical_rect;
    PPCODE:
	switch (ix) {
		case 0:
			pango_layout_get_extents (layout, &ink_rect, &logical_rect);
			break;
		case 1:
			pango_layout_get_pixel_extents (layout, &ink_rect, &logical_rect);
			break;
		default:
			g_assert_not_reached ();
	}

xs/PangoLayout.xs  view on Meta::CPAN

pango_layout_get_line (layout, line)
	PangoLayout *layout
	int line

##  GSList * pango_layout_get_lines (PangoLayout *layout) 
void
pango_layout_get_lines (layout)
	PangoLayout *layout
    PREINIT:
	GSList * lines, * i;
    PPCODE:
	lines = pango_layout_get_lines (layout);
	for (i = lines ; i != NULL ; i = i->next)
		XPUSHs (sv_2mortal (newSVPangoLayoutLine (i->data)));
	/* the list is owned by the layout. */

#if PANGO_CHECK_VERSION (1, 16, 0)

##  PangoLayoutLine *pango_layout_get_line_readonly (PangoLayout *layout, int line) 
PangoLayoutLine_ornull *
pango_layout_get_line_readonly (layout, line)
	PangoLayout *layout
	int line

##  GSList * pango_layout_get_lines_readonly (PangoLayout *layout) 
void
pango_layout_get_lines_readonly (layout)
	PangoLayout *layout
    PREINIT:
	GSList * lines, * i;
    PPCODE:
	lines = pango_layout_get_lines_readonly (layout);
	for (i = lines ; i != NULL ; i = i->next)
		XPUSHs (sv_2mortal (newSVPangoLayoutLine (i->data)));
	/* the list is owned by the layout. */

#endif

##  PangoLayoutIter *pango_layout_get_iter (PangoLayout *layout)
PangoLayoutIter_own *
pango_layout_get_iter (layout)

xs/PangoLayout.xs  view on Meta::CPAN


MODULE = Pango::Layout	PACKAGE = Pango::LayoutLine	PREFIX = pango_layout_line_

##  gboolean pango_layout_line_x_to_index (PangoLayoutLine *line, int x_pos, int *index_, int *trailing)
void
pango_layout_line_x_to_index (PangoLayoutLine *line, int x_pos)
    PREINIT:
	gboolean retval;
	int index_;
	int trailing;
    PPCODE:
	retval = pango_layout_line_x_to_index (line, x_pos, &index_, &trailing);
	EXTEND (SP, 3);
	PUSHs (sv_2mortal (boolSV (retval)));
	PUSHs (sv_2mortal (newSViv (index_)));
	PUSHs (sv_2mortal (newSViv (trailing)));

##  void pango_layout_line_index_to_x (PangoLayoutLine *line, int index_, gboolean trailing, int *x_pos)
void pango_layout_line_index_to_x (PangoLayoutLine *line, int index_, gboolean trailing, OUTLIST int x_pos);

##  void pango_layout_line_get_x_ranges (PangoLayoutLine *line, int start_index, int end_index, int **ranges, int *n_ranges)
void
pango_layout_line_get_x_ranges (line, start_index, end_index)
	PangoLayoutLine *line
	int start_index
	int end_index
    PREINIT:
	int *ranges;
	int n_ranges, i;
    PPCODE:
	pango_layout_line_get_x_ranges (line, start_index, end_index, &ranges, &n_ranges);
	EXTEND (SP, n_ranges);
	for (i = 0; i < 2*n_ranges; i += 2) {
		AV *av = newAV ();
		av_push (av, newSViv (ranges[i]));
		av_push (av, newSViv (ranges[i + 1]));
		PUSHs (sv_2mortal (newRV_noinc ((SV *) av)));
	}
	g_free (ranges);

xs/PangoLayout.xs  view on Meta::CPAN

=for signature (ink_rect, logical_rect) = $line->get_pixel_extents
=cut
void
pango_layout_line_get_extents (line)
	PangoLayoutLine *line
    ALIAS:
	Pango::LayoutLine::get_pixel_extents = 1
    PREINIT:
	PangoRectangle ink_rect;
	PangoRectangle logical_rect;
    PPCODE:
	switch (ix) {
		case 0:
			pango_layout_line_get_extents (line, &ink_rect, &logical_rect);
			break;
		case 1:
			pango_layout_line_get_pixel_extents (line, &ink_rect, &logical_rect);
			break;
		default:
			g_assert_not_reached ();
	}

xs/PangoLayout.xs  view on Meta::CPAN

void
pango_layout_iter_get_cluster_extents (iter)
	PangoLayoutIter *iter
    ALIAS:
	Pango::LayoutIter::get_run_extents = 1
	Pango::LayoutIter::get_line_extents = 2
	Pango::LayoutIter::get_layout_extents = 3
    PREINIT:
	PangoRectangle ink_rect;
	PangoRectangle logical_rect;
    PPCODE:
	switch (ix) {
		case 0:
			pango_layout_iter_get_cluster_extents (iter, &ink_rect, &logical_rect);
			break;
		case 1:
			pango_layout_iter_get_run_extents (iter, &ink_rect, &logical_rect);
			break;
		case 2:
			pango_layout_iter_get_line_extents (iter, &ink_rect, &logical_rect);
			break;

xs/PangoScript.xs  view on Meta::CPAN


=cut
##  void pango_script_iter_get_range (PangoScriptIter *iter, G_CONST_RETURN char **start, G_CONST_RETURN char **end, PangoScript *script)
void
pango_script_iter_get_range (iter)
	PangoScriptIter *iter
    PREINIT:
	gchar *start = NULL;
	gchar *end = NULL;
	PangoScript script;
    PPCODE:
	pango_script_iter_get_range (iter,
	                             (const char **) &start,
	                             (const char **) &end,
	                             &script);
	EXTEND (sp, 3);
	PUSHs (sv_2mortal (newSVGChar (start)));
	PUSHs (sv_2mortal (newSVGChar (end)));
	PUSHs (sv_2mortal (newSVPangoScript (script)));

##  gboolean pango_script_iter_next (PangoScriptIter *iter)

xs/PangoTabs.xs  view on Meta::CPAN

	gint tab_index
	PangoTabAlign alignment
	gint location

##  void pango_tab_array_get_tab (PangoTabArray *tab_array, gint tab_index, PangoTabAlign *alignment, gint *location) 
void
pango_tab_array_get_tab (PangoTabArray *tab_array, gint tab_index) 
    PREINIT:
	PangoTabAlign alignment;
	gint location;
    PPCODE:
	pango_tab_array_get_tab (tab_array, tab_index, &alignment, &location);
	EXTEND (SP, 2);
	PUSHs (sv_2mortal (newSVPangoTabAlign (alignment)));
	PUSHs (sv_2mortal (newSViv (location)));

##  void pango_tab_array_get_tabs (PangoTabArray *tab_array, PangoTabAlign **alignments, gint **locations) 
=for apidoc
Returns a list of Pango::TabAlign's, alignments, and integers, locations. 
Even elemtents are alignments and odd elements are locations, so 0 is the first
alignment and 1 is the first location, 2 the second alignment, 3 the second 
location, etc.
=cut
void
pango_tab_array_get_tabs (tab_array)
	PangoTabArray *tab_array
    PREINIT:
	PangoTabAlign *alignments = NULL;
	gint *locations = NULL, i, n;
    PPCODE:
	pango_tab_array_get_tabs (tab_array, &alignments, &locations);
	n = pango_tab_array_get_size (tab_array);
	EXTEND (SP, 2 * n);
	for (i = 0 ; i < n ; i++) {
		PUSHs (sv_2mortal (newSVPangoTabAlign (alignments[i])));
		PUSHs (sv_2mortal (newSViv (locations[i])));
	}
	g_free (alignments);
	g_free (locations);

xs/PangoTypes.xs  view on Meta::CPAN


=for apidoc __function__
=cut
double pango_units_to_double (int i);

=for apidoc __function__
=cut
##  void pango_extents_to_pixels (PangoRectangle *inclusive, PangoRectangle *nearest)
void
pango_extents_to_pixels (PangoRectangle *inclusive, PangoRectangle *nearest)
    PPCODE:
	pango_extents_to_pixels (inclusive, nearest);
	EXTEND (SP, 2);
	PUSHs (sv_2mortal (newSVPangoRectangle (inclusive)));
	PUSHs (sv_2mortal (newSVPangoRectangle (nearest)));

#endif

MODULE = Pango::Types	PACKAGE = Pango::Language	PREFIX = pango_language_

##  PangoLanguage * pango_language_from_string (const char *language)



( run in 2.510 seconds using v1.01-cache-2.11-cpan-5511b514fd6 )