/* handle.c generated by valac 0.40.8, the Vala compiler * generated from handle.vala, do not modify */ /* vim:set et sts=4 sw=4: * * ibus - The Input Bus * * Copyright(c) 2011-2016 Peng Huang * Copyright(c) 2016-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_HANDLE (handle_get_type ()) #define HANDLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_HANDLE, Handle)) #define HANDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_HANDLE, HandleClass)) #define IS_HANDLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_HANDLE)) #define IS_HANDLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_HANDLE)) #define HANDLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_HANDLE, HandleClass)) typedef struct _Handle Handle; typedef struct _HandleClass HandleClass; typedef struct _HandlePrivate HandlePrivate; enum { HANDLE_0_PROPERTY, HANDLE_NUM_PROPERTIES }; static GParamSpec* handle_properties[HANDLE_NUM_PROPERTIES]; #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) enum { HANDLE_MOVE_BEGIN_SIGNAL, HANDLE_MOVE_END_SIGNAL, HANDLE_NUM_SIGNALS }; static guint handle_signals[HANDLE_NUM_SIGNALS] = {0}; struct _Handle { GtkEventBox parent_instance; HandlePrivate * priv; }; struct _HandleClass { GtkEventBoxClass parent_class; }; struct _HandlePrivate { gboolean m_move_begined; GdkRectangle m_workarea; GdkPoint m_press_pos; }; static gpointer handle_parent_class = NULL; GType handle_get_type (void) G_GNUC_CONST; #define HANDLE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_HANDLE, HandlePrivate)) Handle* handle_new (void); Handle* handle_construct (GType object_type); static void handle_real_realize (GtkWidget* base); static gboolean handle_real_button_press_event (GtkWidget* base, GdkEventButton* event); static gboolean handle_real_button_release_event (GtkWidget* base, GdkEventButton* event); static gboolean handle_real_motion_notify_event (GtkWidget* base, GdkEventMotion* event); static gboolean handle_real_draw (GtkWidget* base, cairo_t* cr); static void handle_finalize (GObject * obj); static gpointer _g_object_ref0 (gpointer self) { return self ? g_object_ref (self) : NULL; } Handle* handle_construct (GType object_type) { Handle * self = NULL; GdkEventMask mask = 0; GtkCssProvider* css_provider = NULL; GtkCssProvider* _tmp0_; GtkStyleContext* context = NULL; GtkStyleContext* _tmp3_; GtkStyleContext* _tmp4_; GError * _inner_error_ = NULL; self = (Handle*) g_object_new (object_type, "name", "IBusHandle", NULL); gtk_widget_set_size_request ((GtkWidget*) self, 6, -1); mask = ((GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK) | GDK_BUTTON_RELEASE_MASK) | GDK_BUTTON1_MOTION_MASK; gtk_widget_set_events ((GtkWidget*) self, (gint) mask); self->priv->m_move_begined = FALSE; _tmp0_ = gtk_css_provider_new (); css_provider = _tmp0_; { gtk_css_provider_load_from_data (css_provider, "#IBusHandle { background-color: gray }", (gssize) -1, &_inner_error_); if (G_UNLIKELY (_inner_error_ != NULL)) { goto __catch2_g_error; } } goto __finally2; __catch2_g_error: { GError* _error_ = NULL; GError* _tmp1_; const gchar* _tmp2_; _error_ = _inner_error_; _inner_error_ = NULL; _tmp1_ = _error_; _tmp2_ = _tmp1_->message; g_warning ("handle.vala:53: Parse error in Handle: %s", _tmp2_); _g_error_free0 (_error_); } __finally2: if (G_UNLIKELY (_inner_error_ != NULL)) { _g_object_unref0 (css_provider); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code); g_clear_error (&_inner_error_); return NULL; } _tmp3_ = gtk_widget_get_style_context ((GtkWidget*) self); _tmp4_ = _g_object_ref0 (_tmp3_); context = _tmp4_; gtk_style_context_add_provider (context, (GtkStyleProvider*) css_provider, (guint) GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); _g_object_unref0 (context); _g_object_unref0 (css_provider); return self; } Handle* handle_new (void) { return handle_construct (TYPE_HANDLE); } static void handle_real_realize (GtkWidget* base) { Handle * self; self = (Handle*) base; GTK_WIDGET_CLASS (handle_parent_class)->realize ((GtkWidget*) G_TYPE_CHECK_INSTANCE_CAST (self, gtk_event_box_get_type (), GtkEventBox)); } static gboolean handle_real_button_press_event (GtkWidget* base, GdkEventButton* event) { Handle * self; gboolean result = FALSE; guint _tmp0_; GdkRectangle _tmp1_ = {0}; GdkRectangle _tmp2_; gint x = 0; gint y = 0; GtkWindow* toplevel = NULL; GtkWidget* _tmp99_; GtkWindow* _tmp100_; GtkWindow* _tmp101_; gint _tmp102_ = 0; gint _tmp103_ = 0; gdouble _tmp104_; gint _tmp105_; gdouble _tmp106_; gint _tmp107_; self = (Handle*) base; g_return_val_if_fail (event != NULL, FALSE); _tmp0_ = event->button; if (_tmp0_ != ((guint) 1)) { result = FALSE; return result; } memset (&_tmp1_, 0, sizeof (GdkRectangle)); _tmp1_.x = 0; _tmp1_.y = 0; _tmp1_.width = G_MAXINT; _tmp1_.height = G_MAXINT; self->priv->m_workarea = _tmp1_; _tmp2_ = self->priv->m_workarea; { gboolean _tmp3_ = FALSE; _tmp3_ = TRUE; while (TRUE) { GdkWindow* root = NULL; GdkWindow* _tmp4_; GdkWindow* _tmp5_; GdkAtom property = 0U; GdkAtom type = 0U; GdkAtom actual_type = 0U; gint format = 0; guchar* data = NULL; gint data_length1 = 0; gint _data_size_ = 0; gboolean _result_ = FALSE; GdkWindow* _tmp6_; GdkAtom _tmp7_; GdkAtom _tmp8_; GdkAtom _tmp9_ = 0U; gint _tmp10_ = 0; guint8* _tmp11_ = NULL; gint _tmp12_; gboolean _tmp13_; gboolean _tmp14_ = FALSE; gboolean _tmp15_ = FALSE; gboolean _tmp16_ = FALSE; gboolean _tmp17_; gint index = 0; guchar* _tmp22_; gint _tmp22__length1; guchar _tmp23_; guchar* _tmp24_; gint _tmp24__length1; guchar _tmp25_; guchar* _tmp26_; gint _tmp26__length1; guchar _tmp27_; guchar* _tmp28_; gint _tmp28__length1; guchar _tmp29_; GdkWindow* _tmp30_; GdkAtom _tmp31_; GdkAtom _tmp32_; GdkAtom _tmp33_ = 0U; gint _tmp34_ = 0; guint8* _tmp35_ = NULL; gint _tmp36_; gboolean _tmp37_; gboolean _tmp38_ = FALSE; gboolean _tmp39_ = FALSE; gboolean _tmp40_ = FALSE; gboolean _tmp41_; gint i = 0; gint _tmp47_; guchar* _tmp48_; gint _tmp48__length1; gint _tmp49_; guchar _tmp50_; guchar* _tmp51_; gint _tmp51__length1; gint _tmp52_; guchar _tmp53_; guchar* _tmp54_; gint _tmp54__length1; gint _tmp55_; guchar _tmp56_; guchar* _tmp57_; gint _tmp57__length1; gint _tmp58_; guchar _tmp59_; gint _tmp60_; guchar* _tmp61_; gint _tmp61__length1; gint _tmp62_; guchar _tmp63_; guchar* _tmp64_; gint _tmp64__length1; gint _tmp65_; guchar _tmp66_; guchar* _tmp67_; gint _tmp67__length1; gint _tmp68_; guchar _tmp69_; guchar* _tmp70_; gint _tmp70__length1; gint _tmp71_; guchar _tmp72_; gint _tmp73_; guchar* _tmp74_; gint _tmp74__length1; gint _tmp75_; guchar _tmp76_; guchar* _tmp77_; gint _tmp77__length1; gint _tmp78_; guchar _tmp79_; guchar* _tmp80_; gint _tmp80__length1; gint _tmp81_; guchar _tmp82_; guchar* _tmp83_; gint _tmp83__length1; gint _tmp84_; guchar _tmp85_; gint _tmp86_; guchar* _tmp87_; gint _tmp87__length1; gint _tmp88_; guchar _tmp89_; guchar* _tmp90_; gint _tmp90__length1; gint _tmp91_; guchar _tmp92_; guchar* _tmp93_; gint _tmp93__length1; gint _tmp94_; guchar _tmp95_; guchar* _tmp96_; gint _tmp96__length1; gint _tmp97_; guchar _tmp98_; if (!_tmp3_) { if (!FALSE) { break; } } _tmp3_ = FALSE; _tmp4_ = gdk_get_default_root_window (); _tmp5_ = _g_object_ref0 (_tmp4_); root = _tmp5_; property = gdk_atom_intern ("_NET_CURRENT_DESKTOP", FALSE); type = gdk_atom_intern ("CARDINAL", FALSE); _tmp6_ = root; _tmp7_ = property; _tmp8_ = type; _tmp13_ = gdk_property_get (_tmp6_, _tmp7_, _tmp8_, (gulong) 0, (gulong) G_MAXLONG, 0, &_tmp9_, &_tmp10_, &_tmp12_, &_tmp11_); actual_type = _tmp9_; format = _tmp10_; data = (g_free (data), NULL); data = _tmp11_; data_length1 = _tmp12_; _data_size_ = data_length1; _result_ = _tmp13_; _tmp17_ = _result_; if (!_tmp17_) { _tmp16_ = TRUE; } else { GdkAtom _tmp18_; GdkAtom _tmp19_; _tmp18_ = actual_type; _tmp19_ = type; _tmp16_ = _tmp18_ != _tmp19_; } if (_tmp16_) { _tmp15_ = TRUE; } else { gint _tmp20_; _tmp20_ = format; _tmp15_ = _tmp20_ != 32; } if (_tmp15_) { _tmp14_ = TRUE; } else { guchar* _tmp21_; gint _tmp21__length1; _tmp21_ = data; _tmp21__length1 = data_length1; _tmp14_ = _tmp21__length1 != 4; } if (_tmp14_) { data = (g_free (data), NULL); _g_object_unref0 (root); break; } _tmp22_ = data; _tmp22__length1 = data_length1; _tmp23_ = _tmp22_[0]; _tmp24_ = data; _tmp24__length1 = data_length1; _tmp25_ = _tmp24_[1]; _tmp26_ = data; _tmp26__length1 = data_length1; _tmp27_ = _tmp26_[2]; _tmp28_ = data; _tmp28__length1 = data_length1; _tmp29_ = _tmp28_[3]; index = (gint) (((_tmp23_ | (_tmp25_ << 8)) | (_tmp27_ << 16)) | (_tmp29_ << 24)); property = gdk_atom_intern ("_NET_WORKAREA", FALSE); type = gdk_atom_intern ("CARDINAL", FALSE); _tmp30_ = root; _tmp31_ = property; _tmp32_ = type; _tmp37_ = gdk_property_get (_tmp30_, _tmp31_, _tmp32_, (gulong) 0, (gulong) G_MAXLONG, 0, &_tmp33_, &_tmp34_, &_tmp36_, &_tmp35_); actual_type = _tmp33_; format = _tmp34_; data = (g_free (data), NULL); data = _tmp35_; data_length1 = _tmp36_; _data_size_ = data_length1; _result_ = _tmp37_; _tmp41_ = _result_; if (!_tmp41_) { _tmp40_ = TRUE; } else { GdkAtom _tmp42_; GdkAtom _tmp43_; _tmp42_ = actual_type; _tmp43_ = type; _tmp40_ = _tmp42_ != _tmp43_; } if (_tmp40_) { _tmp39_ = TRUE; } else { gint _tmp44_; _tmp44_ = format; _tmp39_ = _tmp44_ != 32; } if (_tmp39_) { _tmp38_ = TRUE; } else { guchar* _tmp45_; gint _tmp45__length1; gint _tmp46_; _tmp45_ = data; _tmp45__length1 = data_length1; _tmp46_ = index; _tmp38_ = _tmp45__length1 < ((_tmp46_ + 1) * 16); } if (_tmp38_) { data = (g_free (data), NULL); _g_object_unref0 (root); break; } _tmp47_ = index; i = (_tmp47_ * 4) * 4; _tmp48_ = data; _tmp48__length1 = data_length1; _tmp49_ = i; _tmp50_ = _tmp48_[_tmp49_]; _tmp51_ = data; _tmp51__length1 = data_length1; _tmp52_ = i; _tmp53_ = _tmp51_[_tmp52_ + 1]; _tmp54_ = data; _tmp54__length1 = data_length1; _tmp55_ = i; _tmp56_ = _tmp54_[_tmp55_ + 2]; _tmp57_ = data; _tmp57__length1 = data_length1; _tmp58_ = i; _tmp59_ = _tmp57_[_tmp58_ + 3]; self->priv->m_workarea.x = (gint) (((_tmp50_ | (_tmp53_ << 8)) | (_tmp56_ << 16)) | (_tmp59_ << 24)); _tmp60_ = i; i = _tmp60_ + 4; _tmp61_ = data; _tmp61__length1 = data_length1; _tmp62_ = i; _tmp63_ = _tmp61_[_tmp62_]; _tmp64_ = data; _tmp64__length1 = data_length1; _tmp65_ = i; _tmp66_ = _tmp64_[_tmp65_ + 1]; _tmp67_ = data; _tmp67__length1 = data_length1; _tmp68_ = i; _tmp69_ = _tmp67_[_tmp68_ + 2]; _tmp70_ = data; _tmp70__length1 = data_length1; _tmp71_ = i; _tmp72_ = _tmp70_[_tmp71_ + 3]; self->priv->m_workarea.y = (gint) (((_tmp63_ | (_tmp66_ << 8)) | (_tmp69_ << 16)) | (_tmp72_ << 24)); _tmp73_ = i; i = _tmp73_ + 4; _tmp74_ = data; _tmp74__length1 = data_length1; _tmp75_ = i; _tmp76_ = _tmp74_[_tmp75_]; _tmp77_ = data; _tmp77__length1 = data_length1; _tmp78_ = i; _tmp79_ = _tmp77_[_tmp78_ + 1]; _tmp80_ = data; _tmp80__length1 = data_length1; _tmp81_ = i; _tmp82_ = _tmp80_[_tmp81_ + 2]; _tmp83_ = data; _tmp83__length1 = data_length1; _tmp84_ = i; _tmp85_ = _tmp83_[_tmp84_ + 3]; self->priv->m_workarea.width = (gint) (((_tmp76_ | (_tmp79_ << 8)) | (_tmp82_ << 16)) | (_tmp85_ << 24)); _tmp86_ = i; i = _tmp86_ + 4; _tmp87_ = data; _tmp87__length1 = data_length1; _tmp88_ = i; _tmp89_ = _tmp87_[_tmp88_]; _tmp90_ = data; _tmp90__length1 = data_length1; _tmp91_ = i; _tmp92_ = _tmp90_[_tmp91_ + 1]; _tmp93_ = data; _tmp93__length1 = data_length1; _tmp94_ = i; _tmp95_ = _tmp93_[_tmp94_ + 2]; _tmp96_ = data; _tmp96__length1 = data_length1; _tmp97_ = i; _tmp98_ = _tmp96_[_tmp97_ + 3]; self->priv->m_workarea.height = (gint) (((_tmp89_ | (_tmp92_ << 8)) | (_tmp95_ << 16)) | (_tmp98_ << 24)); data = (g_free (data), NULL); _g_object_unref0 (root); } } self->priv->m_move_begined = TRUE; _tmp99_ = gtk_widget_get_toplevel ((GtkWidget*) self); _tmp100_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp99_, gtk_window_get_type (), GtkWindow)); toplevel = _tmp100_; _tmp101_ = toplevel; gtk_window_get_position (_tmp101_, &_tmp102_, &_tmp103_); x = _tmp102_; y = _tmp103_; _tmp104_ = event->x_root; _tmp105_ = x; self->priv->m_press_pos.x = ((gint) _tmp104_) - _tmp105_; _tmp106_ = event->y_root; _tmp107_ = y; self->priv->m_press_pos.y = ((gint) _tmp106_) - _tmp107_; g_signal_emit (self, handle_signals[HANDLE_MOVE_BEGIN_SIGNAL], 0); result = TRUE; _g_object_unref0 (toplevel); return result; } static gboolean handle_real_button_release_event (GtkWidget* base, GdkEventButton* event) { Handle * self; gboolean result = FALSE; guint _tmp0_; GdkWindow* _tmp1_; GdkDisplay* _tmp2_; GdkCursor* _tmp3_; GdkCursor* _tmp4_; self = (Handle*) base; g_return_val_if_fail (event != NULL, FALSE); _tmp0_ = event->button; if (_tmp0_ != ((guint) 1)) { result = FALSE; return result; } self->priv->m_move_begined = FALSE; self->priv->m_press_pos.x = 0; self->priv->m_press_pos.y = 0; _tmp1_ = gtk_widget_get_window ((GtkWidget*) self); _tmp2_ = gdk_display_get_default (); _tmp3_ = gdk_cursor_new_for_display (_tmp2_, GDK_FLEUR); _tmp4_ = _tmp3_; gdk_window_set_cursor (_tmp1_, _tmp4_); _g_object_unref0 (_tmp4_); g_signal_emit (self, handle_signals[HANDLE_MOVE_END_SIGNAL], 0); result = TRUE; return result; } static gboolean handle_real_motion_notify_event (GtkWidget* base, GdkEventMotion* event) { Handle * self; gboolean result = FALSE; gboolean _tmp0_; GtkWindow* toplevel = NULL; GtkWidget* _tmp1_; GtkWindow* _tmp2_; gint x = 0; gdouble _tmp3_; GdkPoint _tmp4_; gint _tmp5_; gint y = 0; gdouble _tmp6_; GdkPoint _tmp7_; gint _tmp8_; gboolean _tmp9_ = FALSE; gint _tmp10_; GdkRectangle _tmp11_; gint _tmp12_; gboolean _tmp18_ = FALSE; gint _tmp19_; GdkRectangle _tmp20_; gint _tmp21_; gint w = 0; gint h = 0; GtkWindow* _tmp27_; gint _tmp28_ = 0; gint _tmp29_ = 0; gboolean _tmp30_ = FALSE; gint _tmp31_; gint _tmp32_; GdkRectangle _tmp33_; gint _tmp34_; GdkRectangle _tmp35_; gint _tmp36_; gboolean _tmp48_ = FALSE; gint _tmp49_; gint _tmp50_; GdkRectangle _tmp51_; gint _tmp52_; GdkRectangle _tmp53_; gint _tmp54_; GtkWindow* _tmp66_; gint _tmp67_; gint _tmp68_; self = (Handle*) base; g_return_val_if_fail (event != NULL, FALSE); _tmp0_ = self->priv->m_move_begined; if (!_tmp0_) { result = FALSE; return result; } _tmp1_ = gtk_widget_get_toplevel ((GtkWidget*) self); _tmp2_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp1_, gtk_window_get_type (), GtkWindow)); toplevel = _tmp2_; _tmp3_ = event->x_root; _tmp4_ = self->priv->m_press_pos; _tmp5_ = _tmp4_.x; x = (gint) (_tmp3_ - _tmp5_); _tmp6_ = event->y_root; _tmp7_ = self->priv->m_press_pos; _tmp8_ = _tmp7_.y; y = (gint) (_tmp6_ - _tmp8_); _tmp10_ = x; _tmp11_ = self->priv->m_workarea; _tmp12_ = _tmp11_.x; if (_tmp10_ < _tmp12_) { gint _tmp13_; GdkRectangle _tmp14_; gint _tmp15_; _tmp13_ = x; _tmp14_ = self->priv->m_workarea; _tmp15_ = _tmp14_.x; _tmp9_ = _tmp13_ > (_tmp15_ - 16); } else { _tmp9_ = FALSE; } if (_tmp9_) { GdkRectangle _tmp16_; gint _tmp17_; _tmp16_ = self->priv->m_workarea; _tmp17_ = _tmp16_.x; x = _tmp17_; } _tmp19_ = y; _tmp20_ = self->priv->m_workarea; _tmp21_ = _tmp20_.y; if (_tmp19_ < _tmp21_) { gint _tmp22_; GdkRectangle _tmp23_; gint _tmp24_; _tmp22_ = y; _tmp23_ = self->priv->m_workarea; _tmp24_ = _tmp23_.y; _tmp18_ = _tmp22_ > (_tmp24_ - 16); } else { _tmp18_ = FALSE; } if (_tmp18_) { GdkRectangle _tmp25_; gint _tmp26_; _tmp25_ = self->priv->m_workarea; _tmp26_ = _tmp25_.y; y = _tmp26_; } _tmp27_ = toplevel; gtk_window_get_size (_tmp27_, &_tmp28_, &_tmp29_); w = _tmp28_; h = _tmp29_; _tmp31_ = x; _tmp32_ = w; _tmp33_ = self->priv->m_workarea; _tmp34_ = _tmp33_.x; _tmp35_ = self->priv->m_workarea; _tmp36_ = _tmp35_.width; if ((_tmp31_ + _tmp32_) > (_tmp34_ + _tmp36_)) { gint _tmp37_; gint _tmp38_; GdkRectangle _tmp39_; gint _tmp40_; GdkRectangle _tmp41_; gint _tmp42_; _tmp37_ = x; _tmp38_ = w; _tmp39_ = self->priv->m_workarea; _tmp40_ = _tmp39_.x; _tmp41_ = self->priv->m_workarea; _tmp42_ = _tmp41_.width; _tmp30_ = (_tmp37_ + _tmp38_) < ((_tmp40_ + _tmp42_) + 16); } else { _tmp30_ = FALSE; } if (_tmp30_) { GdkRectangle _tmp43_; gint _tmp44_; GdkRectangle _tmp45_; gint _tmp46_; gint _tmp47_; _tmp43_ = self->priv->m_workarea; _tmp44_ = _tmp43_.x; _tmp45_ = self->priv->m_workarea; _tmp46_ = _tmp45_.width; _tmp47_ = w; x = (_tmp44_ + _tmp46_) - _tmp47_; } _tmp49_ = y; _tmp50_ = h; _tmp51_ = self->priv->m_workarea; _tmp52_ = _tmp51_.y; _tmp53_ = self->priv->m_workarea; _tmp54_ = _tmp53_.height; if ((_tmp49_ + _tmp50_) > (_tmp52_ + _tmp54_)) { gint _tmp55_; gint _tmp56_; GdkRectangle _tmp57_; gint _tmp58_; GdkRectangle _tmp59_; gint _tmp60_; _tmp55_ = y; _tmp56_ = h; _tmp57_ = self->priv->m_workarea; _tmp58_ = _tmp57_.y; _tmp59_ = self->priv->m_workarea; _tmp60_ = _tmp59_.height; _tmp48_ = (_tmp55_ + _tmp56_) < ((_tmp58_ + _tmp60_) + 16); } else { _tmp48_ = FALSE; } if (_tmp48_) { GdkRectangle _tmp61_; gint _tmp62_; GdkRectangle _tmp63_; gint _tmp64_; gint _tmp65_; _tmp61_ = self->priv->m_workarea; _tmp62_ = _tmp61_.y; _tmp63_ = self->priv->m_workarea; _tmp64_ = _tmp63_.height; _tmp65_ = w; y = (_tmp62_ + _tmp64_) - _tmp65_; } _tmp66_ = toplevel; _tmp67_ = x; _tmp68_ = y; gtk_window_move (_tmp66_, _tmp67_, _tmp68_); result = TRUE; _g_object_unref0 (toplevel); return result; } static gboolean handle_real_draw (GtkWidget* base, cairo_t* cr) { Handle * self; gboolean result = FALSE; GdkWindow* _tmp0_; self = (Handle*) base; g_return_val_if_fail (cr != NULL, FALSE); _tmp0_ = gtk_widget_get_window ((GtkWidget*) self); if (gtk_cairo_should_draw_window (cr, _tmp0_)) { GtkStyleContext* context = NULL; GtkStyleContext* _tmp1_; GtkStyleContext* _tmp2_; GtkAllocation allocation = {0}; GtkAllocation _tmp3_ = {0}; GtkStyleContext* _tmp4_; GtkAllocation _tmp5_; gint _tmp6_; GtkAllocation _tmp7_; gint _tmp8_; GtkAllocation _tmp9_; gint _tmp10_; GtkAllocation _tmp11_; gint _tmp12_; _tmp1_ = gtk_widget_get_style_context ((GtkWidget*) self); _tmp2_ = _g_object_ref0 (_tmp1_); context = _tmp2_; gtk_widget_get_allocation ((GtkWidget*) self, &_tmp3_); allocation = _tmp3_; _tmp4_ = context; _tmp5_ = allocation; _tmp6_ = _tmp5_.x; _tmp7_ = allocation; _tmp8_ = _tmp7_.y; _tmp9_ = allocation; _tmp10_ = _tmp9_.height; _tmp11_ = allocation; _tmp12_ = _tmp11_.width; gtk_render_handle (_tmp4_, cr, (gdouble) _tmp6_, (gdouble) (_tmp8_ + ((_tmp10_ - 40) / 2)), (gdouble) _tmp12_, 40.0); _g_object_unref0 (context); } result = FALSE; return result; } static void handle_class_init (HandleClass * klass) { handle_parent_class = g_type_class_peek_parent (klass); g_type_class_add_private (klass, sizeof (HandlePrivate)); ((GtkWidgetClass *) klass)->realize = (void (*) (GtkWidget *)) handle_real_realize; ((GtkWidgetClass *) klass)->button_press_event = (gboolean (*) (GtkWidget *, GdkEventButton*)) handle_real_button_press_event; ((GtkWidgetClass *) klass)->button_release_event = (gboolean (*) (GtkWidget *, GdkEventButton*)) handle_real_button_release_event; ((GtkWidgetClass *) klass)->motion_notify_event = (gboolean (*) (GtkWidget *, GdkEventMotion*)) handle_real_motion_notify_event; ((GtkWidgetClass *) klass)->draw = (gboolean (*) (GtkWidget *, cairo_t*)) handle_real_draw; G_OBJECT_CLASS (klass)->finalize = handle_finalize; handle_signals[HANDLE_MOVE_BEGIN_SIGNAL] = g_signal_new ("move-begin", TYPE_HANDLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); handle_signals[HANDLE_MOVE_END_SIGNAL] = g_signal_new ("move-end", TYPE_HANDLE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); } static void handle_instance_init (Handle * self) { self->priv = HANDLE_GET_PRIVATE (self); } static void handle_finalize (GObject * obj) { Handle * self; self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_HANDLE, Handle); G_OBJECT_CLASS (handle_parent_class)->finalize (obj); } GType handle_get_type (void) { static volatile gsize handle_type_id__volatile = 0; if (g_once_init_enter (&handle_type_id__volatile)) { static const GTypeInfo g_define_type_info = { sizeof (HandleClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) handle_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Handle), 0, (GInstanceInitFunc) handle_instance_init, NULL }; GType handle_type_id; handle_type_id = g_type_register_static (gtk_event_box_get_type (), "Handle", &g_define_type_info, 0); g_once_init_leave (&handle_type_id__volatile, handle_type_id); } return handle_type_id__volatile; }