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>
11 #include <gdk-pixbuf/gdk-pixdata.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;
62 static gpointer id_card_widget_parent_class = NULL;
64 GType id_card_widget_get_type (void) G_GNUC_CONST;
65 GType id_card_get_type (void) G_GNUC_CONST;
66 #define ID_CARD_WIDGET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_ID_CARD_WIDGET, IdCardWidgetPrivate))
68 ID_CARD_WIDGET_DUMMY_PROPERTY,
69 ID_CARD_WIDGET_ID_CARD,
70 ID_CARD_WIDGET_DELETE_BUTTON,
71 ID_CARD_WIDGET_DETAILS_BUTTON,
72 ID_CARD_WIDGET_SEND_BUTTON
74 void id_card_widget_collapse (IdCardWidget* self);
75 static void id_card_widget_set_idcard_color (IdCardWidget* self);
76 static gboolean id_card_widget_button_press_cb (IdCardWidget* self);
77 static void id_card_widget_delete_button_cb (IdCardWidget* self);
78 static void id_card_widget_details_button_cb (IdCardWidget* self);
79 static void id_card_widget_send_button_cb (IdCardWidget* self);
80 IdCardWidget* id_card_widget_new (IdCard* id_card);
81 IdCardWidget* id_card_widget_construct (GType object_type, IdCard* id_card);
82 void id_card_widget_set_id_card (IdCardWidget* self, IdCard* value);
83 GdkPixbuf* id_card_get_pixbuf (IdCard* self);
84 IdCard* id_card_widget_get_id_card (IdCardWidget* self);
85 const char* id_card_get_issuer (IdCard* self);
86 char** id_card_get_services (IdCard* self, int* result_length1);
87 static void id_card_widget_set_delete_button (IdCardWidget* self, GtkButton* value);
88 static void id_card_widget_set_details_button (IdCardWidget* self, GtkButton* value);
89 static void id_card_widget_set_send_button (IdCardWidget* self, GtkButton* value);
90 static void id_card_widget_set_atk_name_description (IdCardWidget* self, GtkWidget* widget, const char* name, const char* description);
91 GtkButton* id_card_widget_get_delete_button (IdCardWidget* self);
92 GtkButton* id_card_widget_get_details_button (IdCardWidget* self);
93 GtkButton* id_card_widget_get_send_button (IdCardWidget* self);
94 static void _id_card_widget_delete_button_cb_gtk_button_clicked (GtkButton* _sender, gpointer self);
95 static void _id_card_widget_details_button_cb_gtk_button_clicked (GtkButton* _sender, gpointer self);
96 static void _id_card_widget_send_button_cb_gtk_button_clicked (GtkButton* _sender, gpointer self);
97 static gboolean _id_card_widget_button_press_cb_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
98 static void id_card_widget_finalize (GObject* obj);
99 static void id_card_widget_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
100 static void id_card_widget_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
104 void id_card_widget_collapse (IdCardWidget* self) {
105 g_return_if_fail (self != NULL);
106 gtk_widget_set_visible ((GtkWidget*) self->priv->hbutton_box, FALSE);
107 id_card_widget_set_idcard_color (self);
111 static gboolean id_card_widget_button_press_cb (IdCardWidget* self) {
112 gboolean result = FALSE;
113 g_return_val_if_fail (self != NULL, FALSE);
114 gtk_widget_set_visible ((GtkWidget*) self->priv->hbutton_box, !gtk_widget_get_visible ((GtkWidget*) self->priv->hbutton_box));
115 id_card_widget_set_idcard_color (self);
116 if (gtk_widget_get_visible ((GtkWidget*) self->priv->hbutton_box) == TRUE) {
117 g_signal_emit_by_name (self, "expanded");
124 static void id_card_widget_delete_button_cb (IdCardWidget* self) {
125 g_return_if_fail (self != NULL);
126 g_signal_emit_by_name (self, "remove-id");
130 static void id_card_widget_details_button_cb (IdCardWidget* self) {
131 g_return_if_fail (self != NULL);
132 g_signal_emit_by_name (self, "details-id");
136 static void id_card_widget_send_button_cb (IdCardWidget* self) {
137 g_return_if_fail (self != NULL);
138 g_signal_emit_by_name (self, "send-id");
142 static void id_card_widget_set_idcard_color (IdCardWidget* self) {
143 GdkColor color = {0};
145 g_return_if_fail (self != NULL);
146 memset (&color, 0, sizeof (GdkColor));
147 if (gtk_widget_get_visible ((GtkWidget*) self->priv->hbutton_box) == FALSE) {
148 color.red = (guint16) 65535;
149 color.green = (guint16) 65535;
150 color.blue = (guint16) 65535;
152 color.red = (guint16) 33333;
153 color.green = (guint16) 33333;
154 color.blue = (guint16) 60000;
156 state = gtk_widget_get_state ((GtkWidget*) self);
157 gtk_widget_modify_bg ((GtkWidget*) self->priv->event_box, state, &color);
161 static void _id_card_widget_delete_button_cb_gtk_button_clicked (GtkButton* _sender, gpointer self) {
162 id_card_widget_delete_button_cb (self);
166 static void _id_card_widget_details_button_cb_gtk_button_clicked (GtkButton* _sender, gpointer self) {
167 id_card_widget_details_button_cb (self);
171 static void _id_card_widget_send_button_cb_gtk_button_clicked (GtkButton* _sender, gpointer self) {
172 id_card_widget_send_button_cb (self);
176 static gboolean _id_card_widget_button_press_cb_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
178 result = id_card_widget_button_press_cb (self);
183 IdCardWidget* id_card_widget_construct (GType object_type, IdCard* id_card) {
191 GtkLabel* id_data_label;
196 GtkHButtonBox* _tmp9_;
198 GtkEventBox* _tmp11_;
199 g_return_val_if_fail (id_card != NULL, NULL);
200 self = g_object_newv (object_type, 0, NULL);
201 services_text = g_strdup ("");
202 id_card_widget_set_id_card (self, id_card);
203 image = g_object_ref_sink ((GtkImage*) gtk_image_new_from_pixbuf (id_card_get_pixbuf (id_card)));
204 issuer = g_markup_printf_escaped ("<b>%s</b>", id_card_get_issuer (self->priv->_id_card));
207 char** service_collection;
208 int service_collection_length1;
210 service_collection = id_card_get_services (id_card, &_tmp0_);
211 service_collection_length1 = _tmp0_;
212 for (service_it = 0; service_it < _tmp0_; service_it = service_it + 1) {
214 service = g_strdup (service_collection[service_it]);
218 services_text = (_tmp2_ = g_strconcat (services_text, _tmp1_ = g_markup_printf_escaped ("<i>%s, </i>", service), NULL), _g_free0 (services_text), _tmp2_);
224 text = (_tmp4_ = g_strconcat (_tmp3_ = g_strconcat (issuer, "\n", NULL), services_text, NULL), _g_free0 (_tmp3_), _tmp4_);
225 id_data_label = g_object_ref_sink ((GtkLabel*) gtk_label_new (NULL));
226 gtk_label_set_markup (id_data_label, text);
227 gtk_misc_set_alignment ((GtkMisc*) id_data_label, (float) 0, (float) 0.5);
228 self->priv->table = (_tmp5_ = g_object_ref_sink ((GtkTable*) gtk_table_new ((guint) 1, (guint) 2, FALSE)), _g_object_unref0 (self->priv->table), _tmp5_);
229 gtk_table_attach_defaults (self->priv->table, (GtkWidget*) image, (guint) 0, (guint) 1, (guint) 0, (guint) 1);
230 gtk_table_attach_defaults (self->priv->table, (GtkWidget*) id_data_label, (guint) 1, (guint) 2, (guint) 0, (guint) 1);
231 id_card_widget_set_delete_button (self, _tmp6_ = g_object_ref_sink ((GtkButton*) gtk_button_new_with_label (_ ("Delete"))));
232 _g_object_unref0 (_tmp6_);
233 id_card_widget_set_details_button (self, _tmp7_ = g_object_ref_sink ((GtkButton*) gtk_button_new_with_label (_ ("View details"))));
234 _g_object_unref0 (_tmp7_);
235 id_card_widget_set_send_button (self, _tmp8_ = g_object_ref_sink ((GtkButton*) gtk_button_new_with_label (_ ("Send"))));
236 _g_object_unref0 (_tmp8_);
237 id_card_widget_set_atk_name_description (self, (GtkWidget*) self->priv->_delete_button, _ ("Delete"), _ ("Delete this ID Card"));
238 id_card_widget_set_atk_name_description (self, (GtkWidget*) self->priv->_details_button, _ ("Details"), _ ("View the details of this ID Card"));
239 id_card_widget_set_atk_name_description (self, (GtkWidget*) self->priv->_send_button, _ ("Send"), _ ("Send this ID Card"));
240 self->priv->hbutton_box = (_tmp9_ = g_object_ref_sink ((GtkHButtonBox*) gtk_hbutton_box_new ()), _g_object_unref0 (self->priv->hbutton_box), _tmp9_);
241 gtk_box_pack_end ((GtkBox*) self->priv->hbutton_box, (GtkWidget*) self->priv->_delete_button, TRUE, TRUE, 0);
242 gtk_box_pack_end ((GtkBox*) self->priv->hbutton_box, (GtkWidget*) self->priv->_details_button, TRUE, TRUE, 0);
243 gtk_box_pack_end ((GtkBox*) self->priv->hbutton_box, (GtkWidget*) self->priv->_send_button, TRUE, TRUE, 0);
244 g_signal_connect_object (self->priv->_delete_button, "clicked", (GCallback) _id_card_widget_delete_button_cb_gtk_button_clicked, self, 0);
245 g_signal_connect_object (self->priv->_details_button, "clicked", (GCallback) _id_card_widget_details_button_cb_gtk_button_clicked, self, 0);
246 g_signal_connect_object (self->priv->_send_button, "clicked", (GCallback) _id_card_widget_send_button_cb_gtk_button_clicked, self, 0);
247 self->priv->main_vbox = (_tmp10_ = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 12)), _g_object_unref0 (self->priv->main_vbox), _tmp10_);
248 gtk_box_pack_start ((GtkBox*) self->priv->main_vbox, (GtkWidget*) self->priv->table, TRUE, TRUE, (guint) 0);
249 gtk_box_pack_start ((GtkBox*) self->priv->main_vbox, (GtkWidget*) self->priv->hbutton_box, FALSE, FALSE, (guint) 0);
250 gtk_container_set_border_width ((GtkContainer*) self->priv->main_vbox, (guint) 12);
251 self->priv->event_box = (_tmp11_ = g_object_ref_sink ((GtkEventBox*) gtk_event_box_new ()), _g_object_unref0 (self->priv->event_box), _tmp11_);
252 gtk_container_add ((GtkContainer*) self->priv->event_box, (GtkWidget*) self->priv->main_vbox);
253 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);
254 gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) self->priv->event_box, TRUE, TRUE, 0);
255 gtk_widget_show_all ((GtkWidget*) self);
256 gtk_widget_hide ((GtkWidget*) self->priv->hbutton_box);
257 id_card_widget_set_idcard_color (self);
258 _g_object_unref0 (id_data_label);
261 _g_object_unref0 (image);
262 _g_free0 (services_text);
267 IdCardWidget* id_card_widget_new (IdCard* id_card) {
268 return id_card_widget_construct (TYPE_ID_CARD_WIDGET, id_card);
272 static gpointer _g_object_ref0 (gpointer self) {
273 return self ? g_object_ref (self) : NULL;
277 static void id_card_widget_set_atk_name_description (IdCardWidget* self, GtkWidget* widget, const char* name, const char* description) {
278 AtkObject* atk_widget;
279 g_return_if_fail (self != NULL);
280 g_return_if_fail (widget != NULL);
281 g_return_if_fail (name != NULL);
282 g_return_if_fail (description != NULL);
283 atk_widget = _g_object_ref0 (gtk_widget_get_accessible (widget));
284 atk_object_set_name (atk_widget, name);
285 atk_object_set_description (atk_widget, description);
286 _g_object_unref0 (atk_widget);
290 IdCard* id_card_widget_get_id_card (IdCardWidget* self) {
292 g_return_val_if_fail (self != NULL, NULL);
293 result = self->priv->_id_card;
298 void id_card_widget_set_id_card (IdCardWidget* self, IdCard* value) {
300 g_return_if_fail (self != NULL);
301 self->priv->_id_card = (_tmp0_ = _g_object_ref0 (value), _g_object_unref0 (self->priv->_id_card), _tmp0_);
302 g_object_notify ((GObject *) self, "id-card");
306 GtkButton* id_card_widget_get_delete_button (IdCardWidget* self) {
308 g_return_val_if_fail (self != NULL, NULL);
309 result = self->priv->_delete_button;
314 static void id_card_widget_set_delete_button (IdCardWidget* self, GtkButton* value) {
316 g_return_if_fail (self != NULL);
317 self->priv->_delete_button = (_tmp0_ = _g_object_ref0 (value), _g_object_unref0 (self->priv->_delete_button), _tmp0_);
318 g_object_notify ((GObject *) self, "delete-button");
322 GtkButton* id_card_widget_get_details_button (IdCardWidget* self) {
324 g_return_val_if_fail (self != NULL, NULL);
325 result = self->priv->_details_button;
330 static void id_card_widget_set_details_button (IdCardWidget* self, GtkButton* value) {
332 g_return_if_fail (self != NULL);
333 self->priv->_details_button = (_tmp0_ = _g_object_ref0 (value), _g_object_unref0 (self->priv->_details_button), _tmp0_);
334 g_object_notify ((GObject *) self, "details-button");
338 GtkButton* id_card_widget_get_send_button (IdCardWidget* self) {
340 g_return_val_if_fail (self != NULL, NULL);
341 result = self->priv->_send_button;
346 static void id_card_widget_set_send_button (IdCardWidget* self, GtkButton* value) {
348 g_return_if_fail (self != NULL);
349 self->priv->_send_button = (_tmp0_ = _g_object_ref0 (value), _g_object_unref0 (self->priv->_send_button), _tmp0_);
350 g_object_notify ((GObject *) self, "send-button");
354 static void id_card_widget_class_init (IdCardWidgetClass * klass) {
355 id_card_widget_parent_class = g_type_class_peek_parent (klass);
356 g_type_class_add_private (klass, sizeof (IdCardWidgetPrivate));
357 G_OBJECT_CLASS (klass)->get_property = id_card_widget_get_property;
358 G_OBJECT_CLASS (klass)->set_property = id_card_widget_set_property;
359 G_OBJECT_CLASS (klass)->finalize = id_card_widget_finalize;
360 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));
361 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));
362 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));
363 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));
364 g_signal_new ("expanded", TYPE_ID_CARD_WIDGET, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
365 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);
366 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);
367 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);
371 static void id_card_widget_instance_init (IdCardWidget * self) {
372 self->priv = ID_CARD_WIDGET_GET_PRIVATE (self);
373 self->priv->_id_card = NULL;
374 self->priv->_delete_button = NULL;
375 self->priv->_details_button = NULL;
376 self->priv->_send_button = NULL;
380 static void id_card_widget_finalize (GObject* obj) {
382 self = ID_CARD_WIDGET (obj);
383 _g_object_unref0 (self->priv->_id_card);
384 _g_object_unref0 (self->priv->main_vbox);
385 _g_object_unref0 (self->priv->table);
386 _g_object_unref0 (self->priv->_delete_button);
387 _g_object_unref0 (self->priv->_details_button);
388 _g_object_unref0 (self->priv->_send_button);
389 _g_object_unref0 (self->priv->hbutton_box);
390 _g_object_unref0 (self->priv->event_box);
391 G_OBJECT_CLASS (id_card_widget_parent_class)->finalize (obj);
395 GType id_card_widget_get_type (void) {
396 static volatile gsize id_card_widget_type_id__volatile = 0;
397 if (g_once_init_enter (&id_card_widget_type_id__volatile)) {
398 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 };
399 GType id_card_widget_type_id;
400 id_card_widget_type_id = g_type_register_static (GTK_TYPE_BOX, "IdCardWidget", &g_define_type_info, 0);
401 g_once_init_leave (&id_card_widget_type_id__volatile, id_card_widget_type_id);
403 return id_card_widget_type_id__volatile;
407 static void id_card_widget_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
409 self = ID_CARD_WIDGET (object);
410 switch (property_id) {
411 case ID_CARD_WIDGET_ID_CARD:
412 g_value_set_object (value, id_card_widget_get_id_card (self));
414 case ID_CARD_WIDGET_DELETE_BUTTON:
415 g_value_set_object (value, id_card_widget_get_delete_button (self));
417 case ID_CARD_WIDGET_DETAILS_BUTTON:
418 g_value_set_object (value, id_card_widget_get_details_button (self));
420 case ID_CARD_WIDGET_SEND_BUTTON:
421 g_value_set_object (value, id_card_widget_get_send_button (self));
424 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
430 static void id_card_widget_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
432 self = ID_CARD_WIDGET (object);
433 switch (property_id) {
434 case ID_CARD_WIDGET_ID_CARD:
435 id_card_widget_set_id_card (self, g_value_get_object (value));
437 case ID_CARD_WIDGET_DELETE_BUTTON:
438 id_card_widget_set_delete_button (self, g_value_get_object (value));
440 case ID_CARD_WIDGET_DETAILS_BUTTON:
441 id_card_widget_set_details_button (self, g_value_get_object (value));
443 case ID_CARD_WIDGET_SEND_BUTTON:
444 id_card_widget_set_send_button (self, g_value_get_object (value));
447 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);