blob: 26b807b8a3323c71cb9d9dd6903bb8dbbb9cbc89 [file] [log] [blame]
/*******************************************************************************
* 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