/usr/share/idl/thunderbird/imICommandsService.idl is in thunderbird-dev 1:52.8.0-1~deb8u1.
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 | /* 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"
interface prplIConversation;
[scriptable, uuid(b12b0d89-0e5b-499c-9567-37f2deacc182)]
interface imICommand: nsISupports {
readonly attribute AUTF8String name;
// Help message displayed when the user types /help <name>.
// Format: <command name> <parameters>: <help message>
// Example: "help <name>: show the help message for the <name>
// command, or the list of possible commands when used without
// parameter."
readonly attribute AUTF8String helpString;
const short CMD_CONTEXT_IM = 1;
const short CMD_CONTEXT_CHAT = 2;
const short CMD_CONTEXT_ALL = CMD_CONTEXT_IM | CMD_CONTEXT_CHAT;
readonly attribute long usageContext;
const short CMD_PRIORITY_LOW = -1000;
const short CMD_PRIORITY_DEFAULT = 0;
const short CMD_PRIORITY_PRPL = 1000;
const short CMD_PRIORITY_HIGH = 4000;
// Any integer value is usable as a priority.
// 0 is the default priority.
// < 0 is lower priority.
// > 0 is higher priority.
// Commands registered by protocol plugins will usually use PRIORITY_PRPL.
readonly attribute long priority;
// Will return true if the command handled the message (it should not be sent).
// The leading slash, the command name and the following space are not included
// in the aMessage parameter.
// If a conversation is returned as a result of executing the command,
// the caller should consider focusing it.
boolean run(in AUTF8String aMessage,
[optional] in prplIConversation aConversation,
[optional] out prplIConversation aReturnedConv);
};
[scriptable, uuid(9a1accfd-9bd8-4548-aef7-e8107fc7839f)]
interface imICommandsService: nsISupports {
void initCommands();
void unInitCommands();
// Commands registered without a protocol id will work for all protocols.
// Registering several commands of the same name with the same
// protocol id or no protocol id will replace the former command
// with the latter.
void registerCommand(in imICommand aCommand,
[optional] in AUTF8String aPrplId);
// aPrplId should be the same as what was used for the command registration.
void unregisterCommand(in AUTF8String aCommandName,
[optional] in AUTF8String aPrplId);
void listCommandsForConversation(
[optional] in prplIConversation aConversation,
[optional] out unsigned long commandCount,
[retval, array, size_is(commandCount)] out imICommand commands);
void listCommandsForProtocol(in AUTF8String aPrplId,
[optional] out unsigned long commandCount,
[retval, array, size_is(commandCount)] out imICommand commands);
// Will return true if a command handled the message (it should not be sent).
// The aConversation parameters is required to execute protocol specific
// commands. Application global commands will work without it.
// If a conversation is returned as a result of executing the command,
// the caller should consider focusing it.
boolean executeCommand(in AUTF8String aMessage,
[optional] in prplIConversation aConversation,
[optional] out prplIConversation aReturnedConv);
};
%{ C++
#define IM_COMMANDS_SERVICE_CONTRACTID \
"@mozilla.org/chat/commands-service;1"
%}
|