summaryrefslogtreecommitdiff
path: root/libs/gtkmm2/pango/pangomm/attriter.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/gtkmm2/pango/pangomm/attriter.cc')
-rw-r--r--libs/gtkmm2/pango/pangomm/attriter.cc180
1 files changed, 180 insertions, 0 deletions
diff --git a/libs/gtkmm2/pango/pangomm/attriter.cc b/libs/gtkmm2/pango/pangomm/attriter.cc
new file mode 100644
index 0000000000..71fa57052a
--- /dev/null
+++ b/libs/gtkmm2/pango/pangomm/attriter.cc
@@ -0,0 +1,180 @@
+// Generated by gtkmmproc -- DO NOT MODIFY!
+
+#include <pangomm/attriter.h>
+#include <pangomm/private/attriter_p.h>
+
+/*
+ *
+ * Copyright 1998-1999 The Gtk-- Development Team
+ * Copyright 2001 Free Software Foundation
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+namespace Pango
+{
+
+AttrIter::AttrIter()
+:
+ gobject_(0)
+{}
+
+AttrIter::AttrIter(const AttrIter& src)
+:
+ gobject_(src.gobject_ ? pango_attr_iterator_copy(src.gobject_) : 0)
+{}
+
+AttrIter::AttrIter(PangoAttrIterator* castitem, bool take_copy)
+{
+ if(take_copy)
+ {
+ if(castitem)
+ gobject_ = pango_attr_iterator_copy(castitem);
+ else
+ gobject_ = 0;
+ }
+ else
+ {
+ gobject_ = castitem;
+ }
+}
+
+AttrIter::~AttrIter()
+{
+ if(gobject_)
+ pango_attr_iterator_destroy(gobject_);
+}
+
+AttrIter& AttrIter::operator=(const AttrIter& src)
+{
+ PangoAttrIterator *const new_gobject = (src.gobject_ ? pango_attr_iterator_copy(src.gobject_) : 0);
+
+ if(gobject_)
+ pango_attr_iterator_destroy(gobject_);
+ gobject_ = new_gobject;
+
+ return *this;
+}
+
+AttrIter& AttrIter::operator++()
+{
+ next();
+ return *this;
+}
+
+const AttrIter AttrIter::operator++(int)
+{
+ AttrIter previous(*this);
+ next();
+ return previous;
+}
+
+/* operator bool() cannot be implemented to work properly if a Pango::AttrIter is created
+ * from an already invalid PangoAttrIterator* because there is no way to validate it.
+ * Otherwise the iterator can only become invalid after some call to Pango::AttrIter::next()
+ * in which case gobject_ is destroyed thus marking the iterator as invalid.
+ */
+AttrIter::operator bool() const
+{
+ return (gobject_ != 0);
+}
+
+bool AttrIter::next()
+{
+ if(!pango_attr_iterator_next(gobj()))
+ {
+ pango_attr_iterator_destroy(gobject_);
+ gobject_ = 0; // Mark as invalid. There is no other way to determine whether the iterator is valid later.
+ return false;
+ }
+ else
+ return true;
+}
+
+FontDescription AttrIter::get_font_desc() const
+{
+ FontDescription desc;
+ pango_attr_iterator_get_font(const_cast<PangoAttrIterator*>(gobj()), desc.gobj(), 0, 0);
+
+ // See pango ref docs for pango_attr_iterator_get_font.
+ pango_font_description_set_family(desc.gobj(), pango_font_description_get_family(desc.gobj()));
+
+ return desc;
+}
+
+Language AttrIter::get_language() const
+{
+ FontDescription desc;
+ PangoLanguage* language = 0;
+
+ pango_attr_iterator_get_font(const_cast<PangoAttrIterator*>(gobj()), desc.gobj(), &language, 0);
+
+ return Language(language, true);
+}
+
+SListHandle_Attribute AttrIter::get_extra_attrs() const
+{
+ FontDescription desc;
+ GSList* extra_attrs = 0;
+
+ pango_attr_iterator_get_font(const_cast<PangoAttrIterator*>(gobj()), desc.gobj(), 0, &extra_attrs);
+
+ return SListHandle_Attribute(extra_attrs, Glib::OWNERSHIP_DEEP);
+}
+
+SListHandle_Attribute AttrIter::get_attrs() const
+{
+ GSList* attrs = pango_attr_iterator_get_attrs( const_cast<PangoAttrIterator*>(gobj()) );
+ return SListHandle_Attribute(attrs, Glib::OWNERSHIP_DEEP);
+}
+
+
+} /* namespace Pango */
+
+
+namespace Glib
+{
+
+Pango::AttrIter wrap(PangoAttrIterator* object, bool take_copy)
+{
+ return Pango::AttrIter(object, take_copy);
+}
+
+} /* namespace Glib */
+
+
+namespace
+{
+} // anonymous namespace
+
+
+namespace Pango
+{
+
+
+void AttrIter::get_range(int& start, int& end) const
+{
+ pango_attr_iterator_range(const_cast<PangoAttrIterator*>(gobj()), &start, &end);
+}
+
+Attribute AttrIter::get_attribute(AttrType type) const
+{
+ return Attribute((pango_attr_iterator_get(const_cast<PangoAttrIterator*>(gobj()), ((PangoAttrType)(type)))));
+}
+
+
+} // namespace Pango
+
+