diff options
Diffstat (limited to 'features/org.eclipse.equinox.executable.feature/library/motif/eclipseMotif.h')
-rw-r--r-- | features/org.eclipse.equinox.executable.feature/library/motif/eclipseMotif.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/features/org.eclipse.equinox.executable.feature/library/motif/eclipseMotif.h b/features/org.eclipse.equinox.executable.feature/library/motif/eclipseMotif.h new file mode 100644 index 000000000..26b807b8a --- /dev/null +++ b/features/org.eclipse.equinox.executable.feature/library/motif/eclipseMotif.h @@ -0,0 +1,96 @@ +/******************************************************************************* + * Copyright (c) 2007, 2009 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +#ifndef ECLIPSE_MOTIF_H +#define ECLIPSE_MOTIF_H + +#include <Xm/XmAll.h> +#include <X11/X.h> +#include <X11/Xlib.h> +#include <X11/IntrinsicP.h> +#include <X11/Intrinsic.h> +#include <X11/Shell.h> + +#ifndef NO_XINERAMA_EXTENSIONS +#include <X11/extensions/Xinerama.h> +#endif + +struct MOTIF_PTRS { +#ifndef NO_XINERAMA_EXTENSIONS + Bool (*XineramaIsActive) (Display*); + XineramaScreenInfo* (*XineramaQueryScreens) (Display*, int*); +#endif + Widget (*XmCreateDrawingArea) (Widget, String, ArgList, Cardinal); + Widget (*XmCreateLabelGadget) (Widget, char *, Arg *, Cardinal); + Widget (*XmCreateMainWindow) (Widget, char *, ArgList, Cardinal); + Widget (*XmCreateMessageDialog)(Widget, String, ArgList, Cardinal); + Widget (*XmMessageBoxGetChild) (Widget, unsigned char); + void (*XmStringFree) (XmString); + XmString (*XmStringGenerate) (XtPointer, XmStringTag, XmTextType, XmStringTag); + + void (*XtAddCallback) (Widget, String, XtCallbackProc, XtPointer); + Widget (*XtAppCreateShell) (String, String, WidgetClass, Display*, ArgList, Cardinal); + void (*XtAppNextEvent) (XtAppContext, XEvent*); + XtInputMask (*XtAppPending) (XtAppContext); + void (*XtAppProcessEvent) (XtAppContext, XtInputMask); + void (*XtDestroyWidget) (Widget); + Boolean (*XtDispatchEvent) (XEvent*); + void (*XtGetValues) (Widget, ArgList, Cardinal); + Widget (*XtInitialize) (String, String, XrmOptionDescRec*, Cardinal, int*, char**); +#ifdef AIX + Widget (*eclipseXtInitialize) (String, String, XrmOptionDescRec*, Cardinal, int*, char**); +#endif + Boolean (*XtIsManaged) (Widget); + void (*XtManageChild) (Widget); + int (*XtMapWidget) (Widget); + void (*XtPopup) (Widget, XtGrabKind); + void (*XtRealizeWidget) (Widget); + Widget (*XtSetLanguageProc) (XtAppContext, XtLanguageProc, XtPointer); + void (*XtSetMappedWhenManaged)(Widget, Boolean); + void (*XtSetValues) (Widget, ArgList, Cardinal); + void (*XtUnmanageChild) (Widget); + XtAppContext (*XtWidgetToApplicationContext) (Widget); + Window (*XtWindowOfObject) (Widget); + + Screen * (*XDefaultScreenOfDisplay)(Display*); + int (*XFree) (void*); + int (*XFlush) (Display*); + Status (*XGetGeometry) (Display*, Drawable, Window*, int*, int*, unsigned int*, unsigned int*, unsigned int*, unsigned int*); + int (*XMapWindow) (Display*, Window); + + char * _XmStrings; + char * XtShellStrings; + char * XtStrings; + WidgetClass *applicationShellWidgetClass; +}; + +extern struct MOTIF_PTRS motif; + +#define motif_XtDisplay XtDisplay +#define motif_XtSetArg XtSetArg +#define motif_XtWindow XtWindow +#define motif_XtIsTopLevelShell XtIsTopLevelShell +#define motif_XtIsRealized(object) (motif.XtWindowOfObject(object) != None) +#define motif_XtMapWidget(widget) motif.XMapWindow(XtDisplay(widget), XtWindow(widget)) + +#define _XmStrings motif._XmStrings +#define XtShellStrings motif.XtShellStrings +#define XtStrings motif.XtStrings + +/* macro resolves to { (void**)&motif.foo, "foo" }, use it to initialize FN_TABLEs */ +#define FN_TABLE_ENTRY(fn) { (void**)&motif.fn, #fn } +typedef struct { + void ** fnPtr; + char * fnName; +} FN_TABLE; + +extern int loadMotif(); +#endif |