1 /* moonshot-idcard-widget.c generated by valac 0.10.4, the Vala compiler
2 * generated from moonshot-idcard-widget.vala, do not modify */
6 #include <glib-object.h>
13 #include <pango/pango.h>
14 #include <glib/gi18n-lib.h>
18 #define TYPE_ID_CARD_WIDGET (id_card_widget_get_type ())
19 #define ID_CARD_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD_WIDGET, IdCardWidget))
20 #define ID_CARD_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD_WIDGET, IdCardWidgetClass))
21 #define IS_ID_CARD_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD_WIDGET))
22 #define IS_ID_CARD_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD_WIDGET))
23 #define ID_CARD_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD_WIDGET, IdCardWidgetClass))
25 typedef struct _IdCardWidget IdCardWidget;
26 typedef struct _IdCardWidgetClass IdCardWidgetClass;
27 typedef struct _IdCardWidgetPrivate IdCardWidgetPrivate;
29 #define TYPE_ID_CARD (id_card_get_type ())
30 #define ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD, IdCard))
31 #define ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD, IdCardClass))
32 #define IS_ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD))
33 #define IS_ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD))
34 #define ID_CARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD, IdCardClass))
36 typedef struct _IdCard IdCard;
37 typedef struct _IdCardClass IdCardClass;
38 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
39 #define _g_free0(var) (var = (g_free (var), NULL))
41 struct _IdCardWidget {
42 GtkBox parent_instance;
43 IdCardWidgetPrivate * priv;
46 struct _IdCardWidgetClass {
47 GtkBoxClass parent_class;
50 struct _IdCardWidgetPrivate {
54 GtkButton* _delete_button;
55 GtkButton* _details_button;
56 GtkButton* _send_button;
57 GtkHButtonBox* hbutton_box;
58 GtkEventBox* event_box;
63 static gpointer id_card_widget_parent_class = NULL;
65 GType id_card_widget_get_type (void) G_GNUC_CONST;
66 GType id_card_get_type (void) G_GNUC_CONST;
67 #define ID_CARD_WIDGET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ID_CARD_WIDGET, IdCardWidgetPrivate))
69 ID_CARD_WIDGET_DUMMY_PROPERTY,
70 ID_CARD_WIDGET_ID_CARD,
71 ID_CARD_WIDGET_DELETE_BUTTON,
72 ID_CARD_WIDGET_DETAILS_BUTTON,
73 ID_CARD_WIDGET_SEND_BUTTON
75 void id_card_widget_collapse (IdCardWidget* self);
76 static void id_card_widget_set_idcard_color (IdCardWidget* self);
77 static gboolean id_card_widget_button_press_cb (IdCardWidget* self);
78 static void id_card_widget_delete_button_cb (IdCardWidget* self);
79 static void id_card_widget_details_button_cb (IdCardWidget* self);
80 static void id_card_widget_send_button_cb (IdCardWidget* self);
81 void id_card_widget_update_id_card_label (IdCardWidget* self);
82 IdCard* id_card_widget_get_id_card (IdCardWidget* self);
83 const char* id_card_get_display_name (IdCard* self);
84 char** id_card_get_services (IdCard* self, int* result_length1);
85 IdCardWidget* id_card_widget_new (IdCard* id_card);
86 IdCardWidget* id_card_widget_construct (GType object_type, IdCard* id_card);
87 void id_card_widget_set_id_card (IdCardWidget* self, IdCard* value);
88 static void id_card_widget_set_delete_button (IdCardWidget* self, GtkButton* value);
89 static void id_card_widget_set_details_button (IdCardWidget* self, GtkButton* value);
90 static void id_card_widget_set_send_button (IdCardWidget* self, GtkButton* value);
91 static void id_card_widget_set_atk_name_description (IdCardWidget* self, GtkWidget* widget, const char* name, const char* description);
92 GtkButton* id_card_widget_get_delete_button (IdCardWidget* self);
93 GtkButton* id_card_widget_get_details_button (IdCardWidget* self);
94 GtkButton* id_card_widget_get_send_button (IdCardWidget* self);
95 static void _id_card_widget_delete_button_cb_gtk_button_clicked (GtkButton* _sender, gpointer self);
96 static void _id_card_widget_details_button_cb_gtk_button_clicked (GtkButton* _sender, gpointer self);
97 static void _id_card_widget_send_button_cb_gtk_button_clicked (GtkButton* _sender, gpointer self);
98 static gboolean _id_card_widget_button_press_cb_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
99 static void id_card_widget_finalize (GObject* obj);
100 static void id_card_widget_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
101 static void id_card_widget_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
105 void id_card_widget_collapse (IdCardWidget* self) {
106 g_return_if_fail (self != NULL);
107 gtk_widget_set_visible ((GtkWidget*) self->priv->hbutton_box, FALSE);
108 id_card_widget_set_idcard_color (self);
112 static gboolean id_card_widget_button_press_cb (IdCardWidget* self) {
113 gboolean result = FALSE;
114 g_return_val_if_fail (self != NULL, FALSE);
115 gtk_widget_set_visible ((GtkWidget*) self->priv->hbutton_box, !gtk_widget_get_visible ((GtkWidget*) self->priv->hbutton_box));
116 id_card_widget_set_idcard_color (self);
117 if (gtk_widget_get_visible ((GtkWidget*) self->priv->hbutton_box) == TRUE) {
118 g_signal_emit_by_name (self, "expanded");
125 static void id_card_widget_delete_button_cb (IdCardWidget* self) {
126 g_return_if_fail (self != NULL);
127 g_signal_emit_by_name (self, "remove-id");
131 static void id_card_widget_details_button_cb (IdCardWidget* self) {
132 g_return_if_fail (self != NULL);
133 g_signal_emit_by_name (self, "details-id");
137 static void id_card_widget_send_button_cb (IdCardWidget* self) {
138 g_return_if_fail (self != NULL);
139 g_signal_emit_by_name (self, "send-id");
143 static void id_card_widget_set_idcard_color (IdCardWidget* self) {
144 GdkColor color = {0};
146 g_return_if_fail (self != NULL);
147 memset (&color, 0, sizeof (GdkColor));
148 if (gtk_widget_get_visible ((GtkWidget*) self->priv->hbutton_box) == FALSE) {
149 color.red = (guint16) 65535;
150 color.green = (guint16) 65535;
151 color.blue = (guint16) 65535;
153 color.red = (guint16) 33333;
154 color.green = (guint16) 33333;
155 color.blue = (guint16) 60000;
157 state = gtk_widget_get_state ((GtkWidget*) self);
158 gtk_widget_modify_bg ((GtkWidget*) self->priv->event_box, state, &color);
162 void id_card_widget_update_id_card_label (IdCardWidget* self) {
167 g_return_if_fail (self != NULL);
168 services_text = g_strdup ("");
169 display_name = g_markup_printf_escaped ("<b>%s</b>", id_card_get_display_name (self->priv->_id_card));
188 service = g_strdup (id_card_get_services (self->priv->_id_card, &_tmp2_)[i]);
189 if (i == (_tmp3_ - 1)) {
192 services_text = (_tmp5_ = g_strconcat (services_text, _tmp4_ = g_markup_printf_escaped ("<i>%s</i>", service), NULL), _g_free0 (services_text), _tmp5_);
197 services_text = (_tmp7_ = g_strconcat (services_text, _tmp6_ = g_markup_printf_escaped ("<i>%s, </i>", service), NULL), _g_free0 (services_text), _tmp7_);
204 gtk_label_set_markup (self->priv->label, _tmp9_ = g_strconcat (_tmp8_ = g_strconcat (display_name, "\n", NULL), services_text, NULL));
207 _g_free0 (display_name);
208 _g_free0 (services_text);
212 static void _id_card_widget_delete_button_cb_gtk_button_clicked (GtkButton* _sender, gpointer self) {
213 id_card_widget_delete_button_cb (self);
217 static void _id_card_widget_details_button_cb_gtk_button_clicked (GtkButton* _sender, gpointer self) {
218 id_card_widget_details_button_cb (self);
222 static void _id_card_widget_send_button_cb_gtk_button_clicked (GtkButton* _sender, gpointer self) {
223 id_card_widget_send_button_cb (self);
227 static gboolean _id_card_widget_button_press_cb_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
229 result = id_card_widget_button_press_cb (self);
234 IdCardWidget* id_card_widget_construct (GType object_type, IdCard* id_card) {
242 GtkHButtonBox* _tmp5_;
245 g_return_val_if_fail (id_card != NULL, NULL);
246 self = g_object_newv (object_type, 0, NULL);
247 id_card_widget_set_id_card (self, id_card);
248 image = g_object_ref_sink ((GtkImage*) gtk_image_new_from_pixbuf ((GdkPixbuf*) g_object_get_data ((GObject*) id_card, "pixbuf")));
249 self->priv->label = (_tmp0_ = g_object_ref_sink ((GtkLabel*) gtk_label_new (NULL)), _g_object_unref0 (self->priv->label), _tmp0_);
250 gtk_misc_set_alignment ((GtkMisc*) self->priv->label, (float) 0, (float) 0.5);
251 gtk_label_set_ellipsize (self->priv->label, PANGO_ELLIPSIZE_END);
252 id_card_widget_update_id_card_label (self);
253 self->priv->table = (_tmp1_ = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 6)), _g_object_unref0 (self->priv->table), _tmp1_);
254 gtk_box_pack_start ((GtkBox*) self->priv->table, (GtkWidget*) image, FALSE, FALSE, (guint) 0);
255 gtk_box_pack_start ((GtkBox*) self->priv->table, (GtkWidget*) self->priv->label, TRUE, TRUE, (guint) 0);
256 id_card_widget_set_delete_button (self, _tmp2_ = g_object_ref_sink ((GtkButton*) gtk_button_new_with_label (_ ("Delete"))));
257 _g_object_unref0 (_tmp2_);
258 id_card_widget_set_details_button (self, _tmp3_ = g_object_ref_sink ((GtkButton*) gtk_button_new_with_label (_ ("View details"))));
259 _g_object_unref0 (_tmp3_);
260 id_card_widget_set_send_button (self, _tmp4_ = g_object_ref_sink ((GtkButton*) gtk_button_new_with_label (_ ("Send"))));
261 _g_object_unref0 (_tmp4_);
262 id_card_widget_set_atk_name_description (self, (GtkWidget*) self->priv->_delete_button, _ ("Delete"), _ ("Delete this ID Card"));
263 id_card_widget_set_atk_name_description (self, (GtkWidget*) self->priv->_details_button, _ ("Details"), _ ("View the details of this ID Card"));
264 id_card_widget_set_atk_name_description (self, (GtkWidget*) self->priv->_send_button, _ ("Send"), _ ("Send this ID Card"));
265 self->priv->hbutton_box = (_tmp5_ = g_object_ref_sink ((GtkHButtonBox*) gtk_hbutton_box_new ()), _g_object_unref0 (self->priv->hbutton_box), _tmp5_);
266 gtk_box_pack_end ((GtkBox*) self->priv->hbutton_box, (GtkWidget*) self->priv->_delete_button, TRUE, TRUE, 0);
267 gtk_box_pack_end ((GtkBox*) self->priv->hbutton_box, (GtkWidget*) self->priv->_details_button, TRUE, TRUE, 0);
268 gtk_box_pack_end ((GtkBox*) self->priv->hbutton_box, (GtkWidget*) self->priv->_send_button, TRUE, TRUE, 0);
269 gtk_widget_set_sensitive ((GtkWidget*) self->priv->_send_button, FALSE);
270 g_signal_connect_object (self->priv->_delete_button, "clicked", (GCallback) _id_card_widget_delete_button_cb_gtk_button_clicked, self, 0);
271 g_signal_connect_object (self->priv->_details_button, "clicked", (GCallback) _id_card_widget_details_button_cb_gtk_button_clicked, self, 0);
272 g_signal_connect_object (self->priv->_send_button, "clicked", (GCallback) _id_card_widget_send_button_cb_gtk_button_clicked, self, 0);
273 self->priv->main_vbox = (_tmp6_ = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 12)), _g_object_unref0 (self->priv->main_vbox), _tmp6_);
274 gtk_box_pack_start ((GtkBox*) self->priv->main_vbox, (GtkWidget*) self->priv->table, TRUE, TRUE, (guint) 0);
275 gtk_box_pack_start ((GtkBox*) self->priv->main_vbox, (GtkWidget*) self->priv->hbutton_box, FALSE, FALSE, (guint) 0);
276 gtk_container_set_border_width ((GtkContainer*) self->priv->main_vbox, (guint) 12);
277 self->priv->event_box = (_tmp7_ = g_object_ref_sink ((GtkEventBox*) gtk_event_box_new ()), _g_object_unref0 (self->priv->event_box), _tmp7_);
278 gtk_container_add ((GtkContainer*) self->priv->event_box, (GtkWidget*) self->priv->main_vbox);
279 g_signal_connect_object ((GtkWidget*) self->priv->event_box, "button-press-event", (GCallback) _id_card_widget_button_press_cb_gtk_widget_button_press_event, self, 0);
280 gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) self->priv->event_box, TRUE, TRUE, 0);
281 gtk_widget_show_all ((GtkWidget*) self);
282 gtk_widget_hide ((GtkWidget*) self->priv->hbutton_box);
283 id_card_widget_set_idcard_color (self);
284 _g_object_unref0 (image);
289 IdCardWidget* id_card_widget_new (IdCard* id_card) {
290 return id_card_widget_construct (TYPE_ID_CARD_WIDGET, id_card);
294 static gpointer _g_object_ref0 (gpointer self) {
295 return self ? g_object_ref (self) : NULL;
299 static void id_card_widget_set_atk_name_description (IdCardWidget* self, GtkWidget* widget, const char* name, const char* description) {
300 AtkObject* atk_widget;
301 g_return_if_fail (self != NULL);
302 g_return_if_fail (widget != NULL);
303 g_return_if_fail (name != NULL);
304 g_return_if_fail (description != NULL);
305 atk_widget = _g_object_ref0 (gtk_widget_get_accessible (widget));
306 atk_object_set_name (atk_widget, name);
307 atk_object_set_description (atk_widget, description);
308 _g_object_unref0 (atk_widget);
312 IdCard* id_card_widget_get_id_card (IdCardWidget* self) {
314 g_return_val_if_fail (self != NULL, NULL);
315 result = self->priv->_id_card;
320 void id_card_widget_set_id_card (IdCardWidget* self, IdCard* value) {
322 g_return_if_fail (self != NULL);
323 self->priv->_id_card = (_tmp0_ = _g_object_ref0 (value), _g_object_unref0 (self->priv->_id_card), _tmp0_);
324 g_object_notify ((GObject *) self, "id-card");
328 GtkButton* id_card_widget_get_delete_button (IdCardWidget* self) {
330 g_return_val_if_fail (self != NULL, NULL);
331 result = self->priv->_delete_button;
336 static void id_card_widget_set_delete_button (IdCardWidget* self, GtkButton* value) {
338 g_return_if_fail (self != NULL);
339 self->priv->_delete_button = (_tmp0_ = _g_object_ref0 (value), _g_object_unref0 (self->priv->_delete_button), _tmp0_);
340 g_object_notify ((GObject *) self, "delete-button");
344 GtkButton* id_card_widget_get_details_button (IdCardWidget* self) {
346 g_return_val_if_fail (self != NULL, NULL);
347 result = self->priv->_details_button;
352 static void id_card_widget_set_details_button (IdCardWidget* self, GtkButton* value) {
354 g_return_if_fail (self != NULL);
355 self->priv->_details_button = (_tmp0_ = _g_object_ref0 (value), _g_object_unref0 (self->priv->_details_button), _tmp0_);
356 g_object_notify ((GObject *) self, "details-button");
360 GtkButton* id_card_widget_get_send_button (IdCardWidget* self) {
362 g_return_val_if_fail (self != NULL, NULL);
363 result = self->priv->_send_button;
368 static void id_card_widget_set_send_button (IdCardWidget* self, GtkButton* value) {
370 g_return_if_fail (self != NULL);
371 self->priv->_send_button = (_tmp0_ = _g_object_ref0 (value), _g_object_unref0 (self->priv->_send_button), _tmp0_);
372 g_object_notify ((GObject *) self, "send-button");
376 static void id_card_widget_class_init (IdCardWidgetClass * klass) {
377 id_card_widget_parent_class = g_type_class_peek_parent (klass);
378 g_type_class_add_private (klass, sizeof (IdCardWidgetPrivate));
379 G_OBJECT_CLASS (klass)->get_property = id_card_widget_get_property;
380 G_OBJECT_CLASS (klass)->set_property = id_card_widget_set_property;
381 G_OBJECT_CLASS (klass)->finalize = id_card_widget_finalize;
382 g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_WIDGET_ID_CARD, g_param_spec_object ("id-card", "id-card", "id-card", TYPE_ID_CARD, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
383 g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_WIDGET_DELETE_BUTTON, g_param_spec_object ("delete-button", "delete-button", "delete-button", GTK_TYPE_BUTTON, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
384 g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_WIDGET_DETAILS_BUTTON, g_param_spec_object ("details-button", "details-button", "details-button", GTK_TYPE_BUTTON, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
385 g_object_class_install_property (G_OBJECT_CLASS (klass), ID_CARD_WIDGET_SEND_BUTTON, g_param_spec_object ("send-button", "send-button", "send-button", GTK_TYPE_BUTTON, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
386 g_signal_new ("expanded", TYPE_ID_CARD_WIDGET, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
387 g_signal_new ("remove_id", TYPE_ID_CARD_WIDGET, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
388 g_signal_new ("details_id", TYPE_ID_CARD_WIDGET, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
389 g_signal_new ("send_id", TYPE_ID_CARD_WIDGET, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
393 static void id_card_widget_instance_init (IdCardWidget * self) {
394 self->priv = ID_CARD_WIDGET_GET_PRIVATE (self);
395 self->priv->_id_card = NULL;
396 self->priv->_delete_button = NULL;
397 self->priv->_details_button = NULL;
398 self->priv->_send_button = NULL;
402 static void id_card_widget_finalize (GObject* obj) {
404 self = ID_CARD_WIDGET (obj);
405 _g_object_unref0 (self->priv->_id_card);
406 _g_object_unref0 (self->priv->main_vbox);
407 _g_object_unref0 (self->priv->table);
408 _g_object_unref0 (self->priv->_delete_button);
409 _g_object_unref0 (self->priv->_details_button);
410 _g_object_unref0 (self->priv->_send_button);
411 _g_object_unref0 (self->priv->hbutton_box);
412 _g_object_unref0 (self->priv->event_box);
413 _g_object_unref0 (self->priv->label);
414 G_OBJECT_CLASS (id_card_widget_parent_class)->finalize (obj);
418 GType id_card_widget_get_type (void) {
419 static volatile gsize id_card_widget_type_id__volatile = 0;
420 if (g_once_init_enter (&id_card_widget_type_id__volatile)) {
421 static const GTypeInfo g_define_type_info = { sizeof (IdCardWidgetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) id_card_widget_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (IdCardWidget), 0, (GInstanceInitFunc) id_card_widget_instance_init, NULL };
422 GType id_card_widget_type_id;
423 id_card_widget_type_id = g_type_register_static (GTK_TYPE_BOX, "IdCardWidget", &g_define_type_info, 0);
424 g_once_init_leave (&id_card_widget_type_id__volatile, id_card_widget_type_id);
426 return id_card_widget_type_id__volatile;
430 static void id_card_widget_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
432 self = ID_CARD_WIDGET (object);
433 switch (property_id) {
434 case ID_CARD_WIDGET_ID_CARD:
435 g_value_set_object (value, id_card_widget_get_id_card (self));
437 case ID_CARD_WIDGET_DELETE_BUTTON:
438 g_value_set_object (value, id_card_widget_get_delete_button (self));
440 case ID_CARD_WIDGET_DETAILS_BUTTON:
441 g_value_set_object (value, id_card_widget_get_details_button (self));
443 case ID_CARD_WIDGET_SEND_BUTTON:
444 g_value_set_object (value, id_card_widget_get_send_button (self));
447 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
453 static void id_card_widget_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
455 self = ID_CARD_WIDGET (object);
456 switch (property_id) {
457 case ID_CARD_WIDGET_ID_CARD:
458 id_card_widget_set_id_card (self, g_value_get_object (value));
460 case ID_CARD_WIDGET_DELETE_BUTTON:
461 id_card_widget_set_delete_button (self, g_value_get_object (value));
463 case ID_CARD_WIDGET_DETAILS_BUTTON:
464 id_card_widget_set_details_button (self, g_value_get_object (value));
466 case ID_CARD_WIDGET_SEND_BUTTON:
467 id_card_widget_set_send_button (self, g_value_get_object (value));
470 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);