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)