diff options
Diffstat (limited to 'xnest-plugin/RxPlugin.h')
-rw-r--r-- | xnest-plugin/RxPlugin.h | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/xnest-plugin/RxPlugin.h b/xnest-plugin/RxPlugin.h new file mode 100644 index 0000000..ce7c420 --- /dev/null +++ b/xnest-plugin/RxPlugin.h @@ -0,0 +1,119 @@ +/* $Xorg: RxPlugin.h,v 1.4 2001/02/09 02:05:58 xorgcvs Exp $ */ +/* + +Copyright 1996, 1998 The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- +ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABIL- +ITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization from +The Open Group. + +*/ + +/* + * RX plug-in header file, based on the UnixTemplate file provided by Netcape. + */ + +/* -*- Mode: C; tab-width: 4; -*- */ +/****************************************************************************** + * Copyright 1996 Netscape Communications. All rights reserved. + ******************************************************************************/ +/* + * UnixShell.c + * + * Netscape Client Plugin API + * - Function that need to be implemented by plugin developers + * + * This file defines a "Template" plugin that plugin developers can use + * as the basis for a real plugin. This shell just provides empty + * implementations of all functions that the plugin can implement + * that will be called by Netscape (the NPP_xxx methods defined in + * npapi.h). + * + * dp Suresh <dp@netscape.com> + * + */ + +#ifndef _RxPlugin_h +#define _RxPLugin_h + +#include "npapi.h" +#include <X11/Xos.h> +#include <X11/Intrinsic.h> +#include <stdio.h> +#include "Rx.h" + + +/*********************************************************************** + * Instance state information about the plugin. + * + * PLUGIN DEVELOPERS: + * Use this struct to hold per-instance information that you'll + * need in the various functions in this file. + ***********************************************************************/ + +typedef enum { LOADING, /* STARTING, */ WAITING, RUNNING} PluginState; + +typedef struct _PluginInstance +{ + NPP instance; + int16 argc; /* HTML arguments given by Netscape */ + char **argn; + char **argv; + short parse_reply; /* 0 - no + 1 - look for status line + 2 - done */ + short status; /* returned application status */ + RxBool dont_reparent; /* whether client windows need reparent*/ + char *query; + PluginState state; + Widget status_widget; + Widget plugin_widget; + Dimension width, height; + /* The following fields need to be taken care by RxpNew & RxpDestroy */ + Window window; + pid_t child_pid; + int display_num; /* Xnest display number */ + Widget toplevel_widget; +} PluginInstance; + +#define PLUGIN_NAME "RX Xnest Plug-in" +#define PLUGIN_DESCRIPTION "This X Remote Activation Plug-in uses the \ +Xnest program to perform embedding of X applications." +#define PLUGIN_MIME_DESCRIPTION \ + "application/x-rx:xrx:X Remote Activation Plug-in" + + +/* functions to init and free private members */ +extern void RxpNew(PluginInstance *This); +extern void RxpDestroy(PluginInstance *This); + +extern int +RxpProcessParams(PluginInstance* This, RxParams *in, RxReturnParams *out); + +extern void +RxpSetStatusWidget(PluginInstance*, PluginState); + +extern void RxpInitXnestDisplayNumbers(); +extern int RxpXnestDisplayNumber(); +extern void RxpFreeXnestDisplayNumber(int i); +extern char * RxpXnestDisplay(int display_number); + +#endif |