int main(void){ chat_t * chat = chat_new("First Chat"); printf("1st task(Chat name is) : %s\n", get_chat_name(chat));//1st task user_t * firstUser = user_new("Dima", "Diachenko", 18); chat_add_user(chat, firstUser); user_t * secondUser = user_new("Gleb", "Davidov", 18); chat_add_user(chat, secondUser); //6th task list_t * users_list = list_new(); users_list = chat_get_list_of_users(chat); printf("4th task (and 6th task)(Users in list) : %i\n", list_getSize(users_list));//4th task printf("2d task : List of users:\n"); // 2d task for(int i = 0; i < list_getSize(users_list); i++){ user_t * tmp = (user_t*) list_get(users_list, i); printf("%s %s %i\n", user_get_name(tmp), user_get_surname(tmp), user_get_age(tmp)); } printf("7th task : %s - this user was removed!\n", user_get_surname(chat_remove_user_by_surname(chat, "Davidov")));//7th task users_list = chat_get_list_of_users(chat); printf("2d task : List of users:\n"); // 2d task for(int i = 0; i < list_getSize(users_list); i++){ user_t * tmp = (user_t*) list_get(users_list, i); printf("%s %s %i\n", user_get_name(tmp), user_get_surname(tmp), user_get_age(tmp)); } message_t * msg1 = message_new("Hello!", firstUser); chat_add_message(chat, msg1);//8th task printf("8th task: added message to chat:\n%s:\t%s\n", user_get_surname(get_owner(msg1)), get_message_text(msg1)); list_t * msgs_list = list_new(); msgs_list = get_list_of_messages_of_one_user(chat, firstUser);//5th task printf("5th task : Messages of user %s\n", user_get_surname(firstUser)); for(int i = 0; i < list_getSize(msgs_list); i++){ message_t * tmpmsg = list_get(msgs_list, i); printf("%s\n", get_message_text(tmpmsg)); } msgs_list = get_last_messages(chat, 1); printf("3d task : List of last messages(1):\n"); for(int i = 0; i < list_getSize(msgs_list); i++){ message_t * tmpmsg = list_get(msgs_list, i); printf("%s\n", get_message_text(tmpmsg)); } return 0; }
static void sync_completed (InfSession *session, InfXmlConnection *connection, gpointer data) { ChatData *cdata = (ChatData *)data; GeditPanel *panel; GeditCollaborationBookmark *bookmark; GeditCollaborationUser *user; GtkWidget *image; GtkWidget *hpaned; GtkWidget *sw; GtkWidget *tree_view; GeditCollaborationUserStore *store; InfUserTable *user_table; gchar *chat_name; g_signal_handlers_disconnect_by_func (session, G_CALLBACK (sync_failed), data); g_signal_handlers_disconnect_by_func (session, G_CALLBACK (sync_completed), data); bookmark = g_object_get_data (G_OBJECT (connection), BOOKMARK_DATA_KEY); if (bookmark) { user = gedit_collaboration_bookmark_get_user (bookmark); } else { user = gedit_collaboration_user_get_default (); } chat_name = get_chat_name (cdata->helper, connection); hpaned = gtk_hpaned_new (); gtk_widget_show (hpaned); gtk_paned_pack1 (GTK_PANED (hpaned), cdata->chat, TRUE, TRUE); gtk_widget_show (cdata->chat); build_user_view (cdata->helper, &tree_view, &sw, FALSE); gtk_widget_show (sw); user_table = inf_session_get_user_table (session); store = gedit_collaboration_user_store_new (user_table, FALSE); gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), GTK_TREE_MODEL (store)); gtk_paned_pack2 (GTK_PANED (hpaned), sw, TRUE, TRUE); panel = gedit_window_get_bottom_panel (cdata->helper->priv->window); image = create_collaboration_image (cdata->helper); gedit_panel_add_item (panel, hpaned, "GeditCollaborationChat", chat_name ? chat_name : _("Chat"), image); g_object_set_data (G_OBJECT (connection), CHAT_DATA_KEY, hpaned); cdata->user = gedit_collaboration_user_get_name (user); g_free (chat_name); request_join (cdata, cdata->user); }