/* layoutrun.h
*
* Copyright (C) 1998-1999 The gtkmm Development Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <pangomm/attributes.h> //For LogAttr.
#include <pango/pango-layout.h>
_DEFS(pangomm,pango)
namespace Pango
{
class Item;
class GlyphString;
class LayoutRun;
/** A Pango::GlyphItem is a pair of a Pango::Items and the glyphs resulting from shaping the text corresponding to an item.
* As an example of the usage of Pango::GlyphItem, the results of shaping text with Pango::Layout is a list of Pango::LayoutLine,
* each of which contains a list of Pango::GlyphItem.
*/
typedef LayoutRun GlyphItem;
//TODO: Change this to just GlyphItem when we can break API/ABI.
/** A Pango::LayoutRun represents a single run within a LayoutLine.
* It is simply an alternate name for GlyphItem.
*/
class LayoutRun
{
_CLASS_BOXEDTYPE(LayoutRun, PangoGlyphItem, NONE, pango_glyph_item_copy, pango_glyph_item_free)
_IGNORE(pango_glyph_item_free, pango_glyph_item_copy)
_WRAP_METHOD(GlyphItem split(const Glib::ustring& text, int split_index), pango_glyph_item_split)
//This takes ownership of the GlyphItem, which is strange: _WRAP_METHOD(GSList* apply_attrs(const Glib::ustring& text, const AttrList& list), pango_glyph_item_apply_attrs)
_WRAP_METHOD(void letter_space(const Glib::ustring& text, const LogAttr& log_attrs, int letter_spacing = 0), pango_glyph_item_letter_space)
/** Gets the Pango::Item object that provides information about the segment of text in this run.
* @return A Pango::Item object.
*/
_MEMBER_GET(item, item, Item, PangoItem*)
/** Gets the string of glyphs obtained by shaping the text for this item.
* @return A Pango::GlyphString object.
*/
_MEMBER_GET(glyphs, glyphs, GlyphString, PangoGlyphString*)
};
} /* namespace Pango */