Initial import of the CDE 2.1.30 sources from the Open Group.

This commit is contained in:
Peter Howkins
2012-03-10 18:21:40 +00:00
commit 83b6996daa
18978 changed files with 3945623 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
# $XConsortium: Makefile.hp /main/2 1996/05/13 11:59:34 drk $
##########################################################################
#
# Makefile for Motif periodic table of widgets (HP)
#
# (c) Copyright 1993, 1994 Hewlett-Packard Company
# (c) Copyright 1993, 1994 International Business Machines Corp.
# (c) Copyright 1993, 1994 Sun Microsystems, Inc.
# (c) Copyright 1993, 1994 Novell, Inc.
#
##########################################################################
CC = cc
RM = rm -f
UIL = /usr/dt/bin/uil
PROGRAM = periodic
SOURCES = periodic.c
OBJECTS = periodic.o
UID = periodic.uid
UILSOURCE = periodic.uil
DEFINES =
CDEBUGFLAGS = -O
CFLAGS = -Aa -z $(DEFINES) $(CDEBUGFLAGS)
DTINCLUDE = -I/usr/dt/include
X11INCLUDE = -I/usr/include/X11R5
INCLUDES = $(DTINCLUDE) $(X11INCLUDE)
DTLIBS = -L/usr/dt/lib -lMrm -lXm
X11LIBS = -L/usr/lib/X11R5 -lXt -lX11
SYSLIBS =
LIBRARIES = $(DTLIBS) $(X11LIBS) $(SYSLIBS)
LDFLAGS =
.c.o:
${CC} -c $(CFLAGS) $(INCLUDES) $<
all:: $(PROGRAM) $(UID)
$(PROGRAM):: $(OBJECTS)
$(CC) -o $(PROGRAM) $(LDFLAGS) $(OBJECTS) $(LIBRARIES)
$(UID):: $(UILSOURCE)
$(UIL) -o $(UID) $(UILSOURCE)
clean::
$(RM) $(PROGRAM) $(OBJECTS) $(UID)

View File

@@ -0,0 +1,51 @@
# $XConsortium: Makefile.ibm /main/2 1996/05/13 11:59:52 drk $
##########################################################################
#
# Makefile for Motif periodic table of widgets (IBM)
#
# (c) Copyright 1993, 1994 Hewlett-Packard Company
# (c) Copyright 1993, 1994 International Business Machines Corp.
# (c) Copyright 1993, 1994 Sun Microsystems, Inc.
# (c) Copyright 1993, 1994 Novell, Inc.
#
##########################################################################
CC = cc
RM = rm -f
UIL = /usr/dt/bin/uil
PROGRAM = periodic
SOURCES = periodic.c
OBJECTS = periodic.o
UID = periodic.uid
UILSOURCE = periodic.uil
DEFINES =
CDEBUGFLAGS = -O
CFLAGS = $(DEFINES) $(CDEBUGFLAGS)
DTINCLUDE = -I/usr/dt/include
X11INCLUDE = -I/usr/include
INCLUDES = $(DTINCLUDE) $(X11INCLUDE)
DTLIBS = -L/usr/dt/lib -lMrm -lXm
X11LIBS = -L/usr/lib -lXt -lX11
SYSLIBS =
LIBRARIES = $(DTLIBS) $(X11LIBS) $(SYSLIBS)
LDFLAGS =
.c.o:
$(CC) -c $(CFLAGS) $(INCLUDES) $<
all:: $(PROGRAM) $(UID)
$(PROGRAM):: $(OBJECTS)
$(CC) -o $(PROGRAM) $(LDFLAGS) $(OBJECTS) $(LIBRARIES)
$(UID):: $(UILSOURCE)
$(UIL) -o $(UID) $(UILSOURCE)
clean::
$(RM) $(PROGRAM) $(OBJECTS) $(UID)

View File

@@ -0,0 +1,52 @@
# $XConsortium: Makefile.novell /main/2 1996/05/13 12:00:12 drk $
##########################################################################
#
# Makefile for Motif periodic table of widgets (Novell)
#
# (c) Copyright 1993, 1994 Hewlett-Packard Company
# (c) Copyright 1993, 1994 International Business Machines Corp.
# (c) Copyright 1993, 1994 Sun Microsystems, Inc.
# (c) Copyright 1993, 1994 Novell, Inc.
#
##########################################################################
CC = cc
RM = rm -f
UIL = /usr/dt/bin/uil
PROGRAM = periodic
SOURCES = periodic.c
OBJECTS = periodic.o
UID = periodic.uid
UILSOURCE = periodic.uil
DEFINES =
CDEBUGFLAGS = -O
CFLAGS = -Xc $(DEFINES) $(CDEBUGFLAGS)
DTINCLUDE = -I/usr/dt/include
X11INCLUDE = -I/usr/X/include
INCLUDES = $(DTINCLUDE) $(X11INCLUDE)
DTLIBS = -L/usr/dt/lib -lMrm -lXm
X11LIBS = -L/usr/X/lib -lXt -lX11
SYSLIBS = -lw -lgen -lnsl -lresolv -lsocket -lXIM
LIBRARIES = $(DTLIBS) $(X11LIBS) $(SYSLIBS)
LDFLAGS =
.c.o:
$(CC) -c $(CFLAGS) $(INCLUDES) $<
all:: $(PROGRAM) $(UID)
$(PROGRAM):: $(OBJECTS)
$(CC) -o $(PROGRAM) $(LDFLAGS) $(OBJECTS) $(LIBRARIES)
$(UID):: $(UILSOURCE)
$(UIL) -o $(UID) $(UILSOURCE)
clean::
$(RM) $(PROGRAM) $(OBJECTS) $(UID)

View File

@@ -0,0 +1,51 @@
# $XConsortium: Makefile.sun /main/2 1996/05/13 12:00:27 drk $
##########################################################################
#
# Makefile for Motif periodic table of widgets (SUN)
#
# (c) Copyright 1993, 1994 Hewlett-Packard Company
# (c) Copyright 1993, 1994 International Business Machines Corp.
# (c) Copyright 1993, 1994 Sun Microsystems, Inc.
# (c) Copyright 1993, 1994 Novell, Inc.
#
##########################################################################
CC = cc
RM = rm -f
UIL = /usr/dt/bin/uil
PROGRAM = periodic
SOURCES = periodic.c
OBJECTS = periodic.o
UID = periodic.uid
UILSOURCE = periodic.uil
DEFINES =
CDEBUGFLAGS = -O
CFLAGS = $(DEFINES) $(CDEBUGFLAGS)
DTINCLUDE = -I/usr/dt/include
X11INCLUDE = -I/usr/openwin/include
INCLUDES = $(DTINCLUDE) $(X11INCLUDE)
DTLIBS = -L/usr/dt/lib -lMrm -lXm
X11LIBS = -L/usr/openwin/lib -lXt -lX11
SYSLIBS = -ldl -lw -lgen
LIBRARIES = $(DTLIBS) $(X11LIBS) $(SYSLIBS)
LDFLAGS = -R/usr/dt/lib:/usr/openwin/lib
.c.o:
$(CC) -c $(CFLAGS) $(INCLUDES) $<
all:: $(PROGRAM) $(UID)
$(PROGRAM):: $(OBJECTS)
$(CC) -o $(PROGRAM) $(LDFLAGS) $(OBJECTS) $(LIBRARIES)
$(UID):: $(UILSOURCE)
$(UIL) -o $(UID) $(UILSOURCE)
clean::
$(RM) $(PROGRAM) $(OBJECTS) $(UID)

View File

@@ -0,0 +1,53 @@
# $XConsortium: Makefile.uxp /main/2 1996/05/13 12:00:43 drk $
##########################################################################
#
# Makefile for Motif periodic table of widgets (UXP)
#
# (Fujitsu.patch applied)
#
# (c) Copyright 1993, 1994 Hewlett-Packard Company
# (c) Copyright 1993, 1994 International Business Machines Corp.
# (c) Copyright 1993, 1994 Sun Microsystems, Inc.
# (c) Copyright 1993, 1994 Novell, Inc.
#
##########################################################################
CC = cc
RM = rm -f
UIL = /usr/dt/bin/uil
PROGRAM = periodic
SOURCES = periodic.c
OBJECTS = periodic.o
UID = periodic.uid
UILSOURCE = periodic.uil
DEFINES =
CDEBUGFLAGS = -O
CFLAGS = -Xc $(DEFINES) $(CDEBUGFLAGS)
DTINCLUDE = -I/usr/dt/include
INCLUDES = $(DTINCLUDE)
DTLIBS = -L/usr/dt/lib -lMrm -lXm
X11LIBS = -lXt -lX11
SYSLIBS = -lw -lgen -lnsl -lresolv -lsocket
LIBRARIES = $(DTLIBS) $(X11LIBS) $(SYSLIBS)
LDFLAGS =
.c.o:
$(CC) -c $(CFLAGS) $(INCLUDES) $<
all:: $(PROGRAM) $(UID)
$(PROGRAM):: $(OBJECTS)
$(CC) -o $(PROGRAM) $(LDFLAGS) $(OBJECTS) $(LIBRARIES)
$(UID):: $(UILSOURCE)
$(UIL) -o $(UID) $(UILSOURCE)
clean::
$(RM) $(PROGRAM) $(OBJECTS) $(UID)

View File

@@ -0,0 +1,26 @@
! $XConsortium: Periodic.ad /main/2 1995/07/17 18:52:14 drk $
periodic*XmText.columns: 10
periodic*XmTextField.columns: 10
periodic*scaleFrame*XmScale.width: 50
periodic*scrollFrame*XmScrollBar.width: 50
periodic*fontList: *-*-Helvetica-medium-r-*-*-*-100-*-*-p-*-*-*
periodic*titleLabel.fontList: *-*-Helvetica-bold-r-*-*-*-180-*-*-p-*-*-*
periodic*subtitleLabel.fontList: *-*-Helvetica-bold-r-*-*-*-140-*-*-p-*-*-*
periodic*labelLabel.fontList: *-*-Helvetica-bold-r-*-*-*-180-*-*-p-*-*-*
periodic*menuBar*fontList: *-*-Helvetica-medium-r-*-*-*-120-*-*-p-*-*-*
periodic*popupMenu*fontList: *-*-Helvetica-medium-r-*-*-*-120-*-*-p-*-*-*
periodic*XmMessageBox*fontList: *-*-Helvetica-medium-r-*-*-*-120-*-*-p-*-*-*
periodic*fileDialog*fontList: *-*-Helvetica-medium-r-*-*-*-120-*-*-p-*-*-*
periodic*selectDialog*fontList: *-*-Helvetica-medium-r-*-*-*-120-*-*-p-*-*-*
periodic*promptDialog*fontList: *-*-Helvetica-medium-r-*-*-*-120-*-*-p-*-*-*
!periodic*background: gray
!periodic*XmFrame.XmLabel.foreground: yellow
!periodic*drawArea.background: mediumaquamarine
!periodic*drawnButton.foreground: red
!periodic*highlightColor: red
periodic*listFrame*selectionPolicy: XmEXTENDED_SELECT

View File

@@ -0,0 +1,21 @@
/* $XConsortium: README /main/2 1996/07/15 14:05:10 drk $ */
README for The Periodic Table of Motif Widgets
PERIODIC v1.2
-------------
This directory contains the sources for periodic. Periodic is a
demo of the displayable widgets in Motif. Periodic presents many
Motif widgets for your visual and sensual enjoyment.
The resources in the file Periodic.ad should be used. Either
merge the file with your .Xdefaults, or copy it to your
home directory and rename it to 'Periodic' - it will then be
used as the application defaults file.
Ignore the color resources if you are displaying on a monochrome
server. If the fonts do not exist on your server, change the
resource to use a font of similar size.

View File

@@ -0,0 +1,635 @@
/*
* (c) Copyright 1989, 1990, 1991, 1992, 1993 OPEN SOFTWARE FOUNDATION, INC.
* ALL RIGHTS RESERVED
*/
/*
* Motif Release 1.2.2
*/
#ifdef REV_INFO
#ifndef lint
static char rcsid[] = "$XConsortium: periodic.c /main/4 1995/10/27 10:44:10 rswiston $"
#endif
#endif
/******************************************************************************
* periodic.c
*
* Copy and rename the file periodic.ad to Periodic in your home directory
* or app-defaults directory, or merge it with your .Xdefaults file.
*
* It provides useful default values for Periodic fonts and colors
*
*****************************************************************************/
#include <stdio.h>
#include <Xm/Xm.h>
#include <Xm/Scale.h>
#include <Xm/ToggleB.h>
#include <Mrm/MrmPublic.h>
typedef struct _DrawData {
GC gc;
Position drawX;
Position drawY;
Dimension drawWidth;
Dimension drawHeight;
} DrawData;
static GC GetGC(
Widget w );
static void ConfigureDrawData(
Widget w,
DrawData *data );
static void DrawButton(
Widget w );
static void DrawArea(
Widget w );
static void PopupHandler(
Widget w,
Widget pw,
XEvent *event,
Boolean *ctd );
static void ManageCb(
Widget w,
String id,
XmToggleButtonCallbackStruct *cb );
static void UnmapCb(
Widget w,
XtPointer cd,
XtPointer cb );
static void UnmanageCb(
Widget w,
String id,
XtPointer cb );
static void InitPopupCb(
Widget w,
String id,
XtPointer cb );
static void PopdownCb(
Widget w,
XtPointer cd,
XtPointer cb );
static void DaExposeCb(
Widget w,
XtPointer cd,
XtPointer cb );
static void DaResizeCb(
Widget w,
XtPointer cd,
XtPointer cb );
static void DbExposeCb(
Widget w,
XtPointer cd,
XtPointer cb );
static void DbResizeCb(
Widget w,
XtPointer cd,
XtPointer cb );
static void ScaleCb(
Widget w,
XtPointer cd,
XtPointer cb );
static void SetScaleCb(
Widget w,
int *value,
XmToggleButtonCallbackStruct *cb );
static void ViewCb(
Widget w,
XtPointer cd,
XmToggleButtonCallbackStruct *cb );
static void LayoutCb(
Widget w,
XtPointer cd,
XmToggleButtonCallbackStruct *cb );
static void ToggleLightsCb(
Widget w,
XtPointer cd,
XmToggleButtonCallbackStruct *cb );
static void ShowCb(
Widget w,
String id,
XtPointer cb );
static void ExitCb(
Widget w,
XtPointer cd,
XtPointer cb );
static MrmHierarchy mrmId;
static char *mrmFile[]={"periodic.uid"};
static MrmCode mrmClass;
static MRMRegisterArg mrmNames[] = {
{"InitPopupCb", (XtPointer)InitPopupCb },
{"PopdownCb", (XtPointer)PopdownCb },
{"UnmapCb", (XtPointer)UnmapCb },
{"UnmanageCb", (XtPointer)UnmanageCb },
{"ManageCb", (XtPointer)ManageCb },
{"DaExposeCb", (XtPointer)DaExposeCb },
{"DaResizeCb", (XtPointer)DaResizeCb },
{"DbExposeCb", (XtPointer)DbExposeCb },
{"DbResizeCb", (XtPointer)DbResizeCb },
{"ScaleCb", (XtPointer)ScaleCb },
{"SetScaleCb", (XtPointer)SetScaleCb },
{"ViewCb", (XtPointer)ViewCb },
{"LayoutCb", (XtPointer)LayoutCb },
{"ToggleLightsCb", (XtPointer)ToggleLightsCb },
{"ShowCb", (XtPointer)ShowCb },
{"ExitCb", (XtPointer)ExitCb }
};
static String fallbackResources[] = {
"periodic*XmText.columns: 10",
"periodic*XmTextField.columns: 10",
"periodic*scaleFrame*XmScale.width: 50",
"periodic*scrollFrame*XmScrollBar.width: 50",
"periodic*fontList: *-*-*-medium-r-*-*-*-100-*-*-p-*-*-*",
"periodic*titleLabel.fontList: *-*-*-bold-r-*-*-*-180-*-*-p-*-*-*",
"periodic*subtitleLabel.fontList: *-*-*-bold-r-*-*-*-140-*-*-p-*-*-*",
"periodic*labelLabel.fontList: *-*-*-bold-r-*-*-*-180-*-*-p-*-*-*",
"periodic*menuBar*fontList: *-*-*-medium-r-*-*-*-120-*-*-p-*-*-*",
"periodic*popupMenu*fontList: *-*-*-medium-r-*-*-*-120-*-*-p-*-*-*",
"periodic*XmMessageBox*fontList: *-*-*-medium-r-*-*-*-120-*-*-p-*-*-*",
"periodic*fileDialog*fontList: *-*-*-medium-r-*-*-*-120-*-*-p-*-*-*",
"periodic*selectDialog*fontList: *-*-*-medium-r-*-*-*-120-*-*-p-*-*-*",
"periodic*promptDialog*fontList: *-*-*-medium-r-*-*-*-120-*-*-p-*-*-*",
NULL
};
static XtAppContext appContext;
static Widget shell;
int
main(
int argc,
char *argv[] )
{
Widget appMain;
Display *display;
Arg args[2];
XtToolkitInitialize();
MrmInitialize ();
appContext = XtCreateApplicationContext();
XtAppSetFallbackResources (appContext, fallbackResources);
display = XtOpenDisplay(appContext, NULL, "periodic", "Periodic",
NULL, 0, &argc, argv);
if (display == NULL) {
fprintf(stderr, "%s: Can't open display\n", argv[0]);
exit(1);
}
XtSetArg (args[0], XmNargc, argc);
XtSetArg (args[1], XmNargv, argv);
shell = XtAppCreateShell("periodic", "Periodic", applicationShellWidgetClass,
display, args, 2);
if (MrmOpenHierarchy (1, mrmFile, NULL, &mrmId) != MrmSUCCESS) exit(0);
MrmRegisterNames(mrmNames, XtNumber(mrmNames));
MrmFetchWidget (mrmId, "appMain", shell, &appMain, &mrmClass);
XtManageChild(appMain);
XtRealizeWidget(shell);
XtAppMainLoop(appContext);
}
static void
ExitCb(
Widget w,
XtPointer cd,
XtPointer cb )
{
exit(0);
}
/*****************************************************************
*
* Display selected Dialog widget
*
*****************************************************************/
static Widget managedToggle = NULL;
static void
ManageCb(
Widget w,
String id,
XmToggleButtonCallbackStruct *cb )
{
Widget dialog = XtNameToWidget (shell, id);
if (cb->set) {
if (managedToggle != NULL)
XmToggleButtonSetState (managedToggle, False, True);
managedToggle = w;
XtManageChild (dialog);
}
else {
XtUnmanageChild (dialog);
managedToggle = NULL;
}
}
static void
UnmapCb(
Widget w,
XtPointer cd,
XtPointer cb )
{
XmToggleButtonSetState (managedToggle, False, True);
}
static void
UnmanageCb(
Widget w,
String id,
XtPointer cb )
{
XtUnmanageChild (XtNameToWidget (shell, id));
}
static void
ShowCb(
Widget w,
String id,
XtPointer cb )
{
static Widget tb = NULL;
static Widget sc = NULL;
int value;
if (tb == NULL) tb = XtNameToWidget (shell, "*toggleButton");
if (sc == NULL) sc = XtNameToWidget (shell, "*valueScale");
XmScaleGetValue (sc, &value);
if (XmToggleButtonGetState(tb) == True && value == 1012)
XtManageChild (XtNameToWidget (shell, id));
}
/*****************************************************************
*
* Provide RadioBox behavior inside a PulldownMenu
*
*****************************************************************/
static void
ViewCb(
Widget w,
XtPointer cd,
XmToggleButtonCallbackStruct *cb )
{
static Widget viewToggle = NULL;
if (cb->set) {
if (viewToggle) XmToggleButtonSetState (viewToggle, False, False);
viewToggle = w;
}
else {
if (w == viewToggle) XmToggleButtonSetState (w, True, False);
}
}
static void
LayoutCb(
Widget w,
XtPointer cd,
XmToggleButtonCallbackStruct *cb )
{
static Widget layoutToggle = NULL;
if (cb->set) {
if (layoutToggle) XmToggleButtonSetState (layoutToggle, False, False);
layoutToggle = w;
}
else {
if (w == layoutToggle) XmToggleButtonSetState (w, True, False);
}
}
/*****************************************************************
*
* PopupMenu support
*
*****************************************************************/
static Time popupLastEventTime = 0;
static void
InitPopupCb(
Widget w,
String id,
XtPointer cb )
{
Widget popupWindow = XtNameToWidget (shell, id);
XtAddEventHandler (popupWindow, ButtonPressMask, False,
(XtEventHandler)PopupHandler, (XtPointer)w);
}
static void
PopupHandler (
Widget w,
Widget pw,
XEvent *event,
Boolean *ctd )
{
if (((XButtonEvent *)event)->button != Button3) return;
if (((XButtonEvent *)event)->time <= popupLastEventTime) return;
XmMenuPosition((Widget) pw, (XButtonEvent *)event);
XtManageChild ((Widget) pw);
}
/* By default, cancelling a popup menu with Button 3 will cause the
* popup to be reposted at the location of the cancelling click.
*
* To switch off this behavior, remember when the menu was popped down.
* In PopupHandler, don't repost the menu if the posting click just
* cancelled a popup menu.
*/
static void
PopdownCb(
Widget w,
XtPointer cd,
XtPointer cb )
{
popupLastEventTime = XtLastTimestampProcessed (XtDisplay(w));
}
/*****************************************************************
*
* Draw utilities
*
*****************************************************************/
static DrawData *drawData = NULL;
static DrawData *buttonData = NULL;
static GC
GetGC(
Widget w )
{
Arg args[2];
XGCValues gcv;
Pixel fg;
Pixel bg;
GC gc;
XtSetArg (args[0], XmNforeground, &fg);
XtSetArg (args[1], XmNbackground, &bg);
XtGetValues (w, args, 2);
gcv.foreground = fg;
gcv.background = bg;
gcv.line_width = 1;
gc = XtGetGC (w, GCForeground | GCBackground | GCLineWidth, &gcv);
return (gc);
}
static void
ConfigureDrawData(
Widget w,
DrawData *data )
{
Arg args[6];
Dimension width, height, st, ht, mw, mh;
Dimension totalMarginWidth;
Dimension totalMarginHeight;
width = height = st = ht = mw = mh = 0;
XtSetArg (args[0], XmNwidth, &width);
XtSetArg (args[1], XmNheight, &height);
XtSetArg (args[2], XmNshadowThickness, &st);
XtSetArg (args[3], XmNhighlightThickness, &ht);
XtSetArg (args[4], XmNmarginWidth, &mw);
XtSetArg (args[5], XmNmarginHeight, &mh);
XtGetValues (w, args, 6);
totalMarginWidth = st + ht + mw;
totalMarginHeight = st + ht + mh;
if (2u * totalMarginWidth < width && 2u * totalMarginHeight < height) {
data->drawX = totalMarginWidth;
data->drawY = totalMarginHeight;
data->drawWidth = width - 2 * totalMarginWidth;
data->drawHeight = height - 2 * totalMarginHeight;
}
else {
data->drawWidth = 0;
data->drawHeight = 0;
}
}
/*****************************************************************
*
* DrawingArea display code
*
*****************************************************************/
static void
DaResizeCb(
Widget w,
XtPointer cd,
XtPointer cb )
{
if (drawData == NULL) return;
ConfigureDrawData (w, drawData);
XClearArea (XtDisplay(w), XtWindow(w),
drawData->drawX, drawData->drawY,
drawData->drawWidth, drawData->drawHeight,
False);
DrawArea (w);
}
static void
DaExposeCb(
Widget w,
XtPointer cd,
XtPointer cb )
{
if (drawData == NULL) {
drawData = (DrawData *)XtMalloc (sizeof(DrawData));
drawData->gc = GetGC (w);
ConfigureDrawData (w, drawData);
}
DrawArea(w);
}
#define NPOINTS 40u
static void
DrawArea(
Widget w )
{
int i, x, y;
unsigned int m;
XPoint p[NPOINTS];
if (drawData->drawWidth == 0) return;
XClearArea (XtDisplay(w), XtWindow(w),
drawData->drawX, drawData->drawY,
drawData->drawWidth, drawData->drawHeight,
False);
XDrawRectangle (XtDisplay(w), XtWindow(w), drawData->gc,
drawData->drawX, drawData->drawY,
drawData->drawWidth, drawData->drawHeight);
XDrawLine (XtDisplay(w), XtWindow(w), drawData->gc,
drawData->drawX, drawData->drawY + drawData->drawHeight/2,
drawData->drawX + drawData->drawWidth,
drawData->drawY + drawData->drawHeight/2);
m = 20 * drawData->drawHeight / 100u;
p[0].x = drawData->drawX;
p[0].y = drawData->drawY + drawData->drawHeight/2;
for (i = 1; i < NPOINTS-1; i++) {
p[i].x = drawData->drawX + (i * drawData->drawWidth)/NPOINTS;
p[i].y = drawData->drawY + m/2u + (rand() % (drawData->drawHeight - m));
}
p[NPOINTS-1].x = drawData->drawX + drawData->drawWidth;
p[NPOINTS-1].y = drawData->drawY + drawData->drawHeight/2;
XDrawLines (XtDisplay(w), XtWindow(w), drawData->gc,
p, NPOINTS, CoordModeOrigin);
}
static void
ScaleCb(
Widget w,
XtPointer cd,
XtPointer cb )
{
static Widget da = NULL;
if (drawData == NULL) return;
if (da == NULL) da = XtNameToWidget (shell, "*drawArea");
DrawArea (da);
}
static void
SetScaleCb(
Widget w,
int *value,
XmToggleButtonCallbackStruct *cb )
{
static Widget da = NULL;
static Widget sc = NULL;
if (drawData == NULL) return;
if (da == NULL) da = XtNameToWidget (shell, "*drawArea");
if (sc == NULL) sc = XtNameToWidget (shell, "*valueScale");
XmScaleSetValue (sc, *value);
DrawArea (da);
}
/*****************************************************************
*
* DrawnButton display code
*
*****************************************************************/
static Boolean lightsOn = False;
static void
DbResizeCb(
Widget w,
XtPointer cd,
XtPointer cb )
{
if (buttonData == NULL) return;
ConfigureDrawData (w, buttonData);
XClearArea (XtDisplay(w), XtWindow(w),
buttonData->drawX, buttonData->drawY,
buttonData->drawWidth, buttonData->drawHeight,
False);
DrawButton (w);
}
static void
DbExposeCb(
Widget w,
XtPointer cd,
XtPointer cb )
{
if (buttonData == NULL) {
buttonData = (DrawData *)XtMalloc (sizeof(DrawData));
buttonData->gc = GetGC (w);
ConfigureDrawData (w, buttonData);
}
DrawButton(w);
}
#define NARCS 6u
static void
DrawButton(
Widget w )
{
int i, x, y, incX, incY;
XArc a[NARCS];
if (buttonData->drawWidth == 0 || !lightsOn) return;
a[0].x = buttonData->drawX + (buttonData->drawWidth - 1)/2u;
a[0].y = buttonData->drawY + (buttonData->drawHeight - 1)/2u;
a[0].width = 1;
a[0].height = 1;
a[0].angle1 = 0;
a[0].angle2 = 360*64;
incX = (buttonData->drawWidth - 1)/(2u * NARCS);
incY = (buttonData->drawHeight - 1)/(2u * NARCS);
for (i = 1; i < NARCS; i++) {
a[i].x = a[i-1].x - incX;
a[i].y = a[i-1].y - incY;
a[i].width = a[i-1].width + 2 * incX;
a[i].height = a[i-1].height + 2 * incY;
#ifndef BROKEN_SERVER_ARCS
a[i].angle1 = 0;
a[i].angle2 = 360 * 64;
#else
XDrawRectangle (XtDisplay(w), XtWindow(w), buttonData->gc,
a[i].x, a[i].y, a[i].width, a[i].height);
#endif
}
#ifndef BROKEN_SERVER_ARCS
XDrawArcs (XtDisplay(w), XtWindow(w), buttonData->gc, a, NARCS);
#endif
}
static void
ToggleLightsCb(
Widget w,
XtPointer cd,
XmToggleButtonCallbackStruct *cb )
{
static Widget db = NULL;
if (buttonData == NULL) return;
if (db == NULL) db = XtNameToWidget (shell, "*drawnButton");
lightsOn = cb->set;
if (lightsOn)
DrawButton (db);
else
XClearArea (XtDisplay(db), XtWindow(db),
buttonData->drawX, buttonData->drawY,
buttonData->drawWidth, buttonData->drawHeight,
False);
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,315 @@
! (c) Copyright 1989, 1990, 1991, 1992 OPEN SOFTWARE FOUNDATION, INC.
! ALL RIGHTS RESERVED
!
! Motif Release 1.2
value
greekAlphabet : string_table (
"alpha", "beta", "gamma", "delta",
"epsilon", "zeta", "eta", "theta",
"iota", "kappa", "lambda", "mu",
"nu", "xi", "omicron", "pi",
"rho", "sigma", "tau", "upsilon",
"phi", "chi", "psi", "omega");
! Main Window
! File menu
fileCascadeText : "File";
fileCascadeMnem : "F";
newButtonText : "New";
newButtonMnem : "N";
openButtonText : "Open...";
openButtonMnem : "O";
saveButtonText : "Save";
saveButtonMnem : "S";
saveAsButtonText : "Save As...";
saveAsButtonMnem : "A";
printButtonText : "Print";
printButtonMnem : "P";
exitButtonText : "Exit";
exitButtonMnem : "E";
! Edit menu
editCascadeText : "Edit";
editCascadeMnem : "E";
undoButtonText : "Undo";
undoButtonMnem : "U";
cutButtonText : "Cut";
cutButtonMnem : "t";
copyButtonText : "Copy";
copyButtonMnem : "C";
pasteButtonText : "Paste";
pasteButtonMnem : "P";
clearButtonText : "Clear";
clearButtonMnem : "e";
deleteButtonText : "Delete";
deleteButtonMnem : "D";
! View menu
viewCascadeText : "View";
viewCascadeMnem : "V";
stackButtonText : "Stack";
stackButtonMnem : "S";
tileButtonText : "Tile";
tileButtonMnem : "T";
dayButtonText : "Day";
dayButtonMnem : "D";
weekButtonText : "Week";
weekButtonMnem : "W";
monthButtonText : "Month";
monthButtonMnem : "M";
yearButtonText : "Year";
yearButtonMnem : "Y";
! Options menu
optionsCascadeText : "Options";
optionsCascadeMnem : "O";
fontCascadeText : "Font";
fontCascadeMnem : "F";
smallFontButtonText : "Small";
smallFontButtonMnem : "S";
mediumFontButtonText : "Medium";
mediumFontButtonMnem : "M";
largeFontButtonText : "Large";
largeFontButtonMnem : "L";
directCascadeText : "Direction";
directCascadeMnem : "D";
upButtonText : "Up";
upButtonMnem : "U";
downButtonText : "Down";
downButtonMnem : "D";
leftButtonText : "Left";
leftButtonMnem : "L";
rightButtonText : "Right";
rightButtonMnem : "R";
caseButtonText : "Case Sensitive";
caseButtonMnem : "C";
wrapButtonText : "Word Wrap";
wrapButtonMnem : "W";
! Help menu
helpCascadeText : "Help";
helpCascadeMnem : "H";
contextButtonText : "On Context";
contextButtonMnem : "C";
windowButtonText : "On Window";
windowButtonMnem : "W";
tutorButtonText : "Tutorial";
tutorButtonMnem : "T";
versionButtonText : "On Version";
versionButtonMnem : "V";
! periodic title
titleLabelText : "The Periodic Table of Motif Widgets";
subtitleLabelText : "Open Software Foundation";
! widget names
separatorFrameText : "Separator";
arrowFrameText : "ArrowButton";
pushFrameText : "PushButton";
toggleFrameText : "ToggleButton";
labelFrameText : "Label";
optionFrameText : "OptionMenu";
scaleFrameText : "Scale";
radioFrameText : "RadioBox";
textFrameText : "Text";
scrollFrameText : "ScrollBar";
listFrameText : "ScrolledList";
paneFrameText : "PanedWindow";
popupFrameText : "PopupMenu";
drawFrameText : "DrawingArea";
drawBtnFrameText : "DrawnButton";
commandFrameText : "Command";
dialogFrameText : "Dialogs";
templateTitleText : "TemplateDialog";
warningTitleText : "WarningDialog";
workingTitleText : "WorkingDialog";
informationTitleText : "InformationDialog";
questionTitleText : "QuestionDialog";
errorTitleText : "ErrorDialog";
fileTitleText : "FileSelectionDialog";
selectTitleText : "SelectionDialog";
promptTitleText : "PromptDialog";
! widget text
pushButtonText : compound_string("Explode", separate = true) &
compound_string("Building");
toggleButtonText : "Lights";
labelText : compound_string("DON'T", separate = true) &
compound_string("PANIC");
scaleTitleText : "MHz";
scaleMinimum : 885;
scaleMaximum : 1079;
scaleValue : 1017;
radio1Text : "WFNX";
radio1Value : 1017;
radio2Text : "WJUL";
radio2Value : 915;
radio3Text : "WGBH";
radio3Value : 897;
pane1Text : "Open Software Foundation";
pane2Text : "OSF/Motif Release 1.2\n";
popupWindowText : compound_string ("Press", separate = true) &
compound_string ("Button 3", separate = true) &
compound_string ("or", separate = true) &
compound_string ("Menu");
popupTitleText : "Edit Menu";
popupUndoText : "Undo";
popupUndoMnem : "U";
popupCutText : "Cut";
popupCutMnem : "t";
popupCopyText : "Copy";
popupCopyMnem : "C";
popupPasteText : "Paste";
popupPasteMnem : "P";
popupClearText : "Clear";
popupClearMnem : "e";
popupDeleteText : "Delete";
popupDeleteMnem : "D";
commandPromptText : "periodic >";
templatePickText : "Template";
infoPickText : "Information";
warningPickText : "Warning";
errorPickText : "Error";
questionPickText : "Question";
workingPickText : "Working";
filePickText : "FileSelection";
selectPickText : "Selection";
promptPickText : "Prompt";
! option menu
optionMenuText : "Day";
optionMenuMnem : "D";
sundayButtonText : "Sunday";
sundayButtonMnem : "S";
mondayButtonText : "Monday";
mondayButtonMnem : "M";
tuesdayButtonText : "Tuesday";
tuesdayButtonMnem : "T";
wednesdayButtonText : "Wednesday";
wednesdayButtonMnem : "W";
thursdayButtonText : "Thursday";
thursdayButtonMnem : "h";
fridayButtonText : "Friday";
fridayButtonMnem : "F";
saturdayButtonText : "Saturday";
saturdayButtonMnem : "a";
! Template dialog
templateCascadeText : "File";
templateCascadeMnem : "F";
templateOkText : "Send";
templateOkMnem : "S";
templateCancelText : "Cancel";
templateCancelMnem : "C";
templateIncludeText : "Include...";
templateIncludeMnem : "I";
templateDraftText : "Draft";
templateDraftMnem : "D";
templateSpellText : "Spell";
templateSpellMnem : "p";
! Information dialog
infoCancelText : "Dismiss";
infoMessageText :
compound_string("Congratulations!", separate = true) &
compound_string("Bandwidth grab successful.", separate = true) &
compound_string("", separate = true) &
compound_string("Continue oscillation.");
! Warning dialog
warningOkText : "Proceed";
warningCancelText : "Cancel";
warningMessageText :
compound_string("Warning, Warning,", separate = true) &
compound_string("Danger Will Robinson...");
! Error dialog
errorOkText : "Retry";
errorCancelText : "Cancel";
errorMessageText :
compound_string("Frontal lobe seek error!", separate = true) &
compound_string("Intellect not installed.");
! Question dialog
questionYesText : "Yes";
questionMaybeText : "Maybe";
questionNoText : "No";
questionMessageText :
compound_string("This is Motif 1.2.", separate = true) &
compound_string("", separate = true) &
compound_string("Any questions ?");
! Working dialog
workingCancelText : "Abort";
workingScaleText : "Percent Complete";
! File Selection dialog
fileSelectText : "Selection";
fileListText : "List";
fileLoadText : "Load";
fileDirListText : "Directories";
fileFileListText : "Files";
fileFilterLabelText : "Filter";
fileNoMatchText : " [ ] ";
fileFilterText : "Filter";
fileCancelText : "Cancel";
fileMergeText : "Merge";
fileRemoveText : "Remove";
formatCascadeText : "Format";
formatCascadeMnem : "F";
audioButtonText : "Audio";
audioButtonMnem : "A";
graphicsButtonText : "Graphics";
graphicsButtonMnem : "G";
textButtonText : "Text";
textButtonMnem : "T";
! Selection dialog
selectSelectionText : "Selection";
selectListText : "Items";
selectOkText : "Ok";
selectApplyText : "Apply";
selectCancelText : "Cancel";
! Prompt dialog
promptOkText : "Ok";
promptCancelText : "Cancel";
promptMessageText : "Name, please?";