/usr/share/idl/thunderbird/prplIConversation.idl is in thunderbird-dev 1:24.4.0+build1-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 | /* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsISupports.idl"
#include "nsISimpleEnumerator.idl"
#include "nsIObserver.idl"
interface imIAccountBuddy;
interface imIAccount;
interface nsIURI;
interface nsIDOMDocument;
/*
* This is the XPCOM purple conversation component, a proxy for PurpleConversation.
*/
[scriptable, uuid(74fca337-b8e7-4e5d-81cd-8aba3dba9208)]
interface prplIConversation: nsISupports {
/* Indicate if this conversation implements prplIConvIM or prplIConvChat */
readonly attribute boolean isChat;
/* The account used for this conversation */
readonly attribute imIAccount account;
/* The name of the conversation, typically in English */
readonly attribute AUTF8String name;
/* The normalized name of the conversation (suitable for a log file name) */
readonly attribute AUTF8String normalizedName;
/* The title of the conversation, typically localized */
readonly attribute AUTF8String title;
/* The time and date of the conversation's creation */
readonly attribute PRTime startDate;
/* Unique identifier of the conversation */
/* Setable only once by purpleCoreService while calling addConversation. */
attribute unsigned long id;
/* Send a message in the conversation */
void sendMsg(in AUTF8String aMsg);
/* Send information about the current typing state to the server.
aLength should contain the length of the content currently in the text field.
A length value of 0 will make the method send a NOT_TYPING message. */
void sendTyping(in unsigned long aLength);
/* Un-initialize the conversation. Will be called by
purpleCoreService::RemoveConversation when the conversation is
closed or by purpleCoreService::Quit while exiting. */
void unInit();
/* When the conversation is closed from the UI. */
void close();
/* Method to add or remove an observer */
void addObserver(in nsIObserver aObserver);
void removeObserver(in nsIObserver aObserver);
/* Observers will be all receive new-text notifications.
aSubject will contain the message (prplIMessage) */
};
[scriptable, uuid(0c072a80-103a-4992-b249-8e442b5f0d46)]
interface prplIConvIM: prplIConversation {
/* The buddy at the remote end of the conversation */
readonly attribute imIAccountBuddy buddy;
/* The remote buddy is not currently typing */
const short NOT_TYPING = 0;
/* The remote buddy is currently typing */
const short TYPING = 1;
/* The remote buddy started typing, but has stopped typing */
const short TYPED = 2;
/* The typing state of the remote buddy.
The value is NOT_TYPING, TYPING or TYPED. */
readonly attribute short typingState;
};
[scriptable, uuid(c7f11466-f479-4f12-a581-b99713b8ecc0)]
interface prplIConvChat: prplIConversation {
/* Get an nsISimpleEnumerator of prplIConvChatBuddy objects:
The list of people participating in this chat */
nsISimpleEnumerator getParticipants();
/* The normalized chat buddy name will be suitable for starting a
private conversation or calling requestBuddyInfo. */
AUTF8String getNormalizedChatBuddyName(in AUTF8String aChatBuddyName);
/* The topic of this chat room */
attribute AUTF8String topic;
/* The name/nick of the person who set the topic */
readonly attribute AUTF8String topicSetter;
/* Whether the protocol plugin can set a topic. Doesn't check that
the user has the necessary rights in the current conversation. */
readonly attribute boolean topicSettable;
/* The nick seen by other people in the room */
readonly attribute AUTF8String nick;
/* This is true when we left the chat but kept the conversation open */
readonly attribute boolean left;
/* Observers will receive chat-buddy-add, chat-buddy-update,
chat-buddy-remove and chat-update-topic notifications.
aSubject will be of type:
nsISimpleEnumerator of prplIConvChatBuddy for chat-buddy-add,
nsISimpleEnumerator of nsISupportsString for chat-buddy-remove,
prplIConvChatBuddy for chat-buddy-update,
null for chat-update-topic.
aData will contain the old nick for chat-buddy-update if the name
has changed.
*/
};
/* This represents a participant in a chat room */
[scriptable, uuid(33f6ef81-1d23-484e-b4e0-14fffa0c4392)]
interface prplIConvChatBuddy: nsISupports {
/* The name of the buddy */
readonly attribute AUTF8String name;
/* The alias (FIXME: can this be non-null if buddy is null?) */
readonly attribute AUTF8String alias;
/* Indicates if this chat buddy corresponds to a buddy in our buddy list */
readonly attribute boolean buddy;
/* PurpleConvChatBuddyFlags flags; (ops, voice etc.) */
readonly attribute boolean noFlags;
readonly attribute boolean voiced;
readonly attribute boolean halfOp;
readonly attribute boolean op;
readonly attribute boolean founder;
readonly attribute boolean typing;
};
|