зеркало из https://github.com/mozilla/pjs.git
add newline at the end of the files
This commit is contained in:
Родитель
b8eadc13f4
Коммит
542000257a
|
@ -80,4 +80,5 @@ interface nsIEvent : nsISupports
|
|||
in voidStar data);
|
||||
|
||||
readonly attribute boolean isExitEvent;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -79,4 +79,5 @@ interface nsIEventFilter : nsISupports
|
|||
[noscript] void SetNativeData(in nsNativeFilterDataType dataType,
|
||||
in voidStar data);
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -1,259 +0,0 @@
|
|||
/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is the Mozilla browser.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications, Inc. Portions created by Netscape are
|
||||
* Copyright (C) 1999, Mozilla. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Travis Bogard <travis@netscape.com>
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
#include "nsIEventFilter.idl"
|
||||
#include "nsIEvent.idl"
|
||||
#include "nsIDispatchListener.idl"
|
||||
#include "nsITranslateListener.idl"
|
||||
|
||||
|
||||
typedef long nsEventLoopType;
|
||||
|
||||
/*
|
||||
There are three basic types of Event Loops that can exist in a system.
|
||||
1.) There is the Main Event loop that services the application. This
|
||||
is typically what would be found at the bottom of a main(). Event loops
|
||||
of this type are specified with the 'MainAppLoop' type. There can only
|
||||
be one of these per Application. It is also important to note that
|
||||
Run() called on a Loop of this type blocks until the loop exits.
|
||||
2.) User-interface threads are distinct from worker threads in that they
|
||||
provide an event loop that services native system events. This is the loop
|
||||
that that is found at the bottom of the ThreadMain often looking very
|
||||
similar to the one found in main(). Event loops of this type are specified
|
||||
with the 'ThreadLoop' type. There can only be one of these per thread.It is
|
||||
also important to note that Run() called on a Loop of this type blocks
|
||||
until the loop exits.
|
||||
3.) The third type of loop that exists is one that is done to allow the
|
||||
application and sytem to "breathe". This loop is often invoked from various
|
||||
places on the stack virtually always with the main thread loop living down
|
||||
the stack in some fashion. Great care should be taken in using loops of
|
||||
this kind. Event loops of this type are specified with the 'AppBreathLoop'
|
||||
type. There can be as many of these per application as the application
|
||||
wishes to create. This loop is different than others with respect to the
|
||||
way Run() works on events of this type. Run() will return once the app
|
||||
has had suffiecient breathe time. This may be once the event queue is
|
||||
empty or may be after a specified yield time. As loops of this type aren't
|
||||
tied to the life of a thread or app, the return from Run() does not
|
||||
indicate the desire to end a thread or app either.
|
||||
|
||||
|
||||
******* Talk about life of a loop of these types ******
|
||||
|
||||
*/
|
||||
|
||||
[scriptable, uuid(2EFB5002-4508-11d3-AEDA-00A024FFC08C)]
|
||||
interface nsEventLoopTypes
|
||||
{
|
||||
const long MainAppLoop = 1;
|
||||
const long ThreadLoop = 2;
|
||||
const long AppBreathLoop = 3;
|
||||
};
|
||||
|
||||
/**
|
||||
* The nsIEventLoop provides the facilities to interfact with a native
|
||||
* application event queue.
|
||||
*/
|
||||
|
||||
[scriptable, uuid(2EFB5001-4508-11d3-AEDA-00A024FFC08C)]
|
||||
interface nsIEventLoop : nsISupports
|
||||
{
|
||||
/******** High Level App Usage *******/
|
||||
|
||||
/* Runs the Event Loop. This is a blocking call, it will return when the
|
||||
application or OS has indicated the loop should quit. This is a convience
|
||||
function that can be recreated by a client of this interface using the
|
||||
low-level methods. Unless the application truly needs to handle events
|
||||
on it's own, it is suggested that this method be used rather than manually
|
||||
creating the event loop. To end an event loop one can call the Exit()
|
||||
method on the nsIEventLoop interface.
|
||||
|
||||
In the case of a AppBreathLoop this blocks the app has had suffiecient
|
||||
"breathe" time. This may be once the event queue is empty or may be after
|
||||
a specified yield time. As loops of this type aren't tied to the life of
|
||||
a thread or app, the return from Run() does not indicate the desire to end
|
||||
a thread or app either.
|
||||
|
||||
@param filter Message Filter for handling of events in this loop. If the
|
||||
application wishes to select ranges for message
|
||||
it can pass in a filter. This may be null.
|
||||
@param translateListener Callback called for application specific tranlation
|
||||
of events. This should be null unless the calling
|
||||
application really needs to override the default translation.
|
||||
@param dispatchListener Callback called for application specific dispatching
|
||||
of events. This should be null unless the calling application
|
||||
really needs to override the default processing.
|
||||
@param retCode Return code returned from the running of the loop. This will
|
||||
be 0 on a successful exit of Run. non-zero when run exited
|
||||
due to failure.
|
||||
*/
|
||||
// Bool for nested PL_Events.
|
||||
|
||||
void Run(in nsIEventFilter filter, in nsITranslateListener translateListener,
|
||||
in nsIDispatchListener dispatchListener, out long retCode);
|
||||
|
||||
/* Exits the Event loop referred to by the instantiation of this interface.
|
||||
@param exitCode Exit code that is to be returned at the retCode for
|
||||
Run().
|
||||
*/
|
||||
void Exit(in long exitCode);
|
||||
|
||||
/* Takes a snapshot of an event and gives full ownership to the calling
|
||||
function.
|
||||
*/
|
||||
void CloneEvent(in nsIEvent event, out nsIEvent newEvent);
|
||||
|
||||
/* Creates a new event for the caller.
|
||||
*/
|
||||
void CreateNewEvent(out nsIEvent newEvent);
|
||||
|
||||
/* Creates a new filter for the caller.
|
||||
*/
|
||||
void CreateNewEventFilter(out nsIEventFilter newFilter);
|
||||
|
||||
/******* Low Level Loop Management *****/
|
||||
|
||||
/* This retrieves the next message in the queue for this event loop.
|
||||
If there are no messages in the queue, GetNextMessage will wait for
|
||||
messages to be placed in the queue offering control up to other applications
|
||||
while waiting. When an event to exit the queue is retrieved, GetNextMessage
|
||||
will return NS_FALSE to indicate the loop should finish.
|
||||
|
||||
@param filter Message Filter for handling of events in this loop. If the
|
||||
application wishes to select ranges for message
|
||||
it can pass in a filter. This may be null.
|
||||
@param evt This is the message returned from the queue. Each platform
|
||||
may call GetData to get the platform specific
|
||||
internal data of the event. You must pass in an already existing
|
||||
event object that can store the event data. You can get one of
|
||||
these by calling CreateEvent().
|
||||
@return NS_OK - evt has been retrieved and ready to be processed.
|
||||
NS_COMFALSE - An exit event has been signalled.
|
||||
NS_ERROR_INVALID_ARG - The event passed in was invalid.
|
||||
NS_ERROR_FAILURE - Internal failure, ignore all results and
|
||||
cease use of loop.
|
||||
*/
|
||||
void GetNextEvent(in nsIEventFilter filter, in nsIEvent evt);
|
||||
|
||||
/* This retrieves the next message in the queue for this event loop.
|
||||
If there are no messages in the queue, unlike GetNextEvent,
|
||||
PeekNextEvent will return immediately with NS_COMFALSE.
|
||||
When the queue becomes empty, PeekNextEvent will return NS_COMFALSE to
|
||||
indicate the loop should finish.
|
||||
|
||||
@param filter Message Filter for handling of events in this loop. If the
|
||||
application wishes to select ranges for message
|
||||
it can pass in a filter. This may be null.
|
||||
@param evt This is the message returned from the queue. Each platform
|
||||
may call GetData to get the platform specific
|
||||
internal data of the event. You must pass in an already existing
|
||||
event object that can store the event data. You can get one of
|
||||
these by calling CreateEvent().
|
||||
@param fRemoveEvent Indicates that the Event should be removed from the
|
||||
queue as it is pulled off. Passing false allows you to walk
|
||||
through the queue without actually removing the queued messages.
|
||||
Be careful when you do this. (False is not supported in all
|
||||
implementations, in those that do not support false, NS_COMFALSE
|
||||
will be returned.)
|
||||
@return NS_OK - msg has been retrieved and ready to be processed.
|
||||
NS_COMFALSE - There are no more events to retrieve. Or
|
||||
fRemoveEvent was false and this is not supported.
|
||||
NS_ERROR_INVALID_ARG - The event passed in was invalid.
|
||||
NS_ERROR_FAILURE - Internal failure, ignore all results and
|
||||
cease use of loop.
|
||||
*/
|
||||
void PeekNextEvent(in nsIEventFilter filter, in nsIEvent evt,
|
||||
in boolean fRemoveEvent);
|
||||
|
||||
/* This does any pre-processing of the message that may be needed.
|
||||
@param evt This is the message returned from the queue. Each platform
|
||||
may call GetData to get the platform specific
|
||||
internal data of the event. It should be noted that the
|
||||
XP Event Loop retains ownership of this object, though it
|
||||
it possible to addref and store the event off, it should be
|
||||
known that the XP Event Loop may change the values of the
|
||||
object. To get a copy of the state that can be owned by you
|
||||
call CloneEvent().
|
||||
@return NS_OK - Translated Message.
|
||||
NS_FALSE - Was unable to Translate Message, but this is normal.
|
||||
NS_ERROR_FAILURE - Catastrophic processing failure. Event loop
|
||||
should die immediately.
|
||||
*/
|
||||
void TranslateEvent(in nsIEvent evt);
|
||||
|
||||
/* This does any pre-processing of the message that may be needed.
|
||||
@param evt This is the message returned from the queue. Each platform
|
||||
may call GetData to get the platform specific
|
||||
internal data of the event. It should be noted that the
|
||||
XP Event Loop retains ownership of this object, though it
|
||||
it possible to addref and store the event off, it should be
|
||||
known that the XP Event Loop may change the values of the
|
||||
object. To get a copy of the state that can be owned by you
|
||||
call CloneEvent().
|
||||
@return NS_OK - Processed and Dispatched Message.
|
||||
NS_FALSE - Was unable to Dispatch Message, but this is normal.
|
||||
NS_ERROR_FAILURE - Catastrophic processing failure. Event loop
|
||||
should die immediately.
|
||||
*/
|
||||
|
||||
void DispatchEvent(in nsIEvent evt);
|
||||
|
||||
/******* Loop Manipulation ******/
|
||||
|
||||
/* Puts a Message on the event loop referred to by the interface pointer
|
||||
and waits for the message to be processed.
|
||||
|
||||
@param evt This is the message returned from the queue. Each platform can
|
||||
QI on this returned interface to get the platform specific
|
||||
message contents. This interface is addrefd and must be
|
||||
released when processing is complete.
|
||||
@return NS_OK - Message Sent and Processed.
|
||||
NS_COMFALSE - Message was Sent but was unable to wait for event
|
||||
processing.
|
||||
NS_ERROR_INVALID_ARG - Message passed in was mal-formed.
|
||||
NS_ERROR_FAILURE - Catastrophic processing failure.
|
||||
|
||||
*/
|
||||
void SendLoopEvent(in nsIEvent evt, out long result);
|
||||
|
||||
/* Puts a Message on the event loop referred to by the interface pointer
|
||||
and then returns immediately not waiting for the message to be processed.
|
||||
|
||||
@param evt This is the message returned from the queue. Each platform can
|
||||
QI on this returned interface to get the platform specific
|
||||
message contents. This interface is addrefd and must be
|
||||
released when processing is complete.
|
||||
@return NS_OK - Message was placed on the event queue.
|
||||
NS_ERROR_INVALID_ARG - Message passed in was mal-formed.
|
||||
NS_ERROR_FAILURE - Catastrophic processing failure.
|
||||
|
||||
*/
|
||||
void PostLoopEvent(in nsIEvent evt);
|
||||
|
||||
/******* Event Loop Information ******/
|
||||
|
||||
/* Specifies the type of the event loop. This was set upon creation. */
|
||||
readonly attribute nsEventLoopType EventLoopType;
|
||||
|
||||
/* Specifies the name of the event loop. This was set upon creation. */
|
||||
readonly attribute wstring EventLoopName;
|
||||
};
|
|
@ -1,82 +0,0 @@
|
|||
/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is the Mozilla browser.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications, Inc. Portions created by Netscape are
|
||||
* Copyright (C) 1999, Mozilla. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Travis Bogard <travis@netscape.com>
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
#include "nsIEvent.idl"
|
||||
|
||||
/**
|
||||
* The nsITranslateListener defines the callback listener interface that
|
||||
* can be passed to the Run routine on and event loop. This allows
|
||||
* application overriding or additions to the default event translation
|
||||
* mechanism.
|
||||
*/
|
||||
|
||||
[scriptable, uuid(2EFB5008-4508-11d3-AEDA-00A024FFC08C)]
|
||||
interface nsITranslateListener : nsISupports
|
||||
{
|
||||
/* Called just before the nsIEventLoop::TranslateMessage() is called.
|
||||
This allows a listener first crack at translating Messages. The
|
||||
listener can then control if TranslateMessage() is called via the
|
||||
return.
|
||||
|
||||
@param evt This is the native message that has been retrieved from the Queue
|
||||
and awaiting dispatching. Each platform
|
||||
may call GetData to get the platform specific
|
||||
internal data of the event. It should be noted that the
|
||||
XP Event Loop retains ownership of this object, though it
|
||||
it possible to addref and store the event off, it should be
|
||||
known that the XP Event Loop may change the values of the
|
||||
object. To get a copy of the state that can be owned by you
|
||||
call CloneEvent().
|
||||
|
||||
@return NS_OK - Indicates nsIEventLoop::TranslateMessage() should be called
|
||||
following the return from this function.
|
||||
NS_COMFALSE - Translating went successfully, but
|
||||
nsIEventLoop::TranlateMessage() should not be called.
|
||||
NS_ERROR_FAILURE - Catastrophic processing failure. Event loop should
|
||||
die immediately.
|
||||
*/
|
||||
void PreTranslate(in nsIEvent evt);
|
||||
|
||||
/*
|
||||
Called just after the nsIEventLoop::TranslateMessage() has been called.
|
||||
|
||||
@param evt This is the native message that has been retrieved from the Queue
|
||||
and awaiting dispatching. Each platform
|
||||
may call GetData to get the platform specific
|
||||
internal data of the event. It should be noted that the
|
||||
XP Event Loop retains ownership of this object, though it
|
||||
it possible to addref and store the event off, it should be
|
||||
known that the XP Event Loop may change the values of the
|
||||
object. To get a copy of the state that can be owned by you
|
||||
call CloneEvent(). This will not be called if PreTranslate
|
||||
returns NS_COMFALSE.
|
||||
|
||||
@param fTranslateHandled Indicates if nsIEventLoop::TranslateMessage() handled
|
||||
the message being passed in.
|
||||
|
||||
@return NS_OK - Processing completed fine.
|
||||
NS_ERROR_FAILURE - Catastrophic processing failure. Event loop
|
||||
should die immediately.
|
||||
*/
|
||||
void PostTranslate(in nsIEvent evt, in boolean fTranslateHandled);
|
||||
};
|
|
@ -1,44 +0,0 @@
|
|||
/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public
|
||||
* License Version 1.1 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS
|
||||
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
* implied. See the License for the specific language governing
|
||||
* rights and limitations under the License.
|
||||
*
|
||||
* The Original Code is the Mozilla browser.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Netscape
|
||||
* Communications, Inc. Portions created by Netscape are
|
||||
* Copyright (C) 1999, Mozilla. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Travis Bogard <travis@netscape.com>
|
||||
*/
|
||||
|
||||
#include "nsISupports.idl"
|
||||
|
||||
/**
|
||||
* The nsPIEventLoop allows the internal creator of the event loop to do
|
||||
* proper setup on the instantiation without the public interface having to
|
||||
* expose writable properties for private data.
|
||||
*/
|
||||
|
||||
[scriptable, uuid(2EFB5009-4508-11d3-AEDA-00A024FFC08C)]
|
||||
interface nsPIEventLoop : nsISupports
|
||||
{
|
||||
/*
|
||||
The creator of the event loop calls this method to setup the object
|
||||
before it is used. This allows setting internal data members that
|
||||
are exposed in the public interface as read-only attributes.
|
||||
|
||||
@param name This is the name of the event loop. This is used to find
|
||||
an event loop once it has been created.
|
||||
*/
|
||||
|
||||
void LoopInit(in wstring name);
|
||||
};
|
Загрузка…
Ссылка в новой задаче