|
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 |
|