Commit 2bad4ee2 authored by Pavel Janík's avatar Pavel Janík
Browse files

Remove unused file.

parent 9d5ebed1
......@@ -4,7 +4,8 @@
(xrdb-cpp.o): Remove target.
Remove unused defines.
* xrdb.c, xrdb-cpp.c, Imakefile: Remove unused file.
* xrdb.c, xrdb-cpp.c, Imakefile, dispatch.c, dispatch.h:
Remove unused file.
* lwlib.c (instantiate_widget_instance): Remove duplicated
prototype.
......
/**/# Imakefile file for liblw.a, Copyright (c) 1992-1993 Lucid, Inc.
/*
* If you have Motif and want to provide support for Motif widgets in lwlib,
* then define USE_MOTIF.
*
* If you have OpenLook and want to provide support for OpenLook widgets in
* lwlib, then define USE_OLIT.
*
* Otherwise, define USE_LUCID to use Lucid's own Motif-lookalike widgets,
* which are included in this directory.
*
* You cannot define USE_MOTIF and USE_OLIT at the same time, but USE_LUCID
* may be defined along with either of the other two.
*
* The OLIT menubar is slow, and possibly buggy. We recommend against using
* it unless you'd like to try to improve it (which we encourage.)
*
* The Lucid menubar is much faster than the Motif menubar, but is missing
* a few features (most notably stay-up menus and keyboard traversal.) But
* since it has the Motif look-and-feel, we recommend using it even if you
* have Motif.
*
* Currently, only the Motif widgets provide support for dialog boxes. If
* you don't have Motif, you will not be able to pop up dialog boxes from
* emacs. If you define both USE_LUCID and USE_MOTIF, then the menus will
* be implemented with Lucid widgets, and the dialog boxes will be
* implemented with Motif widgets.
*
* It shouldn't take much work to add support for non-Motif dialog boxes;
* all that one need do is add code that implements Athena versions of the
* xm_create_dialog(), xm_update_one_widget(), and xm_update_one_value()
* routines in lwlib-Xm.c. If you do this, please send us the code.
*
* If you have your X11 source tree online, then you should define
* INCLUDE_EXTENSIONS to cause this library to contain some useful functions
* which Xt should provide but doesn't. You can only do this if you have
* the source tree online, because these functions require access to internal
* Xt data structures that are not defined in the exported header files.
* If you define INCLUDE_EXTENSIONS, then the variable $TOP must point at the
* root of the X11 source tree.
*
* To build a "shared" version of lwlib as well, define BUILD_SHARED_LIB.
* If INCLUDE_EXTENSIONS is defined, and you want to link with a dynamic
* version of Xt, it may be necessary to build a shared version of lwlib as
* well, as the X libraries sometimes put *different code* in the dynamic
* and shared versions of their libraries, for some reason I don't understand.
*
* Remember, if you build and install a shared version of lwlib, you may need
* to run ldconfig(8) before anything will realize that it exists.
*
* To compile with support for Lucid's Energize Programming System, you must
* define all of ENERGIZE, USE_LUCID, USE_MOTIF, and INCLUDE_EXTENSIONS.
*/
#define USE_LUCID
/* #define USE_MOTIF */
/* #define USE_OLIT */
/* #define BUILD_SHARED_LIB */
/* #define ENERGIZE */
/* #define INCLUDE_EXTENSIONS */
#ifdef INCLUDE_EXTENSIONS /* this is where it is at our site */
TOP = /$(WHICH_X)/mit
#endif
/*
*
* You shouldn't need to edit anything below this point.
*
*/
#ifdef ENERGIZE
# if !defined(USE_LUCID) || !defined(USE_MOTIF) || !defined(INCLUDE_EXTENSIONS)
ERROR! Energize requires Lucid widgets, Motif, and X Extensions.
# endif
#endif /* ENERGIZE */
#ifdef BUILD_SHARED_LIB
SOLWREV=1.0
#endif
#if (ProjectX == 4)
STD_DEFINES = LibraryDefines
CDEBUGFLAGS = LibraryCDebugFlags
EXT_DEFINES = -DTHIS_IS_X11R4
WHICH_X = x11r4
#define SpecialLibObjectRule SpecialObjectRule
#else /* !4 */
#if (ProjectX == 5)
#ifdef BUILD_SHARED_LIB
# define DoSharedLib YES
# define DoNormalLib YES
#endif
#include <Library.tmpl>
EXT_DEFINES = -DTHIS_IS_X11R5 -DINCLUDE_ALLOCA_H
WHICH_X = x11r5
#else /* !5 */
EXT_DEFINES = "ERROR! Imakefile was unable to determine whether this is X11r4 or X11r5."
#endif /* !5 */
#endif /* !4 */
LUCID_SRCS = lwlib-Xlw.c xlwmenu.c
LUCID_OBJS = lwlib-Xlw.o xlwmenu.o
MOTIF_SRCS = lwlib-Xm.c
MOTIF_OBJS = lwlib-Xm.o
OLIT_SRCS = lwlib-Xol.c lwlib-Xol-mb.c
OLIT_OBJS = lwlib-Xol.o lwlib-Xol-mb.o
#ifdef INCLUDE_EXTENSIONS
EXT_SRCS = dispatch.c xrdb-cpp.c xrdb.c
EXT_OBJS = dispatch.o xrdb-cpp.o xrdb.o
#endif
#if (defined(USE_MOTIF) && defined(USE_OLIT))
TOOLKIT_DEFINES = "ERROR! You cannot define both USE_MOTIF and USE_OLIT at the same time (in Imakefile)."
#else
# if (defined(USE_MOTIF) && defined(USE_LUCID))
TOOLKIT_DEFINES = -DUSE_MOTIF -DUSE_LUCID
TOOLKIT_SRCS = $(MOTIF_SRC) $(LUCID_SRCS)
TOOLKIT_OBJS = $(MOTIF_OBJS) $(LUCID_OBJS)
# else
# if (defined(USE_OLIT) && defined(USE_LUCID))
DEFINES = -DUSE_OLIT -DUSE_LUCID
TOOLKIT_SRCS = $(OLIT_SRC) $(LUCID_SRCS)
TOOLKIT_OBJS = $(OLIT_OBJS) $(LUCID_OBJS)
# else
# if defined(USE_OLIT)
TOOLKIT_DEFINES = -DUSE_OLIT
TOOLKIT_SRCS = $(OLIT_SRC)
TOOLKIT_OBJS = $(OLIT_OBJS)
# else
# if defined(USE_MOTIF)
TOOLKIT_DEFINES = -DUSE_MOTIF
TOOLKIT_SRCS = $(MOTIF_SRC)
TOOLKIT_OBJS = $(MOTIF_OBJS)
# else
# if defined(USE_LUCID)
TOOLKIT_DEFINES = -DUSE_LUCID
TOOLKIT_SRCS = $(LUCID_SRC)
TOOLKIT_OBJS = $(LUCID_OBJS)
# else
TOOLKIT_DEFINES = "ERROR! At least one of USE_MOTIF, USE_LUCID or USE_OLIT must be defined in Imakefile."
# endif
# endif
# endif
# endif
# endif
#endif
#ifdef ENERGIZE
# ifndef USE_MOTIF
EZ_OBJS = "ERROR! ENERGIZE requires USE_MOTIF to be defined in Imakefile."
# else
EZ_OBJS = energize/blpsheet.o energize/build.o energize/classbr_ps.o \
energize/ctreebr_ps.o energize/debuggerps.o \
energize/editmode.o energize/leb_psheet.o \
energize/projectdisp.o energize/projectps.o \
energize/search.o energize/target.o
ENERGIZEP = -DENERGIZE
# endif
#endif
SRCS = lwlib.c $(TOOLKIT_SRCS) lwlib-utils.c $(EXT_SRCS)
OBJS = lwlib.o $(TOOLKIT_OBJS) lwlib-utils.o $(EXT_OBJS) $(EZ_OBJS)
EXT_FLAGS = -I$(TOOLKITSRC) $(EXT_DEFINES)
LIBNAME = liblw.a
#if defined(ENERGIZE) && defined(BUILD_SHARED_LIB)
all::
@if [ ! -d shared ]; then mkdir shared; else exit 0; fi
@if [ ! -d energize/shared ]; then mkdir energize/shared; \
else exit 0; fi
@if [ ! -h shared/energize ]; \
then cd shared ; ln -s ../energize/shared energize ; \
else exit 0; fi
clean::
$(RM) shared/energize
#endif
#ifdef BUILD_SHARED_LIB
# if (ProjectX == 4)
SharedLibraryObjectRule ()
NormalSharedLibraryTarget(lw,$(SOLWREV),$(OBJS))
# else /* X != 4 */
LibraryObjectRule ()
SharedLibraryTarget(lw,$(SOLWREV),$(OBJS),shared,..)
# endif /* X != 4 */
#else /* !BUILD_SHARED_LIB */
NormalLibraryObjectRule ()
#endif /* !BUILD_SHARED_LIB */
NormalLibraryTarget (lw,$(OBJS))
MakefileSubdirs (energize)
DependTarget ()
#ifdef ENERGIZE
energize/Imakefile:
-mkdir energize
-(cd energize ; sh -c "ln -s ../$(VPATH)/energize/* .")
/* #### we should automatically edit BUILD_SHARED_LIB into/out of the energize
Imakefile, since that's the only thing down there that changes */
energize/Makefile: energize/Imakefile Imakefile
$(MAKE) $(MFLAGS) Makefiles
Makefile::
$(RM) energize/Makefile
$(EZ_OBJS): energize/Makefile
${RM} $@ ; cd energize ; $(MAKE) $(MFLAGS) CC="$(CC)" CFLAGS="$(CFLAGS)"
clean::
cd energize ; $(MAKE) $(MFLAGS) clean
#endif
#if defined(BUILD_SHARED_LIB) && (ProjectX == 4)
# define LWObjectRule SpecialSharedObjectRule
#else
# define LWObjectRule SpecialLibObjectRule
#endif
CPPDEFS=-DCPP_PROGRAM=\"CppCmd\"
LWObjectRule (lwlib.o, lwlib.c, $(TOOLKIT_DEFINES))
LWObjectRule (dispatch.o, dispatch.c, $(EXT_FLAGS))
LWObjectRule (xrdb-cpp.o, xrdb-cpp.c, $(EXT_FLAGS) "$(CPPDEFS)")
LWObjectRule (xrdb.o, xrdb.c, $(EXT_FLAGS))
LWObjectRule (lwlib-Xm.o, lwlib-Xm.c, $(ENERGIZEP))
lwlib-utils.o: lwlib-utils.h
lwlib.o: lwlib.h lwlib-internal.h
lwlib-Xlw.o: lwlib.h lwlib-internal.h
lwlib-Xm.o: lwlib.h lwlib-internal.h lwlib-utils.h
lwlib-Xol.o: lwlib.h lwlib-internal.h
lwlib-Xol-mb.o: lwlib-Xol-mb.h lwlib-Xol-mbP.h
/* Defines a function to find the Widget that XtDispatchEvent() would use.
Copyright (C) 1992 Lucid, Inc.
This file is part of the Lucid Widget Library.
The Lucid Widget Library is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.
The Lucid Widget Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/*
* The function XtWidgetToDispatchTo(), given an XEvent, returns the
* widget that XtDispatchEvent() would send that event to if called now.
* This file copies much code from the X11r4 Xt source, and is thus a
* portability problem. It also requires data structures defined in
* IntrinsicI.h, which is a non-exported Xt header file, so you can't
* compile this file unless you have the Xt sources online.
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <IntrinsicI.h> /* Don't change this: see comments in Imakefile. */
#include <X11/Xatom.h>
#include "dispatch.h"
#include <X11/Xlib.h>
#include <X11/cursorfont.h>
#include <X11/Xutil.h>
#ifdef XlibSpecificationRelease
#if XlibSpecificationRelease >= 5
#define HAVE_X11R5
#endif
#endif
/* ## All of the code on this page was copied from the X11R5 lib/Xt/Event.c,
## but is compatible with X11R4; the code in Event.c is different, but
## functionally equivalent for our purposes.
*/
#if __STDC__
#define Const const
#else
#define Const /**/
#endif
#define NonMaskableMask ((EventMask)0x80000000L)
#define COMP_EXPOSE (widget->core.widget_class->core_class.compress_exposure)
#define COMP_EXPOSE_TYPE (COMP_EXPOSE & 0x0f)
#define GRAPHICS_EXPOSE ((XtExposeGraphicsExpose & COMP_EXPOSE) || \
(XtExposeGraphicsExposeMerged & COMP_EXPOSE))
#define NO_EXPOSE (XtExposeNoExpose & COMP_EXPOSE)
/* -- lots of stuff we don't need to copy, omitted -- */
static EventMask Const masks[] = {
0, /* Error, should never see */
0, /* Reply, should never see */
KeyPressMask, /* KeyPress */
KeyReleaseMask, /* KeyRelease */
ButtonPressMask, /* ButtonPress */
ButtonReleaseMask, /* ButtonRelease */
PointerMotionMask /* MotionNotify */
| ButtonMotionMask,
EnterWindowMask, /* EnterNotify */
LeaveWindowMask, /* LeaveNotify */
FocusChangeMask, /* FocusIn */
FocusChangeMask, /* FocusOut */
KeymapStateMask, /* KeymapNotify */
ExposureMask, /* Expose */
NonMaskableMask, /* GraphicsExpose, in GC */
NonMaskableMask, /* NoExpose, in GC */
VisibilityChangeMask, /* VisibilityNotify */
SubstructureNotifyMask, /* CreateNotify */
StructureNotifyMask /* DestroyNotify */
| SubstructureNotifyMask,
StructureNotifyMask /* UnmapNotify */
| SubstructureNotifyMask,
StructureNotifyMask /* MapNotify */
| SubstructureNotifyMask,
SubstructureRedirectMask, /* MapRequest */
StructureNotifyMask /* ReparentNotify */
| SubstructureNotifyMask,
StructureNotifyMask /* ConfigureNotify */
| SubstructureNotifyMask,
SubstructureRedirectMask, /* ConfigureRequest */
StructureNotifyMask /* GravityNotify */
| SubstructureNotifyMask,
ResizeRedirectMask, /* ResizeRequest */
StructureNotifyMask /* CirculateNotify */
| SubstructureNotifyMask,
SubstructureRedirectMask, /* CirculateRequest */
PropertyChangeMask, /* PropertyNotify */
NonMaskableMask, /* SelectionClear */
NonMaskableMask, /* SelectionRequest */
NonMaskableMask, /* SelectionNotify */
ColormapChangeMask, /* ColormapNotify */
NonMaskableMask, /* ClientMessage */
NonMaskableMask /* MappingNotify */
};
#ifndef HAVE_X11R5
static /* in R5, this is not static, so we don't need to define it at all */
EventMask _XtConvertTypeToMask (eventType)
int eventType;
{
eventType &= 0x7f; /* Events sent with XSendEvent have high bit set. */
if (eventType < XtNumber(masks))
return masks[eventType];
else
return 0;
}
#endif /* not HAVE_X11R5 */
/* -- _XtOnGrabList() omitted -- */
static Widget LookupSpringLoaded(grabList)
XtGrabList grabList;
{
XtGrabList gl;
for (gl = grabList; gl != NULL; gl = gl->next) {
if (gl->spring_loaded)
if (XtIsSensitive(gl->widget))
return gl->widget;
else
return NULL;
if (gl->exclusive) break;
}
return NULL;
}
/* This function is new. */
static Boolean WouldDispatchEvent(event, widget, mask, pd)
register XEvent *event;
Widget widget;
EventMask mask;
XtPerDisplay pd;
{
XtEventRec *p;
Boolean would_dispatched = False;
if ((mask == ExposureMask) ||
((event->type == NoExpose) && NO_EXPOSE) ||
((event->type == GraphicsExpose) && GRAPHICS_EXPOSE) )
if (widget->core.widget_class->core_class.expose != NULL )
return True;
if ((mask == VisibilityChangeMask) &&
XtClass(widget)->core_class.visible_interest)
return True;
for (p=widget->core.event_table; p != NULL; p = p->next)
if ((mask & p->mask) != 0
#ifndef HAVE_X11R5
|| (mask == 0 && p->non_filter)
#endif
)
return True;
return False;
}
/* #### This function is mostly copied from DecideToDispatch().
*/
typedef enum _GrabType {pass, ignore, remap} GrabType;
Widget
XtWidgetToDispatchTo (XEvent* event)
{
register Widget widget;
EventMask mask;
GrabType grabType;
Widget dspWidget;
Time time = 0;
XtPerDisplay pd;
XtPerDisplayInput pdi;
XtGrabList grabList;
widget = XtWindowToWidget (event->xany.display, event->xany.window);
pd = _XtGetPerDisplay(event->xany.display);
pdi = _XtGetPerDisplayInput(event->xany.display);
grabList = *_XtGetGrabList(pdi);
mask = _XtConvertTypeToMask(event->xany.type);
grabType = pass;
switch (event->xany.type & 0x7f) {
case KeyPress:
case KeyRelease: grabType = remap; break;
case ButtonPress:
case ButtonRelease: grabType = remap; break;
case MotionNotify: grabType = ignore;
#define XKnownButtons (Button1MotionMask|Button2MotionMask|Button3MotionMask|\
Button4MotionMask|Button5MotionMask)
mask |= (event->xmotion.state & XKnownButtons);
#undef XKnownButtons
break;
case EnterNotify: grabType = ignore; break;
}
if (widget == NULL) {
if (grabType != remap) return False;
/* event occurred in a non-widget window, but we've promised also
to dispatch it to the nearest accessible spring_loaded widget */
else if ((widget = LookupSpringLoaded(grabList)) != NULL)
return widget;
return False;
}
switch(grabType) {
case pass:
return widget;
case ignore:
if ((grabList == NULL || _XtOnGrabList(widget,grabList))
&& XtIsSensitive(widget)) {
return widget;
}
return NULL;
case remap:
{
Widget was_dispatched_to= NULL;
extern Widget _XtFindRemapWidget();
extern void _XtUngrabBadGrabs();
dspWidget = _XtFindRemapWidget(event, widget, mask, pdi);
if ((grabList == NULL ||
_XtOnGrabList(dspWidget, grabList)) &&
XtIsSensitive(dspWidget)) {
if (WouldDispatchEvent (event, dspWidget, mask, pd))
was_dispatched_to = dspWidget;
}
/* Also dispatch to nearest accessible spring_loaded. */
/* Fetch this afterward to reflect modal list changes */
grabList = *_XtGetGrabList(pdi);
widget = LookupSpringLoaded(grabList);
if (widget != NULL && widget != dspWidget) {
if (!was_dispatched_to)
was_dispatched_to = widget;
}
return was_dispatched_to;
}
}
/* should never reach here */
return NULL;
}
Widget XtWidgetToDispatchTo (XEvent *);
/* A general interface to the widgets of different toolkits.
Copyright (C) 1992, 1993 Lucid, Inc.
This file is part of the Lucid Widget Library.
The Lucid Widget Library is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
The Lucid Widget Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* This code reads a resource database file and filters it through cpp
with the same set of preprocessor defines that `xrdb' uses.
Call lwlib_xrdb_initialize(dpy) once, and then call the function
lwlib_GetFileDatabase() instead of XrmGetFileDatabase(),
and lwlib_CombineFileDatabase() instead of XrmCombineFileDatabase().
*/
#ifndef __STDC_EXTENDED__
#define __STDC_EXTENDED__
#endif
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdio.h>
#include <ctype.h>
#include <X11/Xlib.h>
#include <X11/Xos.h>
#include <X11/Intrinsic.h>
#include <X11/Xmu/SysUtil.h>
#include <sys/stat.h>
extern char *index ();
static int
file_p (path)
char *path;
{
struct stat status;
return (access (path, R_OK) == 0 /* exists and is readable */
&& stat (path, &status) == 0 /* get the status */
&& (status.st_mode & S_IFDIR) == 0); /* not a directory */
}
#ifndef CPP_PROGRAM
#define CPP_PROGRAM "/lib/cpp"
#endif
static char cpp_string [BUFSIZ];
static char *cpp_file = 0;
#define Resolution(pixels, mm) ((((pixels) * 100000 / (mm)) + 50) / 100)
void
lwlib_xrdb_initialize (display)
Display *display;
{
Screen *screen;
Visual *visual;
char server [255];
char *colon, *s;
#define Push(str) \
(strncpy (s, str, sizeof(str)), s += (sizeof(str)-1))
#define Print(str, thing) \
(sprintf (s, str, thing), s = index (s, 0))
s = cpp_string;
Push (CPP_PROGRAM);
Push (" -DCLIENTHOST=");
XmuGetHostname (s, sizeof (cpp_string) - (s - cpp_string));
s = index (s, 0);
Push (" -DSERVERHOST=");
strcpy (s, XDisplayName (DisplayString (display)));
colon = index (s, ':');
if (colon == s)
{
XmuGetHostname (s, sizeof (cpp_string) - (s - cpp_string));
s = index (s, 0);
}
else if (colon)
s = colon;
else
s = index (s, 0);
Print (" -DVERSION=%d", ProtocolVersion(display));
Print (" -DREVISION=%d", ProtocolRevision(display));
Print (" -DVENDOR=\"%s\"", ServerVendor(display));
Print (" -DRELEASE=%d", VendorRelease(display));
screen = DefaultScreenOfDisplay(display);
visual = DefaultVisualOfScreen(screen);
Print (" -DWIDTH=%d", screen->width);
Print (" -DHEIGHT=%d", screen->height);
Print (" -DX_RESOLUTION=%d", Resolution(screen->width,screen->mwidth));
Print (" -DY_RESOLUTION=%d", Resolution(screen->height,screen->mheight));
Print (" -DPLANES=%d", DisplayPlanes(display, DefaultScreen(display)));
Print (" -DBITS_PER_RGB=%d", visual->bits_per_rgb);
switch(visual->class) {
case StaticGray: Print (" -DCLASS=%s", "StaticGray"<