// Generated by gtkmmproc -- DO NOT MODIFY! #include #include /* Copyright (C) 2002 The gtkmm Development Team * * 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. */ #include #include namespace Pango { /* PangoLanguage is just another example of inconsistent coding in atk/pango/gtk: * on the one hand it is defined and registered as a boxed type, on the other * hand it is always a pointer to some statically allocated string and thus * neither allocated by itself, nor copied by value, nor freed. Similar dummy * functions as below are defined in pango/pango-util.c but they are not exported. * Compare with pango/pango-util.c for reference. */ //(I wonder who wrote this - it wasn't me. murrayc) inline PangoLanguage* _pango_language_new() { return 0; } inline PangoLanguage* _pango_language_copy(const PangoLanguage* language) { return const_cast(language); } inline void _pango_language_free(PangoLanguage*) { return; } Language::Language() : gobject_(0) {} Language::Language(const Glib::ustring& language) : gobject_(pango_language_from_string(language.c_str())) {} Glib::ustring Language::get_string() const { if (gobject_) return pango_language_to_string(const_cast(gobj())); else return Glib::ustring(); } } /* namespace Pango */ namespace { } // anonymous namespace // static GType Glib::Value::value_type() { return pango_script_get_type(); } namespace Glib { Pango::Language wrap(PangoLanguage* object, bool take_copy) { return Pango::Language(object, take_copy); } } // namespace Glib namespace Pango { // static GType Language::get_type() { return pango_language_get_type(); } Language::Language(const Language& other) : gobject_ ((other.gobject_) ? _pango_language_copy(other.gobject_) : 0) {} Language::Language(PangoLanguage* gobject, bool make_a_copy) : // For BoxedType wrappers, make_a_copy is true by default. The static // BoxedType wrappers must always take a copy, thus make_a_copy = true // ensures identical behaviour if the default argument is used. gobject_ ((make_a_copy && gobject) ? _pango_language_copy(gobject) : gobject) {} Language& Language::operator=(const Language& other) { Language temp (other); swap(temp); return *this; } Language::~Language() { if(gobject_) _pango_language_free(gobject_); } void Language::swap(Language& other) { PangoLanguage *const temp = gobject_; gobject_ = other.gobject_; other.gobject_ = temp; } PangoLanguage* Language::gobj_copy() const { return _pango_language_copy(gobject_); } bool Language::matches(const Glib::ustring & range_list) const { return pango_language_matches(const_cast(gobj()), range_list.c_str()); } bool Language::includes_script(Script script) const { return pango_language_includes_script(const_cast(gobj()), ((PangoScript)(script))); } } // namespace Pango