public static PurpleConvChat Find(PurpleAccount account, string name) { IntPtr ptr = purple_find_conversation_with_account( PurpleConversationType.Chat, name, account.handle); PurpleConversation conv; if(ptr == IntPtr.Zero) conv = new PurpleConversation(PurpleConversationType.Chat, account, name); else conv = new PurpleConversation(ptr); return conv.Chat; }
public static PurpleConvIM Find(PurpleAccount account, string who) { IntPtr ptr = purple_find_conversation_with_account( PurpleConversationType.IM, who, account.handle); PurpleConversation conv; if(ptr == IntPtr.Zero) conv = new PurpleConversation(PurpleConversationType.IM, account, who); else conv = new PurpleConversation(ptr); return conv.IM; }
public PurpleConversation(PurpleConversationType type, PurpleAccount account, string name) { handle= purple_conversation_new(type, account.handle, name); }
private static void received_im_msg(IntPtr account, IntPtr sender, IntPtr message, IntPtr conv, PurpleMessageFlags flags) { if(OnReceivedIMMsg != null) { PurpleConversation pconv; PurpleAccount pacct = new PurpleAccount(account); string sender_str = Marshal.PtrToStringAuto(sender); string message_str = Marshal.PtrToStringAuto(message); /*We don't really want to pass null pointers around, and libpurple checks to see if a new conversation was created after this event, so we're safe creating our own*/ if(conv == IntPtr.Zero) pconv = new PurpleConversation(PurpleConversationType.IM, pacct, sender_str); else pconv = new PurpleConversation(conv); OnReceivedIMMsg(pacct, sender_str, message_str, pconv, flags); } }
private static void received_chat_msg(IntPtr account, IntPtr sender, IntPtr message, IntPtr conv, PurpleMessageFlags flags) { if(OnReceivedChatMsg != null) { PurpleConversation pconv; PurpleAccount pacct = new PurpleAccount(account); string sender_str = Marshal.PtrToStringAuto(sender); string message_str = Marshal.PtrToStringAuto(message); if(conv == IntPtr.Zero) pconv = new PurpleConversation(PurpleConversationType.Chat, pacct, sender_str); else pconv = new PurpleConversation(conv); OnReceivedChatMsg(pacct, sender_str, message_str, pconv, flags); } }