зеркало из https://github.com/mozilla/gecko-dev.git
87 строки
2.8 KiB
C
87 строки
2.8 KiB
C
|
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||
|
*
|
||
|
* The contents of this file are subject to the Mozilla Public License
|
||
|
* Version 1.0 (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 Mozilla Communicator client code.
|
||
|
*
|
||
|
* The Initial Developer of the Original Code is Christopher Blizzard.
|
||
|
* Portions created by Christopher Blizzard are Copyright (C) 1999
|
||
|
* Christopher Blizzard. All Rights Reserved.
|
||
|
*/
|
||
|
|
||
|
#ifndef nsIXlibWindowService_h__
|
||
|
#define nsIXlibWindowService_h__
|
||
|
|
||
|
#include "nsISupports.h"
|
||
|
|
||
|
// Interface id for the XlibWindow service
|
||
|
// { bd39ccb0-3f08-11d3-b419-00805f6d4c2a }
|
||
|
#define NS_XLIB_WINDOW_SERVICE_IID \
|
||
|
{ 0xbd39ccb0, \
|
||
|
0x3f08, \
|
||
|
0x11d3, \
|
||
|
{ 0xb4, 0x19, 0x00, 0x80, 0x5f, 0x6d, 0x4c, 0x2a } }
|
||
|
|
||
|
// Class ID for our implementation
|
||
|
// { 285fb550-3af4-11d3-aeb9-0000f8e25c06 }
|
||
|
#define NS_XLIB_WINDOW_SERVICE_CID \
|
||
|
{ 0x285fb550, \
|
||
|
0x3af4, \
|
||
|
0x11d3, \
|
||
|
{ 0xae, 0xb9, 0x00, 0x00, 0xf8, 0xe2, 0x5c, 0x06 } }
|
||
|
|
||
|
#define NS_XLIB_WINDOW_SERVICE_PROGID "component://netscape/widget/xlib/window_service"
|
||
|
|
||
|
/**
|
||
|
* This is an interface for getting access to the construction
|
||
|
* and destruction of native windows in xlib.
|
||
|
* @created 20/Jul/1999
|
||
|
* @author Christopher Blizzard <blizzard@redhat.com>
|
||
|
*/
|
||
|
|
||
|
class nsXlibWindowCallback {
|
||
|
public:
|
||
|
virtual void WindowCreated (PRUint32 aID) = 0;
|
||
|
virtual void WindowDestroyed(PRUint32 aID) = 0;
|
||
|
};
|
||
|
|
||
|
|
||
|
class nsIXlibWindowService : public nsISupports
|
||
|
{
|
||
|
public:
|
||
|
NS_DEFINE_STATIC_IID_ACCESSOR(NS_XLIB_WINDOW_SERVICE_IID);
|
||
|
|
||
|
/**
|
||
|
* Register your function for window creation and destruction.
|
||
|
* This function will get called whenever a new native X window
|
||
|
* is created. or destroyed.
|
||
|
*
|
||
|
* @param [IN] the function that you would like to register
|
||
|
* @return NS_OK if ok, NS_ERROR_FAILURE if you pass in 0
|
||
|
*/
|
||
|
|
||
|
NS_IMETHOD SetCreateCallback(nsXlibWindowCallback *aFunc) = 0;
|
||
|
|
||
|
/**
|
||
|
* This function will dispatch a native X event ( cast to a void *
|
||
|
* here ) to the event handler on the inside of the widget
|
||
|
* toolkit
|
||
|
* @param [IN] a pointer to an XEvent, cast to a void *
|
||
|
* @return NS_OK if ok, NS_ERROR_FAILURE if you pass in an
|
||
|
* invalid window id
|
||
|
*/
|
||
|
|
||
|
NS_IMETHOD DispatchNativeXlibEvent(void *aNativeEvent) = 0;
|
||
|
|
||
|
};
|
||
|
|
||
|
#endif /* nsIXlibWindowService_h__ */
|