1 /* moonshot-identity-management-view.c generated by valac 0.10.4, the Vala compiler
2 * generated from moonshot-identity-management-view.vala, do not modify */
6 #include <glib-object.h>
10 #include <gdk-pixbuf/gdk-pixdata.h>
13 #include <glib/gi18n-lib.h>
14 #include <pango/pango.h>
21 #define TYPE_IDENTITY_MANAGER_VIEW (identity_manager_view_get_type ())
22 #define IDENTITY_MANAGER_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerView))
23 #define IDENTITY_MANAGER_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerViewClass))
24 #define IS_IDENTITY_MANAGER_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_MANAGER_VIEW))
25 #define IS_IDENTITY_MANAGER_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_MANAGER_VIEW))
26 #define IDENTITY_MANAGER_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerViewClass))
28 typedef struct _IdentityManagerView IdentityManagerView;
29 typedef struct _IdentityManagerViewClass IdentityManagerViewClass;
30 typedef struct _IdentityManagerViewPrivate IdentityManagerViewPrivate;
32 #define TYPE_IDENTITY_MANAGER_APP (identity_manager_app_get_type ())
33 #define IDENTITY_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_APP, IdentityManagerApp))
34 #define IDENTITY_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_APP, IdentityManagerAppClass))
35 #define IS_IDENTITY_MANAGER_APP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_MANAGER_APP))
36 #define IS_IDENTITY_MANAGER_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_MANAGER_APP))
37 #define IDENTITY_MANAGER_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_MANAGER_APP, IdentityManagerAppClass))
39 typedef struct _IdentityManagerApp IdentityManagerApp;
40 typedef struct _IdentityManagerAppClass IdentityManagerAppClass;
42 #define TYPE_IDENTITY_MANAGER_MODEL (identity_manager_model_get_type ())
43 #define IDENTITY_MANAGER_MODEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_MANAGER_MODEL, IdentityManagerModel))
44 #define IDENTITY_MANAGER_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_MANAGER_MODEL, IdentityManagerModelClass))
45 #define IS_IDENTITY_MANAGER_MODEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_MANAGER_MODEL))
46 #define IS_IDENTITY_MANAGER_MODEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_MANAGER_MODEL))
47 #define IDENTITY_MANAGER_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_MANAGER_MODEL, IdentityManagerModelClass))
49 typedef struct _IdentityManagerModel IdentityManagerModel;
50 typedef struct _IdentityManagerModelClass IdentityManagerModelClass;
52 #define TYPE_IDENTITY_REQUEST (identity_request_get_type ())
53 #define IDENTITY_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_REQUEST, IdentityRequest))
54 #define IDENTITY_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_REQUEST, IdentityRequestClass))
55 #define IS_IDENTITY_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_REQUEST))
56 #define IS_IDENTITY_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_REQUEST))
57 #define IDENTITY_REQUEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_REQUEST, IdentityRequestClass))
59 typedef struct _IdentityRequest IdentityRequest;
60 typedef struct _IdentityRequestClass IdentityRequestClass;
62 #define TYPE_CUSTOM_VBOX (custom_vbox_get_type ())
63 #define CUSTOM_VBOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CUSTOM_VBOX, CustomVBox))
64 #define CUSTOM_VBOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CUSTOM_VBOX, CustomVBoxClass))
65 #define IS_CUSTOM_VBOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CUSTOM_VBOX))
66 #define IS_CUSTOM_VBOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CUSTOM_VBOX))
67 #define CUSTOM_VBOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CUSTOM_VBOX, CustomVBoxClass))
69 typedef struct _CustomVBox CustomVBox;
70 typedef struct _CustomVBoxClass CustomVBoxClass;
72 #define TYPE_ID_CARD (id_card_get_type ())
73 #define ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD, IdCard))
74 #define ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD, IdCardClass))
75 #define IS_ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD))
76 #define IS_ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD))
77 #define ID_CARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD, IdCardClass))
79 typedef struct _IdCard IdCard;
80 typedef struct _IdCardClass IdCardClass;
82 #define IDENTITY_MANAGER_VIEW_TYPE_COLUMNS (identity_manager_view_columns_get_type ())
83 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
84 #define __g_slist_free_g_object_unref0(var) ((var == NULL) ? NULL : (var = (_g_slist_free_g_object_unref (var), NULL)))
85 #define _g_queue_free0(var) ((var == NULL) ? NULL : (var = (g_queue_free (var), NULL)))
86 #define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
87 typedef struct _IdentityManagerAppPrivate IdentityManagerAppPrivate;
88 #define _g_free0(var) (var = (g_free (var), NULL))
90 #define TYPE_ID_CARD_WIDGET (id_card_widget_get_type ())
91 #define ID_CARD_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD_WIDGET, IdCardWidget))
92 #define ID_CARD_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD_WIDGET, IdCardWidgetClass))
93 #define IS_ID_CARD_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD_WIDGET))
94 #define IS_ID_CARD_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD_WIDGET))
95 #define ID_CARD_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD_WIDGET, IdCardWidgetClass))
97 typedef struct _IdCardWidget IdCardWidget;
98 typedef struct _IdCardWidgetClass IdCardWidgetClass;
99 #define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
101 #define TYPE_ADD_IDENTITY_DIALOG (add_identity_dialog_get_type ())
102 #define ADD_IDENTITY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADD_IDENTITY_DIALOG, AddIdentityDialog))
103 #define ADD_IDENTITY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADD_IDENTITY_DIALOG, AddIdentityDialogClass))
104 #define IS_ADD_IDENTITY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADD_IDENTITY_DIALOG))
105 #define IS_ADD_IDENTITY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADD_IDENTITY_DIALOG))
106 #define ADD_IDENTITY_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADD_IDENTITY_DIALOG, AddIdentityDialogClass))
108 typedef struct _AddIdentityDialog AddIdentityDialog;
109 typedef struct _AddIdentityDialogClass AddIdentityDialogClass;
110 typedef struct _IdentityRequestPrivate IdentityRequestPrivate;
111 #define __g_slist_free_g_free0(var) ((var == NULL) ? NULL : (var = (_g_slist_free_g_free (var), NULL)))
113 #define TYPE_RULE (rule_get_type ())
114 typedef struct _Rule Rule;
115 typedef struct _Block1Data Block1Data;
116 #define _g_pattern_spec_free0(var) ((var == NULL) ? NULL : (var = (g_pattern_spec_free (var), NULL)))
118 #define TYPE_ADD_PASSWORD_DIALOG (add_password_dialog_get_type ())
119 #define ADD_PASSWORD_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADD_PASSWORD_DIALOG, AddPasswordDialog))
120 #define ADD_PASSWORD_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADD_PASSWORD_DIALOG, AddPasswordDialogClass))
121 #define IS_ADD_PASSWORD_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADD_PASSWORD_DIALOG))
122 #define IS_ADD_PASSWORD_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADD_PASSWORD_DIALOG))
123 #define ADD_PASSWORD_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADD_PASSWORD_DIALOG, AddPasswordDialogClass))
125 typedef struct _AddPasswordDialog AddPasswordDialog;
126 typedef struct _AddPasswordDialogClass AddPasswordDialogClass;
127 #define _pango_font_description_free0(var) ((var == NULL) ? NULL : (var = (pango_font_description_free (var), NULL)))
128 #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
130 struct _IdentityManagerView {
131 GtkWindow parent_instance;
132 IdentityManagerViewPrivate * priv;
133 IdentityManagerApp* parent_app;
134 IdentityManagerModel* identities_manager;
135 GQueue* request_queue;
138 struct _IdentityManagerViewClass {
139 GtkWindowClass parent_class;
142 struct _IdentityManagerViewPrivate {
143 GtkUIManager* ui_manager;
144 GtkEntry* search_entry;
146 CustomVBox* custom_vbox;
147 GtkVBox* services_internal_vbox;
148 GtkEntry* username_entry;
149 GtkEntry* password_entry;
150 GtkListStore* listmodel;
151 GtkTreeModelFilter* filter;
153 IdCard* default_id_card;
154 GHashTable* service_button_map;
158 IDENTITY_MANAGER_VIEW_COLUMNS_IDCARD_COL,
159 IDENTITY_MANAGER_VIEW_COLUMNS_LOGO_COL,
160 IDENTITY_MANAGER_VIEW_COLUMNS_ISSUER_COL,
161 IDENTITY_MANAGER_VIEW_COLUMNS_USERNAME_COL,
162 IDENTITY_MANAGER_VIEW_COLUMNS_PASSWORD_COL,
163 IDENTITY_MANAGER_VIEW_COLUMNS_N_COLUMNS
164 } IdentityManagerViewColumns;
166 struct _IdentityManagerApp {
167 GtkWindow parent_instance;
168 IdentityManagerAppPrivate * priv;
169 IdentityManagerModel* model;
172 struct _IdentityManagerAppClass {
173 GtkWindowClass parent_class;
176 struct _IdentityRequest {
177 GObject parent_instance;
178 IdentityRequestPrivate * priv;
181 gboolean select_default;
187 struct _IdentityRequestClass {
188 GObjectClass parent_class;
193 char* always_confirm;
198 IdentityManagerView * self;
203 static gpointer identity_manager_view_parent_class = NULL;
205 GType identity_manager_view_get_type (void) G_GNUC_CONST;
206 GType identity_manager_app_get_type (void) G_GNUC_CONST;
207 GType identity_manager_model_get_type (void) G_GNUC_CONST;
208 GType identity_request_get_type (void) G_GNUC_CONST;
209 GType custom_vbox_get_type (void) G_GNUC_CONST;
210 GType id_card_get_type (void) G_GNUC_CONST;
211 #define IDENTITY_MANAGER_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_IDENTITY_MANAGER_VIEW, IdentityManagerViewPrivate))
213 IDENTITY_MANAGER_VIEW_DUMMY_PROPERTY
215 static GType identity_manager_view_columns_get_type (void) G_GNUC_UNUSED;
216 static void _g_slist_free_g_object_unref (GSList* self);
217 #define IDENTITY_MANAGER_VIEW_WINDOW_WIDTH 400
218 #define IDENTITY_MANAGER_VIEW_WINDOW_HEIGHT 500
219 #define IDENTITY_MANAGER_VIEW_layout "<menubar name='MenuBar'>" " <menu name='FileMenu' action='FileMenuAction'>" " <menuitem name='AddIdCard' action='AddIdCardAction' />" " <separator />" " <menuitem name='Quit' action='QuitAction' />" " </menu>" "" " <menu name='HelpMenu' action='HelpMenuAction'>" " <menuitem name='About' action='AboutAction' />" " </menu>" "</menubar>"
220 IdentityManagerView* identity_manager_view_new (IdentityManagerApp* app);
221 IdentityManagerView* identity_manager_view_construct (GType object_type, IdentityManagerApp* app);
222 static void identity_manager_view_build_ui (IdentityManagerView* self);
223 static void identity_manager_view_setup_list_model (IdentityManagerView* self);
224 static void identity_manager_view_load_id_cards (IdentityManagerView* self);
225 static void identity_manager_view_connect_signals (IdentityManagerView* self);
226 void identity_manager_view_on_card_list_changed (IdentityManagerView* self);
227 void identity_manager_view_add_candidate (IdentityManagerView* self, IdCard* idcard);
228 static gboolean identity_manager_view_visible_func (IdentityManagerView* self, GtkTreeModel* model, GtkTreeIter* iter);
229 const char* id_card_get_issuer (IdCard* self);
230 const char* id_card_get_display_name (IdCard* self);
231 char** id_card_get_services (IdCard* self, int* result_length1);
232 static gboolean _identity_manager_view_visible_func_gtk_tree_model_filter_visible_func (GtkTreeModel* model, GtkTreeIter* iter, gpointer self);
233 static void identity_manager_view_search_entry_icon_press_cb (IdentityManagerView* self, GtkEntryIconPosition pos, GdkEvent* event);
234 static void identity_manager_view_search_entry_text_changed_cb (IdentityManagerView* self);
235 static void identity_manager_view_redraw_id_card_widgets (IdentityManagerView* self);
236 static gboolean identity_manager_view_search_entry_key_press_event_cb (IdentityManagerView* self, GdkEventKey* e);
237 GType id_card_widget_get_type (void) G_GNUC_CONST;
238 static void identity_manager_view_remove_id_card_widget (IdentityManagerView* self, IdCardWidget* id_card_widget);
239 GeeLinkedList* identity_manager_model_get_card_list (IdentityManagerModel* self);
240 static void identity_manager_view_add_id_card_data (IdentityManagerView* self, IdCard* id_card);
241 static void identity_manager_view_add_id_card_widget (IdentityManagerView* self, IdCard* id_card);
242 static void identity_manager_view_fill_details (IdentityManagerView* self, IdCardWidget* id_card_widget);
243 IdCard* id_card_widget_get_id_card (IdCardWidget* self);
244 const char* id_card_get_username (IdCard* self);
245 const char* id_card_get_password (IdCard* self);
246 static void identity_manager_view_fill_services_vbox (IdentityManagerView* self, IdCard* id_card);
247 static void identity_manager_view_show_details (IdentityManagerView* self, IdCard* id_card);
248 static void identity_manager_view_details_identity_cb (IdentityManagerView* self, IdCardWidget* id_card_widget);
249 GType add_identity_dialog_get_type (void) G_GNUC_CONST;
250 static IdCard* identity_manager_view_get_id_card_data (IdentityManagerView* self, AddIdentityDialog* dialog);
251 IdCard* id_card_new (void);
252 IdCard* id_card_construct (GType object_type);
253 const char* add_identity_dialog_get_display_name (AddIdentityDialog* self);
254 void id_card_set_display_name (IdCard* self, const char* value);
255 const char* add_identity_dialog_get_issuer (AddIdentityDialog* self);
256 void id_card_set_issuer (IdCard* self, const char* value);
257 const char* add_identity_dialog_get_username (AddIdentityDialog* self);
258 void id_card_set_username (IdCard* self, const char* value);
259 const char* add_identity_dialog_get_password (AddIdentityDialog* self);
260 void id_card_set_password (IdCard* self, const char* value);
261 void id_card_set_services (IdCard* self, char** value, int value_length1);
262 GdkPixbuf* find_icon (const char* name, gint size);
263 static void identity_manager_view_remove_id_card_data (IdentityManagerView* self, IdCard* id_card);
264 IdCardWidget* id_card_widget_new (IdCard* id_card);
265 IdCardWidget* id_card_widget_construct (GType object_type, IdCard* id_card);
266 void custom_vbox_add_id_card_widget (CustomVBox* self, IdCardWidget* id_card_widget);
267 static void _identity_manager_view_details_identity_cb_id_card_widget_details_id (IdCardWidget* _sender, gpointer self);
268 static void identity_manager_view_remove_identity_cb (IdentityManagerView* self, IdCardWidget* id_card_widget);
269 static void _identity_manager_view_remove_identity_cb_id_card_widget_remove_id (IdCardWidget* _sender, gpointer self);
270 static void _lambda2_ (IdCardWidget* w, IdentityManagerView* self);
271 void identity_manager_view_send_identity_cb (IdentityManagerView* self, IdCard* identity);
272 static void __lambda2__id_card_widget_send_id (IdCardWidget* _sender, gpointer self);
273 void custom_vbox_receive_expanded_event (CustomVBox* self, IdCardWidget* id_card_widget);
274 static void _custom_vbox_receive_expanded_event_id_card_widget_expanded (IdCardWidget* _sender, gpointer self);
275 static void _identity_manager_view_fill_details_id_card_widget_expanded (IdCardWidget* _sender, gpointer self);
276 gboolean identity_manager_view_display_name_is_valid (IdentityManagerView* self, const char* name, char** candidate);
277 void identity_manager_view_insert_id_card (IdentityManagerView* self, IdCard* id_card);
278 void identity_manager_model_add_card (IdentityManagerModel* self, IdCard* card);
279 gboolean identity_manager_view_add_identity (IdentityManagerView* self, IdCard* id_card);
280 static void identity_manager_view_add_identity_manual_cb (IdentityManagerView* self);
281 AddIdentityDialog* add_identity_dialog_new (void);
282 AddIdentityDialog* add_identity_dialog_construct (GType object_type);
283 void custom_vbox_remove_id_card_widget (CustomVBox* self, IdCardWidget* id_card_widget);
284 static void identity_manager_view_remove_identity (IdentityManagerView* self, IdCardWidget* id_card_widget);
285 void identity_manager_model_remove_card (IdentityManagerModel* self, IdCard* card);
286 void identity_manager_view_select_identity (IdentityManagerView* self, IdentityRequest* request);
287 IdCardWidget* custom_vbox_get_current_idcard (CustomVBox* self);
288 GtkButton* id_card_widget_get_send_button (IdCardWidget* self);
289 const char* id_card_get_nai (IdCard* self);
290 static void _g_slist_free_g_free (GSList* self);
291 GType rule_get_type (void) G_GNUC_CONST;
292 Rule* rule_dup (const Rule* self);
293 void rule_free (Rule* self);
294 void rule_copy (const Rule* self, Rule* dest);
295 void rule_destroy (Rule* self);
296 Rule* id_card_get_rules (IdCard* self, int* result_length1);
297 static gboolean identity_manager_view_match_service_pattern (IdentityManagerView* self, const char* service, const char* pattern);
298 static gboolean _lambda3_ (Block1Data* _data1_);
299 static gboolean __lambda3__gsource_func (gpointer self);
300 static Block1Data* block1_data_ref (Block1Data* _data1_);
301 static void block1_data_unref (Block1Data* _data1_);
302 AddPasswordDialog* add_password_dialog_new (void);
303 AddPasswordDialog* add_password_dialog_construct (GType object_type);
304 GType add_password_dialog_get_type (void) G_GNUC_CONST;
305 const char* add_password_dialog_get_password (AddPasswordDialog* self);
306 gboolean add_password_dialog_get_remember (AddPasswordDialog* self);
307 void identity_request_return_identity (IdentityRequest* self, IdCard* id_card);
308 static void identity_manager_view_label_make_bold (IdentityManagerView* self, GtkLabel* label);
309 static void _lambda1_ (GtkButton* remove_button, IdentityManagerView* self);
310 void id_card_widget_update_id_card_label (IdCardWidget* self);
311 static void __lambda1__gtk_button_clicked (GtkButton* _sender, gpointer self);
312 static void identity_manager_view_on_about_action (IdentityManagerView* self);
313 static GtkActionEntry* identity_manager_view_create_actions (IdentityManagerView* self, int* result_length1);
314 static void _vala_array_add1 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
315 static void _identity_manager_view_add_identity_manual_cb_gtk_action_callback (GtkAction* action, gpointer self);
316 static void _vala_array_add2 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
317 static void _gtk_main_quit_gtk_action_callback (GtkAction* action, gpointer self);
318 static void _vala_array_add3 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
319 static void _vala_array_add4 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
320 static void _identity_manager_view_on_about_action_gtk_action_callback (GtkAction* action, gpointer self);
321 static void _vala_array_add5 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
322 static void identity_manager_view_create_ui_manager (IdentityManagerView* self);
323 static void identity_manager_view_set_atk_name_description (IdentityManagerView* self, GtkWidget* widget, const char* name, const char* description);
324 GdkPixbuf* find_icon_sized (const char* name, GtkIconSize icon_size);
325 static void _identity_manager_view_search_entry_icon_press_cb_gtk_entry_icon_press (GtkEntry* _sender, GtkEntryIconPosition p0, GdkEvent* p1, gpointer self);
326 static void _identity_manager_view_search_entry_text_changed_cb_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
327 static gboolean _identity_manager_view_search_entry_key_press_event_cb_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self);
328 CustomVBox* custom_vbox_new (IdentityManagerView* window, gboolean homogeneous, gint spacing);
329 CustomVBox* custom_vbox_construct (GType object_type, IdentityManagerView* window, gboolean homogeneous, gint spacing);
330 static void _gtk_main_quit_gtk_object_destroy (GtkObject* _sender, gpointer self);
331 static void _identity_manager_view_on_card_list_changed_identity_manager_model_card_list_changed (IdentityManagerModel* _sender, gpointer self);
332 static void identity_manager_view_finalize (GObject* obj);
333 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
334 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
335 static gint _vala_array_length (gpointer array);
336 static int _vala_strcmp0 (const char * str1, const char * str2);
340 static GType identity_manager_view_columns_get_type (void) {
341 static volatile gsize identity_manager_view_columns_type_id__volatile = 0;
342 if (g_once_init_enter (&identity_manager_view_columns_type_id__volatile)) {
343 static const GEnumValue values[] = {{IDENTITY_MANAGER_VIEW_COLUMNS_IDCARD_COL, "IDENTITY_MANAGER_VIEW_COLUMNS_IDCARD_COL", "idcard-col"}, {IDENTITY_MANAGER_VIEW_COLUMNS_LOGO_COL, "IDENTITY_MANAGER_VIEW_COLUMNS_LOGO_COL", "logo-col"}, {IDENTITY_MANAGER_VIEW_COLUMNS_ISSUER_COL, "IDENTITY_MANAGER_VIEW_COLUMNS_ISSUER_COL", "issuer-col"}, {IDENTITY_MANAGER_VIEW_COLUMNS_USERNAME_COL, "IDENTITY_MANAGER_VIEW_COLUMNS_USERNAME_COL", "username-col"}, {IDENTITY_MANAGER_VIEW_COLUMNS_PASSWORD_COL, "IDENTITY_MANAGER_VIEW_COLUMNS_PASSWORD_COL", "password-col"}, {IDENTITY_MANAGER_VIEW_COLUMNS_N_COLUMNS, "IDENTITY_MANAGER_VIEW_COLUMNS_N_COLUMNS", "n-columns"}, {0, NULL, NULL}};
344 GType identity_manager_view_columns_type_id;
345 identity_manager_view_columns_type_id = g_enum_register_static ("IdentityManagerViewColumns", values);
346 g_once_init_leave (&identity_manager_view_columns_type_id__volatile, identity_manager_view_columns_type_id);
348 return identity_manager_view_columns_type_id__volatile;
352 static void _g_slist_free_g_object_unref (GSList* self) {
353 g_slist_foreach (self, (GFunc) g_object_unref, NULL);
358 static gpointer _g_object_ref0 (gpointer self) {
359 return self ? g_object_ref (self) : NULL;
363 IdentityManagerView* identity_manager_view_construct (GType object_type, IdentityManagerApp* app) {
364 IdentityManagerView * self;
365 IdentityManagerApp* _tmp0_;
366 IdentityManagerModel* _tmp1_;
369 g_return_val_if_fail (app != NULL, NULL);
370 self = g_object_newv (object_type, 0, NULL);
371 self->parent_app = (_tmp0_ = _g_object_ref0 (app), _g_object_unref0 (self->parent_app), _tmp0_);
372 self->identities_manager = (_tmp1_ = _g_object_ref0 (self->parent_app->model), _g_object_unref0 (self->identities_manager), _tmp1_);
373 self->request_queue = (_tmp2_ = g_queue_new (), _g_queue_free0 (self->request_queue), _tmp2_);
374 self->priv->service_button_map = (_tmp3_ = g_hash_table_new_full (g_direct_hash, g_direct_equal, g_object_unref, g_free), _g_hash_table_unref0 (self->priv->service_button_map), _tmp3_);
375 gtk_window_set_title ((GtkWindow*) self, "Moonshoot");
376 gtk_window_set_position ((GtkWindow*) self, GTK_WIN_POS_CENTER);
377 gtk_window_set_default_size ((GtkWindow*) self, IDENTITY_MANAGER_VIEW_WINDOW_WIDTH, IDENTITY_MANAGER_VIEW_WINDOW_HEIGHT);
378 identity_manager_view_build_ui (self);
379 identity_manager_view_setup_list_model (self);
380 identity_manager_view_load_id_cards (self);
381 identity_manager_view_connect_signals (self);
386 IdentityManagerView* identity_manager_view_new (IdentityManagerApp* app) {
387 return identity_manager_view_construct (TYPE_IDENTITY_MANAGER_VIEW, app);
391 void identity_manager_view_on_card_list_changed (IdentityManagerView* self) {
392 g_return_if_fail (self != NULL);
393 identity_manager_view_load_id_cards (self);
397 void identity_manager_view_add_candidate (IdentityManagerView* self, IdCard* idcard) {
398 g_return_if_fail (self != NULL);
399 g_return_if_fail (idcard != NULL);
400 self->priv->candidates = g_slist_append (self->priv->candidates, _g_object_ref0 (idcard));
404 static gboolean string_contains (const char* self, const char* needle) {
405 gboolean result = FALSE;
406 g_return_val_if_fail (self != NULL, FALSE);
407 g_return_val_if_fail (needle != NULL, FALSE);
408 result = strstr (self, needle) != NULL;
413 static gboolean identity_manager_view_visible_func (IdentityManagerView* self, GtkTreeModel* model, GtkTreeIter* iter) {
414 gboolean result = FALSE;
417 gboolean _tmp0_ = FALSE;
418 g_return_val_if_fail (self != NULL, FALSE);
419 g_return_val_if_fail (model != NULL, FALSE);
421 gtk_tree_model_get (model, iter, IDENTITY_MANAGER_VIEW_COLUMNS_IDCARD_COL, &id_card, -1);
422 if (id_card == NULL) {
424 _g_object_unref0 (id_card);
427 if (self->priv->candidates != NULL) {
428 gboolean is_candidate;
429 is_candidate = FALSE;
431 GSList* candidate_collection;
432 GSList* candidate_it;
433 candidate_collection = self->priv->candidates;
434 for (candidate_it = candidate_collection; candidate_it != NULL; candidate_it = candidate_it->next) {
436 candidate = _g_object_ref0 ((IdCard*) candidate_it->data);
438 if (candidate == id_card) {
441 _g_object_unref0 (candidate);
447 _g_object_unref0 (id_card);
451 entry_text = g_strdup (gtk_entry_get_text (self->priv->search_entry));
452 if (entry_text == NULL) {
455 _tmp0_ = _vala_strcmp0 (entry_text, "") == 0;
459 _g_free0 (entry_text);
460 _g_object_unref0 (id_card);
465 char** search_text_collection;
466 int search_text_collection_length1;
468 search_text_collection = _tmp1_ = g_strsplit (entry_text, " ", 0);
469 search_text_collection_length1 = _vala_array_length (_tmp1_);
470 for (search_text_it = 0; search_text_it < _vala_array_length (_tmp1_); search_text_it = search_text_it + 1) {
472 search_text = g_strdup (search_text_collection[search_text_it]);
474 char* search_text_casefold;
476 if (_vala_strcmp0 (search_text, "") == 0) {
477 _g_free0 (search_text);
480 search_text_casefold = g_utf8_casefold (search_text, -1);
481 if (id_card_get_issuer (id_card) != NULL) {
482 char* issuer_casefold;
483 issuer_casefold = g_strdup (id_card_get_issuer (id_card));
484 if (string_contains (issuer_casefold, search_text_casefold)) {
486 _g_free0 (issuer_casefold);
487 _g_free0 (search_text_casefold);
488 _g_free0 (search_text);
489 search_text_collection = (_vala_array_free (search_text_collection, search_text_collection_length1, (GDestroyNotify) g_free), NULL);
490 _g_free0 (entry_text);
491 _g_object_unref0 (id_card);
494 _g_free0 (issuer_casefold);
496 if (id_card_get_display_name (id_card) != NULL) {
497 char* display_name_casefold;
498 display_name_casefold = g_utf8_casefold (id_card_get_display_name (id_card), -1);
499 if (string_contains (display_name_casefold, search_text_casefold)) {
501 _g_free0 (display_name_casefold);
502 _g_free0 (search_text_casefold);
503 _g_free0 (search_text);
504 search_text_collection = (_vala_array_free (search_text_collection, search_text_collection_length1, (GDestroyNotify) g_free), NULL);
505 _g_free0 (entry_text);
506 _g_object_unref0 (id_card);
509 _g_free0 (display_name_casefold);
514 char** service_collection;
515 int service_collection_length1;
517 service_collection = id_card_get_services (id_card, &_tmp3_);
518 service_collection_length1 = _tmp3_;
519 for (service_it = 0; service_it < _tmp3_; service_it = service_it + 1) {
521 service = g_strdup (service_collection[service_it]);
523 char* service_casefold;
524 service_casefold = g_utf8_casefold (service, -1);
525 if (string_contains (service_casefold, search_text_casefold)) {
527 _g_free0 (service_casefold);
529 _g_free0 (search_text_casefold);
530 _g_free0 (search_text);
531 search_text_collection = (_vala_array_free (search_text_collection, search_text_collection_length1, (GDestroyNotify) g_free), NULL);
532 _g_free0 (entry_text);
533 _g_object_unref0 (id_card);
536 _g_free0 (service_casefold);
542 _g_free0 (search_text_casefold);
543 _g_free0 (search_text);
546 search_text_collection = (_vala_array_free (search_text_collection, search_text_collection_length1, (GDestroyNotify) g_free), NULL);
549 _g_free0 (entry_text);
550 _g_object_unref0 (id_card);
555 static gboolean _identity_manager_view_visible_func_gtk_tree_model_filter_visible_func (GtkTreeModel* model, GtkTreeIter* iter, gpointer self) {
557 result = identity_manager_view_visible_func (self, model, iter);
562 static void identity_manager_view_setup_list_model (IdentityManagerView* self) {
563 GtkTreeModelFilter* _tmp0_;
564 g_return_if_fail (self != NULL);
565 self->priv->listmodel = gtk_list_store_new ((gint) IDENTITY_MANAGER_VIEW_COLUMNS_N_COLUMNS, TYPE_ID_CARD, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
566 self->priv->filter = (_tmp0_ = (GtkTreeModelFilter*) gtk_tree_model_filter_new ((GtkTreeModel*) self->priv->listmodel, NULL), _g_object_unref0 (self->priv->filter), _tmp0_);
567 gtk_tree_model_filter_set_visible_func (self->priv->filter, _identity_manager_view_visible_func_gtk_tree_model_filter_visible_func, g_object_ref (self), g_object_unref);
571 static void identity_manager_view_search_entry_icon_press_cb (IdentityManagerView* self, GtkEntryIconPosition pos, GdkEvent* event) {
572 g_return_if_fail (self != NULL);
573 g_return_if_fail (event != NULL);
574 if (pos == GTK_ENTRY_ICON_PRIMARY) {
575 g_print ("Search entry icon pressed\n");
577 gtk_entry_set_text (self->priv->search_entry, "");
582 static void identity_manager_view_search_entry_text_changed_cb (IdentityManagerView* self) {
584 g_return_if_fail (self != NULL);
585 gtk_tree_model_filter_refilter (self->priv->filter);
586 identity_manager_view_redraw_id_card_widgets (self);
587 has_text = gtk_entry_get_text_length (self->priv->search_entry) > 0;
588 gtk_entry_set_icon_sensitive (self->priv->search_entry, GTK_ENTRY_ICON_PRIMARY, has_text);
589 gtk_entry_set_icon_sensitive (self->priv->search_entry, GTK_ENTRY_ICON_SECONDARY, has_text);
590 gtk_widget_set_visible ((GtkWidget*) self->priv->vbox_right, FALSE);
594 static gboolean identity_manager_view_search_entry_key_press_event_cb (IdentityManagerView* self, GdkEventKey* e) {
595 gboolean result = FALSE;
596 g_return_val_if_fail (self != NULL, FALSE);
597 if (_vala_strcmp0 (gdk_keyval_name ((*e).keyval), "Escape") == 0) {
598 gtk_entry_set_text (self->priv->search_entry, "");
605 static void identity_manager_view_load_id_cards (IdentityManagerView* self) {
608 GeeLinkedList* card_list;
609 g_return_if_fail (self != NULL);
610 children = gtk_container_get_children ((GtkContainer*) self->priv->custom_vbox);
612 GList* id_card_widget_collection;
613 GList* id_card_widget_it;
614 id_card_widget_collection = children;
615 for (id_card_widget_it = id_card_widget_collection; id_card_widget_it != NULL; id_card_widget_it = id_card_widget_it->next) {
616 GtkWidget* id_card_widget;
617 id_card_widget = (GtkWidget*) id_card_widget_it->data;
619 identity_manager_view_remove_id_card_widget (self, ID_CARD_WIDGET (id_card_widget));
623 self->priv->default_id_card = (_tmp0_ = NULL, _g_object_unref0 (self->priv->default_id_card), _tmp0_);
624 card_list = identity_manager_model_get_card_list (self->identities_manager);
625 if (card_list == NULL) {
626 _g_object_unref0 (card_list);
627 _g_list_free0 (children);
631 GeeIterator* _id_card_it;
632 _id_card_it = gee_abstract_collection_iterator ((GeeAbstractCollection*) card_list);
635 if (!gee_iterator_next (_id_card_it)) {
638 id_card = (IdCard*) gee_iterator_get (_id_card_it);
639 identity_manager_view_add_id_card_data (self, id_card);
640 identity_manager_view_add_id_card_widget (self, id_card);
641 _g_object_unref0 (id_card);
643 _g_object_unref0 (_id_card_it);
645 if (gee_collection_get_size ((GeeCollection*) card_list) > 0) {
647 self->priv->default_id_card = (_tmp1_ = (IdCard*) gee_abstract_list_first ((GeeAbstractList*) card_list), _g_object_unref0 (self->priv->default_id_card), _tmp1_);
649 _g_object_unref0 (card_list);
650 _g_list_free0 (children);
654 static void identity_manager_view_fill_details (IdentityManagerView* self, IdCardWidget* id_card_widget) {
658 g_return_if_fail (self != NULL);
659 g_return_if_fail (id_card_widget != NULL);
660 id_card = _g_object_ref0 (id_card_widget_get_id_card (id_card_widget));
661 gtk_entry_set_text (self->priv->username_entry, id_card_get_username (id_card));
662 _tmp0_ = g_strdup (id_card_get_password (id_card));
663 if (_tmp0_ == NULL) {
665 _tmp0_ = (_tmp1_ = g_strdup (""), _g_free0 (_tmp0_), _tmp1_);
667 gtk_entry_set_text (self->priv->password_entry, _tmp0_);
668 children = gtk_container_get_children ((GtkContainer*) self->priv->services_internal_vbox);
670 GList* hbox_collection;
672 hbox_collection = children;
673 for (hbox_it = hbox_collection; hbox_it != NULL; hbox_it = hbox_it->next) {
675 hbox = (GtkWidget*) hbox_it->data;
677 gtk_object_destroy ((GtkObject*) hbox);
681 identity_manager_view_fill_services_vbox (self, id_card_widget_get_id_card (id_card_widget));
682 _g_list_free0 (children);
684 _g_object_unref0 (id_card);
688 static void identity_manager_view_show_details (IdentityManagerView* self, IdCard* id_card) {
689 g_return_if_fail (self != NULL);
690 g_return_if_fail (id_card != NULL);
691 gtk_widget_set_visible ((GtkWidget*) self->priv->vbox_right, !gtk_widget_get_visible ((GtkWidget*) self->priv->vbox_right));
692 if (gtk_widget_get_visible ((GtkWidget*) self->priv->vbox_right) == FALSE) {
693 gtk_window_resize ((GtkWindow*) self, IDENTITY_MANAGER_VIEW_WINDOW_WIDTH, IDENTITY_MANAGER_VIEW_WINDOW_HEIGHT);
698 static void identity_manager_view_details_identity_cb (IdentityManagerView* self, IdCardWidget* id_card_widget) {
699 g_return_if_fail (self != NULL);
700 g_return_if_fail (id_card_widget != NULL);
701 identity_manager_view_fill_details (self, id_card_widget);
702 identity_manager_view_show_details (self, id_card_widget_get_id_card (id_card_widget));
706 static IdCard* identity_manager_view_get_id_card_data (IdentityManagerView* self, AddIdentityDialog* dialog) {
707 IdCard* result = NULL;
709 char** _tmp0_ = NULL;
713 g_return_val_if_fail (self != NULL, NULL);
714 g_return_val_if_fail (dialog != NULL, NULL);
715 id_card = id_card_new ();
716 id_card_set_display_name (id_card, add_identity_dialog_get_display_name (dialog));
717 id_card_set_issuer (id_card, add_identity_dialog_get_issuer (dialog));
718 if (_vala_strcmp0 (id_card_get_issuer (id_card), "") == 0) {
719 id_card_set_issuer (id_card, "Issuer");
721 id_card_set_username (id_card, add_identity_dialog_get_username (dialog));
722 id_card_set_password (id_card, add_identity_dialog_get_password (dialog));
723 _tmp2_ = (_tmp1_ = (_tmp0_ = g_new0 (char*, 0 + 1), _tmp0_), _tmp1__length1 = 0, _tmp1_);
724 id_card_set_services (id_card, _tmp2_, 0);
725 _tmp1_ = (_vala_array_free (_tmp1_, _tmp1__length1, (GDestroyNotify) g_free), NULL);
726 g_object_set_data_full ((GObject*) id_card, "pixbuf", find_icon ("avatar-default", 48), g_object_unref);
732 static void identity_manager_view_add_id_card_data (IdentityManagerView* self, IdCard* id_card) {
733 GtkTreeIter iter = {0};
736 g_return_if_fail (self != NULL);
737 g_return_if_fail (id_card != NULL);
739 gtk_list_store_append (self->priv->listmodel, &iter);
740 pixbuf = (_tmp0_ = _g_object_ref0 ((GdkPixbuf*) g_object_get_data ((GObject*) id_card, "pixbuf")), _g_object_unref0 (pixbuf), _tmp0_);
741 gtk_list_store_set (self->priv->listmodel, &iter, IDENTITY_MANAGER_VIEW_COLUMNS_IDCARD_COL, id_card, IDENTITY_MANAGER_VIEW_COLUMNS_LOGO_COL, pixbuf, IDENTITY_MANAGER_VIEW_COLUMNS_ISSUER_COL, id_card_get_issuer (id_card), IDENTITY_MANAGER_VIEW_COLUMNS_USERNAME_COL, id_card_get_username (id_card), IDENTITY_MANAGER_VIEW_COLUMNS_PASSWORD_COL, id_card_get_password (id_card), -1);
742 _g_object_unref0 (pixbuf);
746 static void identity_manager_view_remove_id_card_data (IdentityManagerView* self, IdCard* id_card) {
747 GtkTreeIter iter = {0};
749 g_return_if_fail (self != NULL);
750 g_return_if_fail (id_card != NULL);
752 if (gtk_tree_model_get_iter_first ((GtkTreeModel*) self->priv->listmodel, &iter)) {
758 if (!gtk_tree_model_iter_next ((GtkTreeModel*) self->priv->listmodel, &iter)) {
763 gtk_tree_model_get ((GtkTreeModel*) self->priv->listmodel, &iter, IDENTITY_MANAGER_VIEW_COLUMNS_ISSUER_COL, &issuer, -1);
764 if (_vala_strcmp0 (id_card_get_issuer (id_card), issuer) == 0) {
765 gtk_list_store_remove (self->priv->listmodel, &iter);
775 static void _identity_manager_view_details_identity_cb_id_card_widget_details_id (IdCardWidget* _sender, gpointer self) {
776 identity_manager_view_details_identity_cb (self, _sender);
780 static void _identity_manager_view_remove_identity_cb_id_card_widget_remove_id (IdCardWidget* _sender, gpointer self) {
781 identity_manager_view_remove_identity_cb (self, _sender);
785 static void _lambda2_ (IdCardWidget* w, IdentityManagerView* self) {
786 g_return_if_fail (w != NULL);
787 identity_manager_view_send_identity_cb (self, id_card_widget_get_id_card (w));
791 static void __lambda2__id_card_widget_send_id (IdCardWidget* _sender, gpointer self) {
792 _lambda2_ (_sender, self);
796 static void _custom_vbox_receive_expanded_event_id_card_widget_expanded (IdCardWidget* _sender, gpointer self) {
797 custom_vbox_receive_expanded_event (self, _sender);
801 static void _identity_manager_view_fill_details_id_card_widget_expanded (IdCardWidget* _sender, gpointer self) {
802 identity_manager_view_fill_details (self, _sender);
806 static void identity_manager_view_add_id_card_widget (IdentityManagerView* self, IdCard* id_card) {
807 IdCardWidget* id_card_widget;
808 g_return_if_fail (self != NULL);
809 g_return_if_fail (id_card != NULL);
810 id_card_widget = g_object_ref_sink (id_card_widget_new (id_card));
811 custom_vbox_add_id_card_widget (self->priv->custom_vbox, id_card_widget);
812 g_signal_connect_object (id_card_widget, "details-id", (GCallback) _identity_manager_view_details_identity_cb_id_card_widget_details_id, self, 0);
813 g_signal_connect_object (id_card_widget, "remove-id", (GCallback) _identity_manager_view_remove_identity_cb_id_card_widget_remove_id, self, 0);
814 g_signal_connect_object (id_card_widget, "send-id", (GCallback) __lambda2__id_card_widget_send_id, self, 0);
815 g_signal_connect_object (id_card_widget, "expanded", (GCallback) _custom_vbox_receive_expanded_event_id_card_widget_expanded, self->priv->custom_vbox, 0);
816 g_signal_connect_object (id_card_widget, "expanded", (GCallback) _identity_manager_view_fill_details_id_card_widget_expanded, self, 0);
817 _g_object_unref0 (id_card_widget);
821 gboolean identity_manager_view_display_name_is_valid (IdentityManagerView* self, const char* name, char** candidate) {
822 gboolean result = FALSE;
823 g_return_val_if_fail (self != NULL, FALSE);
824 g_return_val_if_fail (name != NULL, FALSE);
825 if (candidate != NULL) {
829 GeeLinkedList* _tmp0_;
831 GeeIterator* _id_card_it;
832 _id_card_it = (_tmp1_ = gee_abstract_collection_iterator ((GeeAbstractCollection*) (_tmp0_ = identity_manager_model_get_card_list (self->identities_manager))), _g_object_unref0 (_tmp0_), _tmp1_);
835 if (!gee_iterator_next (_id_card_it)) {
838 id_card = (IdCard*) gee_iterator_get (_id_card_it);
839 if (_vala_strcmp0 (id_card_get_display_name (id_card), name) == 0) {
840 if ((candidate) != NULL) {
856 tmp = g_strdup_printf ("%s %d", name, i);
857 if (identity_manager_view_display_name_is_valid (self, tmp, NULL)) {
859 *candidate = (_tmp3_ = g_strdup (tmp), _g_free0 (*candidate), _tmp3_);
869 _g_object_unref0 (id_card);
870 _g_object_unref0 (_id_card_it);
873 _g_object_unref0 (id_card);
875 _g_object_unref0 (_id_card_it);
882 void identity_manager_view_insert_id_card (IdentityManagerView* self, IdCard* id_card) {
887 g_return_if_fail (self != NULL);
888 g_return_if_fail (id_card != NULL);
890 if (!(_tmp1_ = identity_manager_view_display_name_is_valid (self, id_card_get_display_name (id_card), &_tmp0_), candidate = (_tmp2_ = _tmp0_, _g_free0 (candidate), _tmp2_), _tmp1_)) {
891 id_card_set_display_name (id_card, candidate);
893 identity_manager_model_add_card (self->identities_manager, id_card);
894 _g_free0 (candidate);
898 gboolean identity_manager_view_add_identity (IdentityManagerView* self, IdCard* id_card) {
899 gboolean result = FALSE;
900 GtkMessageDialog* dialog;
902 g_return_val_if_fail (self != NULL, FALSE);
903 g_return_val_if_fail (id_card != NULL, FALSE);
904 dialog = g_object_ref_sink ((GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _ ("Would you like to add '%s' ID Card to the ID Card Organizer?"), id_card_get_display_name (id_card)));
905 gtk_widget_show_all ((GtkWidget*) dialog);
906 ret = gtk_dialog_run ((GtkDialog*) dialog);
907 gtk_widget_hide ((GtkWidget*) dialog);
908 if (ret == GTK_RESPONSE_YES) {
909 g_object_set_data_full ((GObject*) id_card, "pixbuf", find_icon ("avatar-default", 48), g_object_unref);
910 identity_manager_view_insert_id_card (self, id_card);
912 _g_object_unref0 (dialog);
916 _g_object_unref0 (dialog);
921 static void identity_manager_view_add_identity_manual_cb (IdentityManagerView* self) {
922 AddIdentityDialog* dialog;
924 g_return_if_fail (self != NULL);
925 dialog = g_object_ref_sink (add_identity_dialog_new ());
926 _result_ = gtk_dialog_run ((GtkDialog*) dialog);
928 case GTK_RESPONSE_OK:
931 identity_manager_view_insert_id_card (self, _tmp0_ = identity_manager_view_get_id_card_data (self, dialog));
932 _g_object_unref0 (_tmp0_);
940 gtk_object_destroy ((GtkObject*) dialog);
941 _g_object_unref0 (dialog);
945 static void identity_manager_view_remove_id_card_widget (IdentityManagerView* self, IdCardWidget* id_card_widget) {
946 g_return_if_fail (self != NULL);
947 g_return_if_fail (id_card_widget != NULL);
948 custom_vbox_remove_id_card_widget (self->priv->custom_vbox, id_card_widget);
952 static void identity_manager_view_remove_identity (IdentityManagerView* self, IdCardWidget* id_card_widget) {
954 g_return_if_fail (self != NULL);
955 g_return_if_fail (id_card_widget != NULL);
956 id_card = _g_object_ref0 (id_card_widget_get_id_card (id_card_widget));
957 identity_manager_view_remove_id_card_widget (self, id_card_widget);
958 identity_manager_model_remove_card (self->identities_manager, id_card);
959 _g_object_unref0 (id_card);
963 static void identity_manager_view_redraw_id_card_widgets (IdentityManagerView* self) {
964 GtkTreeIter iter = {0};
967 g_return_if_fail (self != NULL);
969 children = gtk_container_get_children ((GtkContainer*) self->priv->custom_vbox);
971 GList* id_card_widget_collection;
972 GList* id_card_widget_it;
973 id_card_widget_collection = children;
974 for (id_card_widget_it = id_card_widget_collection; id_card_widget_it != NULL; id_card_widget_it = id_card_widget_it->next) {
975 GtkWidget* id_card_widget;
976 id_card_widget = (GtkWidget*) id_card_widget_it->data;
978 gtk_object_destroy ((GtkObject*) id_card_widget);
982 if (gtk_tree_model_get_iter_first ((GtkTreeModel*) self->priv->filter, &iter)) {
988 if (!gtk_tree_model_iter_next ((GtkTreeModel*) self->priv->filter, &iter)) {
993 gtk_tree_model_get ((GtkTreeModel*) self->priv->filter, &iter, IDENTITY_MANAGER_VIEW_COLUMNS_IDCARD_COL, &id_card, -1);
994 identity_manager_view_add_id_card_widget (self, id_card);
998 _g_list_free0 (children);
999 _g_object_unref0 (id_card);
1003 static void identity_manager_view_remove_identity_cb (IdentityManagerView* self, IdCardWidget* id_card_widget) {
1005 GtkMessageDialog* dialog;
1007 g_return_if_fail (self != NULL);
1008 g_return_if_fail (id_card_widget != NULL);
1009 id_card = _g_object_ref0 (id_card_widget_get_id_card (id_card_widget));
1010 dialog = g_object_ref_sink ((GtkMessageDialog*) gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _ ("Are you sure you want to delete %s ID Card?"), id_card_get_issuer (id_card)));
1011 _result_ = gtk_dialog_run ((GtkDialog*) dialog);
1013 case GTK_RESPONSE_YES:
1015 identity_manager_view_remove_identity (self, id_card_widget);
1023 gtk_object_destroy ((GtkObject*) dialog);
1024 _g_object_unref0 (dialog);
1025 _g_object_unref0 (id_card);
1029 static void _g_slist_free_g_free (GSList* self) {
1030 g_slist_foreach (self, (GFunc) g_free, NULL);
1031 g_slist_free (self);
1035 static gboolean _lambda3_ (Block1Data* _data1_) {
1036 IdentityManagerView * self;
1037 gboolean result = FALSE;
1038 self = _data1_->self;
1039 identity_manager_view_send_identity_cb (self, _data1_->identity);
1045 static gboolean __lambda3__gsource_func (gpointer self) {
1047 result = _lambda3_ (self);
1052 static Block1Data* block1_data_ref (Block1Data* _data1_) {
1053 g_atomic_int_inc (&_data1_->_ref_count_);
1058 static void block1_data_unref (Block1Data* _data1_) {
1059 if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
1060 _g_object_unref0 (_data1_->self);
1061 _g_object_unref0 (_data1_->identity);
1062 g_slice_free (Block1Data, _data1_);
1067 void identity_manager_view_select_identity (IdentityManagerView* self, IdentityRequest* request) {
1068 Block1Data* _data1_;
1069 gboolean _tmp0_ = FALSE;
1070 g_return_if_fail (self != NULL);
1071 g_return_if_fail (request != NULL);
1072 _data1_ = g_slice_new0 (Block1Data);
1073 _data1_->_ref_count_ = 1;
1074 _data1_->self = g_object_ref (self);
1075 _data1_->identity = NULL;
1076 g_queue_push_tail (self->request_queue, _g_object_ref0 (request));
1077 if (custom_vbox_get_current_idcard (self->priv->custom_vbox) != NULL) {
1078 _tmp0_ = id_card_widget_get_send_button (custom_vbox_get_current_idcard (self->priv->custom_vbox)) != NULL;
1083 gtk_widget_set_sensitive ((GtkWidget*) id_card_widget_get_send_button (custom_vbox_get_current_idcard (self->priv->custom_vbox)), TRUE);
1085 if (request->select_default) {
1087 _data1_->identity = (_tmp1_ = _g_object_ref0 (self->priv->default_id_card), _g_object_unref0 (_data1_->identity), _tmp1_);
1089 if (_data1_->identity == NULL) {
1090 gboolean _tmp2_ = FALSE;
1092 gboolean _tmp3_ = FALSE;
1095 IdCard* nai_provided;
1096 gboolean _tmp9_ = FALSE;
1097 if (request->nai != NULL) {
1098 _tmp2_ = _vala_strcmp0 (request->nai, "") != 0;
1103 if (request->service != NULL) {
1104 _tmp3_ = _vala_strcmp0 (request->service, "") != 0;
1110 nai_provided = NULL;
1112 GeeLinkedList* _tmp4_;
1113 GeeIterator* _tmp5_;
1114 GeeIterator* _id_it;
1115 _id_it = (_tmp5_ = gee_abstract_collection_iterator ((GeeAbstractCollection*) (_tmp4_ = identity_manager_model_get_card_list (self->identities_manager))), _g_object_unref0 (_tmp4_), _tmp5_);
1118 gboolean _tmp6_ = FALSE;
1119 if (!gee_iterator_next (_id_it)) {
1122 id = (IdCard*) gee_iterator_get (_id_it);
1124 _tmp6_ = _vala_strcmp0 (request->nai, id_card_get_nai (id)) == 0;
1130 nai_provided = (_tmp7_ = _g_object_ref0 (id), _g_object_unref0 (nai_provided), _tmp7_);
1131 identity_manager_view_add_candidate (self, id);
1132 _g_object_unref0 (id);
1138 char** srv_collection;
1139 int srv_collection_length1;
1141 srv_collection = id_card_get_services (id, &_tmp8_);
1142 srv_collection_length1 = _tmp8_;
1143 for (srv_it = 0; srv_it < _tmp8_; srv_it = srv_it + 1) {
1145 srv = g_strdup (srv_collection[srv_it]);
1147 if (_vala_strcmp0 (request->service, srv) == 0) {
1148 identity_manager_view_add_candidate (self, id);
1157 _g_object_unref0 (id);
1159 _g_object_unref0 (_id_it);
1162 _tmp9_ = g_slist_length (self->priv->candidates) > 1;
1168 GSList* id_collection;
1170 id_collection = self->priv->candidates;
1171 for (id_it = id_collection; id_it != NULL; id_it = id_it->next) {
1173 id = _g_object_ref0 ((IdCard*) id_it->data);
1176 GSList* services_list;
1177 gboolean has_service;
1178 gint services_length1;
1179 gint _services_size_;
1185 services_list = NULL;
1186 has_service = FALSE;
1189 char** srv_collection;
1190 int srv_collection_length1;
1192 srv_collection = id_card_get_services (id, &_tmp10_);
1193 srv_collection_length1 = _tmp10_;
1194 for (srv_it = 0; srv_it < _tmp10_; srv_it = srv_it + 1) {
1196 srv = g_strdup (srv_collection[srv_it]);
1198 if (_vala_strcmp0 (srv, request->service) == 0) {
1203 services_list = g_slist_append (services_list, g_strdup (srv));
1209 __g_slist_free_g_free0 (services_list);
1210 _g_object_unref0 (id);
1213 if (g_slist_length (services_list) == 0) {
1214 char** _tmp11_ = NULL;
1216 gint _tmp12__length1;
1218 _tmp13_ = (_tmp12_ = (_tmp11_ = g_new0 (char*, 0 + 1), _tmp11_), _tmp12__length1 = 0, _tmp12_);
1219 id_card_set_services (id, _tmp13_, 0);
1220 _tmp12_ = (_vala_array_free (_tmp12_, _tmp12__length1, (GDestroyNotify) g_free), NULL);
1221 __g_slist_free_g_free0 (services_list);
1222 _g_object_unref0 (id);
1225 services = (_tmp15_ = g_new0 (char*, (_tmp14_ = g_slist_length (services_list)) + 1), services_length1 = _tmp14_, _services_size_ = services_length1, _tmp15_);
1227 GSList* srv_collection;
1229 srv_collection = services_list;
1230 for (srv_it = srv_collection; srv_it != NULL; srv_it = srv_it->next) {
1232 srv = g_strdup ((const char*) srv_it->data);
1235 services[i] = (_tmp16_ = g_strdup (srv), _g_free0 (services[i]), _tmp16_);
1242 id_card_set_services (id, _tmp17_, services_length1);
1243 services = (_vala_array_free (services, services_length1, (GDestroyNotify) g_free), NULL);
1244 __g_slist_free_g_free0 (services_list);
1245 _g_object_unref0 (id);
1250 if (g_slist_length (self->priv->candidates) == 0) {
1252 GeeLinkedList* _tmp18_;
1253 GeeIterator* _tmp19_;
1254 GeeIterator* _id_it;
1255 _id_it = (_tmp19_ = gee_abstract_collection_iterator ((GeeAbstractCollection*) (_tmp18_ = identity_manager_model_get_card_list (self->identities_manager))), _g_object_unref0 (_tmp18_), _tmp19_);
1258 if (!gee_iterator_next (_id_it)) {
1261 id = (IdCard*) gee_iterator_get (_id_it);
1264 Rule* rule_collection;
1265 int rule_collection_length1;
1267 rule_collection = id_card_get_rules (id, &_tmp20_);
1268 rule_collection_length1 = _tmp20_;
1269 for (rule_it = 0; rule_it < _tmp20_; rule_it = rule_it + 1) {
1272 rule = (rule_copy (&rule_collection[rule_it], &_tmp21_), _tmp21_);
1274 if (!identity_manager_view_match_service_pattern (self, request->service, rule.pattern)) {
1275 rule_destroy (&rule);
1278 self->priv->candidates = g_slist_append (self->priv->candidates, _g_object_ref0 (id));
1279 if (_vala_strcmp0 (rule.always_confirm, "true") == 0) {
1282 rule_destroy (&rule);
1286 _g_object_unref0 (id);
1288 _g_object_unref0 (_id_it);
1291 if (g_slist_length (self->priv->candidates) > 1) {
1292 gboolean _tmp22_ = FALSE;
1294 _tmp22_ = nai_provided != NULL;
1300 _data1_->identity = (_tmp23_ = _g_object_ref0 (nai_provided), _g_object_unref0 (_data1_->identity), _tmp23_);
1307 _data1_->identity = (_tmp24_ = _g_object_ref0 ((IdCard*) g_slist_nth_data (self->priv->candidates, (guint) 0)), _g_object_unref0 (_data1_->identity), _tmp24_);
1310 gtk_tree_model_filter_refilter (self->priv->filter);
1311 identity_manager_view_redraw_id_card_widgets (self);
1312 gtk_widget_show ((GtkWidget*) self);
1313 _g_object_unref0 (nai_provided);
1314 block1_data_unref (_data1_);
1317 _g_object_unref0 (nai_provided);
1319 g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, __lambda3__gsource_func, block1_data_ref (_data1_), block1_data_unref);
1320 block1_data_unref (_data1_);
1325 static gboolean identity_manager_view_match_service_pattern (IdentityManagerView* self, const char* service, const char* pattern) {
1326 gboolean result = FALSE;
1327 GPatternSpec* pspec;
1328 g_return_val_if_fail (self != NULL, FALSE);
1329 g_return_val_if_fail (service != NULL, FALSE);
1330 g_return_val_if_fail (pattern != NULL, FALSE);
1331 pspec = g_pattern_spec_new (pattern);
1332 result = g_pattern_match_string (pspec, service);
1333 _g_pattern_spec_free0 (pspec);
1338 void identity_manager_view_send_identity_cb (IdentityManagerView* self, IdCard* identity) {
1339 IdentityRequest* request;
1340 gboolean reset_password;
1341 gboolean _tmp0_ = FALSE;
1343 g_return_if_fail (self != NULL);
1344 g_return_if_fail (identity != NULL);
1345 g_return_if_fail (self->request_queue->length > 0);
1346 request = (IdentityRequest*) g_queue_pop_head (self->request_queue);
1347 reset_password = FALSE;
1348 if (request->service != NULL) {
1349 _tmp0_ = _vala_strcmp0 (request->service, "") != 0;
1354 gint services_length1;
1355 gint _services_size_;
1363 services = (_tmp2_ = g_new0 (char*, (_tmp1_ + 1) + 1), services_length1 = _tmp1_ + 1, _services_size_ = services_length1, _tmp2_);
1378 if (!(i < _tmp4_)) {
1381 services[i] = (_tmp6_ = g_strdup (id_card_get_services (identity, &_tmp5_)[i]), _g_free0 (services[i]), _tmp6_);
1385 services[_tmp7_] = (_tmp9_ = g_strdup (request->service), _g_free0 (services[_tmp7_]), _tmp9_);
1387 id_card_set_services (identity, _tmp10_, services_length1);
1388 services = (_vala_array_free (services, services_length1, (GDestroyNotify) g_free), NULL);
1390 if (id_card_get_password (identity) == NULL) {
1391 AddPasswordDialog* dialog;
1393 dialog = g_object_ref_sink (add_password_dialog_new ());
1394 _result_ = gtk_dialog_run ((GtkDialog*) dialog);
1396 case GTK_RESPONSE_OK:
1398 id_card_set_password (identity, add_password_dialog_get_password (dialog));
1399 reset_password = !add_password_dialog_get_remember (dialog);
1408 gtk_object_destroy ((GtkObject*) dialog);
1409 _g_object_unref0 (dialog);
1411 if (g_queue_is_empty (self->request_queue)) {
1412 gtk_widget_hide ((GtkWidget*) self);
1414 if (identity != NULL) {
1416 self->priv->default_id_card = (_tmp11_ = _g_object_ref0 (identity), _g_object_unref0 (self->priv->default_id_card), _tmp11_);
1418 identity_request_return_identity (request, identity);
1419 if (reset_password) {
1420 id_card_set_password (identity, NULL);
1422 self->priv->candidates = (_tmp12_ = NULL, __g_slist_free_g_object_unref0 (self->priv->candidates), _tmp12_);
1423 _g_object_unref0 (request);
1427 static void identity_manager_view_label_make_bold (IdentityManagerView* self, GtkLabel* label) {
1428 PangoFontDescription* font_desc;
1429 g_return_if_fail (self != NULL);
1430 g_return_if_fail (label != NULL);
1431 font_desc = pango_font_description_new ();
1432 pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD);
1433 gtk_widget_modify_font ((GtkWidget*) label, font_desc);
1434 _pango_font_description_free0 (font_desc);
1438 static void _lambda1_ (GtkButton* remove_button, IdentityManagerView* self) {
1439 GtkMessageDialog* dialog;
1441 g_return_if_fail (remove_button != NULL);
1442 dialog = g_object_ref_sink ((GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _ ("Are you sure you want to stop '%s' ID Card to use %s?"), id_card_get_display_name (id_card_widget_get_id_card (custom_vbox_get_current_idcard (self->priv->custom_vbox)))));
1443 ret = gtk_dialog_run ((GtkDialog*) dialog);
1444 gtk_widget_hide ((GtkWidget*) dialog);
1445 if (ret == GTK_RESPONSE_YES) {
1451 gint _tmp2__length1;
1454 idcard = _g_object_ref0 (id_card_widget_get_id_card (custom_vbox_get_current_idcard (self->priv->custom_vbox)));
1455 candidate = g_strdup ((const char*) g_hash_table_lookup (self->priv->service_button_map, remove_button));
1459 char** srv_collection;
1460 int srv_collection_length1;
1462 srv_collection = id_card_get_services (idcard, &_tmp0_);
1463 srv_collection_length1 = _tmp0_;
1464 for (srv_it = 0; srv_it < _tmp0_; srv_it = srv_it + 1) {
1466 srv = g_strdup (srv_collection[srv_it]);
1468 if (_vala_strcmp0 (srv, candidate) == 0) {
1472 services = g_slist_append (services, g_strdup (srv));
1477 _tmp3_ = (_tmp2_ = g_new0 (char*, (_tmp1_ = g_slist_length (services)) + 1), _tmp2__length1 = _tmp1_, _tmp2_);
1478 id_card_set_services (idcard, _tmp3_, _tmp1_);
1479 _tmp2_ = (_vala_array_free (_tmp2_, _tmp2__length1, (GDestroyNotify) g_free), NULL);
1496 if (!(j < _tmp5_)) {
1499 _tmp8_ = &id_card_get_services (idcard, &_tmp7_)[j];
1500 (*_tmp8_) = (_tmp9_ = g_strdup ((const char*) g_slist_nth_data (services, (guint) j)), _g_free0 ((*_tmp8_)), _tmp9_);
1504 children = gtk_container_get_children ((GtkContainer*) self->priv->services_internal_vbox);
1506 GList* hbox_collection;
1508 hbox_collection = children;
1509 for (hbox_it = hbox_collection; hbox_it != NULL; hbox_it = hbox_it->next) {
1511 hbox = (GtkWidget*) hbox_it->data;
1513 gtk_object_destroy ((GtkObject*) hbox);
1517 identity_manager_view_fill_services_vbox (self, idcard);
1518 id_card_widget_update_id_card_label (custom_vbox_get_current_idcard (self->priv->custom_vbox));
1519 _g_list_free0 (children);
1520 __g_slist_free_g_free0 (services);
1521 _g_free0 (candidate);
1522 _g_object_unref0 (idcard);
1524 _g_object_unref0 (dialog);
1528 static void __lambda1__gtk_button_clicked (GtkButton* _sender, gpointer self) {
1529 _lambda1_ (_sender, self);
1533 static void identity_manager_view_fill_services_vbox (IdentityManagerView* self, IdCard* id_card) {
1537 GtkTable* services_table;
1538 g_return_if_fail (self != NULL);
1539 g_return_if_fail (id_card != NULL);
1542 services_table = g_object_ref_sink ((GtkTable*) gtk_table_new ((guint) n_columns, (guint) 2, FALSE));
1543 gtk_table_set_col_spacings (services_table, (guint) 10);
1544 gtk_table_set_row_spacings (services_table, (guint) 10);
1545 gtk_container_add ((GtkContainer*) self->priv->services_internal_vbox, (GtkWidget*) services_table);
1546 g_hash_table_remove_all (self->priv->service_button_map);
1549 char** service_collection;
1550 int service_collection_length1;
1552 service_collection = id_card_get_services (id_card, &_tmp1_);
1553 service_collection_length1 = _tmp1_;
1554 for (service_it = 0; service_it < _tmp1_; service_it = service_it + 1) {
1556 service = g_strdup (service_collection[service_it]);
1559 GtkButton* remove_button;
1560 label = g_object_ref_sink ((GtkLabel*) gtk_label_new (service));
1561 gtk_misc_set_alignment ((GtkMisc*) label, (float) 0, (float) 0.5);
1562 remove_button = g_object_ref_sink ((GtkButton*) gtk_button_new_from_stock (GTK_STOCK_REMOVE));
1563 g_hash_table_insert (self->priv->service_button_map, _g_object_ref0 (remove_button), g_strdup (service));
1564 g_signal_connect_object (remove_button, "clicked", (GCallback) __lambda1__gtk_button_clicked, self, 0);
1565 gtk_table_attach_defaults (services_table, (GtkWidget*) label, (guint) 0, (guint) 1, (guint) i, (guint) (i + 1));
1566 gtk_table_attach_defaults (services_table, (GtkWidget*) remove_button, (guint) 1, (guint) 2, (guint) i, (guint) (i + 1));
1568 _g_object_unref0 (remove_button);
1569 _g_object_unref0 (label);
1574 gtk_widget_show_all ((GtkWidget*) self->priv->services_internal_vbox);
1575 _g_object_unref0 (services_table);
1579 static void identity_manager_view_on_about_action (IdentityManagerView* self) {
1580 gint authors_length1;
1581 gint _authors_size_;
1583 char** _tmp0_ = NULL;
1587 g_return_if_fail (self != NULL);
1588 authors = (_tmp1_ = (_tmp0_ = g_new0 (char*, 4 + 1), _tmp0_[0] = g_strdup ("Javier Jardón <jjardon@codethink.co.uk>"), _tmp0_[1] = g_strdup ("Sam Thursfield <samthursfield@codethink.co.uk>"), _tmp0_[2] = g_strdup ("Alberto Ruiz <alberto.ruiz@codethink.co.uk>"), _tmp0_[3] = NULL, _tmp0_), authors_length1 = 4, _authors_size_ = authors_length1, _tmp1_);
1589 copyright = g_strdup ("Copyright 2011 JANET");
1590 license = g_strdup ("\n" \
1591 "Copyright (c) 2011, JANET(UK)\n" \
1592 "All rights reserved.\n" \
1594 "Redistribution and use in source and binary forms, with or without\n" \
1595 "modification, are permitted provided that the following conditions\n" \
1598 "1. Redistributions of source code must retain the above copyright\n" \
1599 " notice, this list of conditions and the following disclaimer.\n" \
1601 "2. Redistributions in binary form must reproduce the above copyright\n" \
1602 " notice, this list of conditions and the following disclaimer in the" \
1604 " documentation and/or other materials provided with the distribution" \
1607 "3. Neither the name of JANET(UK) nor the names of its contributors\n" \
1608 " may be used to endorse or promote products derived from this softwa" \
1610 " without specific prior written permission.\n" \
1612 "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \\" \
1614 "AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, " \
1616 "IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PUR" \
1618 "ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS" \
1620 "FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUEN" \
1622 "DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOOD" \
1624 "OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n" \
1625 "HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ST" \
1627 "LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY " \
1629 "OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF" \
1632 gtk_show_about_dialog ((GtkWindow*) self, "comments", _ ("Moonshot project UI"), "copyright", copyright, "website", "http://www.project-moonshot.org/", "license", license, "website-label", _ ("Visit the Moonshot project web site"), "authors", authors, "translator-credits", _ ("translator-credits"), NULL, NULL);
1634 _g_free0 (copyright);
1635 authors = (_vala_array_free (authors, authors_length1, (GDestroyNotify) g_free), NULL);
1639 static void _vala_array_add1 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
1640 if ((*length) == (*size)) {
1641 *size = (*size) ? (2 * (*size)) : 4;
1642 *array = g_renew (GtkActionEntry, *array, *size);
1644 (*array)[(*length)++] = *value;
1648 static void _identity_manager_view_add_identity_manual_cb_gtk_action_callback (GtkAction* action, gpointer self) {
1649 identity_manager_view_add_identity_manual_cb (self);
1653 static void _vala_array_add2 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
1654 if ((*length) == (*size)) {
1655 *size = (*size) ? (2 * (*size)) : 4;
1656 *array = g_renew (GtkActionEntry, *array, *size);
1658 (*array)[(*length)++] = *value;
1662 static void _gtk_main_quit_gtk_action_callback (GtkAction* action, gpointer self) {
1667 static void _vala_array_add3 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
1668 if ((*length) == (*size)) {
1669 *size = (*size) ? (2 * (*size)) : 4;
1670 *array = g_renew (GtkActionEntry, *array, *size);
1672 (*array)[(*length)++] = *value;
1676 static void _vala_array_add4 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
1677 if ((*length) == (*size)) {
1678 *size = (*size) ? (2 * (*size)) : 4;
1679 *array = g_renew (GtkActionEntry, *array, *size);
1681 (*array)[(*length)++] = *value;
1685 static void _identity_manager_view_on_about_action_gtk_action_callback (GtkAction* action, gpointer self) {
1686 identity_manager_view_on_about_action (self);
1690 static void _vala_array_add5 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
1691 if ((*length) == (*size)) {
1692 *size = (*size) ? (2 * (*size)) : 4;
1693 *array = g_renew (GtkActionEntry, *array, *size);
1695 (*array)[(*length)++] = *value;
1699 static GtkActionEntry* identity_manager_view_create_actions (IdentityManagerView* self, int* result_length1) {
1700 GtkActionEntry* result = NULL;
1701 gint actions_length1;
1702 gint _actions_size_;
1703 GtkActionEntry* _tmp0_;
1704 GtkActionEntry* actions;
1705 GtkActionEntry _tmp1_ = {0};
1706 GtkActionEntry filemenu;
1707 GtkActionEntry _tmp2_ = {0};
1709 GtkActionEntry _tmp3_ = {0};
1710 GtkActionEntry quit;
1711 GtkActionEntry _tmp4_ = {0};
1712 GtkActionEntry helpmenu;
1713 GtkActionEntry _tmp5_ = {0};
1714 GtkActionEntry about;
1715 GtkActionEntry* _tmp6_;
1716 g_return_val_if_fail (self != NULL, NULL);
1717 actions = (_tmp0_ = g_new0 (GtkActionEntry, 0), actions_length1 = 0, _actions_size_ = actions_length1, _tmp0_);
1718 filemenu = (_tmp1_.name = "FileMenuAction", _tmp1_.stock_id = NULL, _tmp1_.label = N_ ("_File"), _tmp1_.accelerator = NULL, _tmp1_.tooltip = NULL, _tmp1_.callback = (GCallback) NULL, _tmp1_);
1719 _vala_array_add1 (&actions, &actions_length1, &_actions_size_, &filemenu);
1720 add = (_tmp2_.name = "AddIdCardAction", _tmp2_.stock_id = GTK_STOCK_ADD, _tmp2_.label = N_ ("Add ID Card"), _tmp2_.accelerator = NULL, _tmp2_.tooltip = N_ ("Add a new ID Card"), _tmp2_.callback = (GCallback) _identity_manager_view_add_identity_manual_cb_gtk_action_callback, _tmp2_);
1721 _vala_array_add2 (&actions, &actions_length1, &_actions_size_, &add);
1722 quit = (_tmp3_.name = "QuitAction", _tmp3_.stock_id = GTK_STOCK_QUIT, _tmp3_.label = N_ ("Quit"), _tmp3_.accelerator = "<control>Q", _tmp3_.tooltip = N_ ("Quit the application"), _tmp3_.callback = (GCallback) _gtk_main_quit_gtk_action_callback, _tmp3_);
1723 _vala_array_add3 (&actions, &actions_length1, &_actions_size_, &quit);
1724 helpmenu = (_tmp4_.name = "HelpMenuAction", _tmp4_.stock_id = NULL, _tmp4_.label = N_ ("_Help"), _tmp4_.accelerator = NULL, _tmp4_.tooltip = NULL, _tmp4_.callback = (GCallback) NULL, _tmp4_);
1725 _vala_array_add4 (&actions, &actions_length1, &_actions_size_, &helpmenu);
1726 about = (_tmp5_.name = "AboutAction", _tmp5_.stock_id = GTK_STOCK_ABOUT, _tmp5_.label = N_ ("About"), _tmp5_.accelerator = NULL, _tmp5_.tooltip = N_ ("About this application"), _tmp5_.callback = (GCallback) _identity_manager_view_on_about_action_gtk_action_callback, _tmp5_);
1727 _vala_array_add5 (&actions, &actions_length1, &_actions_size_, &about);
1728 result = (_tmp6_ = actions, *result_length1 = actions_length1, _tmp6_);
1730 actions = (g_free (actions), NULL);
1734 static void identity_manager_view_create_ui_manager (IdentityManagerView* self) {
1735 GtkActionGroup* action_group;
1737 GtkActionEntry* _tmp1_;
1738 gint _tmp1__length1;
1739 GtkActionEntry* _tmp2_;
1740 GError * _inner_error_ = NULL;
1741 g_return_if_fail (self != NULL);
1742 action_group = gtk_action_group_new ("GeneralActionGroup");
1743 _tmp2_ = (_tmp1_ = identity_manager_view_create_actions (self, &_tmp0_), _tmp1__length1 = _tmp0_, _tmp1_);
1744 gtk_action_group_add_actions (action_group, _tmp2_, _tmp0_, self);
1745 _tmp1_ = (g_free (_tmp1_), NULL);
1746 gtk_ui_manager_insert_action_group (self->priv->ui_manager, action_group, 0);
1748 gtk_ui_manager_add_ui_from_string (self->priv->ui_manager, IDENTITY_MANAGER_VIEW_layout, (gssize) (-1), &_inner_error_);
1749 if (_inner_error_ != NULL) {
1750 goto __catch1_g_error;
1758 _inner_error_ = NULL;
1760 fprintf (stderr, "%s\n", e->message);
1765 if (_inner_error_ != NULL) {
1766 _g_object_unref0 (action_group);
1767 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);
1768 g_clear_error (&_inner_error_);
1771 gtk_ui_manager_ensure_update (self->priv->ui_manager);
1772 _g_object_unref0 (action_group);
1776 static void _identity_manager_view_search_entry_icon_press_cb_gtk_entry_icon_press (GtkEntry* _sender, GtkEntryIconPosition p0, GdkEvent* p1, gpointer self) {
1777 identity_manager_view_search_entry_icon_press_cb (self, p0, p1);
1781 static void _identity_manager_view_search_entry_text_changed_cb_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
1782 identity_manager_view_search_entry_text_changed_cb (self);
1786 static gboolean _identity_manager_view_search_entry_key_press_event_cb_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self) {
1788 result = identity_manager_view_search_entry_key_press_event_cb (self, event);
1793 static void identity_manager_view_build_ui (IdentityManagerView* self) {
1798 GtkViewport* viewport;
1799 GtkScrolledWindow* scroll;
1801 GtkLabel* login_vbox_title;
1802 GtkLabel* username_label;
1804 GtkLabel* password_label;
1806 GtkCheckButton* remember_checkbutton;
1807 GtkTable* login_table;
1808 GtkAlignment* login_vbox_alignment;
1809 GtkVBox* login_vbox;
1810 GtkLabel* services_vbox_title;
1811 GtkAlignment* services_vbox_alignment;
1813 GtkVBox* services_vbox;
1818 g_return_if_fail (self != NULL);
1819 identity_manager_view_create_ui_manager (self);
1820 self->priv->search_entry = (_tmp0_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), _g_object_unref0 (self->priv->search_entry), _tmp0_);
1821 identity_manager_view_set_atk_name_description (self, (GtkWidget*) self->priv->search_entry, _ ("Search entry"), _ ("Search for a specific ID Card"));
1822 gtk_entry_set_icon_from_pixbuf (self->priv->search_entry, GTK_ENTRY_ICON_PRIMARY, _tmp1_ = find_icon_sized ("edit-find", GTK_ICON_SIZE_MENU));
1823 _g_object_unref0 (_tmp1_);
1824 gtk_entry_set_icon_tooltip_text (self->priv->search_entry, GTK_ENTRY_ICON_PRIMARY, _ ("Search identity or service"));
1825 gtk_entry_set_icon_sensitive (self->priv->search_entry, GTK_ENTRY_ICON_PRIMARY, FALSE);
1826 gtk_entry_set_icon_from_pixbuf (self->priv->search_entry, GTK_ENTRY_ICON_SECONDARY, _tmp2_ = find_icon_sized ("process-stop", GTK_ICON_SIZE_MENU));
1827 _g_object_unref0 (_tmp2_);
1828 gtk_entry_set_icon_tooltip_text (self->priv->search_entry, GTK_ENTRY_ICON_SECONDARY, _ ("Clear the current search"));
1829 gtk_entry_set_icon_sensitive (self->priv->search_entry, GTK_ENTRY_ICON_SECONDARY, FALSE);
1830 g_signal_connect_object (self->priv->search_entry, "icon-press", (GCallback) _identity_manager_view_search_entry_icon_press_cb_gtk_entry_icon_press, self, 0);
1831 g_signal_connect_object ((GObject*) self->priv->search_entry, "notify::text", (GCallback) _identity_manager_view_search_entry_text_changed_cb_g_object_notify, self, 0);
1832 g_signal_connect_object ((GtkWidget*) self->priv->search_entry, "key-press-event", (GCallback) _identity_manager_view_search_entry_key_press_event_cb_gtk_widget_key_press_event, self, 0);
1833 self->priv->custom_vbox = (_tmp3_ = g_object_ref_sink (custom_vbox_new (self, FALSE, 6)), _g_object_unref0 (self->priv->custom_vbox), _tmp3_);
1834 viewport = g_object_ref_sink ((GtkViewport*) gtk_viewport_new (NULL, NULL));
1835 gtk_container_set_border_width ((GtkContainer*) viewport, (guint) 6);
1836 gtk_viewport_set_shadow_type (viewport, GTK_SHADOW_NONE);
1837 gtk_container_add ((GtkContainer*) viewport, (GtkWidget*) self->priv->custom_vbox);
1838 scroll = g_object_ref_sink ((GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL));
1839 gtk_scrolled_window_set_policy (scroll, GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
1840 gtk_scrolled_window_set_shadow_type (scroll, GTK_SHADOW_IN);
1841 gtk_scrolled_window_add_with_viewport (scroll, (GtkWidget*) viewport);
1842 vbox_left = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 0));
1843 gtk_box_pack_start ((GtkBox*) vbox_left, (GtkWidget*) self->priv->search_entry, FALSE, FALSE, (guint) 6);
1844 gtk_box_pack_start ((GtkBox*) vbox_left, (GtkWidget*) scroll, TRUE, TRUE, (guint) 0);
1845 gtk_widget_set_size_request ((GtkWidget*) vbox_left, IDENTITY_MANAGER_VIEW_WINDOW_WIDTH, 0);
1846 login_vbox_title = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Login: ")));
1847 identity_manager_view_label_make_bold (self, login_vbox_title);
1848 gtk_misc_set_alignment ((GtkMisc*) login_vbox_title, (float) 0, (float) 0.5);
1849 username_label = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Username:")));
1850 gtk_misc_set_alignment ((GtkMisc*) username_label, (float) 1, (float) 0.5);
1851 self->priv->username_entry = (_tmp4_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), _g_object_unref0 (self->priv->username_entry), _tmp4_);
1852 password_label = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Password:")));
1853 gtk_misc_set_alignment ((GtkMisc*) password_label, (float) 1, (float) 0.5);
1854 self->priv->password_entry = (_tmp5_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), _g_object_unref0 (self->priv->password_entry), _tmp5_);
1855 gtk_entry_set_invisible_char (self->priv->password_entry, (gunichar) '*');
1856 gtk_entry_set_visibility (self->priv->password_entry, FALSE);
1857 remember_checkbutton = g_object_ref_sink ((GtkCheckButton*) gtk_check_button_new_with_label (_ ("Remember password")));
1858 login_table = g_object_ref_sink ((GtkTable*) gtk_table_new ((guint) 3, (guint) 3, FALSE));
1859 gtk_table_set_col_spacings (login_table, (guint) 10);
1860 gtk_table_set_row_spacings (login_table, (guint) 10);
1861 gtk_table_attach_defaults (login_table, (GtkWidget*) username_label, (guint) 0, (guint) 1, (guint) 0, (guint) 1);
1862 gtk_table_attach_defaults (login_table, (GtkWidget*) self->priv->username_entry, (guint) 1, (guint) 2, (guint) 0, (guint) 1);
1863 gtk_table_attach_defaults (login_table, (GtkWidget*) password_label, (guint) 0, (guint) 1, (guint) 1, (guint) 2);
1864 gtk_table_attach_defaults (login_table, (GtkWidget*) self->priv->password_entry, (guint) 1, (guint) 2, (guint) 1, (guint) 2);
1865 gtk_table_attach_defaults (login_table, (GtkWidget*) remember_checkbutton, (guint) 1, (guint) 2, (guint) 2, (guint) 3);
1866 login_vbox_alignment = g_object_ref_sink ((GtkAlignment*) gtk_alignment_new ((float) 0, (float) 0, (float) 0, (float) 0));
1867 gtk_alignment_set_padding (login_vbox_alignment, (guint) 0, (guint) 0, (guint) 12, (guint) 0);
1868 gtk_container_add ((GtkContainer*) login_vbox_alignment, (GtkWidget*) login_table);
1869 login_vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 6));
1870 gtk_box_pack_start ((GtkBox*) login_vbox, (GtkWidget*) login_vbox_title, FALSE, TRUE, (guint) 0);
1871 gtk_box_pack_start ((GtkBox*) login_vbox, (GtkWidget*) login_vbox_alignment, FALSE, TRUE, (guint) 0);
1872 services_vbox_title = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Services:")));
1873 identity_manager_view_label_make_bold (self, services_vbox_title);
1874 gtk_misc_set_alignment ((GtkMisc*) services_vbox_title, (float) 0, (float) 0.5);
1875 services_vbox_alignment = g_object_ref_sink ((GtkAlignment*) gtk_alignment_new ((float) 0, (float) 0, (float) 0, (float) 0));
1876 gtk_alignment_set_padding (services_vbox_alignment, (guint) 0, (guint) 0, (guint) 12, (guint) 0);
1877 self->priv->services_internal_vbox = (_tmp6_ = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (TRUE, 6)), _g_object_unref0 (self->priv->services_internal_vbox), _tmp6_);
1878 gtk_container_add ((GtkContainer*) services_vbox_alignment, (GtkWidget*) self->priv->services_internal_vbox);
1879 services_vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 6));
1880 gtk_box_pack_start ((GtkBox*) services_vbox, (GtkWidget*) services_vbox_title, FALSE, TRUE, (guint) 0);
1881 gtk_box_pack_start ((GtkBox*) services_vbox, (GtkWidget*) services_vbox_alignment, FALSE, TRUE, (guint) 0);
1882 self->priv->vbox_right = (_tmp7_ = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 18)), _g_object_unref0 (self->priv->vbox_right), _tmp7_);
1883 gtk_box_pack_start ((GtkBox*) self->priv->vbox_right, (GtkWidget*) login_vbox, FALSE, TRUE, (guint) 0);
1884 gtk_box_pack_start ((GtkBox*) self->priv->vbox_right, (GtkWidget*) services_vbox, FALSE, TRUE, (guint) 0);
1885 hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 12));
1886 gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) vbox_left, TRUE, TRUE, (guint) 0);
1887 gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) self->priv->vbox_right, FALSE, FALSE, (guint) 0);
1888 main_vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 0));
1889 gtk_container_set_border_width ((GtkContainer*) main_vbox, (guint) 12);
1890 menubar = _g_object_ref0 (gtk_ui_manager_get_widget (self->priv->ui_manager, "/MenuBar"));
1891 gtk_box_pack_start ((GtkBox*) main_vbox, menubar, FALSE, FALSE, (guint) 0);
1892 gtk_box_pack_start ((GtkBox*) main_vbox, (GtkWidget*) hbox, TRUE, TRUE, (guint) 0);
1893 gtk_container_add ((GtkContainer*) self, (GtkWidget*) main_vbox);
1894 gtk_widget_show_all ((GtkWidget*) main_vbox);
1895 gtk_widget_hide ((GtkWidget*) self->priv->vbox_right);
1896 _g_object_unref0 (menubar);
1897 _g_object_unref0 (main_vbox);
1898 _g_object_unref0 (hbox);
1899 _g_object_unref0 (services_vbox);
1900 _g_object_unref0 (services_vbox_alignment);
1901 _g_object_unref0 (services_vbox_title);
1902 _g_object_unref0 (login_vbox);
1903 _g_object_unref0 (login_vbox_alignment);
1904 _g_object_unref0 (login_table);
1905 _g_object_unref0 (remember_checkbutton);
1906 _g_object_unref0 (password_label);
1907 _g_object_unref0 (username_label);
1908 _g_object_unref0 (login_vbox_title);
1909 _g_object_unref0 (vbox_left);
1910 _g_object_unref0 (scroll);
1911 _g_object_unref0 (viewport);
1915 static void identity_manager_view_set_atk_name_description (IdentityManagerView* self, GtkWidget* widget, const char* name, const char* description) {
1916 AtkObject* atk_widget;
1917 g_return_if_fail (self != NULL);
1918 g_return_if_fail (widget != NULL);
1919 g_return_if_fail (name != NULL);
1920 g_return_if_fail (description != NULL);
1921 atk_widget = _g_object_ref0 (gtk_widget_get_accessible (widget));
1922 atk_object_set_name (atk_widget, name);
1923 atk_object_set_description (atk_widget, description);
1924 _g_object_unref0 (atk_widget);
1928 static void _gtk_main_quit_gtk_object_destroy (GtkObject* _sender, gpointer self) {
1933 static void _identity_manager_view_on_card_list_changed_identity_manager_model_card_list_changed (IdentityManagerModel* _sender, gpointer self) {
1934 identity_manager_view_on_card_list_changed (self);
1938 static void identity_manager_view_connect_signals (IdentityManagerView* self) {
1939 g_return_if_fail (self != NULL);
1940 g_signal_connect ((GtkObject*) self, "destroy", (GCallback) _gtk_main_quit_gtk_object_destroy, NULL);
1941 g_signal_connect_object (self->identities_manager, "card-list-changed", (GCallback) _identity_manager_view_on_card_list_changed_identity_manager_model_card_list_changed, self, 0);
1945 static void identity_manager_view_class_init (IdentityManagerViewClass * klass) {
1946 identity_manager_view_parent_class = g_type_class_peek_parent (klass);
1947 g_type_class_add_private (klass, sizeof (IdentityManagerViewPrivate));
1948 G_OBJECT_CLASS (klass)->finalize = identity_manager_view_finalize;
1952 static void identity_manager_view_instance_init (IdentityManagerView * self) {
1953 self->priv = IDENTITY_MANAGER_VIEW_GET_PRIVATE (self);
1954 self->priv->ui_manager = gtk_ui_manager_new ();
1958 static void identity_manager_view_finalize (GObject* obj) {
1959 IdentityManagerView * self;
1960 self = IDENTITY_MANAGER_VIEW (obj);
1961 _g_object_unref0 (self->parent_app);
1962 _g_object_unref0 (self->priv->ui_manager);
1963 _g_object_unref0 (self->priv->search_entry);
1964 _g_object_unref0 (self->priv->vbox_right);
1965 _g_object_unref0 (self->priv->custom_vbox);
1966 _g_object_unref0 (self->priv->services_internal_vbox);
1967 _g_object_unref0 (self->priv->username_entry);
1968 _g_object_unref0 (self->priv->password_entry);
1969 _g_object_unref0 (self->priv->filter);
1970 _g_object_unref0 (self->identities_manager);
1971 __g_slist_free_g_object_unref0 (self->priv->candidates);
1972 _g_object_unref0 (self->priv->default_id_card);
1973 _g_queue_free0 (self->request_queue);
1974 _g_hash_table_unref0 (self->priv->service_button_map);
1975 G_OBJECT_CLASS (identity_manager_view_parent_class)->finalize (obj);
1979 GType identity_manager_view_get_type (void) {
1980 static volatile gsize identity_manager_view_type_id__volatile = 0;
1981 if (g_once_init_enter (&identity_manager_view_type_id__volatile)) {
1982 static const GTypeInfo g_define_type_info = { sizeof (IdentityManagerViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) identity_manager_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (IdentityManagerView), 0, (GInstanceInitFunc) identity_manager_view_instance_init, NULL };
1983 GType identity_manager_view_type_id;
1984 identity_manager_view_type_id = g_type_register_static (GTK_TYPE_WINDOW, "IdentityManagerView", &g_define_type_info, 0);
1985 g_once_init_leave (&identity_manager_view_type_id__volatile, identity_manager_view_type_id);
1987 return identity_manager_view_type_id__volatile;
1991 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
1992 if ((array != NULL) && (destroy_func != NULL)) {
1994 for (i = 0; i < array_length; i = i + 1) {
1995 if (((gpointer*) array)[i] != NULL) {
1996 destroy_func (((gpointer*) array)[i]);
2003 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
2004 _vala_array_destroy (array, array_length, destroy_func);
2009 static gint _vala_array_length (gpointer array) {
2013 while (((gpointer*) array)[length]) {
2021 static int _vala_strcmp0 (const char * str1, const char * str2) {
2023 return -(str1 != str2);
2026 return str1 != str2;
2028 return strcmp (str1, str2);