embedding/components/commandhandler/public/nsICommandManager.idl

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     6 #include "nsISupports.idl"
     7 #include "nsIObserver.idl"
     8 #include "nsICommandParams.idl"
    10 interface nsIDOMWindow;
    12 /*
    13  * nsICommandManager is an interface used to executing user-level commands,
    14  * and getting the state of available commands.
    15  *
    16  * Commands are identified by strings, which are documented elsewhere.
    17  * In addition, the list of required and optional parameters for
    18  * each command, that are passed in via the nsICommandParams, are
    19  * also documented elsewhere. (Where? Need a good location for this).
    20  */
    23 [scriptable, uuid(080D2001-F91E-11D4-A73C-F9242928207C)]
    24 interface nsICommandManager : nsISupports
    25 {
    26   /*
    27    * Register an observer on the specified command. The observer's Observe
    28    * method will get called when the state (enabled/disbaled, or toggled etc)
    29    * of the command changes.
    30    *
    31    * You can register the same observer on multiple commmands by calling this
    32    * multiple times.
    33    */
    34   void        addCommandObserver(in nsIObserver aCommandObserver,
    35                                  in string aCommandToObserve);
    37   /*
    38    * Stop an observer from observering the specified command. If the observer
    39    * was also registered on ther commands, they will continue to be observed.
    40    *
    41    * Passing an empty string in 'aCommandObserved' will remove the observer
    42    * from all commands.
    43    */
    44   void        removeCommandObserver(in nsIObserver aCommandObserver,
    45                                     in string aCommandObserved);
    47   /*
    48    * Ask the command manager if the specified command is supported.
    49    * If aTargetWindow is null, the focused window is used.
    50    *
    51    */
    52   boolean     isCommandSupported(in string aCommandName,
    53                                  in nsIDOMWindow aTargetWindow);
    55   /*
    56    * Ask the command manager if the specified command is currently.
    57    * enabled.
    58    * If aTargetWindow is null, the focused window is used.
    59    */
    60   boolean     isCommandEnabled(in string aCommandName,
    61                                in nsIDOMWindow aTargetWindow);
    63   /*
    64    * Get the state of the specified commands.
    65    *
    66    * On input: aCommandParams filled in with values that the caller cares
    67    * about, most of which are command-specific (see the command documentation
    68    * for details). One boolean value, "enabled", applies to all commands,
    69    * and, in return will be set to indicate whether the command is enabled
    70    * (equivalent to calling isCommandEnabled).
    71    *
    72    * aCommandName is the name of the command that needs the state
    73    * aTargetWindow is the source of command controller 
    74    *      (null means use focus controller)
    75    * On output: aCommandParams: values set by the caller filled in with
    76    * state from the command.
    77    */
    78   void        getCommandState(in string aCommandName,
    79                               in nsIDOMWindow aTargetWindow,
    80                   /* inout */ in nsICommandParams aCommandParams);
    82   /*
    83    * Execute the specified command.
    84    * The command will be executed in aTargetWindow if it is specified.
    85    * If aTargetWindow is null, it will go to the focused window.
    86    *
    87    * param: aCommandParams, a list of name-value pairs of command parameters,
    88    * may be null for parameter-less commands.
    89    *
    90    */
    91   void        doCommand(in string aCommandName,
    92                         in nsICommandParams aCommandParams,
    93                         in nsIDOMWindow aTargetWindow);
    95 };
    98 /*
   100 Arguments to observers "Observe" method are as follows:
   102   void Observe(   in nsISupports aSubject,          // The nsICommandManager calling this Observer
   103                   in string      aTopic,            // Name of the command
   104                   in wstring     aDummy );          // unused
   106 */
   108 // {64edb481-0c04-11d5-a73c-e964b968b0bc}
   109 %{C++
   110 #define NS_COMMAND_MANAGER_CID \
   111 { 0x64edb481, 0x0c04, 0x11d5, { 0xa7, 0x3c, 0xe9, 0x64, 0xb9, 0x68, 0xb0, 0xbc } }
   113 #define NS_COMMAND_MANAGER_CONTRACTID \
   114  "@mozilla.org/embedcomp/command-manager;1"
   115 %}

mercurial