/* candidatearea.c generated by valac 0.40.8, the Vala compiler * generated from candidatearea.vala, do not modify */ /* vim:set et sts=4 sw=4: * * ibus - The Input Bus * * Copyright(c) 2011-2015 Peng Huang * Copyright(c) 2015-2017 Takao Fujiwara * * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA */ #include #include #include #include #include #include #include #include #define TYPE_CANDIDATE_AREA (candidate_area_get_type ()) #define CANDIDATE_AREA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CANDIDATE_AREA, CandidateArea)) #define CANDIDATE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CANDIDATE_AREA, CandidateAreaClass)) #define IS_CANDIDATE_AREA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CANDIDATE_AREA)) #define IS_CANDIDATE_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CANDIDATE_AREA)) #define CANDIDATE_AREA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CANDIDATE_AREA, CandidateAreaClass)) typedef struct _CandidateArea CandidateArea; typedef struct _CandidateAreaClass CandidateAreaClass; typedef struct _CandidateAreaPrivate CandidateAreaPrivate; #define TYPE_THEMED_RGBA (themed_rgba_get_type ()) #define THEMED_RGBA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_THEMED_RGBA, ThemedRGBA)) #define THEMED_RGBA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_THEMED_RGBA, ThemedRGBAClass)) #define IS_THEMED_RGBA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_THEMED_RGBA)) #define IS_THEMED_RGBA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_THEMED_RGBA)) #define THEMED_RGBA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_THEMED_RGBA, ThemedRGBAClass)) typedef struct _ThemedRGBA ThemedRGBA; typedef struct _ThemedRGBAClass ThemedRGBAClass; enum { CANDIDATE_AREA_0_PROPERTY, CANDIDATE_AREA_NUM_PROPERTIES }; static GParamSpec* candidate_area_properties[CANDIDATE_AREA_NUM_PROPERTIES]; #define _themed_rgba_unref0(var) ((var == NULL) ? NULL : (var = (themed_rgba_unref (var), NULL))) #define _pango_attribute_destroy0(var) ((var == NULL) ? NULL : (var = (pango_attribute_destroy (var), NULL))) #define _pango_attr_list_unref0(var) ((var == NULL) ? NULL : (var = (pango_attr_list_unref (var), NULL))) #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define TYPE_VSEPARATOR (vseparator_get_type ()) #define VSEPARATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_VSEPARATOR, VSeparator)) #define VSEPARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_VSEPARATOR, VSeparatorClass)) #define IS_VSEPARATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_VSEPARATOR)) #define IS_VSEPARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_VSEPARATOR)) #define VSEPARATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_VSEPARATOR, VSeparatorClass)) typedef struct _VSeparator VSeparator; typedef struct _VSeparatorClass VSeparatorClass; #define TYPE_HSEPARATOR (hseparator_get_type ()) #define HSEPARATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HSEPARATOR, HSeparator)) #define HSEPARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HSEPARATOR, HSeparatorClass)) #define IS_HSEPARATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HSEPARATOR)) #define IS_HSEPARATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HSEPARATOR)) #define HSEPARATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HSEPARATOR, HSeparatorClass)) typedef struct _HSeparator HSeparator; typedef struct _HSeparatorClass HSeparatorClass; typedef struct _Block1Data Block1Data; typedef struct _Block2Data Block2Data; typedef struct _Block3Data Block3Data; enum { CANDIDATE_AREA_CANDIDATE_CLICKED_SIGNAL, CANDIDATE_AREA_PAGE_UP_SIGNAL, CANDIDATE_AREA_PAGE_DOWN_SIGNAL, CANDIDATE_AREA_CURSOR_UP_SIGNAL, CANDIDATE_AREA_CURSOR_DOWN_SIGNAL, CANDIDATE_AREA_NUM_SIGNALS }; static guint candidate_area_signals[CANDIDATE_AREA_NUM_SIGNALS] = {0}; #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); #define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; } #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); struct _CandidateArea { GtkBox parent_instance; CandidateAreaPrivate * priv; }; struct _CandidateAreaClass { GtkBoxClass parent_class; }; struct _CandidateAreaPrivate { gboolean m_vertical; GtkLabel** m_labels; gint m_labels_length1; gint _m_labels_size_; GtkLabel** m_candidates; gint m_candidates_length1; gint _m_candidates_size_; GtkWidget** m_widgets; gint m_widgets_length1; gint _m_widgets_size_; IBusText** m_ibus_candidates; gint m_ibus_candidates_length1; gint _m_ibus_candidates_size_; guint m_focus_candidate; gboolean m_show_cursor; ThemedRGBA* m_rgba; }; struct _Block1Data { int _ref_count_; CandidateArea* self; gint i; }; struct _Block2Data { int _ref_count_; Block1Data * _data1_; gint index; }; struct _Block3Data { int _ref_count_; CandidateArea* self; gint index; }; static gpointer candidate_area_parent_class = NULL; GType candidate_area_get_type (void) G_GNUC_CONST; gpointer themed_rgba_ref (gpointer instance); void themed_rgba_unref (gpointer instance); GParamSpec* param_spec_themed_rgba (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); void value_set_themed_rgba (GValue* value, gpointer v_object); void value_take_themed_rgba (GValue* value, gpointer v_object); gpointer value_get_themed_rgba (const GValue* value); GType themed_rgba_get_type (void) G_GNUC_CONST; #define CANDIDATE_AREA_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_CANDIDATE_AREA, CandidateAreaPrivate)) CandidateArea* candidate_area_new (gboolean vertical); CandidateArea* candidate_area_construct (GType object_type, gboolean vertical); void candidate_area_set_vertical (CandidateArea* self, gboolean vertical, gboolean force); ThemedRGBA* themed_rgba_new (GtkWidget* widget); ThemedRGBA* themed_rgba_construct (GType object_type, GtkWidget* widget); gboolean candidate_area_candidate_scrolled (CandidateArea* self, GdkEventScroll* event); gboolean candidate_area_get_vertical (CandidateArea* self); static void candidate_area_recreate_ui (CandidateArea* self); void candidate_area_set_candidates (CandidateArea* self, IBusText** candidates, int candidates_length1, guint focus_candidate, gboolean show_cursor); void candidate_area_set_labels (CandidateArea* self, IBusText** labels, int labels_length1); static IBusText** _vala_array_dup1 (IBusText** self, int length); PangoAttrList* get_pango_attr_list_from_ibus_text (IBusText* text); GdkRGBA* themed_rgba_get_selected_fg (ThemedRGBA* self); GdkRGBA* themed_rgba_get_selected_bg (ThemedRGBA* self); static void __lambda8_ (CandidateArea* self, GtkButton* b); static void ___lambda8__gtk_button_clicked (GtkButton* _sender, gpointer self); static void __lambda9_ (CandidateArea* self, GtkButton* b); static void ___lambda9__gtk_button_clicked (GtkButton* _sender, gpointer self); static gboolean _candidate_area_candidate_scrolled_gtk_widget_scroll_event (GtkWidget* _sender, GdkEventScroll* event, gpointer self); VSeparator* vseparator_new (void); VSeparator* vseparator_construct (GType object_type); GType vseparator_get_type (void) G_GNUC_CONST; HSeparator* hseparator_new (void); HSeparator* hseparator_construct (GType object_type); GType hseparator_get_type (void) G_GNUC_CONST; static Block1Data* block1_data_ref (Block1Data* _data1_); static void block1_data_unref (void * _userdata_); static Block2Data* block2_data_ref (Block2Data* _data2_); static void block2_data_unref (void * _userdata_); static void _vala_array_add1 (GtkLabel** * array, int* length, int* size, GtkLabel* value); static void _vala_array_add2 (GtkLabel** * array, int* length, int* size, GtkLabel* value); static gboolean ______lambda10_ (Block2Data* _data2_, GtkWidget* w, GdkEventButton* e); static gboolean _______lambda10__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self); static void _vala_array_add3 (GtkWidget** * array, int* length, int* size, GtkWidget* value); static gboolean ______lambda11_ (Block2Data* _data2_, GtkWidget* w, GdkEventButton* e); static gboolean _______lambda11__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self); static void _vala_array_add4 (GtkWidget** * array, int* length, int* size, GtkWidget* value); static Block3Data* block3_data_ref (Block3Data* _data3_); static void block3_data_unref (void * _userdata_); static void _vala_array_add5 (GtkLabel** * array, int* length, int* size, GtkLabel* value); static void _vala_array_add6 (GtkLabel** * array, int* length, int* size, GtkLabel* value); static gboolean ______lambda12_ (Block3Data* _data3_, GtkWidget* w, GdkEventButton* e); static gboolean _______lambda12__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self); static void _vala_array_add7 (GtkWidget** * array, int* length, int* size, GtkWidget* value); static void g_cclosure_user_marshal_VOID__UINT_UINT_UINT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data); static void candidate_area_finalize (GObject * obj); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); static const gchar* CANDIDATE_AREA_LABELS[16] = {"1.", "2.", "3.", "4.", "5.", "6.", "7.", "8.", "9.", "0.", "a.", "b.", "c.", "d.", "e.", "f."}; static const gchar* CANDIDATE_AREA_PREV_PAGE_ICONS[2] = {"go-previous", "go-up"}; static const gchar* CANDIDATE_AREA_NEXT_PAGE_ICONS[2] = {"go-next", "go-down"}; CandidateArea* candidate_area_construct (GType object_type, gboolean vertical) { CandidateArea * self = NULL; ThemedRGBA* _tmp0_; self = (CandidateArea*) g_object_new (object_type, NULL); candidate_area_set_vertical (self, vertical, TRUE); _tmp0_ = themed_rgba_new ((GtkWidget*) self); _themed_rgba_unref0 (self->priv->m_rgba); self->priv->m_rgba = _tmp0_; return self; } CandidateArea* candidate_area_new (gboolean vertical) { return candidate_area_construct (TYPE_CANDIDATE_AREA, vertical); } gboolean candidate_area_candidate_scrolled (CandidateArea* self, GdkEventScroll* event) { gboolean result = FALSE; GdkScrollDirection _tmp0_; g_return_val_if_fail (self != NULL, FALSE); g_return_val_if_fail (event != NULL, FALSE); _tmp0_ = event->direction; switch (_tmp0_) { case GDK_SCROLL_UP: { g_signal_emit (self, candidate_area_signals[CANDIDATE_AREA_CURSOR_UP_SIGNAL], 0); break; } case GDK_SCROLL_DOWN: { g_signal_emit (self, candidate_area_signals[CANDIDATE_AREA_CURSOR_DOWN_SIGNAL], 0); break; } default: break; } result = TRUE; return result; } gboolean candidate_area_get_vertical (CandidateArea* self) { gboolean result = FALSE; gboolean _tmp0_; g_return_val_if_fail (self != NULL, FALSE); _tmp0_ = self->priv->m_vertical; result = _tmp0_; return result; } void candidate_area_set_vertical (CandidateArea* self, gboolean vertical, gboolean force) { gboolean _tmp0_ = FALSE; GtkOrientation _tmp2_ = 0; IBusText** _tmp3_; gint _tmp3__length1; g_return_if_fail (self != NULL); if (!force) { gboolean _tmp1_; _tmp1_ = self->priv->m_vertical; _tmp0_ = _tmp1_ == vertical; } else { _tmp0_ = FALSE; } if (_tmp0_) { return; } self->priv->m_vertical = vertical; if (vertical) { _tmp2_ = GTK_ORIENTATION_VERTICAL; } else { _tmp2_ = GTK_ORIENTATION_HORIZONTAL; } gtk_orientable_set_orientation ((GtkOrientable*) self, _tmp2_); candidate_area_recreate_ui (self); _tmp3_ = self->priv->m_ibus_candidates; _tmp3__length1 = self->priv->m_ibus_candidates_length1; if (_tmp3__length1 > 0) { IBusText** _tmp4_; gint _tmp4__length1; IBusText** _tmp5_; gint _tmp5__length1; guint _tmp6_; gboolean _tmp7_; _tmp4_ = self->priv->m_ibus_candidates; _tmp4__length1 = self->priv->m_ibus_candidates_length1; self->priv->m_ibus_candidates = NULL; self->priv->m_ibus_candidates_length1 = 0; _tmp5_ = _tmp4_; _tmp5__length1 = _tmp4__length1; _tmp6_ = self->priv->m_focus_candidate; _tmp7_ = self->priv->m_show_cursor; candidate_area_set_candidates (self, _tmp5_, _tmp4__length1, _tmp6_, _tmp7_); _tmp5_ = (_vala_array_free (_tmp5_, _tmp5__length1, (GDestroyNotify) g_object_unref), NULL); gtk_widget_show_all ((GtkWidget*) self); } } void candidate_area_set_labels (CandidateArea* self, IBusText** labels, int labels_length1) { gint i = 0; g_return_if_fail (self != NULL); { gboolean _tmp0_ = FALSE; i = 0; _tmp0_ = TRUE; while (TRUE) { gint _tmp2_; GtkLabel** _tmp3_; gint _tmp3__length1; gint _tmp4_; GtkLabel* _tmp5_; gint _tmp6_; IBusText* _tmp7_; const gchar* _tmp8_; if (!_tmp0_) { gint _tmp1_; _tmp1_ = i; i = _tmp1_ + 1; } _tmp0_ = FALSE; _tmp2_ = i; if (!(_tmp2_ < MIN (16, labels_length1))) { break; } _tmp3_ = self->priv->m_labels; _tmp3__length1 = self->priv->m_labels_length1; _tmp4_ = i; _tmp5_ = _tmp3_[_tmp4_]; _tmp6_ = i; _tmp7_ = labels[_tmp6_]; _tmp8_ = ibus_text_get_text (_tmp7_); gtk_label_set_text (_tmp5_, _tmp8_); } } { gboolean _tmp9_ = FALSE; _tmp9_ = TRUE; while (TRUE) { gint _tmp11_; GtkLabel** _tmp12_; gint _tmp12__length1; gint _tmp13_; GtkLabel* _tmp14_; gint _tmp15_; const gchar* _tmp16_; if (!_tmp9_) { gint _tmp10_; _tmp10_ = i; i = _tmp10_ + 1; } _tmp9_ = FALSE; _tmp11_ = i; if (!(_tmp11_ < 16)) { break; } _tmp12_ = self->priv->m_labels; _tmp12__length1 = self->priv->m_labels_length1; _tmp13_ = i; _tmp14_ = _tmp12_[_tmp13_]; _tmp15_ = i; _tmp16_ = CANDIDATE_AREA_LABELS[_tmp15_]; gtk_label_set_text (_tmp14_, _tmp16_); } } } static gpointer _g_object_ref0 (gpointer self) { return self ? g_object_ref (self) : NULL; } static IBusText** _vala_array_dup1 (IBusText** self, int length) { IBusText** result; int i; result = g_new0 (IBusText*, length + 1); for (i = 0; i < length; i++) { IBusText* _tmp0_; _tmp0_ = _g_object_ref0 (self[i]); result[i] = _tmp0_; } return result; } void candidate_area_set_candidates (CandidateArea* self, IBusText** candidates, int candidates_length1, guint focus_candidate, gboolean show_cursor) { IBusText** _tmp0_; gint _tmp0__length1; g_return_if_fail (self != NULL); _tmp0_ = (candidates != NULL) ? _vala_array_dup1 (candidates, candidates_length1) : ((gpointer) candidates); _tmp0__length1 = candidates_length1; self->priv->m_ibus_candidates = (_vala_array_free (self->priv->m_ibus_candidates, self->priv->m_ibus_candidates_length1, (GDestroyNotify) g_object_unref), NULL); self->priv->m_ibus_candidates = _tmp0_; self->priv->m_ibus_candidates_length1 = _tmp0__length1; self->priv->_m_ibus_candidates_size_ = self->priv->m_ibus_candidates_length1; self->priv->m_focus_candidate = focus_candidate; self->priv->m_show_cursor = show_cursor; _vala_assert (candidates_length1 < 16, "candidates.length < 16"); { gint i = 0; i = 0; { gboolean _tmp1_ = FALSE; _tmp1_ = TRUE; while (TRUE) { gint _tmp3_; GtkLabel* label = NULL; GtkLabel** _tmp4_; gint _tmp4__length1; gint _tmp5_; GtkLabel* _tmp6_; GtkLabel* _tmp7_; gboolean visible = FALSE; gint _tmp8_; gboolean _tmp68_; if (!_tmp1_) { gint _tmp2_; _tmp2_ = i; i = _tmp2_ + 1; } _tmp1_ = FALSE; _tmp3_ = i; if (!(_tmp3_ < 16)) { break; } _tmp4_ = self->priv->m_candidates; _tmp4__length1 = self->priv->m_candidates_length1; _tmp5_ = i; _tmp6_ = _tmp4_[_tmp5_]; _tmp7_ = _g_object_ref0 (_tmp6_); label = _tmp7_; visible = FALSE; _tmp8_ = i; if (_tmp8_ < candidates_length1) { PangoAttrList* attrs = NULL; gint _tmp9_; IBusText* _tmp10_; PangoAttrList* _tmp11_; gboolean _tmp12_ = FALSE; gint _tmp13_; GtkLabel* _tmp58_; gint _tmp59_; IBusText* _tmp60_; const gchar* _tmp61_; GtkLabel* _tmp62_; PangoAttrList* _tmp63_; _tmp9_ = i; _tmp10_ = candidates[_tmp9_]; _tmp11_ = get_pango_attr_list_from_ibus_text (_tmp10_); attrs = _tmp11_; _tmp13_ = i; if (((guint) _tmp13_) == focus_candidate) { _tmp12_ = show_cursor; } else { _tmp12_ = FALSE; } if (_tmp12_) { PangoAttribute* pango_attr = NULL; ThemedRGBA* _tmp14_; GdkRGBA* _tmp15_; GdkRGBA* _tmp16_; gdouble _tmp17_; ThemedRGBA* _tmp18_; GdkRGBA* _tmp19_; GdkRGBA* _tmp20_; gdouble _tmp21_; ThemedRGBA* _tmp22_; GdkRGBA* _tmp23_; GdkRGBA* _tmp24_; gdouble _tmp25_; PangoAttribute* _tmp26_; PangoAttribute* _tmp27_; PangoAttribute* _tmp28_; gint _tmp29_; IBusText* _tmp30_; const gchar* _tmp31_; gint _tmp32_; gint _tmp33_; PangoAttrList* _tmp34_; PangoAttribute* _tmp35_; ThemedRGBA* _tmp36_; GdkRGBA* _tmp37_; GdkRGBA* _tmp38_; gdouble _tmp39_; ThemedRGBA* _tmp40_; GdkRGBA* _tmp41_; GdkRGBA* _tmp42_; gdouble _tmp43_; ThemedRGBA* _tmp44_; GdkRGBA* _tmp45_; GdkRGBA* _tmp46_; gdouble _tmp47_; PangoAttribute* _tmp48_; PangoAttribute* _tmp49_; PangoAttribute* _tmp50_; gint _tmp51_; IBusText* _tmp52_; const gchar* _tmp53_; gint _tmp54_; gint _tmp55_; PangoAttrList* _tmp56_; PangoAttribute* _tmp57_; _tmp14_ = self->priv->m_rgba; _tmp15_ = themed_rgba_get_selected_fg (_tmp14_); _tmp16_ = _tmp15_; _tmp17_ = (*_tmp16_).red; _tmp18_ = self->priv->m_rgba; _tmp19_ = themed_rgba_get_selected_fg (_tmp18_); _tmp20_ = _tmp19_; _tmp21_ = (*_tmp20_).green; _tmp22_ = self->priv->m_rgba; _tmp23_ = themed_rgba_get_selected_fg (_tmp22_); _tmp24_ = _tmp23_; _tmp25_ = (*_tmp24_).blue; _tmp26_ = pango_attr_foreground_new ((guint16) (_tmp17_ * G_MAXUINT16), (guint16) (_tmp21_ * G_MAXUINT16), (guint16) (_tmp25_ * G_MAXUINT16)); pango_attr = _tmp26_; _tmp27_ = pango_attr; _tmp27_->start_index = (guint) 0; _tmp28_ = pango_attr; _tmp29_ = i; _tmp30_ = candidates[_tmp29_]; _tmp31_ = ibus_text_get_text (_tmp30_); _tmp32_ = strlen (_tmp31_); _tmp33_ = _tmp32_; _tmp28_->end_index = (guint) _tmp33_; _tmp34_ = attrs; _tmp35_ = pango_attr; pango_attr = NULL; pango_attr_list_insert (_tmp34_, _tmp35_); _tmp36_ = self->priv->m_rgba; _tmp37_ = themed_rgba_get_selected_bg (_tmp36_); _tmp38_ = _tmp37_; _tmp39_ = (*_tmp38_).red; _tmp40_ = self->priv->m_rgba; _tmp41_ = themed_rgba_get_selected_bg (_tmp40_); _tmp42_ = _tmp41_; _tmp43_ = (*_tmp42_).green; _tmp44_ = self->priv->m_rgba; _tmp45_ = themed_rgba_get_selected_bg (_tmp44_); _tmp46_ = _tmp45_; _tmp47_ = (*_tmp46_).blue; _tmp48_ = pango_attr_background_new ((guint16) (_tmp39_ * G_MAXUINT16), (guint16) (_tmp43_ * G_MAXUINT16), (guint16) (_tmp47_ * G_MAXUINT16)); _pango_attribute_destroy0 (pango_attr); pango_attr = _tmp48_; _tmp49_ = pango_attr; _tmp49_->start_index = (guint) 0; _tmp50_ = pango_attr; _tmp51_ = i; _tmp52_ = candidates[_tmp51_]; _tmp53_ = ibus_text_get_text (_tmp52_); _tmp54_ = strlen (_tmp53_); _tmp55_ = _tmp54_; _tmp50_->end_index = (guint) _tmp55_; _tmp56_ = attrs; _tmp57_ = pango_attr; pango_attr = NULL; pango_attr_list_insert (_tmp56_, _tmp57_); _pango_attribute_destroy0 (pango_attr); } _tmp58_ = label; _tmp59_ = i; _tmp60_ = candidates[_tmp59_]; _tmp61_ = ibus_text_get_text (_tmp60_); gtk_label_set_text (_tmp58_, _tmp61_); _tmp62_ = label; _tmp63_ = attrs; gtk_label_set_attributes (_tmp62_, _tmp63_); visible = TRUE; _pango_attr_list_unref0 (attrs); } else { GtkLabel* _tmp64_; GtkLabel* _tmp65_; PangoAttrList* _tmp66_; PangoAttrList* _tmp67_; _tmp64_ = label; gtk_label_set_text (_tmp64_, ""); _tmp65_ = label; _tmp66_ = pango_attr_list_new (); _tmp67_ = _tmp66_; gtk_label_set_attributes (_tmp65_, _tmp67_); _pango_attr_list_unref0 (_tmp67_); } _tmp68_ = self->priv->m_vertical; if (_tmp68_) { GtkWidget** _tmp69_; gint _tmp69__length1; gint _tmp70_; GtkWidget* _tmp71_; gboolean _tmp72_; GtkWidget** _tmp73_; gint _tmp73__length1; gint _tmp74_; GtkWidget* _tmp75_; gboolean _tmp76_; _tmp69_ = self->priv->m_widgets; _tmp69__length1 = self->priv->m_widgets_length1; _tmp70_ = i; _tmp71_ = _tmp69_[_tmp70_ * 2]; _tmp72_ = visible; gtk_widget_set_visible (_tmp71_, _tmp72_); _tmp73_ = self->priv->m_widgets; _tmp73__length1 = self->priv->m_widgets_length1; _tmp74_ = i; _tmp75_ = _tmp73_[(_tmp74_ * 2) + 1]; _tmp76_ = visible; gtk_widget_set_visible (_tmp75_, _tmp76_); } else { GtkWidget** _tmp77_; gint _tmp77__length1; gint _tmp78_; GtkWidget* _tmp79_; gboolean _tmp80_; _tmp77_ = self->priv->m_widgets; _tmp77__length1 = self->priv->m_widgets_length1; _tmp78_ = i; _tmp79_ = _tmp77_[_tmp78_]; _tmp80_ = visible; gtk_widget_set_visible (_tmp79_, _tmp80_); } _g_object_unref0 (label); } } } } static void __lambda8_ (CandidateArea* self, GtkButton* b) { g_return_if_fail (b != NULL); g_signal_emit (self, candidate_area_signals[CANDIDATE_AREA_PAGE_UP_SIGNAL], 0); } static void ___lambda8__gtk_button_clicked (GtkButton* _sender, gpointer self) { __lambda8_ ((CandidateArea*) self, _sender); } static void __lambda9_ (CandidateArea* self, GtkButton* b) { g_return_if_fail (b != NULL); g_signal_emit (self, candidate_area_signals[CANDIDATE_AREA_PAGE_DOWN_SIGNAL], 0); } static void ___lambda9__gtk_button_clicked (GtkButton* _sender, gpointer self) { __lambda9_ ((CandidateArea*) self, _sender); } static gboolean _candidate_area_candidate_scrolled_gtk_widget_scroll_event (GtkWidget* _sender, GdkEventScroll* event, gpointer self) { gboolean result; result = candidate_area_candidate_scrolled ((CandidateArea*) self, event); return result; } static Block1Data* block1_data_ref (Block1Data* _data1_) { g_atomic_int_inc (&_data1_->_ref_count_); return _data1_; } static void block1_data_unref (void * _userdata_) { Block1Data* _data1_; _data1_ = (Block1Data*) _userdata_; if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) { CandidateArea* self; self = _data1_->self; _g_object_unref0 (self); g_slice_free (Block1Data, _data1_); } } static Block2Data* block2_data_ref (Block2Data* _data2_) { g_atomic_int_inc (&_data2_->_ref_count_); return _data2_; } static void block2_data_unref (void * _userdata_) { Block2Data* _data2_; _data2_ = (Block2Data*) _userdata_; if (g_atomic_int_dec_and_test (&_data2_->_ref_count_)) { CandidateArea* self; self = _data2_->_data1_->self; block1_data_unref (_data2_->_data1_); _data2_->_data1_ = NULL; g_slice_free (Block2Data, _data2_); } } static void _vala_array_add1 (GtkLabel** * array, int* length, int* size, GtkLabel* value) { if ((*length) == (*size)) { *size = (*size) ? (2 * (*size)) : 4; *array = g_renew (GtkLabel*, *array, (*size) + 1); } (*array)[(*length)++] = value; (*array)[*length] = NULL; } static void _vala_array_add2 (GtkLabel** * array, int* length, int* size, GtkLabel* value) { if ((*length) == (*size)) { *size = (*size) ? (2 * (*size)) : 4; *array = g_renew (GtkLabel*, *array, (*size) + 1); } (*array)[(*length)++] = value; (*array)[*length] = NULL; } static gboolean ______lambda10_ (Block2Data* _data2_, GtkWidget* w, GdkEventButton* e) { Block1Data* _data1_; CandidateArea* self; gboolean result = FALSE; gint _tmp0_; guint _tmp1_; GdkModifierType _tmp2_; _data1_ = _data2_->_data1_; self = _data1_->self; g_return_val_if_fail (w != NULL, FALSE); g_return_val_if_fail (e != NULL, FALSE); _tmp0_ = _data1_->i; _tmp1_ = e->button; _tmp2_ = e->state; g_signal_emit (self, candidate_area_signals[CANDIDATE_AREA_CANDIDATE_CLICKED_SIGNAL], 0, (guint) _tmp0_, _tmp1_, (guint) _tmp2_); result = TRUE; return result; } static gboolean _______lambda10__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) { gboolean result; result = ______lambda10_ (self, _sender, event); return result; } static void _vala_array_add3 (GtkWidget** * array, int* length, int* size, GtkWidget* value) { if ((*length) == (*size)) { *size = (*size) ? (2 * (*size)) : 4; *array = g_renew (GtkWidget*, *array, (*size) + 1); } (*array)[(*length)++] = value; (*array)[*length] = NULL; } static gboolean ______lambda11_ (Block2Data* _data2_, GtkWidget* w, GdkEventButton* e) { Block1Data* _data1_; CandidateArea* self; gboolean result = FALSE; gint _tmp0_; guint _tmp1_; GdkModifierType _tmp2_; _data1_ = _data2_->_data1_; self = _data1_->self; g_return_val_if_fail (w != NULL, FALSE); g_return_val_if_fail (e != NULL, FALSE); _tmp0_ = _data2_->index; _tmp1_ = e->button; _tmp2_ = e->state; g_signal_emit (self, candidate_area_signals[CANDIDATE_AREA_CANDIDATE_CLICKED_SIGNAL], 0, (guint) _tmp0_, _tmp1_, (guint) _tmp2_); result = TRUE; return result; } static gboolean _______lambda11__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) { gboolean result; result = ______lambda11_ (self, _sender, event); return result; } static void _vala_array_add4 (GtkWidget** * array, int* length, int* size, GtkWidget* value) { if ((*length) == (*size)) { *size = (*size) ? (2 * (*size)) : 4; *array = g_renew (GtkWidget*, *array, (*size) + 1); } (*array)[(*length)++] = value; (*array)[*length] = NULL; } static Block3Data* block3_data_ref (Block3Data* _data3_) { g_atomic_int_inc (&_data3_->_ref_count_); return _data3_; } static void block3_data_unref (void * _userdata_) { Block3Data* _data3_; _data3_ = (Block3Data*) _userdata_; if (g_atomic_int_dec_and_test (&_data3_->_ref_count_)) { CandidateArea* self; self = _data3_->self; _g_object_unref0 (self); g_slice_free (Block3Data, _data3_); } } static void _vala_array_add5 (GtkLabel** * array, int* length, int* size, GtkLabel* value) { if ((*length) == (*size)) { *size = (*size) ? (2 * (*size)) : 4; *array = g_renew (GtkLabel*, *array, (*size) + 1); } (*array)[(*length)++] = value; (*array)[*length] = NULL; } static void _vala_array_add6 (GtkLabel** * array, int* length, int* size, GtkLabel* value) { if ((*length) == (*size)) { *size = (*size) ? (2 * (*size)) : 4; *array = g_renew (GtkLabel*, *array, (*size) + 1); } (*array)[(*length)++] = value; (*array)[*length] = NULL; } static gboolean ______lambda12_ (Block3Data* _data3_, GtkWidget* w, GdkEventButton* e) { CandidateArea* self; gboolean result = FALSE; gint _tmp0_; guint _tmp1_; GdkModifierType _tmp2_; self = _data3_->self; g_return_val_if_fail (w != NULL, FALSE); g_return_val_if_fail (e != NULL, FALSE); _tmp0_ = _data3_->index; _tmp1_ = e->button; _tmp2_ = e->state; g_signal_emit (self, candidate_area_signals[CANDIDATE_AREA_CANDIDATE_CLICKED_SIGNAL], 0, (guint) _tmp0_, _tmp1_, (guint) _tmp2_); result = TRUE; return result; } static gboolean _______lambda12__gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) { gboolean result; result = ______lambda12_ (self, _sender, event); return result; } static void _vala_array_add7 (GtkWidget** * array, int* length, int* size, GtkWidget* value) { if ((*length) == (*size)) { *size = (*size) ? (2 * (*size)) : 4; *array = g_renew (GtkWidget*, *array, (*size) + 1); } (*array)[(*length)++] = value; (*array)[*length] = NULL; } static void candidate_area_recreate_ui (CandidateArea* self) { GList* _tmp0_; GtkButton* prev_button = NULL; GtkButton* _tmp3_; GtkButton* _tmp4_; GtkButton* _tmp5_; GtkOrientation _tmp6_; GtkOrientation _tmp7_; const gchar* _tmp8_; GtkImage* _tmp9_; GtkImage* _tmp10_; GtkButton* _tmp11_; GtkButton* next_button = NULL; GtkButton* _tmp12_; GtkButton* _tmp13_; GtkButton* _tmp14_; GtkOrientation _tmp15_; GtkOrientation _tmp16_; const gchar* _tmp17_; GtkImage* _tmp18_; GtkImage* _tmp19_; GtkButton* _tmp20_; gboolean _tmp21_; g_return_if_fail (self != NULL); _tmp0_ = gtk_container_get_children ((GtkContainer*) self); { GList* w_collection = NULL; GList* w_it = NULL; w_collection = _tmp0_; for (w_it = w_collection; w_it != NULL; w_it = w_it->next) { GtkWidget* _tmp1_; GtkWidget* w = NULL; _tmp1_ = _g_object_ref0 ((GtkWidget*) w_it->data); w = _tmp1_; { GtkWidget* _tmp2_; _tmp2_ = w; gtk_widget_destroy (_tmp2_); _g_object_unref0 (w); } } (w_collection == NULL) ? NULL : (w_collection = (g_list_free (w_collection), NULL)); } _tmp3_ = (GtkButton*) gtk_button_new (); g_object_ref_sink (_tmp3_); prev_button = _tmp3_; _tmp4_ = prev_button; g_signal_connect_object (_tmp4_, "clicked", (GCallback) ___lambda8__gtk_button_clicked, self, 0); _tmp5_ = prev_button; _tmp6_ = gtk_orientable_get_orientation ((GtkOrientable*) self); _tmp7_ = _tmp6_; _tmp8_ = CANDIDATE_AREA_PREV_PAGE_ICONS[_tmp7_]; _tmp9_ = (GtkImage*) gtk_image_new_from_icon_name (_tmp8_, (GtkIconSize) GTK_ICON_SIZE_MENU); g_object_ref_sink (_tmp9_); _tmp10_ = _tmp9_; gtk_button_set_image (_tmp5_, (GtkWidget*) _tmp10_); _g_object_unref0 (_tmp10_); _tmp11_ = prev_button; gtk_button_set_relief (_tmp11_, GTK_RELIEF_NONE); _tmp12_ = (GtkButton*) gtk_button_new (); g_object_ref_sink (_tmp12_); next_button = _tmp12_; _tmp13_ = next_button; g_signal_connect_object (_tmp13_, "clicked", (GCallback) ___lambda9__gtk_button_clicked, self, 0); _tmp14_ = next_button; _tmp15_ = gtk_orientable_get_orientation ((GtkOrientable*) self); _tmp16_ = _tmp15_; _tmp17_ = CANDIDATE_AREA_NEXT_PAGE_ICONS[_tmp16_]; _tmp18_ = (GtkImage*) gtk_image_new_from_icon_name (_tmp17_, (GtkIconSize) GTK_ICON_SIZE_MENU); g_object_ref_sink (_tmp18_); _tmp19_ = _tmp18_; gtk_button_set_image (_tmp14_, (GtkWidget*) _tmp19_); _g_object_unref0 (_tmp19_); _tmp20_ = next_button; gtk_button_set_relief (_tmp20_, GTK_RELIEF_NONE); _tmp21_ = self->priv->m_vertical; if (_tmp21_) { GtkEventBox* container_ebox = NULL; GtkEventBox* _tmp22_; GtkEventBox* _tmp23_; GtkEventBox* _tmp24_; GtkEventBox* _tmp25_; GtkBox* vbox = NULL; GtkBox* _tmp26_; GtkEventBox* _tmp27_; GtkBox* _tmp28_; GtkBox* candidates_hbox = NULL; GtkBox* _tmp29_; GtkBox* _tmp30_; GtkBox* _tmp31_; GtkBox* labels_vbox = NULL; GtkBox* _tmp32_; GtkBox* _tmp33_; GtkBox* candidates_vbox = NULL; GtkBox* _tmp34_; GtkBox* _tmp35_; GtkBox* _tmp36_; GtkBox* _tmp37_; GtkBox* _tmp38_; VSeparator* _tmp39_; VSeparator* _tmp40_; GtkBox* _tmp41_; GtkBox* _tmp42_; GtkBox* _tmp43_; HSeparator* _tmp44_; HSeparator* _tmp45_; GtkBox* buttons_hbox = NULL; GtkBox* _tmp46_; GtkLabel* state_label = NULL; GtkLabel* _tmp47_; GtkLabel* _tmp48_; GtkBox* _tmp49_; GtkLabel* _tmp50_; GtkBox* _tmp51_; GtkButton* _tmp52_; GtkBox* _tmp53_; GtkButton* _tmp54_; GtkBox* _tmp55_; GtkBox* _tmp56_; GtkLabel** _tmp57_; GtkLabel** _tmp58_; GtkWidget** _tmp59_; _tmp22_ = (GtkEventBox*) gtk_event_box_new (); g_object_ref_sink (_tmp22_); container_ebox = _tmp22_; _tmp23_ = container_ebox; gtk_widget_add_events ((GtkWidget*) _tmp23_, (gint) GDK_SCROLL_MASK); _tmp24_ = container_ebox; g_signal_connect_object ((GtkWidget*) _tmp24_, "scroll-event", (GCallback) _candidate_area_candidate_scrolled_gtk_widget_scroll_event, self, 0); _tmp25_ = container_ebox; gtk_container_add ((GtkContainer*) self, (GtkWidget*) _tmp25_); _tmp26_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); g_object_ref_sink (_tmp26_); vbox = _tmp26_; _tmp27_ = container_ebox; _tmp28_ = vbox; gtk_container_add ((GtkContainer*) _tmp27_, (GtkWidget*) _tmp28_); _tmp29_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); g_object_ref_sink (_tmp29_); candidates_hbox = _tmp29_; _tmp30_ = vbox; _tmp31_ = candidates_hbox; gtk_box_pack_start (_tmp30_, (GtkWidget*) _tmp31_, FALSE, FALSE, (guint) 0); _tmp32_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); g_object_ref_sink (_tmp32_); labels_vbox = _tmp32_; _tmp33_ = labels_vbox; gtk_box_set_homogeneous (_tmp33_, TRUE); _tmp34_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); g_object_ref_sink (_tmp34_); candidates_vbox = _tmp34_; _tmp35_ = candidates_vbox; gtk_box_set_homogeneous (_tmp35_, TRUE); _tmp36_ = candidates_hbox; _tmp37_ = labels_vbox; gtk_box_pack_start (_tmp36_, (GtkWidget*) _tmp37_, FALSE, FALSE, (guint) 4); _tmp38_ = candidates_hbox; _tmp39_ = vseparator_new (); g_object_ref_sink (_tmp39_); _tmp40_ = _tmp39_; gtk_box_pack_start (_tmp38_, (GtkWidget*) _tmp40_, FALSE, FALSE, (guint) 0); _g_object_unref0 (_tmp40_); _tmp41_ = candidates_hbox; _tmp42_ = candidates_vbox; gtk_box_pack_start (_tmp41_, (GtkWidget*) _tmp42_, TRUE, TRUE, (guint) 4); _tmp43_ = vbox; _tmp44_ = hseparator_new (); g_object_ref_sink (_tmp44_); _tmp45_ = _tmp44_; gtk_box_pack_start (_tmp43_, (GtkWidget*) _tmp45_, FALSE, FALSE, (guint) 0); _g_object_unref0 (_tmp45_); _tmp46_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); g_object_ref_sink (_tmp46_); buttons_hbox = _tmp46_; _tmp47_ = (GtkLabel*) gtk_label_new (NULL); g_object_ref_sink (_tmp47_); state_label = _tmp47_; _tmp48_ = state_label; gtk_widget_set_size_request ((GtkWidget*) _tmp48_, 20, -1); _tmp49_ = buttons_hbox; _tmp50_ = state_label; gtk_box_pack_start (_tmp49_, (GtkWidget*) _tmp50_, TRUE, TRUE, (guint) 0); _tmp51_ = buttons_hbox; _tmp52_ = prev_button; gtk_box_pack_start (_tmp51_, (GtkWidget*) _tmp52_, FALSE, FALSE, (guint) 0); _tmp53_ = buttons_hbox; _tmp54_ = next_button; gtk_box_pack_start (_tmp53_, (GtkWidget*) _tmp54_, FALSE, FALSE, (guint) 0); _tmp55_ = vbox; _tmp56_ = buttons_hbox; gtk_box_pack_start (_tmp55_, (GtkWidget*) _tmp56_, FALSE, FALSE, (guint) 0); _tmp57_ = g_new0 (GtkLabel*, 0 + 1); self->priv->m_labels = (_vala_array_free (self->priv->m_labels, self->priv->m_labels_length1, (GDestroyNotify) g_object_unref), NULL); self->priv->m_labels = _tmp57_; self->priv->m_labels_length1 = 0; self->priv->_m_labels_size_ = self->priv->m_labels_length1; _tmp58_ = g_new0 (GtkLabel*, 0 + 1); self->priv->m_candidates = (_vala_array_free (self->priv->m_candidates, self->priv->m_candidates_length1, (GDestroyNotify) g_object_unref), NULL); self->priv->m_candidates = _tmp58_; self->priv->m_candidates_length1 = 0; self->priv->_m_candidates_size_ = self->priv->m_candidates_length1; _tmp59_ = g_new0 (GtkWidget*, 0 + 1); self->priv->m_widgets = (_vala_array_free (self->priv->m_widgets, self->priv->m_widgets_length1, (GDestroyNotify) g_object_unref), NULL); self->priv->m_widgets = _tmp59_; self->priv->m_widgets_length1 = 0; self->priv->_m_widgets_size_ = self->priv->m_widgets_length1; { Block1Data* _data1_; _data1_ = g_slice_new0 (Block1Data); _data1_->_ref_count_ = 1; _data1_->self = g_object_ref (self); _data1_->i = 0; { gboolean _tmp60_ = FALSE; _tmp60_ = TRUE; while (TRUE) { Block2Data* _data2_; gint _tmp62_; GtkLabel* label = NULL; gint _tmp63_; const gchar* _tmp64_; GtkLabel* _tmp65_; GtkLabel* _tmp66_; GtkLabel* _tmp67_; GtkLabel* _tmp68_; GtkLabel** _tmp69_; gint _tmp69__length1; GtkLabel* _tmp70_; GtkLabel* _tmp71_; GtkLabel* candidate = NULL; GtkLabel* _tmp72_; GtkLabel* _tmp73_; GtkLabel* _tmp74_; GtkLabel* _tmp75_; GtkLabel** _tmp76_; gint _tmp76__length1; GtkLabel* _tmp77_; GtkLabel* _tmp78_; GtkLabel* _tmp79_; GtkLabel* _tmp80_; gint _tmp81_; GtkEventBox* label_ebox = NULL; GtkEventBox* _tmp82_; GtkEventBox* _tmp83_; GtkEventBox* _tmp84_; GtkEventBox* _tmp85_; GtkLabel* _tmp86_; GtkBox* _tmp87_; GtkEventBox* _tmp88_; GtkWidget** _tmp89_; gint _tmp89__length1; GtkEventBox* _tmp90_; GtkWidget* _tmp91_; GtkEventBox* candidate_ebox = NULL; GtkEventBox* _tmp92_; GtkEventBox* _tmp93_; GtkEventBox* _tmp94_; GtkEventBox* _tmp95_; GtkLabel* _tmp96_; GtkBox* _tmp97_; GtkEventBox* _tmp98_; GtkWidget** _tmp99_; gint _tmp99__length1; GtkEventBox* _tmp100_; GtkWidget* _tmp101_; _data2_ = g_slice_new0 (Block2Data); _data2_->_ref_count_ = 1; _data2_->_data1_ = block1_data_ref (_data1_); if (!_tmp60_) { gint _tmp61_; _tmp61_ = _data1_->i; _data1_->i = _tmp61_ + 1; } _tmp60_ = FALSE; _tmp62_ = _data1_->i; if (!(_tmp62_ < 16)) { block2_data_unref (_data2_); _data2_ = NULL; break; } _tmp63_ = _data1_->i; _tmp64_ = CANDIDATE_AREA_LABELS[_tmp63_]; _tmp65_ = (GtkLabel*) gtk_label_new (_tmp64_); g_object_ref_sink (_tmp65_); label = _tmp65_; _tmp66_ = label; gtk_widget_set_halign ((GtkWidget*) _tmp66_, GTK_ALIGN_START); _tmp67_ = label; gtk_widget_set_valign ((GtkWidget*) _tmp67_, GTK_ALIGN_CENTER); _tmp68_ = label; gtk_widget_show ((GtkWidget*) _tmp68_); _tmp69_ = self->priv->m_labels; _tmp69__length1 = self->priv->m_labels_length1; _tmp70_ = label; _tmp71_ = _g_object_ref0 (_tmp70_); _vala_array_add1 (&self->priv->m_labels, &self->priv->m_labels_length1, &self->priv->_m_labels_size_, _tmp71_); _tmp72_ = (GtkLabel*) gtk_label_new ("test"); g_object_ref_sink (_tmp72_); candidate = _tmp72_; _tmp73_ = candidate; gtk_widget_set_halign ((GtkWidget*) _tmp73_, GTK_ALIGN_START); _tmp74_ = candidate; gtk_widget_set_valign ((GtkWidget*) _tmp74_, GTK_ALIGN_CENTER); _tmp75_ = candidate; gtk_widget_show ((GtkWidget*) _tmp75_); _tmp76_ = self->priv->m_candidates; _tmp76__length1 = self->priv->m_candidates_length1; _tmp77_ = candidate; _tmp78_ = _g_object_ref0 (_tmp77_); _vala_array_add2 (&self->priv->m_candidates, &self->priv->m_candidates_length1, &self->priv->_m_candidates_size_, _tmp78_); _tmp79_ = label; gtk_misc_set_padding ((GtkMisc*) _tmp79_, 8, 0); _tmp80_ = candidate; gtk_misc_set_padding ((GtkMisc*) _tmp80_, 8, 0); _tmp81_ = _data1_->i; _data2_->index = _tmp81_; _tmp82_ = (GtkEventBox*) gtk_event_box_new (); g_object_ref_sink (_tmp82_); label_ebox = _tmp82_; _tmp83_ = label_ebox; gtk_widget_set_no_show_all ((GtkWidget*) _tmp83_, TRUE); _tmp84_ = label_ebox; g_signal_connect_data ((GtkWidget*) _tmp84_, "button-press-event", (GCallback) _______lambda10__gtk_widget_button_press_event, block2_data_ref (_data2_), (GClosureNotify) block2_data_unref, 0); _tmp85_ = label_ebox; _tmp86_ = label; gtk_container_add ((GtkContainer*) _tmp85_, (GtkWidget*) _tmp86_); _tmp87_ = labels_vbox; _tmp88_ = label_ebox; gtk_box_pack_start (_tmp87_, (GtkWidget*) _tmp88_, FALSE, FALSE, (guint) 2); _tmp89_ = self->priv->m_widgets; _tmp89__length1 = self->priv->m_widgets_length1; _tmp90_ = label_ebox; _tmp91_ = _g_object_ref0 ((GtkWidget*) _tmp90_); _vala_array_add3 (&self->priv->m_widgets, &self->priv->m_widgets_length1, &self->priv->_m_widgets_size_, _tmp91_); _tmp92_ = (GtkEventBox*) gtk_event_box_new (); g_object_ref_sink (_tmp92_); candidate_ebox = _tmp92_; _tmp93_ = candidate_ebox; gtk_widget_set_no_show_all ((GtkWidget*) _tmp93_, TRUE); _tmp94_ = candidate_ebox; g_signal_connect_data ((GtkWidget*) _tmp94_, "button-press-event", (GCallback) _______lambda11__gtk_widget_button_press_event, block2_data_ref (_data2_), (GClosureNotify) block2_data_unref, 0); _tmp95_ = candidate_ebox; _tmp96_ = candidate; gtk_container_add ((GtkContainer*) _tmp95_, (GtkWidget*) _tmp96_); _tmp97_ = candidates_vbox; _tmp98_ = candidate_ebox; gtk_box_pack_start (_tmp97_, (GtkWidget*) _tmp98_, FALSE, FALSE, (guint) 2); _tmp99_ = self->priv->m_widgets; _tmp99__length1 = self->priv->m_widgets_length1; _tmp100_ = candidate_ebox; _tmp101_ = _g_object_ref0 ((GtkWidget*) _tmp100_); _vala_array_add4 (&self->priv->m_widgets, &self->priv->m_widgets_length1, &self->priv->_m_widgets_size_, _tmp101_); _g_object_unref0 (candidate_ebox); _g_object_unref0 (label_ebox); _g_object_unref0 (candidate); _g_object_unref0 (label); block2_data_unref (_data2_); _data2_ = NULL; } } block1_data_unref (_data1_); _data1_ = NULL; } _g_object_unref0 (state_label); _g_object_unref0 (buttons_hbox); _g_object_unref0 (candidates_vbox); _g_object_unref0 (labels_vbox); _g_object_unref0 (candidates_hbox); _g_object_unref0 (vbox); _g_object_unref0 (container_ebox); } else { GtkEventBox* container_ebox = NULL; GtkEventBox* _tmp102_; GtkEventBox* _tmp103_; GtkEventBox* _tmp104_; GtkEventBox* _tmp105_; GtkBox* hbox = NULL; GtkBox* _tmp106_; GtkEventBox* _tmp107_; GtkBox* _tmp108_; GtkLabel** _tmp109_; GtkLabel** _tmp110_; GtkWidget** _tmp111_; GtkBox* _tmp148_; VSeparator* _tmp149_; VSeparator* _tmp150_; GtkBox* _tmp151_; GtkButton* _tmp152_; GtkBox* _tmp153_; GtkButton* _tmp154_; _tmp102_ = (GtkEventBox*) gtk_event_box_new (); g_object_ref_sink (_tmp102_); container_ebox = _tmp102_; _tmp103_ = container_ebox; gtk_widget_add_events ((GtkWidget*) _tmp103_, (gint) GDK_SCROLL_MASK); _tmp104_ = container_ebox; g_signal_connect_object ((GtkWidget*) _tmp104_, "scroll-event", (GCallback) _candidate_area_candidate_scrolled_gtk_widget_scroll_event, self, 0); _tmp105_ = container_ebox; gtk_container_add ((GtkContainer*) self, (GtkWidget*) _tmp105_); _tmp106_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); g_object_ref_sink (_tmp106_); hbox = _tmp106_; _tmp107_ = container_ebox; _tmp108_ = hbox; gtk_container_add ((GtkContainer*) _tmp107_, (GtkWidget*) _tmp108_); _tmp109_ = g_new0 (GtkLabel*, 0 + 1); self->priv->m_labels = (_vala_array_free (self->priv->m_labels, self->priv->m_labels_length1, (GDestroyNotify) g_object_unref), NULL); self->priv->m_labels = _tmp109_; self->priv->m_labels_length1 = 0; self->priv->_m_labels_size_ = self->priv->m_labels_length1; _tmp110_ = g_new0 (GtkLabel*, 0 + 1); self->priv->m_candidates = (_vala_array_free (self->priv->m_candidates, self->priv->m_candidates_length1, (GDestroyNotify) g_object_unref), NULL); self->priv->m_candidates = _tmp110_; self->priv->m_candidates_length1 = 0; self->priv->_m_candidates_size_ = self->priv->m_candidates_length1; _tmp111_ = g_new0 (GtkWidget*, 0 + 1); self->priv->m_widgets = (_vala_array_free (self->priv->m_widgets, self->priv->m_widgets_length1, (GDestroyNotify) g_object_unref), NULL); self->priv->m_widgets = _tmp111_; self->priv->m_widgets_length1 = 0; self->priv->_m_widgets_size_ = self->priv->m_widgets_length1; { gint i = 0; i = 0; { gboolean _tmp112_ = FALSE; _tmp112_ = TRUE; while (TRUE) { Block3Data* _data3_; gint _tmp114_; GtkLabel* label = NULL; gint _tmp115_; const gchar* _tmp116_; GtkLabel* _tmp117_; GtkLabel* _tmp118_; GtkLabel* _tmp119_; GtkLabel* _tmp120_; GtkLabel** _tmp121_; gint _tmp121__length1; GtkLabel* _tmp122_; GtkLabel* _tmp123_; GtkLabel* candidate = NULL; GtkLabel* _tmp124_; GtkLabel* _tmp125_; GtkLabel* _tmp126_; GtkLabel* _tmp127_; GtkLabel** _tmp128_; gint _tmp128__length1; GtkLabel* _tmp129_; GtkLabel* _tmp130_; GtkBox* candidate_hbox = NULL; GtkBox* _tmp131_; GtkBox* _tmp132_; GtkBox* _tmp133_; GtkLabel* _tmp134_; GtkBox* _tmp135_; GtkLabel* _tmp136_; gint _tmp137_; GtkEventBox* ebox = NULL; GtkEventBox* _tmp138_; GtkEventBox* _tmp139_; GtkEventBox* _tmp140_; GtkEventBox* _tmp141_; GtkBox* _tmp142_; GtkBox* _tmp143_; GtkEventBox* _tmp144_; GtkWidget** _tmp145_; gint _tmp145__length1; GtkEventBox* _tmp146_; GtkWidget* _tmp147_; _data3_ = g_slice_new0 (Block3Data); _data3_->_ref_count_ = 1; _data3_->self = g_object_ref (self); if (!_tmp112_) { gint _tmp113_; _tmp113_ = i; i = _tmp113_ + 1; } _tmp112_ = FALSE; _tmp114_ = i; if (!(_tmp114_ < 16)) { block3_data_unref (_data3_); _data3_ = NULL; break; } _tmp115_ = i; _tmp116_ = CANDIDATE_AREA_LABELS[_tmp115_]; _tmp117_ = (GtkLabel*) gtk_label_new (_tmp116_); g_object_ref_sink (_tmp117_); label = _tmp117_; _tmp118_ = label; gtk_widget_set_halign ((GtkWidget*) _tmp118_, GTK_ALIGN_START); _tmp119_ = label; gtk_widget_set_valign ((GtkWidget*) _tmp119_, GTK_ALIGN_CENTER); _tmp120_ = label; gtk_widget_show ((GtkWidget*) _tmp120_); _tmp121_ = self->priv->m_labels; _tmp121__length1 = self->priv->m_labels_length1; _tmp122_ = label; _tmp123_ = _g_object_ref0 (_tmp122_); _vala_array_add5 (&self->priv->m_labels, &self->priv->m_labels_length1, &self->priv->_m_labels_size_, _tmp123_); _tmp124_ = (GtkLabel*) gtk_label_new ("test"); g_object_ref_sink (_tmp124_); candidate = _tmp124_; _tmp125_ = candidate; gtk_widget_set_halign ((GtkWidget*) _tmp125_, GTK_ALIGN_START); _tmp126_ = candidate; gtk_widget_set_valign ((GtkWidget*) _tmp126_, GTK_ALIGN_CENTER); _tmp127_ = candidate; gtk_widget_show ((GtkWidget*) _tmp127_); _tmp128_ = self->priv->m_candidates; _tmp128__length1 = self->priv->m_candidates_length1; _tmp129_ = candidate; _tmp130_ = _g_object_ref0 (_tmp129_); _vala_array_add6 (&self->priv->m_candidates, &self->priv->m_candidates_length1, &self->priv->_m_candidates_size_, _tmp130_); _tmp131_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); g_object_ref_sink (_tmp131_); candidate_hbox = _tmp131_; _tmp132_ = candidate_hbox; gtk_widget_show ((GtkWidget*) _tmp132_); _tmp133_ = candidate_hbox; _tmp134_ = label; gtk_box_pack_start (_tmp133_, (GtkWidget*) _tmp134_, FALSE, FALSE, (guint) 2); _tmp135_ = candidate_hbox; _tmp136_ = candidate; gtk_box_pack_start (_tmp135_, (GtkWidget*) _tmp136_, FALSE, FALSE, (guint) 2); _tmp137_ = i; _data3_->index = _tmp137_; _tmp138_ = (GtkEventBox*) gtk_event_box_new (); g_object_ref_sink (_tmp138_); ebox = _tmp138_; _tmp139_ = ebox; gtk_widget_set_no_show_all ((GtkWidget*) _tmp139_, TRUE); _tmp140_ = ebox; g_signal_connect_data ((GtkWidget*) _tmp140_, "button-press-event", (GCallback) _______lambda12__gtk_widget_button_press_event, block3_data_ref (_data3_), (GClosureNotify) block3_data_unref, 0); _tmp141_ = ebox; _tmp142_ = candidate_hbox; gtk_container_add ((GtkContainer*) _tmp141_, (GtkWidget*) _tmp142_); _tmp143_ = hbox; _tmp144_ = ebox; gtk_box_pack_start (_tmp143_, (GtkWidget*) _tmp144_, FALSE, FALSE, (guint) 4); _tmp145_ = self->priv->m_widgets; _tmp145__length1 = self->priv->m_widgets_length1; _tmp146_ = ebox; _tmp147_ = _g_object_ref0 ((GtkWidget*) _tmp146_); _vala_array_add7 (&self->priv->m_widgets, &self->priv->m_widgets_length1, &self->priv->_m_widgets_size_, _tmp147_); _g_object_unref0 (ebox); _g_object_unref0 (candidate_hbox); _g_object_unref0 (candidate); _g_object_unref0 (label); block3_data_unref (_data3_); _data3_ = NULL; } } } _tmp148_ = hbox; _tmp149_ = vseparator_new (); g_object_ref_sink (_tmp149_); _tmp150_ = _tmp149_; gtk_box_pack_start (_tmp148_, (GtkWidget*) _tmp150_, FALSE, FALSE, (guint) 0); _g_object_unref0 (_tmp150_); _tmp151_ = hbox; _tmp152_ = prev_button; gtk_box_pack_start (_tmp151_, (GtkWidget*) _tmp152_, FALSE, FALSE, (guint) 0); _tmp153_ = hbox; _tmp154_ = next_button; gtk_box_pack_start (_tmp153_, (GtkWidget*) _tmp154_, FALSE, FALSE, (guint) 0); _g_object_unref0 (hbox); _g_object_unref0 (container_ebox); } _g_object_unref0 (next_button); _g_object_unref0 (prev_button); } static void g_cclosure_user_marshal_VOID__UINT_UINT_UINT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) { typedef void (*GMarshalFunc_VOID__UINT_UINT_UINT) (gpointer data1, guint arg_1, guint arg_2, guint arg_3, gpointer data2); register GMarshalFunc_VOID__UINT_UINT_UINT callback; register GCClosure * cc; register gpointer data1; register gpointer data2; cc = (GCClosure *) closure; g_return_if_fail (n_param_values == 4); if (G_CCLOSURE_SWAP_DATA (closure)) { data1 = closure->data; data2 = param_values->data[0].v_pointer; } else { data1 = param_values->data[0].v_pointer; data2 = closure->data; } callback = (GMarshalFunc_VOID__UINT_UINT_UINT) (marshal_data ? marshal_data : cc->callback); callback (data1, g_value_get_uint (param_values + 1), g_value_get_uint (param_values + 2), g_value_get_uint (param_values + 3), data2); } static void candidate_area_class_init (CandidateAreaClass * klass) { candidate_area_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (CandidateAreaPrivate)); G_OBJECT_CLASS (klass)->finalize = candidate_area_finalize; candidate_area_signals[CANDIDATE_AREA_CANDIDATE_CLICKED_SIGNAL] = g_signal_new ("candidate-clicked", TYPE_CANDIDATE_AREA, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__UINT_UINT_UINT, G_TYPE_NONE, 3, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT); candidate_area_signals[CANDIDATE_AREA_PAGE_UP_SIGNAL] = g_signal_new ("page-up", TYPE_CANDIDATE_AREA, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); candidate_area_signals[CANDIDATE_AREA_PAGE_DOWN_SIGNAL] = g_signal_new ("page-down", TYPE_CANDIDATE_AREA, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); candidate_area_signals[CANDIDATE_AREA_CURSOR_UP_SIGNAL] = g_signal_new ("cursor-up", TYPE_CANDIDATE_AREA, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); candidate_area_signals[CANDIDATE_AREA_CURSOR_DOWN_SIGNAL] = g_signal_new ("cursor-down", TYPE_CANDIDATE_AREA, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); } static void candidate_area_instance_init (CandidateArea * self) { self->priv = CANDIDATE_AREA_GET_PRIVATE (self); } static void candidate_area_finalize (GObject * obj) { CandidateArea * self; self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_CANDIDATE_AREA, CandidateArea); self->priv->m_labels = (_vala_array_free (self->priv->m_labels, self->priv->m_labels_length1, (GDestroyNotify) g_object_unref), NULL); self->priv->m_candidates = (_vala_array_free (self->priv->m_candidates, self->priv->m_candidates_length1, (GDestroyNotify) g_object_unref), NULL); self->priv->m_widgets = (_vala_array_free (self->priv->m_widgets, self->priv->m_widgets_length1, (GDestroyNotify) g_object_unref), NULL); self->priv->m_ibus_candidates = (_vala_array_free (self->priv->m_ibus_candidates, self->priv->m_ibus_candidates_length1, (GDestroyNotify) g_object_unref), NULL); _themed_rgba_unref0 (self->priv->m_rgba); G_OBJECT_CLASS (candidate_area_parent_class)->finalize (obj); } GType candidate_area_get_type (void) { static volatile gsize candidate_area_type_id__volatile = 0; if (g_once_init_enter (&candidate_area_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (CandidateAreaClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) candidate_area_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CandidateArea), 0, (GInstanceInitFunc) candidate_area_instance_init, NULL }; GType candidate_area_type_id; candidate_area_type_id = g_type_register_static (gtk_box_get_type (), "CandidateArea", &g_define_type_info, 0); g_once_init_leave (&candidate_area_type_id__volatile, candidate_area_type_id); } return candidate_area_type_id__volatile; } static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { int i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); } } } } static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) { _vala_array_destroy (array, array_length, destroy_func); g_free (array); }