1 /* moonshot-window.c generated by valac 0.10.4, the Vala compiler
2 * generated from moonshot-window.vala, do not modify */
6 #include <glib-object.h>
10 #include <gdk-pixbuf/gdk-pixdata.h>
12 #include <glib/gi18n-lib.h>
13 #include <pango/pango.h>
18 #include <dbus/dbus-glib-lowlevel.h>
19 #include <dbus/dbus-glib.h>
20 #include <dbus/dbus.h>
24 #define TYPE_MAIN_WINDOW (main_window_get_type ())
25 #define MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MAIN_WINDOW, MainWindow))
26 #define MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MAIN_WINDOW, MainWindowClass))
27 #define IS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MAIN_WINDOW))
28 #define IS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MAIN_WINDOW))
29 #define MAIN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MAIN_WINDOW, MainWindowClass))
31 typedef struct _MainWindow MainWindow;
32 typedef struct _MainWindowClass MainWindowClass;
33 typedef struct _MainWindowPrivate MainWindowPrivate;
35 #define TYPE_ID_CARD_WIDGET (id_card_widget_get_type ())
36 #define ID_CARD_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD_WIDGET, IdCardWidget))
37 #define ID_CARD_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD_WIDGET, IdCardWidgetClass))
38 #define IS_ID_CARD_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD_WIDGET))
39 #define IS_ID_CARD_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD_WIDGET))
40 #define ID_CARD_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD_WIDGET, IdCardWidgetClass))
42 typedef struct _IdCardWidget IdCardWidget;
43 typedef struct _IdCardWidgetClass IdCardWidgetClass;
45 #define TYPE_CUSTOM_VBOX (custom_vbox_get_type ())
46 #define CUSTOM_VBOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CUSTOM_VBOX, CustomVBox))
47 #define CUSTOM_VBOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CUSTOM_VBOX, CustomVBoxClass))
48 #define IS_CUSTOM_VBOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CUSTOM_VBOX))
49 #define IS_CUSTOM_VBOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CUSTOM_VBOX))
50 #define CUSTOM_VBOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CUSTOM_VBOX, CustomVBoxClass))
52 typedef struct _CustomVBox CustomVBox;
53 typedef struct _CustomVBoxClass CustomVBoxClass;
55 #define TYPE_IDENTITIES_MANAGER (identities_manager_get_type ())
56 #define IDENTITIES_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITIES_MANAGER, IdentitiesManager))
57 #define IDENTITIES_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITIES_MANAGER, IdentitiesManagerClass))
58 #define IS_IDENTITIES_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITIES_MANAGER))
59 #define IS_IDENTITIES_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITIES_MANAGER))
60 #define IDENTITIES_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITIES_MANAGER, IdentitiesManagerClass))
62 typedef struct _IdentitiesManager IdentitiesManager;
63 typedef struct _IdentitiesManagerClass IdentitiesManagerClass;
65 #define TYPE_MOONSHOT_SERVER (moonshot_server_get_type ())
66 #define MOONSHOT_SERVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MOONSHOT_SERVER, MoonshotServer))
67 #define MOONSHOT_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MOONSHOT_SERVER, MoonshotServerClass))
68 #define IS_MOONSHOT_SERVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MOONSHOT_SERVER))
69 #define IS_MOONSHOT_SERVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MOONSHOT_SERVER))
70 #define MOONSHOT_SERVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MOONSHOT_SERVER, MoonshotServerClass))
72 typedef struct _MoonshotServer MoonshotServer;
73 typedef struct _MoonshotServerClass MoonshotServerClass;
75 #define TYPE_IDENTITY_REQUEST (identity_request_get_type ())
76 #define IDENTITY_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_IDENTITY_REQUEST, IdentityRequest))
77 #define IDENTITY_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_IDENTITY_REQUEST, IdentityRequestClass))
78 #define IS_IDENTITY_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_IDENTITY_REQUEST))
79 #define IS_IDENTITY_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_IDENTITY_REQUEST))
80 #define IDENTITY_REQUEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_IDENTITY_REQUEST, IdentityRequestClass))
82 typedef struct _IdentityRequest IdentityRequest;
83 typedef struct _IdentityRequestClass IdentityRequestClass;
85 #define MAIN_WINDOW_TYPE_COLUMNS (main_window_columns_get_type ())
86 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
87 #define _g_queue_free0(var) ((var == NULL) ? NULL : (var = (g_queue_free (var), NULL)))
88 #define _g_free0(var) (var = (g_free (var), NULL))
90 #define TYPE_ID_CARD (id_card_get_type ())
91 #define ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ID_CARD, IdCard))
92 #define ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ID_CARD, IdCardClass))
93 #define IS_ID_CARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ID_CARD))
94 #define IS_ID_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ID_CARD))
95 #define ID_CARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ID_CARD, IdCardClass))
97 typedef struct _IdCard IdCard;
98 typedef struct _IdCardClass IdCardClass;
99 typedef struct _IdentitiesManagerPrivate IdentitiesManagerPrivate;
100 #define _g_list_free0(var) ((var == NULL) ? NULL : (var = (g_list_free (var), NULL)))
102 #define TYPE_ADD_IDENTITY_DIALOG (add_identity_dialog_get_type ())
103 #define ADD_IDENTITY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADD_IDENTITY_DIALOG, AddIdentityDialog))
104 #define ADD_IDENTITY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADD_IDENTITY_DIALOG, AddIdentityDialogClass))
105 #define IS_ADD_IDENTITY_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADD_IDENTITY_DIALOG))
106 #define IS_ADD_IDENTITY_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADD_IDENTITY_DIALOG))
107 #define ADD_IDENTITY_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADD_IDENTITY_DIALOG, AddIdentityDialogClass))
109 typedef struct _AddIdentityDialog AddIdentityDialog;
110 typedef struct _AddIdentityDialogClass AddIdentityDialogClass;
112 #define TYPE_ADD_PASSWORD_DIALOG (add_password_dialog_get_type ())
113 #define ADD_PASSWORD_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_ADD_PASSWORD_DIALOG, AddPasswordDialog))
114 #define ADD_PASSWORD_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_ADD_PASSWORD_DIALOG, AddPasswordDialogClass))
115 #define IS_ADD_PASSWORD_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_ADD_PASSWORD_DIALOG))
116 #define IS_ADD_PASSWORD_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_ADD_PASSWORD_DIALOG))
117 #define ADD_PASSWORD_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_ADD_PASSWORD_DIALOG, AddPasswordDialogClass))
119 typedef struct _AddPasswordDialog AddPasswordDialog;
120 typedef struct _AddPasswordDialogClass AddPasswordDialogClass;
121 #define _pango_font_description_free0(var) ((var == NULL) ? NULL : (var = (pango_font_description_free (var), NULL)))
122 #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
123 #define _dbus_g_connection_unref0(var) ((var == NULL) ? NULL : (var = (dbus_g_connection_unref (var), NULL)))
124 typedef struct _DBusObjectVTable _DBusObjectVTable;
127 GtkWindow parent_instance;
128 MainWindowPrivate * priv;
129 IdCardWidget* selected_id_card_widget;
132 struct _MainWindowClass {
133 GtkWindowClass parent_class;
136 struct _MainWindowPrivate {
137 GtkUIManager* ui_manager;
138 GtkEntry* search_entry;
140 CustomVBox* custom_vbox;
141 GtkVBox* services_internal_vbox;
142 GtkEntry* username_entry;
143 GtkEntry* password_entry;
144 GtkListStore* listmodel;
145 GtkTreeModelFilter* filter;
146 IdentitiesManager* identities_manager;
147 MoonshotServer* ipc_server;
148 GQueue* request_queue;
152 MAIN_WINDOW_COLUMNS_IDCARD_COL,
153 MAIN_WINDOW_COLUMNS_LOGO_COL,
154 MAIN_WINDOW_COLUMNS_ISSUER_COL,
155 MAIN_WINDOW_COLUMNS_USERNAME_COL,
156 MAIN_WINDOW_COLUMNS_PASSWORD_COL,
157 MAIN_WINDOW_COLUMNS_N_COLUMNS
160 struct _IdentitiesManager {
161 GObject parent_instance;
162 IdentitiesManagerPrivate * priv;
163 GSList* id_card_list;
166 struct _IdentitiesManagerClass {
167 GObjectClass parent_class;
170 struct _DBusObjectVTable {
171 void (*register_object) (DBusConnection*, const char*, void*);
175 static gpointer main_window_parent_class = NULL;
177 GType main_window_get_type (void) G_GNUC_CONST;
178 GType id_card_widget_get_type (void) G_GNUC_CONST;
179 GType custom_vbox_get_type (void) G_GNUC_CONST;
180 GType identities_manager_get_type (void) G_GNUC_CONST;
181 GType moonshot_server_get_type (void) G_GNUC_CONST;
182 GType identity_request_get_type (void) G_GNUC_CONST;
183 #define MAIN_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MAIN_WINDOW, MainWindowPrivate))
185 MAIN_WINDOW_DUMMY_PROPERTY
187 static GType main_window_columns_get_type (void) G_GNUC_UNUSED;
188 #define MAIN_WINDOW_WINDOW_WIDTH 400
189 #define MAIN_WINDOW_WINDOW_HEIGHT 500
190 #define MAIN_WINDOW_layout "\n" \
191 "<menubar name='MenuBar'>\n" \
192 " <menu name='FileMenu' action='FileMenuAction'>\n" \
193 " <menuitem name='AddIdCard' action='AddIdCardAction' />\n" \
195 " <menuitem name='Quit' action='QuitAction' />\n" \
198 " <menu name='HelpMenu' action='HelpMenuAction'>\n" \
199 " <menuitem name='About' action='AboutAction' />\n" \
202 MainWindow* main_window_new (void);
203 MainWindow* main_window_construct (GType object_type);
204 static void main_window_build_ui (MainWindow* self);
205 static void main_window_setup_identities_list (MainWindow* self);
206 static void main_window_load_gss_eap_id_file (MainWindow* self);
207 static void main_window_connect_signals (MainWindow* self);
208 static void main_window_init_ipc_server (MainWindow* self);
209 static gboolean main_window_visible_func (MainWindow* self, GtkTreeModel* model, GtkTreeIter* iter);
210 GType id_card_get_type (void) G_GNUC_CONST;
211 static gboolean _main_window_visible_func_gtk_tree_model_filter_visible_func (GtkTreeModel* model, GtkTreeIter* iter, gpointer self);
212 static void main_window_search_entry_icon_press_cb (MainWindow* self, GtkEntryIconPosition pos, GdkEvent* event);
213 static void main_window_search_entry_text_changed_cb (MainWindow* self);
214 static void main_window_redraw_id_card_widgets (MainWindow* self);
215 static gboolean main_window_search_entry_key_press_event_cb (MainWindow* self, GdkEventKey* e);
216 IdentitiesManager* identities_manager_new (void);
217 IdentitiesManager* identities_manager_construct (GType object_type);
218 IdCard* identities_manager_load_gss_eap_id_file (IdentitiesManager* self);
219 static void main_window_add_id_card_data (MainWindow* self, IdCard* id_card);
220 static void main_window_add_id_card_widget (MainWindow* self, IdCard* id_card);
221 static void main_window_load_id_cards (MainWindow* self);
222 static void main_window_fill_details (MainWindow* self, IdCardWidget* id_card_widget);
223 IdCard* id_card_widget_get_id_card (IdCardWidget* self);
224 const char* id_card_get_username (IdCard* self);
225 const char* id_card_get_password (IdCard* self);
226 static void main_window_fill_services_vbox (MainWindow* self, IdCard* id_card);
227 static void main_window_show_details (MainWindow* self, IdCard* id_card);
228 static void main_window_details_identity_cb (MainWindow* self, IdCardWidget* id_card_widget);
229 GType add_identity_dialog_get_type (void) G_GNUC_CONST;
230 static IdCard* main_window_get_id_card_data (MainWindow* self, AddIdentityDialog* dialog);
231 IdCard* id_card_new (void);
232 IdCard* id_card_construct (GType object_type);
233 const char* add_identity_dialog_get_issuer (AddIdentityDialog* self);
234 void id_card_set_issuer (IdCard* self, const char* value);
235 const char* id_card_get_issuer (IdCard* self);
236 const char* add_identity_dialog_get_username (AddIdentityDialog* self);
237 void id_card_set_username (IdCard* self, const char* value);
238 const char* add_identity_dialog_get_password (AddIdentityDialog* self);
239 void id_card_set_password (IdCard* self, const char* value);
240 void id_card_set_nai (IdCard* self, const char* value);
241 GdkPixbuf* find_icon (const char* name, gint size);
242 void id_card_set_pixbuf (IdCard* self, GdkPixbuf* value);
243 void id_card_set_services (IdCard* self, char** value, int value_length1);
244 GdkPixbuf* id_card_get_pixbuf (IdCard* self);
245 static void main_window_remove_id_card_data (MainWindow* self, IdCard* id_card);
246 IdCardWidget* id_card_widget_new (IdCard* id_card);
247 IdCardWidget* id_card_widget_construct (GType object_type, IdCard* id_card);
248 void custom_vbox_add_id_card_widget (CustomVBox* self, IdCardWidget* id_card_widget);
249 static void _main_window_details_identity_cb_id_card_widget_details_id (IdCardWidget* _sender, gpointer self);
250 static void main_window_remove_identity_cb (MainWindow* self, IdCardWidget* id_card_widget);
251 static void _main_window_remove_identity_cb_id_card_widget_remove_id (IdCardWidget* _sender, gpointer self);
252 void main_window_send_identity_cb (MainWindow* self, IdCardWidget* id_card_widget);
253 static void _main_window_send_identity_cb_id_card_widget_send_id (IdCardWidget* _sender, gpointer self);
254 void custom_vbox_receive_expanded_event (CustomVBox* self, IdCardWidget* id_card_widget);
255 static void _custom_vbox_receive_expanded_event_id_card_widget_expanded (IdCardWidget* _sender, gpointer self);
256 static void _main_window_fill_details_id_card_widget_expanded (IdCardWidget* _sender, gpointer self);
257 static void main_window_add_identity (MainWindow* self, AddIdentityDialog* dialog);
258 void identities_manager_store_id_cards (IdentitiesManager* self);
259 void identities_manager_store_gss_eap_id_file (IdentitiesManager* self, IdCard* id_card);
260 static void main_window_add_identity_cb (MainWindow* self);
261 AddIdentityDialog* add_identity_dialog_new (void);
262 AddIdentityDialog* add_identity_dialog_construct (GType object_type);
263 static void main_window_remove_id_card_widget (MainWindow* self, IdCardWidget* id_card_widget);
264 void custom_vbox_remove_id_card_widget (CustomVBox* self, IdCardWidget* id_card_widget);
265 static void main_window_remove_identity (MainWindow* self, IdCardWidget* id_card_widget);
266 void main_window_select_identity (MainWindow* self, IdentityRequest* request);
267 AddPasswordDialog* add_password_dialog_new (void);
268 AddPasswordDialog* add_password_dialog_construct (GType object_type);
269 GType add_password_dialog_get_type (void) G_GNUC_CONST;
270 const char* add_password_dialog_get_password (AddPasswordDialog* self);
271 gboolean add_password_dialog_get_remember (AddPasswordDialog* self);
272 void identity_request_return_identity (IdentityRequest* self, IdCard* id_card);
273 static void main_window_label_make_bold (MainWindow* self, GtkLabel* label);
274 char** id_card_get_services (IdCard* self, int* result_length1);
275 static void main_window_on_about_action (MainWindow* self);
276 static GtkActionEntry* main_window_create_actions (MainWindow* self, int* result_length1);
277 static void _vala_array_add1 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
278 static void _main_window_add_identity_cb_gtk_action_callback (GtkAction* action, gpointer self);
279 static void _vala_array_add2 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
280 static void _gtk_main_quit_gtk_action_callback (GtkAction* action, gpointer self);
281 static void _vala_array_add3 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
282 static void _vala_array_add4 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
283 static void _main_window_on_about_action_gtk_action_callback (GtkAction* action, gpointer self);
284 static void _vala_array_add5 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value);
285 static void main_window_create_ui_manager (MainWindow* self);
286 static void main_window_set_atk_name_description (MainWindow* self, GtkWidget* widget, const char* name, const char* description);
287 GdkPixbuf* find_icon_sized (const char* name, GtkIconSize icon_size);
288 static void _main_window_search_entry_icon_press_cb_gtk_entry_icon_press (GtkEntry* _sender, GtkEntryIconPosition p0, GdkEvent* p1, gpointer self);
289 static void _main_window_search_entry_text_changed_cb_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self);
290 static gboolean _main_window_search_entry_key_press_event_cb_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self);
291 CustomVBox* custom_vbox_new (gboolean homogeneous, gint spacing);
292 CustomVBox* custom_vbox_construct (GType object_type, gboolean homogeneous, gint spacing);
293 static void _gtk_main_quit_gtk_object_destroy (GtkObject* _sender, gpointer self);
294 static guint _dynamic_request_name0 (DBusGProxy* self, const char* param1, guint param2, GError** error);
295 MoonshotServer* moonshot_server_new (GtkWindow* window);
296 MoonshotServer* moonshot_server_construct (GType object_type, GtkWindow* window);
297 static void _vala_dbus_register_object (DBusConnection* connection, const char* path, void* object);
298 static void _vala_dbus_unregister_object (gpointer connection, GObject* object);
299 gint main_window_main (char** args, int args_length1);
300 static void main_window_finalize (GObject* obj);
301 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
302 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);
303 static int _vala_strcmp0 (const char * str1, const char * str2);
307 static GType main_window_columns_get_type (void) {
308 static volatile gsize main_window_columns_type_id__volatile = 0;
309 if (g_once_init_enter (&main_window_columns_type_id__volatile)) {
310 static const GEnumValue values[] = {{MAIN_WINDOW_COLUMNS_IDCARD_COL, "MAIN_WINDOW_COLUMNS_IDCARD_COL", "idcard-col"}, {MAIN_WINDOW_COLUMNS_LOGO_COL, "MAIN_WINDOW_COLUMNS_LOGO_COL", "logo-col"}, {MAIN_WINDOW_COLUMNS_ISSUER_COL, "MAIN_WINDOW_COLUMNS_ISSUER_COL", "issuer-col"}, {MAIN_WINDOW_COLUMNS_USERNAME_COL, "MAIN_WINDOW_COLUMNS_USERNAME_COL", "username-col"}, {MAIN_WINDOW_COLUMNS_PASSWORD_COL, "MAIN_WINDOW_COLUMNS_PASSWORD_COL", "password-col"}, {MAIN_WINDOW_COLUMNS_N_COLUMNS, "MAIN_WINDOW_COLUMNS_N_COLUMNS", "n-columns"}, {0, NULL, NULL}};
311 GType main_window_columns_type_id;
312 main_window_columns_type_id = g_enum_register_static ("MainWindowColumns", values);
313 g_once_init_leave (&main_window_columns_type_id__volatile, main_window_columns_type_id);
315 return main_window_columns_type_id__volatile;
319 MainWindow* main_window_construct (GType object_type) {
322 self = g_object_newv (object_type, 0, NULL);
323 self->priv->request_queue = (_tmp0_ = g_queue_new (), _g_queue_free0 (self->priv->request_queue), _tmp0_);
324 gtk_window_set_title ((GtkWindow*) self, "Moonshoot");
325 gtk_window_set_position ((GtkWindow*) self, GTK_WIN_POS_CENTER);
326 gtk_window_set_default_size ((GtkWindow*) self, MAIN_WINDOW_WINDOW_WIDTH, MAIN_WINDOW_WINDOW_HEIGHT);
327 main_window_build_ui (self);
328 main_window_setup_identities_list (self);
329 main_window_load_gss_eap_id_file (self);
330 main_window_connect_signals (self);
331 main_window_init_ipc_server (self);
336 MainWindow* main_window_new (void) {
337 return main_window_construct (TYPE_MAIN_WINDOW);
341 static gboolean string_contains (const char* self, const char* needle) {
342 gboolean result = FALSE;
343 g_return_val_if_fail (self != NULL, FALSE);
344 g_return_val_if_fail (needle != NULL, FALSE);
345 result = strstr (self, needle) != NULL;
350 static gboolean main_window_visible_func (MainWindow* self, GtkTreeModel* model, GtkTreeIter* iter) {
351 gboolean result = FALSE;
354 char* issuer_casefold;
355 char* search_text_casefold;
357 gboolean _tmp1_ = FALSE;
360 g_return_val_if_fail (self != NULL, FALSE);
361 g_return_val_if_fail (model != NULL, FALSE);
364 issuer_casefold = NULL;
365 search_text_casefold = NULL;
366 gtk_tree_model_get (model, iter, MAIN_WINDOW_COLUMNS_ISSUER_COL, &issuer, -1);
367 search_text = (_tmp0_ = g_strdup (gtk_entry_get_text (self->priv->search_entry)), _g_free0 (search_text), _tmp0_);
368 if (issuer == NULL) {
371 _tmp1_ = search_text == NULL;
375 _g_free0 (search_text_casefold);
376 _g_free0 (issuer_casefold);
377 _g_free0 (search_text);
381 issuer_casefold = (_tmp2_ = g_utf8_casefold (issuer, -1), _g_free0 (issuer_casefold), _tmp2_);
382 search_text_casefold = (_tmp3_ = g_utf8_casefold (search_text, -1), _g_free0 (search_text_casefold), _tmp3_);
383 if (string_contains (issuer_casefold, search_text_casefold)) {
385 _g_free0 (search_text_casefold);
386 _g_free0 (issuer_casefold);
387 _g_free0 (search_text);
392 _g_free0 (search_text_casefold);
393 _g_free0 (issuer_casefold);
394 _g_free0 (search_text);
400 static gboolean _main_window_visible_func_gtk_tree_model_filter_visible_func (GtkTreeModel* model, GtkTreeIter* iter, gpointer self) {
402 result = main_window_visible_func (self, model, iter);
407 static void main_window_setup_identities_list (MainWindow* self) {
408 GtkListStore* _tmp0_;
409 GtkTreeModelFilter* _tmp1_;
410 g_return_if_fail (self != NULL);
411 self->priv->listmodel = (_tmp0_ = gtk_list_store_new ((gint) MAIN_WINDOW_COLUMNS_N_COLUMNS, TYPE_ID_CARD, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING), _g_object_unref0 (self->priv->listmodel), _tmp0_);
412 self->priv->filter = (_tmp1_ = (GtkTreeModelFilter*) gtk_tree_model_filter_new ((GtkTreeModel*) self->priv->listmodel, NULL), _g_object_unref0 (self->priv->filter), _tmp1_);
413 gtk_tree_model_filter_set_visible_func (self->priv->filter, _main_window_visible_func_gtk_tree_model_filter_visible_func, g_object_ref (self), g_object_unref);
417 static void main_window_search_entry_icon_press_cb (MainWindow* self, GtkEntryIconPosition pos, GdkEvent* event) {
418 g_return_if_fail (self != NULL);
419 g_return_if_fail (event != NULL);
420 if (pos == GTK_ENTRY_ICON_PRIMARY) {
421 g_print ("Search entry icon pressed\n");
423 gtk_entry_set_text (self->priv->search_entry, "");
428 static void main_window_search_entry_text_changed_cb (MainWindow* self) {
430 g_return_if_fail (self != NULL);
431 gtk_tree_model_filter_refilter (self->priv->filter);
432 main_window_redraw_id_card_widgets (self);
433 has_text = gtk_entry_get_text_length (self->priv->search_entry) > 0;
434 gtk_entry_set_icon_sensitive (self->priv->search_entry, GTK_ENTRY_ICON_PRIMARY, has_text);
435 gtk_entry_set_icon_sensitive (self->priv->search_entry, GTK_ENTRY_ICON_SECONDARY, has_text);
436 gtk_widget_set_visible ((GtkWidget*) self->priv->vbox_rigth, FALSE);
437 gtk_window_resize ((GtkWindow*) self, MAIN_WINDOW_WINDOW_WIDTH, MAIN_WINDOW_WINDOW_HEIGHT);
441 static gboolean main_window_search_entry_key_press_event_cb (MainWindow* self, GdkEventKey* e) {
442 gboolean result = FALSE;
443 g_return_val_if_fail (self != NULL, FALSE);
444 if (_vala_strcmp0 (gdk_keyval_name ((*e).keyval), "Escape") == 0) {
445 gtk_entry_set_text (self->priv->search_entry, "");
452 static void main_window_load_gss_eap_id_file (MainWindow* self) {
454 IdentitiesManager* _tmp0_;
456 g_return_if_fail (self != NULL);
458 self->priv->identities_manager = (_tmp0_ = identities_manager_new (), _g_object_unref0 (self->priv->identities_manager), _tmp0_);
459 id_card = (_tmp1_ = identities_manager_load_gss_eap_id_file (self->priv->identities_manager), _g_object_unref0 (id_card), _tmp1_);
460 if (id_card != NULL) {
461 main_window_add_id_card_data (self, id_card);
462 main_window_add_id_card_widget (self, id_card);
464 _g_object_unref0 (id_card);
468 static gpointer _g_object_ref0 (gpointer self) {
469 return self ? g_object_ref (self) : NULL;
473 static void main_window_load_id_cards (MainWindow* self) {
474 IdentitiesManager* _tmp0_;
475 g_return_if_fail (self != NULL);
476 self->priv->identities_manager = (_tmp0_ = identities_manager_new (), _g_object_unref0 (self->priv->identities_manager), _tmp0_);
478 GSList* id_card_collection;
480 id_card_collection = self->priv->identities_manager->id_card_list;
481 for (id_card_it = id_card_collection; id_card_it != NULL; id_card_it = id_card_it->next) {
483 id_card = _g_object_ref0 ((IdCard*) id_card_it->data);
485 main_window_add_id_card_data (self, id_card);
486 main_window_add_id_card_widget (self, id_card);
487 _g_object_unref0 (id_card);
494 static void main_window_fill_details (MainWindow* self, IdCardWidget* id_card_widget) {
498 g_return_if_fail (self != NULL);
499 g_return_if_fail (id_card_widget != NULL);
500 id_card = _g_object_ref0 (id_card_widget_get_id_card (id_card_widget));
501 gtk_entry_set_text (self->priv->username_entry, id_card_get_username (id_card));
502 _tmp0_ = g_strdup (id_card_get_password (id_card));
503 if (_tmp0_ == NULL) {
505 _tmp0_ = (_tmp1_ = g_strdup (""), _g_free0 (_tmp0_), _tmp1_);
507 gtk_entry_set_text (self->priv->password_entry, _tmp0_);
508 children = gtk_container_get_children ((GtkContainer*) self->priv->services_internal_vbox);
510 GList* hbox_collection;
512 hbox_collection = children;
513 for (hbox_it = hbox_collection; hbox_it != NULL; hbox_it = hbox_it->next) {
515 hbox = (GtkWidget*) hbox_it->data;
517 gtk_object_destroy ((GtkObject*) hbox);
521 main_window_fill_services_vbox (self, id_card_widget_get_id_card (id_card_widget));
522 _g_list_free0 (children);
524 _g_object_unref0 (id_card);
528 static void main_window_show_details (MainWindow* self, IdCard* id_card) {
529 g_return_if_fail (self != NULL);
530 g_return_if_fail (id_card != NULL);
531 gtk_widget_set_visible ((GtkWidget*) self->priv->vbox_rigth, !gtk_widget_get_visible ((GtkWidget*) self->priv->vbox_rigth));
532 if (gtk_widget_get_visible ((GtkWidget*) self->priv->vbox_rigth) == FALSE) {
533 gtk_window_resize ((GtkWindow*) self, MAIN_WINDOW_WINDOW_WIDTH, MAIN_WINDOW_WINDOW_HEIGHT);
538 static void main_window_details_identity_cb (MainWindow* self, IdCardWidget* id_card_widget) {
539 g_return_if_fail (self != NULL);
540 g_return_if_fail (id_card_widget != NULL);
541 main_window_fill_details (self, id_card_widget);
542 main_window_show_details (self, id_card_widget_get_id_card (id_card_widget));
546 static IdCard* main_window_get_id_card_data (MainWindow* self, AddIdentityDialog* dialog) {
547 IdCard* result = NULL;
552 char** _tmp3_ = NULL;
556 g_return_val_if_fail (self != NULL, NULL);
557 g_return_val_if_fail (dialog != NULL, NULL);
558 id_card = id_card_new ();
559 id_card_set_issuer (id_card, add_identity_dialog_get_issuer (dialog));
560 if (_vala_strcmp0 (id_card_get_issuer (id_card), "") == 0) {
561 id_card_set_issuer (id_card, "Issuer");
563 id_card_set_username (id_card, add_identity_dialog_get_username (dialog));
564 id_card_set_password (id_card, add_identity_dialog_get_password (dialog));
565 id_card_set_nai (id_card, _tmp1_ = g_strconcat (_tmp0_ = g_strconcat (id_card_get_username (id_card), "@", NULL), id_card_get_issuer (id_card), NULL));
568 id_card_set_pixbuf (id_card, _tmp2_ = find_icon ("avatar-default", 48));
569 _g_object_unref0 (_tmp2_);
570 _tmp5_ = (_tmp4_ = (_tmp3_ = g_new0 (char*, 3 + 1), _tmp3_[0] = g_strdup ("email"), _tmp3_[1] = g_strdup ("jabber"), _tmp3_[2] = g_strdup ("irc"), _tmp3_), _tmp4__length1 = 3, _tmp4_);
571 id_card_set_services (id_card, _tmp5_, 3);
572 _tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
578 static void main_window_add_id_card_data (MainWindow* self, IdCard* id_card) {
579 GtkTreeIter iter = {0};
580 g_return_if_fail (self != NULL);
581 g_return_if_fail (id_card != NULL);
582 gtk_list_store_append (self->priv->listmodel, &iter);
583 gtk_list_store_set (self->priv->listmodel, &iter, MAIN_WINDOW_COLUMNS_IDCARD_COL, id_card, MAIN_WINDOW_COLUMNS_LOGO_COL, id_card_get_pixbuf (id_card), MAIN_WINDOW_COLUMNS_ISSUER_COL, id_card_get_issuer (id_card), MAIN_WINDOW_COLUMNS_USERNAME_COL, id_card_get_username (id_card), MAIN_WINDOW_COLUMNS_PASSWORD_COL, id_card_get_password (id_card), -1);
587 static void main_window_remove_id_card_data (MainWindow* self, IdCard* id_card) {
588 GtkTreeIter iter = {0};
590 g_return_if_fail (self != NULL);
591 g_return_if_fail (id_card != NULL);
593 if (gtk_tree_model_get_iter_first ((GtkTreeModel*) self->priv->listmodel, &iter)) {
599 if (!gtk_tree_model_iter_next ((GtkTreeModel*) self->priv->listmodel, &iter)) {
604 gtk_tree_model_get ((GtkTreeModel*) self->priv->listmodel, &iter, MAIN_WINDOW_COLUMNS_ISSUER_COL, &issuer, -1);
605 if (_vala_strcmp0 (id_card_get_issuer (id_card), issuer) == 0) {
606 gtk_list_store_remove (self->priv->listmodel, &iter);
616 static void _main_window_details_identity_cb_id_card_widget_details_id (IdCardWidget* _sender, gpointer self) {
617 main_window_details_identity_cb (self, _sender);
621 static void _main_window_remove_identity_cb_id_card_widget_remove_id (IdCardWidget* _sender, gpointer self) {
622 main_window_remove_identity_cb (self, _sender);
626 static void _main_window_send_identity_cb_id_card_widget_send_id (IdCardWidget* _sender, gpointer self) {
627 main_window_send_identity_cb (self, _sender);
631 static void _custom_vbox_receive_expanded_event_id_card_widget_expanded (IdCardWidget* _sender, gpointer self) {
632 custom_vbox_receive_expanded_event (self, _sender);
636 static void _main_window_fill_details_id_card_widget_expanded (IdCardWidget* _sender, gpointer self) {
637 main_window_fill_details (self, _sender);
641 static void main_window_add_id_card_widget (MainWindow* self, IdCard* id_card) {
642 IdCardWidget* id_card_widget;
643 g_return_if_fail (self != NULL);
644 g_return_if_fail (id_card != NULL);
645 id_card_widget = g_object_ref_sink (id_card_widget_new (id_card));
646 custom_vbox_add_id_card_widget (self->priv->custom_vbox, id_card_widget);
647 g_signal_connect_object (id_card_widget, "details-id", (GCallback) _main_window_details_identity_cb_id_card_widget_details_id, self, 0);
648 g_signal_connect_object (id_card_widget, "remove-id", (GCallback) _main_window_remove_identity_cb_id_card_widget_remove_id, self, 0);
649 g_signal_connect_object (id_card_widget, "send-id", (GCallback) _main_window_send_identity_cb_id_card_widget_send_id, self, 0);
650 g_signal_connect_object (id_card_widget, "expanded", (GCallback) _custom_vbox_receive_expanded_event_id_card_widget_expanded, self->priv->custom_vbox, 0);
651 g_signal_connect_object (id_card_widget, "expanded", (GCallback) _main_window_fill_details_id_card_widget_expanded, self, 0);
652 _g_object_unref0 (id_card_widget);
656 static void main_window_add_identity (MainWindow* self, AddIdentityDialog* dialog) {
658 g_return_if_fail (self != NULL);
659 g_return_if_fail (dialog != NULL);
660 id_card = main_window_get_id_card_data (self, dialog);
661 self->priv->identities_manager->id_card_list = g_slist_prepend (self->priv->identities_manager->id_card_list, _g_object_ref0 (id_card));
662 identities_manager_store_id_cards (self->priv->identities_manager);
663 identities_manager_store_gss_eap_id_file (self->priv->identities_manager, id_card);
664 main_window_add_id_card_data (self, id_card);
665 main_window_add_id_card_widget (self, id_card);
666 _g_object_unref0 (id_card);
670 static void main_window_add_identity_cb (MainWindow* self) {
671 AddIdentityDialog* dialog;
673 g_return_if_fail (self != NULL);
674 dialog = g_object_ref_sink (add_identity_dialog_new ());
675 _result_ = gtk_dialog_run ((GtkDialog*) dialog);
677 case GTK_RESPONSE_OK:
679 main_window_add_identity (self, dialog);
687 gtk_object_destroy ((GtkObject*) dialog);
688 _g_object_unref0 (dialog);
692 static void main_window_remove_id_card_widget (MainWindow* self, IdCardWidget* id_card_widget) {
693 g_return_if_fail (self != NULL);
694 g_return_if_fail (id_card_widget != NULL);
695 main_window_remove_id_card_data (self, id_card_widget_get_id_card (id_card_widget));
696 custom_vbox_remove_id_card_widget (self->priv->custom_vbox, id_card_widget);
700 static void main_window_remove_identity (MainWindow* self, IdCardWidget* id_card_widget) {
702 g_return_if_fail (self != NULL);
703 g_return_if_fail (id_card_widget != NULL);
704 id_card = _g_object_ref0 (id_card_widget_get_id_card (id_card_widget));
705 self->priv->identities_manager->id_card_list = g_slist_remove (self->priv->identities_manager->id_card_list, id_card);
706 identities_manager_store_id_cards (self->priv->identities_manager);
707 identities_manager_store_gss_eap_id_file (self->priv->identities_manager, NULL);
708 main_window_remove_id_card_widget (self, id_card_widget);
709 _g_object_unref0 (id_card);
713 static void main_window_redraw_id_card_widgets (MainWindow* self) {
714 GtkTreeIter iter = {0};
717 g_return_if_fail (self != NULL);
719 children = gtk_container_get_children ((GtkContainer*) self->priv->custom_vbox);
721 GList* id_card_widget_collection;
722 GList* id_card_widget_it;
723 id_card_widget_collection = children;
724 for (id_card_widget_it = id_card_widget_collection; id_card_widget_it != NULL; id_card_widget_it = id_card_widget_it->next) {
725 GtkWidget* id_card_widget;
726 id_card_widget = (GtkWidget*) id_card_widget_it->data;
728 gtk_object_destroy ((GtkObject*) id_card_widget);
732 if (gtk_tree_model_get_iter_first ((GtkTreeModel*) self->priv->filter, &iter)) {
738 if (!gtk_tree_model_iter_next ((GtkTreeModel*) self->priv->filter, &iter)) {
743 gtk_tree_model_get ((GtkTreeModel*) self->priv->filter, &iter, MAIN_WINDOW_COLUMNS_IDCARD_COL, &id_card, -1);
744 main_window_add_id_card_widget (self, id_card);
748 _g_list_free0 (children);
749 _g_object_unref0 (id_card);
753 static void main_window_remove_identity_cb (MainWindow* self, IdCardWidget* id_card_widget) {
755 GtkMessageDialog* dialog;
757 g_return_if_fail (self != NULL);
758 g_return_if_fail (id_card_widget != NULL);
759 id_card = _g_object_ref0 (id_card_widget_get_id_card (id_card_widget));
760 dialog = g_object_ref_sink ((GtkMessageDialog*) gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_YES_NO, _ ("Are you sure you want to delete %s ID Card?"), id_card_get_issuer (id_card)));
761 _result_ = gtk_dialog_run ((GtkDialog*) dialog);
763 case GTK_RESPONSE_YES:
765 main_window_remove_identity (self, id_card_widget);
773 gtk_object_destroy ((GtkObject*) dialog);
774 _g_object_unref0 (dialog);
775 _g_object_unref0 (id_card);
779 void main_window_select_identity (MainWindow* self, IdentityRequest* request) {
780 g_return_if_fail (self != NULL);
781 g_return_if_fail (request != NULL);
782 g_queue_push_tail (self->priv->request_queue, _g_object_ref0 (request));
783 gtk_widget_show ((GtkWidget*) self);
787 void main_window_send_identity_cb (MainWindow* self, IdCardWidget* id_card_widget) {
788 IdCardWidget* _tmp0_;
789 IdentityRequest* request;
791 gboolean reset_password;
792 g_return_if_fail (self != NULL);
793 g_return_if_fail (id_card_widget != NULL);
794 g_return_if_fail (self->priv->request_queue->length > 0);
795 self->selected_id_card_widget = (_tmp0_ = _g_object_ref0 (id_card_widget), _g_object_unref0 (self->selected_id_card_widget), _tmp0_);
796 request = (IdentityRequest*) g_queue_pop_head (self->priv->request_queue);
797 identity = _g_object_ref0 (id_card_widget_get_id_card (id_card_widget));
798 reset_password = FALSE;
799 if (id_card_get_password (identity) == NULL) {
800 AddPasswordDialog* dialog;
802 dialog = g_object_ref_sink (add_password_dialog_new ());
803 _result_ = gtk_dialog_run ((GtkDialog*) dialog);
805 case GTK_RESPONSE_OK:
807 id_card_set_password (identity, add_password_dialog_get_password (dialog));
808 reset_password = !add_password_dialog_get_remember (dialog);
814 identity = (_tmp1_ = NULL, _g_object_unref0 (identity), _tmp1_);
818 gtk_object_destroy ((GtkObject*) dialog);
819 _g_object_unref0 (dialog);
821 if (g_queue_is_empty (self->priv->request_queue)) {
822 gtk_widget_hide ((GtkWidget*) self);
824 identity_request_return_identity (request, identity);
825 if (reset_password) {
826 id_card_set_password (identity, NULL);
828 _g_object_unref0 (identity);
829 _g_object_unref0 (request);
833 static void main_window_label_make_bold (MainWindow* self, GtkLabel* label) {
834 PangoFontDescription* font_desc;
835 g_return_if_fail (self != NULL);
836 g_return_if_fail (label != NULL);
837 font_desc = pango_font_description_new ();
838 pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD);
839 gtk_widget_modify_font ((GtkWidget*) label, font_desc);
840 _pango_font_description_free0 (font_desc);
844 static void main_window_fill_services_vbox (MainWindow* self, IdCard* id_card) {
848 GtkTable* services_table;
849 g_return_if_fail (self != NULL);
850 g_return_if_fail (id_card != NULL);
853 services_table = g_object_ref_sink ((GtkTable*) gtk_table_new ((guint) n_columns, (guint) 2, FALSE));
854 gtk_table_set_col_spacings (services_table, (guint) 10);
855 gtk_table_set_row_spacings (services_table, (guint) 10);
856 gtk_container_add ((GtkContainer*) self->priv->services_internal_vbox, (GtkWidget*) services_table);
859 char** service_collection;
860 int service_collection_length1;
862 service_collection = id_card_get_services (id_card, &_tmp1_);
863 service_collection_length1 = _tmp1_;
864 for (service_it = 0; service_it < _tmp1_; service_it = service_it + 1) {
866 service = g_strdup (service_collection[service_it]);
869 GtkButton* remove_button;
870 label = g_object_ref_sink ((GtkLabel*) gtk_label_new (service));
871 gtk_misc_set_alignment ((GtkMisc*) label, (float) 0, (float) 0.5);
872 remove_button = g_object_ref_sink ((GtkButton*) gtk_button_new_from_stock (GTK_STOCK_REMOVE));
873 gtk_table_attach_defaults (services_table, (GtkWidget*) label, (guint) 0, (guint) 1, (guint) i, (guint) (i + 1));
874 gtk_table_attach_defaults (services_table, (GtkWidget*) remove_button, (guint) 1, (guint) 2, (guint) i, (guint) (i + 1));
876 _g_object_unref0 (remove_button);
877 _g_object_unref0 (label);
882 gtk_widget_show_all ((GtkWidget*) self->priv->services_internal_vbox);
883 _g_object_unref0 (services_table);
887 static void main_window_on_about_action (MainWindow* self) {
888 gint authors_length1;
891 char** _tmp0_ = NULL;
895 g_return_if_fail (self != NULL);
896 authors = (_tmp1_ = (_tmp0_ = g_new0 (char*, 3 + 1), _tmp0_[0] = g_strdup ("Javier Jardón <jjardon@codethink.co.uk>"), _tmp0_[1] = g_strdup ("Sam Thursfield <samthursfield@codethink.co.uk>"), _tmp0_[2] = NULL, _tmp0_), authors_length1 = 3, _authors_size_ = authors_length1, _tmp1_);
897 copyright = g_strdup ("Copyright 2011 JANET");
898 license = g_strdup ("\n" \
899 "Copyright (c) 2011, JANET(UK)\n" \
900 "All rights reserved.\n" \
902 "Redistribution and use in source and binary forms, with or without\n" \
903 "modification, are permitted provided that the following conditions\n" \
906 "1. Redistributions of source code must retain the above copyright\n" \
907 " notice, this list of conditions and the following disclaimer.\n" \
909 "2. Redistributions in binary form must reproduce the above copyright\n" \
910 " notice, this list of conditions and the following disclaimer in the" \
912 " documentation and/or other materials provided with the distribution" \
915 "3. Neither the name of JANET(UK) nor the names of its contributors\n" \
916 " may be used to endorse or promote products derived from this softwa" \
918 " without specific prior written permission.\n" \
920 "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \\" \
922 "AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, " \
924 "IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PUR" \
926 "ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS" \
928 "FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUEN" \
930 "DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOOD" \
932 "OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n" \
933 "HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, ST" \
935 "LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY " \
937 "OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF" \
940 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);
942 _g_free0 (copyright);
943 authors = (_vala_array_free (authors, authors_length1, (GDestroyNotify) g_free), NULL);
947 static void _vala_array_add1 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
948 if ((*length) == (*size)) {
949 *size = (*size) ? (2 * (*size)) : 4;
950 *array = g_renew (GtkActionEntry, *array, *size);
952 (*array)[(*length)++] = *value;
956 static void _main_window_add_identity_cb_gtk_action_callback (GtkAction* action, gpointer self) {
957 main_window_add_identity_cb (self);
961 static void _vala_array_add2 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
962 if ((*length) == (*size)) {
963 *size = (*size) ? (2 * (*size)) : 4;
964 *array = g_renew (GtkActionEntry, *array, *size);
966 (*array)[(*length)++] = *value;
970 static void _gtk_main_quit_gtk_action_callback (GtkAction* action, gpointer self) {
975 static void _vala_array_add3 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
976 if ((*length) == (*size)) {
977 *size = (*size) ? (2 * (*size)) : 4;
978 *array = g_renew (GtkActionEntry, *array, *size);
980 (*array)[(*length)++] = *value;
984 static void _vala_array_add4 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
985 if ((*length) == (*size)) {
986 *size = (*size) ? (2 * (*size)) : 4;
987 *array = g_renew (GtkActionEntry, *array, *size);
989 (*array)[(*length)++] = *value;
993 static void _main_window_on_about_action_gtk_action_callback (GtkAction* action, gpointer self) {
994 main_window_on_about_action (self);
998 static void _vala_array_add5 (GtkActionEntry** array, int* length, int* size, const GtkActionEntry* value) {
999 if ((*length) == (*size)) {
1000 *size = (*size) ? (2 * (*size)) : 4;
1001 *array = g_renew (GtkActionEntry, *array, *size);
1003 (*array)[(*length)++] = *value;
1007 static GtkActionEntry* main_window_create_actions (MainWindow* self, int* result_length1) {
1008 GtkActionEntry* result = NULL;
1009 gint actions_length1;
1010 gint _actions_size_;
1011 GtkActionEntry* _tmp0_;
1012 GtkActionEntry* actions;
1013 GtkActionEntry _tmp1_ = {0};
1014 GtkActionEntry filemenu;
1015 GtkActionEntry _tmp2_ = {0};
1017 GtkActionEntry _tmp3_ = {0};
1018 GtkActionEntry quit;
1019 GtkActionEntry _tmp4_ = {0};
1020 GtkActionEntry helpmenu;
1021 GtkActionEntry _tmp5_ = {0};
1022 GtkActionEntry about;
1023 GtkActionEntry* _tmp6_;
1024 g_return_val_if_fail (self != NULL, NULL);
1025 actions = (_tmp0_ = g_new0 (GtkActionEntry, 0), actions_length1 = 0, _actions_size_ = actions_length1, _tmp0_);
1026 filemenu = (_tmp1_.name = "FileMenuAction", _tmp1_.stock_id = NULL, _tmp1_.label = N_ ("_File"), _tmp1_.accelerator = NULL, _tmp1_.tooltip = NULL, _tmp1_.callback = (GCallback) NULL, _tmp1_);
1027 _vala_array_add1 (&actions, &actions_length1, &_actions_size_, &filemenu);
1028 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) _main_window_add_identity_cb_gtk_action_callback, _tmp2_);
1029 _vala_array_add2 (&actions, &actions_length1, &_actions_size_, &add);
1030 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_);
1031 _vala_array_add3 (&actions, &actions_length1, &_actions_size_, &quit);
1032 helpmenu = (_tmp4_.name = "HelpMenuAction", _tmp4_.stock_id = NULL, _tmp4_.label = N_ ("_Help"), _tmp4_.accelerator = NULL, _tmp4_.tooltip = NULL, _tmp4_.callback = (GCallback) NULL, _tmp4_);
1033 _vala_array_add4 (&actions, &actions_length1, &_actions_size_, &helpmenu);
1034 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) _main_window_on_about_action_gtk_action_callback, _tmp5_);
1035 _vala_array_add5 (&actions, &actions_length1, &_actions_size_, &about);
1036 result = (_tmp6_ = actions, *result_length1 = actions_length1, _tmp6_);
1038 actions = (g_free (actions), NULL);
1042 static void main_window_create_ui_manager (MainWindow* self) {
1043 GtkActionGroup* action_group;
1045 GtkActionEntry* _tmp1_;
1046 gint _tmp1__length1;
1047 GtkActionEntry* _tmp2_;
1048 GError * _inner_error_ = NULL;
1049 g_return_if_fail (self != NULL);
1050 action_group = gtk_action_group_new ("GeneralActionGroup");
1051 _tmp2_ = (_tmp1_ = main_window_create_actions (self, &_tmp0_), _tmp1__length1 = _tmp0_, _tmp1_);
1052 gtk_action_group_add_actions (action_group, _tmp2_, _tmp0_, self);
1053 _tmp1_ = (g_free (_tmp1_), NULL);
1054 gtk_ui_manager_insert_action_group (self->priv->ui_manager, action_group, 0);
1056 gtk_ui_manager_add_ui_from_string (self->priv->ui_manager, MAIN_WINDOW_layout, (gssize) (-1), &_inner_error_);
1057 if (_inner_error_ != NULL) {
1058 goto __catch5_g_error;
1066 _inner_error_ = NULL;
1068 fprintf (stderr, "%s\n", e->message);
1073 if (_inner_error_ != NULL) {
1074 _g_object_unref0 (action_group);
1075 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);
1076 g_clear_error (&_inner_error_);
1079 gtk_ui_manager_ensure_update (self->priv->ui_manager);
1080 _g_object_unref0 (action_group);
1084 static void _main_window_search_entry_icon_press_cb_gtk_entry_icon_press (GtkEntry* _sender, GtkEntryIconPosition p0, GdkEvent* p1, gpointer self) {
1085 main_window_search_entry_icon_press_cb (self, p0, p1);
1089 static void _main_window_search_entry_text_changed_cb_g_object_notify (GObject* _sender, GParamSpec* pspec, gpointer self) {
1090 main_window_search_entry_text_changed_cb (self);
1094 static gboolean _main_window_search_entry_key_press_event_cb_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self) {
1096 result = main_window_search_entry_key_press_event_cb (self, event);
1101 static void main_window_build_ui (MainWindow* self) {
1106 GtkViewport* viewport;
1107 GtkScrolledWindow* scroll;
1109 GtkLabel* login_vbox_title;
1110 GtkLabel* username_label;
1112 GtkLabel* password_label;
1114 GtkCheckButton* remember_checkbutton;
1115 GtkTable* login_table;
1116 GtkAlignment* login_vbox_alignment;
1117 GtkVBox* login_vbox;
1118 GtkLabel* services_vbox_title;
1119 GtkAlignment* services_vbox_alignment;
1121 GtkVBox* services_vbox;
1126 g_return_if_fail (self != NULL);
1127 main_window_create_ui_manager (self);
1128 self->priv->search_entry = (_tmp0_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), _g_object_unref0 (self->priv->search_entry), _tmp0_);
1129 main_window_set_atk_name_description (self, (GtkWidget*) self->priv->search_entry, _ ("Search entry"), _ ("Search for a specific ID Card"));
1130 gtk_entry_set_icon_from_pixbuf (self->priv->search_entry, GTK_ENTRY_ICON_PRIMARY, _tmp1_ = find_icon_sized ("edit-find-symbolic", GTK_ICON_SIZE_MENU));
1131 _g_object_unref0 (_tmp1_);
1132 gtk_entry_set_icon_tooltip_text (self->priv->search_entry, GTK_ENTRY_ICON_PRIMARY, _ ("Search identity or service"));
1133 gtk_entry_set_icon_sensitive (self->priv->search_entry, GTK_ENTRY_ICON_PRIMARY, FALSE);
1134 gtk_entry_set_icon_from_pixbuf (self->priv->search_entry, GTK_ENTRY_ICON_SECONDARY, _tmp2_ = find_icon_sized ("edit-clear-symbolic", GTK_ICON_SIZE_MENU));
1135 _g_object_unref0 (_tmp2_);
1136 gtk_entry_set_icon_tooltip_text (self->priv->search_entry, GTK_ENTRY_ICON_SECONDARY, _ ("Clear the current search"));
1137 gtk_entry_set_icon_sensitive (self->priv->search_entry, GTK_ENTRY_ICON_SECONDARY, FALSE);
1138 g_signal_connect_object (self->priv->search_entry, "icon-press", (GCallback) _main_window_search_entry_icon_press_cb_gtk_entry_icon_press, self, 0);
1139 g_signal_connect_object ((GObject*) self->priv->search_entry, "notify::text", (GCallback) _main_window_search_entry_text_changed_cb_g_object_notify, self, 0);
1140 g_signal_connect_object ((GtkWidget*) self->priv->search_entry, "key-press-event", (GCallback) _main_window_search_entry_key_press_event_cb_gtk_widget_key_press_event, self, 0);
1141 self->priv->custom_vbox = (_tmp3_ = g_object_ref_sink (custom_vbox_new (FALSE, 6)), _g_object_unref0 (self->priv->custom_vbox), _tmp3_);
1142 viewport = g_object_ref_sink ((GtkViewport*) gtk_viewport_new (NULL, NULL));
1143 gtk_container_set_border_width ((GtkContainer*) viewport, (guint) 6);
1144 gtk_viewport_set_shadow_type (viewport, GTK_SHADOW_NONE);
1145 gtk_container_add ((GtkContainer*) viewport, (GtkWidget*) self->priv->custom_vbox);
1146 scroll = g_object_ref_sink ((GtkScrolledWindow*) gtk_scrolled_window_new (NULL, NULL));
1147 gtk_scrolled_window_set_policy (scroll, GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
1148 gtk_scrolled_window_set_shadow_type (scroll, GTK_SHADOW_IN);
1149 gtk_scrolled_window_add_with_viewport (scroll, (GtkWidget*) viewport);
1150 vbox_left = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 0));
1151 gtk_box_pack_start ((GtkBox*) vbox_left, (GtkWidget*) self->priv->search_entry, FALSE, FALSE, (guint) 6);
1152 gtk_box_pack_start ((GtkBox*) vbox_left, (GtkWidget*) scroll, TRUE, TRUE, (guint) 0);
1153 gtk_widget_set_size_request ((GtkWidget*) vbox_left, MAIN_WINDOW_WINDOW_WIDTH, 0);
1154 login_vbox_title = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Login: ")));
1155 main_window_label_make_bold (self, login_vbox_title);
1156 gtk_misc_set_alignment ((GtkMisc*) login_vbox_title, (float) 0, (float) 0.5);
1157 username_label = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Username:")));
1158 gtk_misc_set_alignment ((GtkMisc*) username_label, (float) 1, (float) 0.5);
1159 self->priv->username_entry = (_tmp4_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), _g_object_unref0 (self->priv->username_entry), _tmp4_);
1160 password_label = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Password:")));
1161 gtk_misc_set_alignment ((GtkMisc*) password_label, (float) 1, (float) 0.5);
1162 self->priv->password_entry = (_tmp5_ = g_object_ref_sink ((GtkEntry*) gtk_entry_new ()), _g_object_unref0 (self->priv->password_entry), _tmp5_);
1163 gtk_entry_set_invisible_char (self->priv->password_entry, (gunichar) '*');
1164 gtk_entry_set_visibility (self->priv->password_entry, FALSE);
1165 remember_checkbutton = g_object_ref_sink ((GtkCheckButton*) gtk_check_button_new_with_label (_ ("Remember password")));
1166 login_table = g_object_ref_sink ((GtkTable*) gtk_table_new ((guint) 3, (guint) 3, FALSE));
1167 gtk_table_set_col_spacings (login_table, (guint) 10);
1168 gtk_table_set_row_spacings (login_table, (guint) 10);
1169 gtk_table_attach_defaults (login_table, (GtkWidget*) username_label, (guint) 0, (guint) 1, (guint) 0, (guint) 1);
1170 gtk_table_attach_defaults (login_table, (GtkWidget*) self->priv->username_entry, (guint) 1, (guint) 2, (guint) 0, (guint) 1);
1171 gtk_table_attach_defaults (login_table, (GtkWidget*) password_label, (guint) 0, (guint) 1, (guint) 1, (guint) 2);
1172 gtk_table_attach_defaults (login_table, (GtkWidget*) self->priv->password_entry, (guint) 1, (guint) 2, (guint) 1, (guint) 2);
1173 gtk_table_attach_defaults (login_table, (GtkWidget*) remember_checkbutton, (guint) 1, (guint) 2, (guint) 2, (guint) 3);
1174 login_vbox_alignment = g_object_ref_sink ((GtkAlignment*) gtk_alignment_new ((float) 0, (float) 0, (float) 0, (float) 0));
1175 gtk_alignment_set_padding (login_vbox_alignment, (guint) 0, (guint) 0, (guint) 12, (guint) 0);
1176 gtk_container_add ((GtkContainer*) login_vbox_alignment, (GtkWidget*) login_table);
1177 login_vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 6));
1178 gtk_box_pack_start ((GtkBox*) login_vbox, (GtkWidget*) login_vbox_title, FALSE, TRUE, (guint) 0);
1179 gtk_box_pack_start ((GtkBox*) login_vbox, (GtkWidget*) login_vbox_alignment, FALSE, TRUE, (guint) 0);
1180 services_vbox_title = g_object_ref_sink ((GtkLabel*) gtk_label_new (_ ("Services:")));
1181 main_window_label_make_bold (self, services_vbox_title);
1182 gtk_misc_set_alignment ((GtkMisc*) services_vbox_title, (float) 0, (float) 0.5);
1183 services_vbox_alignment = g_object_ref_sink ((GtkAlignment*) gtk_alignment_new ((float) 0, (float) 0, (float) 0, (float) 0));
1184 gtk_alignment_set_padding (services_vbox_alignment, (guint) 0, (guint) 0, (guint) 12, (guint) 0);
1185 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_);
1186 gtk_container_add ((GtkContainer*) services_vbox_alignment, (GtkWidget*) self->priv->services_internal_vbox);
1187 services_vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 6));
1188 gtk_box_pack_start ((GtkBox*) services_vbox, (GtkWidget*) services_vbox_title, FALSE, TRUE, (guint) 0);
1189 gtk_box_pack_start ((GtkBox*) services_vbox, (GtkWidget*) services_vbox_alignment, FALSE, TRUE, (guint) 0);
1190 self->priv->vbox_rigth = (_tmp7_ = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 18)), _g_object_unref0 (self->priv->vbox_rigth), _tmp7_);
1191 gtk_box_pack_start ((GtkBox*) self->priv->vbox_rigth, (GtkWidget*) login_vbox, FALSE, TRUE, (guint) 0);
1192 gtk_box_pack_start ((GtkBox*) self->priv->vbox_rigth, (GtkWidget*) services_vbox, FALSE, TRUE, (guint) 0);
1193 hbox = g_object_ref_sink ((GtkHBox*) gtk_hbox_new (FALSE, 12));
1194 gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) vbox_left, FALSE, FALSE, (guint) 0);
1195 gtk_box_pack_start ((GtkBox*) hbox, (GtkWidget*) self->priv->vbox_rigth, FALSE, FALSE, (guint) 0);
1196 main_vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (FALSE, 0));
1197 gtk_container_set_border_width ((GtkContainer*) main_vbox, (guint) 12);
1198 menubar = _g_object_ref0 (gtk_ui_manager_get_widget (self->priv->ui_manager, "/MenuBar"));
1199 gtk_box_pack_start ((GtkBox*) main_vbox, menubar, FALSE, FALSE, (guint) 0);
1200 gtk_box_pack_start ((GtkBox*) main_vbox, (GtkWidget*) hbox, TRUE, TRUE, (guint) 0);
1201 gtk_container_add ((GtkContainer*) self, (GtkWidget*) main_vbox);
1202 gtk_widget_show_all ((GtkWidget*) main_vbox);
1203 gtk_widget_hide ((GtkWidget*) self->priv->vbox_rigth);
1204 _g_object_unref0 (menubar);
1205 _g_object_unref0 (main_vbox);
1206 _g_object_unref0 (hbox);
1207 _g_object_unref0 (services_vbox);
1208 _g_object_unref0 (services_vbox_alignment);
1209 _g_object_unref0 (services_vbox_title);
1210 _g_object_unref0 (login_vbox);
1211 _g_object_unref0 (login_vbox_alignment);
1212 _g_object_unref0 (login_table);
1213 _g_object_unref0 (remember_checkbutton);
1214 _g_object_unref0 (password_label);
1215 _g_object_unref0 (username_label);
1216 _g_object_unref0 (login_vbox_title);
1217 _g_object_unref0 (vbox_left);
1218 _g_object_unref0 (scroll);
1219 _g_object_unref0 (viewport);
1223 static void main_window_set_atk_name_description (MainWindow* self, GtkWidget* widget, const char* name, const char* description) {
1224 AtkObject* atk_widget;
1225 g_return_if_fail (self != NULL);
1226 g_return_if_fail (widget != NULL);
1227 g_return_if_fail (name != NULL);
1228 g_return_if_fail (description != NULL);
1229 atk_widget = _g_object_ref0 (gtk_widget_get_accessible (widget));
1230 atk_object_set_name (atk_widget, name);
1231 atk_object_set_description (atk_widget, description);
1232 _g_object_unref0 (atk_widget);
1236 static void _gtk_main_quit_gtk_object_destroy (GtkObject* _sender, gpointer self) {
1241 static void main_window_connect_signals (MainWindow* self) {
1242 g_return_if_fail (self != NULL);
1243 g_signal_connect ((GtkObject*) self, "destroy", (GCallback) _gtk_main_quit_gtk_object_destroy, NULL);
1247 static guint _dynamic_request_name0 (DBusGProxy* self, const char* param1, guint param2, GError** error) {
1249 dbus_g_proxy_call (self, "RequestName", error, G_TYPE_STRING, param1, G_TYPE_UINT, param2, G_TYPE_INVALID, G_TYPE_UINT, &result, G_TYPE_INVALID);
1257 static void _vala_dbus_register_object (DBusConnection* connection, const char* path, void* object) {
1258 const _DBusObjectVTable * vtable;
1259 vtable = g_type_get_qdata (G_TYPE_FROM_INSTANCE (object), g_quark_from_static_string ("DBusObjectVTable"));
1261 vtable->register_object (connection, path, object);
1263 g_warning ("Object does not implement any D-Bus interface");
1268 static void _vala_dbus_unregister_object (gpointer connection, GObject* object) {
1270 path = g_object_steal_data ((GObject*) object, "dbus_object_path");
1271 dbus_connection_unregister_object_path (connection, path);
1276 static void main_window_init_ipc_server (MainWindow* self) {
1277 GError * _inner_error_ = NULL;
1278 g_return_if_fail (self != NULL);
1280 DBusGConnection* conn;
1283 MoonshotServer* _tmp0_;
1284 conn = dbus_g_bus_get (DBUS_BUS_SESSION, &_inner_error_);
1285 if (_inner_error_ != NULL) {
1286 if (_inner_error_->domain == DBUS_GERROR) {
1287 goto __catch6_dbus_gerror;
1289 g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
1290 g_clear_error (&_inner_error_);
1293 bus = dbus_g_proxy_new_for_name (conn, "org.freedesktop.DBus", "/org/freedesktop/DBus", "org.freedesktop.DBus");
1294 reply = _dynamic_request_name0 (bus, "org.janet.Moonshot", (guint) 0, &_inner_error_);
1295 if (_inner_error_ != NULL) {
1296 _g_object_unref0 (bus);
1297 _dbus_g_connection_unref0 (conn);
1298 if (_inner_error_->domain == DBUS_GERROR) {
1299 goto __catch6_dbus_gerror;
1303 g_assert (reply == DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER);
1304 self->priv->ipc_server = (_tmp0_ = moonshot_server_new ((GtkWindow*) self), _g_object_unref0 (self->priv->ipc_server), _tmp0_);
1305 _vala_dbus_register_object (dbus_g_connection_get_connection (conn), "/org/janet/moonshot", (GObject*) self->priv->ipc_server);
1306 _g_object_unref0 (bus);
1307 _dbus_g_connection_unref0 (conn);
1310 __catch6_dbus_gerror:
1314 _inner_error_ = NULL;
1316 fprintf (stderr, "%s\n", e->message);
1321 if (_inner_error_ != NULL) {
1322 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);
1323 g_clear_error (&_inner_error_);
1329 gint main_window_main (char** args, int args_length1) {
1332 gtk_init (&args_length1, &args);
1333 bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
1334 bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
1335 textdomain (GETTEXT_PACKAGE);
1336 window = g_object_ref_sink (main_window_new ());
1337 gtk_widget_show ((GtkWidget*) window);
1340 _g_object_unref0 (window);
1345 int main (int argc, char ** argv) {
1347 return main_window_main (argv, argc);
1351 static void main_window_class_init (MainWindowClass * klass) {
1352 main_window_parent_class = g_type_class_peek_parent (klass);
1353 g_type_class_add_private (klass, sizeof (MainWindowPrivate));
1354 G_OBJECT_CLASS (klass)->finalize = main_window_finalize;
1358 static void main_window_instance_init (MainWindow * self) {
1359 self->priv = MAIN_WINDOW_GET_PRIVATE (self);
1360 self->priv->ui_manager = gtk_ui_manager_new ();
1364 static void main_window_finalize (GObject* obj) {
1366 self = MAIN_WINDOW (obj);
1367 _g_object_unref0 (self->priv->ui_manager);
1368 _g_object_unref0 (self->priv->search_entry);
1369 _g_object_unref0 (self->priv->vbox_rigth);
1370 _g_object_unref0 (self->priv->custom_vbox);
1371 _g_object_unref0 (self->priv->services_internal_vbox);
1372 _g_object_unref0 (self->priv->username_entry);
1373 _g_object_unref0 (self->priv->password_entry);
1374 _g_object_unref0 (self->priv->listmodel);
1375 _g_object_unref0 (self->priv->filter);
1376 _g_object_unref0 (self->priv->identities_manager);
1377 _g_object_unref0 (self->priv->ipc_server);
1378 _g_object_unref0 (self->selected_id_card_widget);
1379 _g_queue_free0 (self->priv->request_queue);
1380 G_OBJECT_CLASS (main_window_parent_class)->finalize (obj);
1384 GType main_window_get_type (void) {
1385 static volatile gsize main_window_type_id__volatile = 0;
1386 if (g_once_init_enter (&main_window_type_id__volatile)) {
1387 static const GTypeInfo g_define_type_info = { sizeof (MainWindowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) main_window_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MainWindow), 0, (GInstanceInitFunc) main_window_instance_init, NULL };
1388 GType main_window_type_id;
1389 main_window_type_id = g_type_register_static (GTK_TYPE_WINDOW, "MainWindow", &g_define_type_info, 0);
1390 g_once_init_leave (&main_window_type_id__volatile, main_window_type_id);
1392 return main_window_type_id__volatile;
1396 static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
1397 if ((array != NULL) && (destroy_func != NULL)) {
1399 for (i = 0; i < array_length; i = i + 1) {
1400 if (((gpointer*) array)[i] != NULL) {
1401 destroy_func (((gpointer*) array)[i]);
1408 static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
1409 _vala_array_destroy (array, array_length, destroy_func);
1414 static int _vala_strcmp0 (const char * str1, const char * str2) {
1416 return -(str1 != str2);
1419 return str1 != str2;
1421 return strcmp (str1, str2);