Blame bindings/vala/pango.c

Packit 3ff832
/* pango.c generated by valac 0.40.8, the Vala compiler
Packit 3ff832
 * generated from pango.vala, do not modify */
Packit 3ff832
Packit 3ff832
/* vim:set et sts=4 sw=4:
Packit 3ff832
 *
Packit 3ff832
 * ibus - The Input Bus
Packit 3ff832
 *
Packit 3ff832
 * Copyright(c) 2011 Peng Huang <shawn.p.huang@gmail.com>
Packit 3ff832
 *
Packit 3ff832
 * This library is free software; you can redistribute it and/or
Packit 3ff832
 * modify it under the terms of the GNU Lesser General Public
Packit 3ff832
 * License as published by the Free Software Foundation; either
Packit 3ff832
 * version 2.1 of the License, or (at your option) any later version.
Packit 3ff832
 *
Packit 3ff832
 * This library is distributed in the hope that it will be useful,
Packit 3ff832
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 3ff832
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 3ff832
 * Lesser General Public License for more details.
Packit 3ff832
 *
Packit 3ff832
 * You should have received a copy of the GNU Lesser General Public
Packit 3ff832
 * License along with this library; if not, write to the Free Software
Packit 3ff832
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
Packit 3ff832
 * USA
Packit 3ff832
 */
Packit 3ff832
Packit 3ff832
Packit 3ff832
#include <glib.h>
Packit 3ff832
#include <glib-object.h>
Packit 3ff832
#include <ibus.h>
Packit 3ff832
#include <pango/pango.h>
Packit 3ff832
#include <stdlib.h>
Packit 3ff832
#include <string.h>
Packit 3ff832
Packit 3ff832
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
Packit 3ff832
#define _pango_attribute_destroy0(var) ((var == NULL) ? NULL : (var = (pango_attribute_destroy (var), NULL)))
Packit 3ff832
#define _pango_attr_list_unref0(var) ((var == NULL) ? NULL : (var = (pango_attr_list_unref (var), NULL)))
Packit 3ff832
Packit 3ff832
Packit 3ff832
Packit 3ff832
PangoAttrList* get_pango_attr_list_from_ibus_text (IBusText* text);
Packit 3ff832
Packit 3ff832
Packit 3ff832
static gint
Packit 3ff832
string_index_of_nth_char (const gchar* self,
Packit 3ff832
                          glong c)
Packit 3ff832
{
Packit 3ff832
	gint result = 0;
Packit 3ff832
	gchar* _tmp0_;
Packit 3ff832
	g_return_val_if_fail (self != NULL, 0);
Packit 3ff832
	_tmp0_ = g_utf8_offset_to_pointer (self, c);
Packit 3ff832
	result = (gint) (_tmp0_ - ((gchar*) self));
Packit 3ff832
	return result;
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
static gpointer
Packit 3ff832
_g_object_ref0 (gpointer self)
Packit 3ff832
{
Packit 3ff832
	return self ? g_object_ref (self) : NULL;
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832
PangoAttrList*
Packit 3ff832
get_pango_attr_list_from_ibus_text (IBusText* text)
Packit 3ff832
{
Packit 3ff832
	PangoAttrList* result = NULL;
Packit 3ff832
	PangoAttrList* pango_attrs = NULL;
Packit 3ff832
	PangoAttrList* _tmp0_;
Packit 3ff832
	IBusAttrList* attrs = NULL;
Packit 3ff832
	IBusAttrList* _tmp1_;
Packit 3ff832
	IBusAttrList* _tmp2_;
Packit 3ff832
	const gchar* str = NULL;
Packit 3ff832
	const gchar* _tmp3_;
Packit 3ff832
	glong nchars = 0L;
Packit 3ff832
	const gchar* _tmp4_;
Packit 3ff832
	glong* offsets = NULL;
Packit 3ff832
	glong _tmp5_;
Packit 3ff832
	glong* _tmp6_;
Packit 3ff832
	gint offsets_length1;
Packit 3ff832
	gint _offsets_size_;
Packit 3ff832
	IBusAttribute* attr = NULL;
Packit 3ff832
	gint i = 0;
Packit 3ff832
	g_return_val_if_fail (text != NULL, NULL);
Packit 3ff832
	_tmp0_ = pango_attr_list_new ();
Packit 3ff832
	pango_attrs = _tmp0_;
Packit 3ff832
	_tmp1_ = ibus_text_get_attributes (text);
Packit 3ff832
	attrs = _tmp1_;
Packit 3ff832
	_tmp2_ = attrs;
Packit 3ff832
	if (_tmp2_ == NULL) {
Packit 3ff832
		result = pango_attrs;
Packit 3ff832
		return result;
Packit 3ff832
	}
Packit 3ff832
	_tmp3_ = ibus_text_get_text (text);
Packit 3ff832
	str = _tmp3_;
Packit 3ff832
	_tmp4_ = str;
Packit 3ff832
	nchars = (glong) g_utf8_strlen (_tmp4_, (gssize) -1);
Packit 3ff832
	_tmp5_ = nchars;
Packit 3ff832
	_tmp6_ = g_new0 (glong, _tmp5_ + 1);
Packit 3ff832
	offsets = _tmp6_;
Packit 3ff832
	offsets_length1 = _tmp5_ + 1;
Packit 3ff832
	_offsets_size_ = offsets_length1;
Packit 3ff832
	{
Packit 3ff832
		gint i = 0;
Packit 3ff832
		i = 0;
Packit 3ff832
		{
Packit 3ff832
			gboolean _tmp7_ = FALSE;
Packit 3ff832
			_tmp7_ = TRUE;
Packit 3ff832
			while (TRUE) {
Packit 3ff832
				gint _tmp9_;
Packit 3ff832
				glong _tmp10_;
Packit 3ff832
				glong* _tmp11_;
Packit 3ff832
				gint _tmp11__length1;
Packit 3ff832
				gint _tmp12_;
Packit 3ff832
				const gchar* _tmp13_;
Packit 3ff832
				gint _tmp14_;
Packit 3ff832
				glong _tmp15_;
Packit 3ff832
				if (!_tmp7_) {
Packit 3ff832
					gint _tmp8_;
Packit 3ff832
					_tmp8_ = i;
Packit 3ff832
					i = _tmp8_ + 1;
Packit 3ff832
				}
Packit 3ff832
				_tmp7_ = FALSE;
Packit 3ff832
				_tmp9_ = i;
Packit 3ff832
				_tmp10_ = nchars;
Packit 3ff832
				if (!(((glong) _tmp9_) <= _tmp10_)) {
Packit 3ff832
					break;
Packit 3ff832
				}
Packit 3ff832
				_tmp11_ = offsets;
Packit 3ff832
				_tmp11__length1 = offsets_length1;
Packit 3ff832
				_tmp12_ = i;
Packit 3ff832
				_tmp13_ = str;
Packit 3ff832
				_tmp14_ = i;
Packit 3ff832
				_tmp11_[_tmp12_] = (glong) string_index_of_nth_char (_tmp13_, (glong) _tmp14_);
Packit 3ff832
				_tmp15_ = _tmp11_[_tmp12_];
Packit 3ff832
			}
Packit 3ff832
		}
Packit 3ff832
	}
Packit 3ff832
	i = 0;
Packit 3ff832
	while (TRUE) {
Packit 3ff832
		IBusAttrList* _tmp16_;
Packit 3ff832
		gint _tmp17_;
Packit 3ff832
		IBusAttribute* _tmp18_;
Packit 3ff832
		IBusAttribute* _tmp19_;
Packit 3ff832
		IBusAttribute* _tmp20_;
Packit 3ff832
		glong start_index = 0L;
Packit 3ff832
		IBusAttribute* _tmp21_;
Packit 3ff832
		guint _tmp22_;
Packit 3ff832
		glong _tmp23_;
Packit 3ff832
		glong _tmp24_ = 0L;
Packit 3ff832
		glong _tmp25_;
Packit 3ff832
		glong _tmp26_;
Packit 3ff832
		glong end_index = 0L;
Packit 3ff832
		IBusAttribute* _tmp32_;
Packit 3ff832
		guint _tmp33_;
Packit 3ff832
		glong _tmp34_;
Packit 3ff832
		glong _tmp35_ = 0L;
Packit 3ff832
		glong _tmp36_;
Packit 3ff832
		glong _tmp37_;
Packit 3ff832
		PangoAttribute* pango_attr = NULL;
Packit 3ff832
		IBusAttribute* _tmp43_;
Packit 3ff832
		guint _tmp44_;
Packit 3ff832
		PangoAttribute* _tmp68_;
Packit 3ff832
		glong _tmp69_;
Packit 3ff832
		PangoAttribute* _tmp70_;
Packit 3ff832
		glong _tmp71_;
Packit 3ff832
		PangoAttrList* _tmp72_;
Packit 3ff832
		PangoAttribute* _tmp73_;
Packit 3ff832
		_tmp16_ = attrs;
Packit 3ff832
		_tmp17_ = i;
Packit 3ff832
		i = _tmp17_ + 1;
Packit 3ff832
		_tmp18_ = ibus_attr_list_get (_tmp16_, (guint) _tmp17_);
Packit 3ff832
		_tmp19_ = _g_object_ref0 (_tmp18_);
Packit 3ff832
		_g_object_unref0 (attr);
Packit 3ff832
		attr = _tmp19_;
Packit 3ff832
		_tmp20_ = attr;
Packit 3ff832
		if (_tmp20_ == NULL) {
Packit 3ff832
			break;
Packit 3ff832
		}
Packit 3ff832
		_tmp21_ = attr;
Packit 3ff832
		_tmp22_ = _tmp21_->start_index;
Packit 3ff832
		start_index = (glong) _tmp22_;
Packit 3ff832
		_tmp23_ = start_index;
Packit 3ff832
		if (_tmp23_ <= ((glong) 0)) {
Packit 3ff832
			start_index = (glong) 0;
Packit 3ff832
		}
Packit 3ff832
		_tmp25_ = start_index;
Packit 3ff832
		_tmp26_ = nchars;
Packit 3ff832
		if (_tmp25_ <= _tmp26_) {
Packit 3ff832
			glong* _tmp27_;
Packit 3ff832
			gint _tmp27__length1;
Packit 3ff832
			glong _tmp28_;
Packit 3ff832
			glong _tmp29_;
Packit 3ff832
			_tmp27_ = offsets;
Packit 3ff832
			_tmp27__length1 = offsets_length1;
Packit 3ff832
			_tmp28_ = start_index;
Packit 3ff832
			_tmp29_ = _tmp27_[_tmp28_];
Packit 3ff832
			_tmp24_ = _tmp29_;
Packit 3ff832
		} else {
Packit 3ff832
			glong* _tmp30_;
Packit 3ff832
			gint _tmp30__length1;
Packit 3ff832
			glong _tmp31_;
Packit 3ff832
			_tmp30_ = offsets;
Packit 3ff832
			_tmp30__length1 = offsets_length1;
Packit 3ff832
			_tmp31_ = _tmp30_[-1];
Packit 3ff832
			_tmp24_ = _tmp31_;
Packit 3ff832
		}
Packit 3ff832
		start_index = _tmp24_;
Packit 3ff832
		_tmp32_ = attr;
Packit 3ff832
		_tmp33_ = _tmp32_->end_index;
Packit 3ff832
		end_index = (glong) _tmp33_;
Packit 3ff832
		_tmp34_ = end_index;
Packit 3ff832
		if (_tmp34_ <= ((glong) 0)) {
Packit 3ff832
			end_index = (glong) 0;
Packit 3ff832
		}
Packit 3ff832
		_tmp36_ = end_index;
Packit 3ff832
		_tmp37_ = nchars;
Packit 3ff832
		if (_tmp36_ <= _tmp37_) {
Packit 3ff832
			glong* _tmp38_;
Packit 3ff832
			gint _tmp38__length1;
Packit 3ff832
			glong _tmp39_;
Packit 3ff832
			glong _tmp40_;
Packit 3ff832
			_tmp38_ = offsets;
Packit 3ff832
			_tmp38__length1 = offsets_length1;
Packit 3ff832
			_tmp39_ = end_index;
Packit 3ff832
			_tmp40_ = _tmp38_[_tmp39_];
Packit 3ff832
			_tmp35_ = _tmp40_;
Packit 3ff832
		} else {
Packit 3ff832
			glong* _tmp41_;
Packit 3ff832
			gint _tmp41__length1;
Packit 3ff832
			glong _tmp42_;
Packit 3ff832
			_tmp41_ = offsets;
Packit 3ff832
			_tmp41__length1 = offsets_length1;
Packit 3ff832
			_tmp42_ = _tmp41_[-1];
Packit 3ff832
			_tmp35_ = _tmp42_;
Packit 3ff832
		}
Packit 3ff832
		end_index = _tmp35_;
Packit 3ff832
		pango_attr = NULL;
Packit 3ff832
		_tmp43_ = attr;
Packit 3ff832
		_tmp44_ = _tmp43_->type;
Packit 3ff832
		switch (_tmp44_) {
Packit 3ff832
			case IBUS_ATTR_TYPE_FOREGROUND:
Packit 3ff832
			{
Packit 3ff832
				{
Packit 3ff832
					guint16 r = 0U;
Packit 3ff832
					IBusAttribute* _tmp45_;
Packit 3ff832
					guint _tmp46_;
Packit 3ff832
					guint16 g = 0U;
Packit 3ff832
					IBusAttribute* _tmp47_;
Packit 3ff832
					guint _tmp48_;
Packit 3ff832
					guint16 b = 0U;
Packit 3ff832
					IBusAttribute* _tmp49_;
Packit 3ff832
					guint _tmp50_;
Packit 3ff832
					guint16 _tmp51_;
Packit 3ff832
					guint16 _tmp52_;
Packit 3ff832
					guint16 _tmp53_;
Packit 3ff832
					PangoAttribute* _tmp54_;
Packit 3ff832
					_tmp45_ = attr;
Packit 3ff832
					_tmp46_ = _tmp45_->value;
Packit 3ff832
					r = (guint16) ((_tmp46_ & 0x00ff0000) >> 8);
Packit 3ff832
					_tmp47_ = attr;
Packit 3ff832
					_tmp48_ = _tmp47_->value;
Packit 3ff832
					g = (guint16) (_tmp48_ & 0x0000ff00);
Packit 3ff832
					_tmp49_ = attr;
Packit 3ff832
					_tmp50_ = _tmp49_->value;
Packit 3ff832
					b = (guint16) ((_tmp50_ & 0x000000ff) << 8);
Packit 3ff832
					_tmp51_ = r;
Packit 3ff832
					_tmp52_ = g;
Packit 3ff832
					_tmp53_ = b;
Packit 3ff832
					_tmp54_ = pango_attr_foreground_new (_tmp51_, _tmp52_, _tmp53_);
Packit 3ff832
					_pango_attribute_destroy0 (pango_attr);
Packit 3ff832
					pango_attr = _tmp54_;
Packit 3ff832
					break;
Packit 3ff832
				}
Packit 3ff832
			}
Packit 3ff832
			case IBUS_ATTR_TYPE_BACKGROUND:
Packit 3ff832
			{
Packit 3ff832
				{
Packit 3ff832
					guint16 r = 0U;
Packit 3ff832
					IBusAttribute* _tmp55_;
Packit 3ff832
					guint _tmp56_;
Packit 3ff832
					guint16 g = 0U;
Packit 3ff832
					IBusAttribute* _tmp57_;
Packit 3ff832
					guint _tmp58_;
Packit 3ff832
					guint16 b = 0U;
Packit 3ff832
					IBusAttribute* _tmp59_;
Packit 3ff832
					guint _tmp60_;
Packit 3ff832
					guint16 _tmp61_;
Packit 3ff832
					guint16 _tmp62_;
Packit 3ff832
					guint16 _tmp63_;
Packit 3ff832
					PangoAttribute* _tmp64_;
Packit 3ff832
					_tmp55_ = attr;
Packit 3ff832
					_tmp56_ = _tmp55_->value;
Packit 3ff832
					r = (guint16) ((_tmp56_ & 0x00ff0000) >> 8);
Packit 3ff832
					_tmp57_ = attr;
Packit 3ff832
					_tmp58_ = _tmp57_->value;
Packit 3ff832
					g = (guint16) (_tmp58_ & 0x0000ff00);
Packit 3ff832
					_tmp59_ = attr;
Packit 3ff832
					_tmp60_ = _tmp59_->value;
Packit 3ff832
					b = (guint16) ((_tmp60_ & 0x000000ff) << 8);
Packit 3ff832
					_tmp61_ = r;
Packit 3ff832
					_tmp62_ = g;
Packit 3ff832
					_tmp63_ = b;
Packit 3ff832
					_tmp64_ = pango_attr_background_new (_tmp61_, _tmp62_, _tmp63_);
Packit 3ff832
					_pango_attribute_destroy0 (pango_attr);
Packit 3ff832
					pango_attr = _tmp64_;
Packit 3ff832
					break;
Packit 3ff832
				}
Packit 3ff832
			}
Packit 3ff832
			case IBUS_ATTR_TYPE_UNDERLINE:
Packit 3ff832
			{
Packit 3ff832
				{
Packit 3ff832
					IBusAttribute* _tmp65_;
Packit 3ff832
					guint _tmp66_;
Packit 3ff832
					PangoAttribute* _tmp67_;
Packit 3ff832
					_tmp65_ = attr;
Packit 3ff832
					_tmp66_ = _tmp65_->value;
Packit 3ff832
					_tmp67_ = pango_attr_underline_new ((PangoUnderline) _tmp66_);
Packit 3ff832
					_pango_attribute_destroy0 (pango_attr);
Packit 3ff832
					pango_attr = _tmp67_;
Packit 3ff832
					break;
Packit 3ff832
				}
Packit 3ff832
			}
Packit 3ff832
			default:
Packit 3ff832
			{
Packit 3ff832
				continue;
Packit 3ff832
			}
Packit 3ff832
		}
Packit 3ff832
		_tmp68_ = pango_attr;
Packit 3ff832
		_tmp69_ = start_index;
Packit 3ff832
		_tmp68_->start_index = (guint) _tmp69_;
Packit 3ff832
		_tmp70_ = pango_attr;
Packit 3ff832
		_tmp71_ = end_index;
Packit 3ff832
		_tmp70_->end_index = (guint) _tmp71_;
Packit 3ff832
		_tmp72_ = pango_attrs;
Packit 3ff832
		_tmp73_ = pango_attr;
Packit 3ff832
		pango_attr = NULL;
Packit 3ff832
		pango_attr_list_insert (_tmp72_, _tmp73_);
Packit 3ff832
		_pango_attribute_destroy0 (pango_attr);
Packit 3ff832
	}
Packit 3ff832
	result = pango_attrs;
Packit 3ff832
	_g_object_unref0 (attr);
Packit 3ff832
	offsets = (g_free (offsets), NULL);
Packit 3ff832
	return result;
Packit 3ff832
}
Packit 3ff832
Packit 3ff832
Packit 3ff832