home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sources.x
- From: gregor@asdi.saic.com (Gregg Hanna x6033)
- Subject: v20i097: mrolo - Motif rolodex, Part02/02
- Message-ID: <1993Jul15.214544.13577@sparky.sterling.com>
- X-Md4-Signature: 8d378b4db2b4e1acf42b62161267ea81
- Sender: chris@sparky.sterling.com (Chris Olson)
- Organization: Sterling Software
- Date: Thu, 15 Jul 1993 21:45:44 GMT
- Approved: chris@sterling.com
-
- Submitted-by: gregor@asdi.saic.com (Gregg Hanna x6033)
- Posting-number: Volume 20, Issue 97
- Archive-name: mrolo/part02
- Environment: X11, OSF/Motif
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 2 (of 2)."
- # Contents: mrolo/creation.c mrolo/rolo.c
- # Wrapped by gregor@asdi on Wed Jun 23 19:55:49 1993
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'mrolo/creation.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'mrolo/creation.c'\"
- else
- echo shar: Extracting \"'mrolo/creation.c'\" \(17363 characters\)
- sed "s/^X//" >'mrolo/creation.c' <<'END_OF_FILE'
- X/* Copyright 1993 by gregg hanna */
- X/*
- X * Generated by the ICS builderXcessory (BX).
- X *
- X *
- X * Builder Xcessory 1.0.1.
- X *
- X */
- X
- X/*
- X * REQUIRED MOTIF INCLUDE FILES
- X */
- X#include <Xm/Xm.h>
- X#include <X11/Shell.h>
- X#include <Xm/ArrowB.h>
- X#include <Xm/ArrowBG.h>
- X#include <Xm/BulletinB.h>
- X#include <Xm/CascadeB.h>
- X#include <Xm/CascadeBG.h>
- X#include <Xm/Command.h>
- X#include <Xm/CutPaste.h>
- X#include <Xm/DialogS.h>
- X#include <Xm/DrawingA.h>
- X#include <Xm/DrawnB.h>
- X#include <Xm/FileSB.h>
- X#include <Xm/Form.h>
- X#include <Xm/Frame.h>
- X#include <Xm/Label.h>
- X#include <Xm/LabelG.h>
- X#include <Xm/List.h>
- X#include <Xm/MainW.h>
- X#include <Xm/MenuShell.h>
- X#include <Xm/MessageB.h>
- X#include <Xm/PanedW.h>
- X#include <Xm/PushB.h>
- X#include <Xm/PushBG.h>
- X#include <Xm/RowColumn.h>
- X#include <Xm/Scale.h>
- X#include <Xm/ScrollBar.h>
- X#include <Xm/ScrolledW.h>
- X#include <Xm/SelectioB.h>
- X#include <Xm/SeparatoG.h>
- X#include <Xm/Separator.h>
- X#include <Xm/Text.h>
- X#include <Xm/ToggleB.h>
- X#include <Xm/ToggleBG.h>
- X
- X/*
- X * USER SUPPLIED INCLUDE FILES
- X */
- X
- X
- X#ifndef IGNORE_STRING_TABLE
- X#include <varargs.h>
- X
- Xstatic XmString*
- XSTRING_TABLE(va_alist)
- Xva_dcl
- X{
- X va_list ap;
- X int count;
- X XmString *array;
- X int i;
- X
- X va_start(ap);
- X count = va_arg(ap, int);
- X array = (XmString*)XtMalloc((count + 1) * sizeof(XmString*));
- X for(i = 0; i < count; i++ )
- X {
- X array[i] = XmStringCreateLtoR(va_arg(ap, char*),
- X XmSTRING_DEFAULT_CHARSET);
- X }
- X array[count] = (XmString)0;
- X va_end(ap);
- X return(array);
- X}
- X
- Xstatic void
- XFREE_STRING_TABLE(table)
- XXmString *table;
- X{
- X int i;
- X
- X for( i = 0; table[i] != 0 ; i++)
- X {
- X XmStringFree(table[i]);
- X }
- X XtFree(table);
- X}
- X#endif
- X
- X/*
- X * CALLBACK PROCEDURE DECLARATIONS
- X */
- Xextern void ActuallyDeleteCard();
- Xextern void AddCard();
- Xextern void CancelCard();
- Xextern void DeleteCard();
- Xextern void DontDeleteCard();
- Xextern void OKCard();
- Xextern void QuitProg();
- Xextern void Selected();
- Xextern void SpinRolo();
- Xextern void ChangeFilter();
- Xextern void ClearFilter();
- Xextern void ReturnHit();
- X
- XWidget ListForRolo;
- XWidget filterText;
- X
- XWidget
- XCreateform(parent)
- XWidget parent;
- X{
- X Arg args[512];
- X int argcnt;
- X Widget retval;
- X XmString xmstr[32];
- X XmString *xmstrTable[8];
- X Widget form;
- X Widget indexList;
- X Widget addressList;
- X Widget rowColumn;
- X Widget addCardButton;
- X Widget quitButton;
- X Widget clearButton;
- X
- X XmRegisterConverters();
- X
- X argcnt = 0;
- X XtSetArg(args[argcnt], XmNx, 0); argcnt++;
- X XtSetArg(args[argcnt], XmNy, 0); argcnt++;
- X form = XtCreateWidget("form",
- X xmFormWidgetClass,
- X parent,
- X args,
- X argcnt);
- X
- X retval = form;
- X
- X argcnt = 0;
- X XtSetArg(args[argcnt], XmNorientation, XmHORIZONTAL); argcnt++;
- X XtSetArg(args[argcnt], XmNentryAlignment, XmALIGNMENT_CENTER); argcnt++;
- X XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNleftOffset, (int)2); argcnt++;
- X XtSetArg(args[argcnt], XmNrightOffset, (int)2); argcnt++;
- X XtSetArg(args[argcnt], XmNtopOffset, (int)2); argcnt++;
- X XtSetArg(args[argcnt], XmNx, 0); argcnt++;
- X XtSetArg(args[argcnt], XmNy, 0); argcnt++;
- X rowColumn = XtCreateWidget("rowColumn",
- X xmRowColumnWidgetClass,
- X form,
- X args,
- X argcnt);
- X
- X XtManageChild(rowColumn);
- X
- X argcnt = 0;
- X XtSetArg(args[argcnt], XmNshadowThickness, (short)0); argcnt++;
- X XtSetArg(args[argcnt], XmNitems, (xmstrTable[0]=STRING_TABLE(26, "A",
- X "B","C","D","E","F","G","H","I","J","K","L",
- X "M","N","O","P","Q","R","S","T","U","V","W",
- X "X","Y","Z"))); argcnt++;
- X XtSetArg(args[argcnt], XmNitemCount, (int)26); argcnt++;
- X XtSetArg(args[argcnt], XmNvisibleItemCount, (int)27); argcnt++;
- X XtSetArg(args[argcnt], XmNselectionPolicy, XmSINGLE_SELECT); argcnt++;
- X XtSetArg(args[argcnt], XmNlistSizePolicy, XmRESIZE_IF_POSSIBLE); argcnt++;
- X XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNtopOffset, (int)2); argcnt++;
- X XtSetArg(args[argcnt], XmNleftOffset, (int)2); argcnt++;
- X XtSetArg(args[argcnt], XmNx, 2); argcnt++;
- X XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;
- X XtSetArg(args[argcnt], XmNtopWidget, rowColumn); argcnt++;
- X indexList = XtCreateWidget("indexList",
- X xmListWidgetClass,
- X form,
- X args,
- X argcnt);
- X FREE_STRING_TABLE( xmstrTable[0] );
- X
- X XtAddCallback(indexList, XmNsingleSelectionCallback, SpinRolo, (caddr_t)0);
- X XtManageChild(indexList);
- X
- X argcnt = 0;
- X XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;
- X XtSetArg(args[argcnt], XmNtopWidget, rowColumn); argcnt++;
- X XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_WIDGET); argcnt++;
- X XtSetArg(args[argcnt], XmNleftWidget, indexList); argcnt++;
- X XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNtopOffset, (int)2); argcnt++;
- X XtSetArg(args[argcnt], XmNbottomOffset, (int)2); argcnt++;
- X XtSetArg(args[argcnt], XmNleftOffset, (int)2); argcnt++;
- X XtSetArg(args[argcnt], XmNrightOffset, (int)2); argcnt++;
- X XtSetArg(args[argcnt], XmNscrollBarDisplayPolicy, XmSTATIC); argcnt++;
- X XtSetArg(args[argcnt], XmNselectionPolicy, XmSINGLE_SELECT); argcnt++;
- X addressList = XmCreateScrolledList(form,"addressList",
- X args,
- X argcnt);
- X ListForRolo = addressList;
- X
- X XtAddCallback(addressList, XmNsingleSelectionCallback, Selected, (caddr_t)0);
- X XtManageChild(addressList);
- X
- X argcnt = 0;
- X XtSetArg(args[argcnt], XmNalignment, XmALIGNMENT_CENTER); argcnt++;
- X addCardButton = XtCreateWidget("addCardButton",
- X xmPushButtonWidgetClass,
- X rowColumn,
- X args,
- X argcnt);
- X
- X XtAddCallback(addCardButton, XmNactivateCallback, AddCard, (caddr_t)0);
- X XtManageChild(addCardButton);
- X
- X argcnt = 0;
- X XtSetArg(args[argcnt], XmNalignment, XmALIGNMENT_CENTER); argcnt++;
- X quitButton = XtCreateWidget("quitButton",
- X xmPushButtonWidgetClass,
- X rowColumn,
- X args,
- X argcnt);
- X
- X XtAddCallback(quitButton, XmNactivateCallback, QuitProg, (caddr_t)0);
- X XtManageChild(quitButton);
- X
- X argcnt = 0;
- X /*XtSetArg(args[argcnt], XmNcolumns, (short)12); argcnt++;*/
- X XtSetArg(args[argcnt], XmNrows, (short)1); argcnt++;
- X filterText = XtCreateWidget("filterText",
- X xmTextWidgetClass,
- X rowColumn,
- X args,
- X argcnt);
- X
- X XtAddCallback(filterText, XmNactivateCallback, ChangeFilter, (caddr_t)0);
- X XtManageChild(filterText);
- X
- X argcnt = 0;
- X XtSetArg(args[argcnt], XmNalignment, XmALIGNMENT_CENTER); argcnt++;
- X clearButton = XtCreateWidget("clearButton",
- X xmPushButtonWidgetClass,
- X rowColumn,
- X args,
- X argcnt);
- X
- X XtAddCallback(clearButton, XmNactivateCallback, ClearFilter, (caddr_t)0);
- X XtManageChild(clearButton);
- X
- X return( retval );
- X}
- X
- XWidget nameText, numberText, numberText2, commentText, deleteCardButton;
- X
- XWidget
- XCreateform1(parent)
- XWidget parent;
- X{
- X Arg args[512];
- X int argcnt;
- X Widget retval;
- X Widget form1;
- X Widget nameLabel;
- X Widget primaryLabel;
- X Widget secondaryLabel;
- X Widget okButton;
- X Widget cancelButton;
- X Widget separator;
- X Widget rowColumn1;
- X XmRegisterConverters();
- X
- X argcnt = 0;
- X XtSetArg(args[argcnt], XmNx, 0); argcnt++;
- X XtSetArg(args[argcnt], XmNy, 0); argcnt++;
- X form1 = XtCreateWidget("form1",
- X xmFormWidgetClass,
- X parent,
- X args,
- X argcnt);
- X
- X retval = form1;
- X
- X argcnt = 0;
- X XtSetArg(args[argcnt], XmNseparatorType, 6); argcnt++;
- X XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_NONE); argcnt++;
- X XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNtopOffset, (int)0); argcnt++;
- X XtSetArg(args[argcnt], XmNbottomOffset, (int)0); argcnt++;
- X XtSetArg(args[argcnt], XmNleftOffset, (int)0); argcnt++;
- X XtSetArg(args[argcnt], XmNrightOffset, (int)0); argcnt++;
- X XtSetArg(args[argcnt], XmNheight, 10); argcnt++;
- X separator = XtCreateWidget("separator",
- X xmSeparatorWidgetClass,
- X form1,
- X args,
- X argcnt);
- X
- X XtManageChild(separator);
- X
- X argcnt = 0;
- X XtSetArg(args[argcnt], XmNorientation, XmHORIZONTAL); argcnt++;
- X XtSetArg(args[argcnt], XmNentryAlignment, XmALIGNMENT_CENTER); argcnt++;
- X XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNleftOffset, (int)2); argcnt++;
- X XtSetArg(args[argcnt], XmNrightOffset, (int)2); argcnt++;
- X XtSetArg(args[argcnt], XmNbottomOffset, (int)2); argcnt++;
- X rowColumn1 = XtCreateWidget("rowColumn1",
- X xmRowColumnWidgetClass,
- X form1,
- X args,
- X argcnt);
- X
- X XtManageChild(rowColumn1);
- X
- X argcnt = 0;
- X okButton = XtCreateWidget("okButton",
- X xmPushButtonWidgetClass,
- X rowColumn1,
- X args,
- X argcnt);
- X
- X XtAddCallback(okButton, XmNactivateCallback, OKCard, (caddr_t)0);
- X XtManageChild(okButton);
- X
- X argcnt = 0;
- X deleteCardButton = XtCreateWidget("deleteCardButton",
- X xmPushButtonWidgetClass,
- X rowColumn1,
- X args,
- X argcnt);
- X
- X XtAddCallback(deleteCardButton, XmNactivateCallback, DeleteCard, (caddr_t)0);
- X XtManageChild(deleteCardButton);
- X
- X argcnt = 0;
- X cancelButton = XtCreateWidget("cancelButton",
- X xmPushButtonWidgetClass,
- X rowColumn1,
- X args,
- X argcnt);
- X
- X XtAddCallback(cancelButton, XmNactivateCallback, CancelCard, (caddr_t)0);
- X XtManageChild(cancelButton);
- X
- X argcnt = 0;
- X XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
- X XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNtopOffset, (int)12); argcnt++;
- X XtSetArg(args[argcnt], XmNleftOffset, (int)0); argcnt++;
- X XtSetArg(args[argcnt], XmNwidth, 81); argcnt++;
- X primaryLabel = XtCreateWidget("primaryLabel",
- X xmLabelWidgetClass,
- X form1,
- X args,
- X argcnt);
- X
- X XtManageChild(primaryLabel);
- X
- X argcnt = 0;
- X XtSetArg(args[argcnt], XmNmaxLength, (int)100); argcnt++;
- X XtSetArg(args[argcnt], XmNeditMode, XmSINGLE_LINE_EDIT); argcnt++;
- X XtSetArg(args[argcnt], XmNcolumns, (short)20); argcnt++;
- X XtSetArg(args[argcnt], XmNrows, (short)1); argcnt++;
- X XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNtopOffset, (int)-5); argcnt++;
- X XtSetArg(args[argcnt], XmNleftOffset, (int)0); argcnt++;
- X XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++;
- X XtSetArg(args[argcnt], XmNtopWidget, primaryLabel); argcnt++;
- X XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_WIDGET); argcnt++;
- X XtSetArg(args[argcnt], XmNleftWidget, primaryLabel); argcnt++;
- X numberText = XtCreateWidget("numberText",
- X xmTextWidgetClass,
- X form1,
- X args,
- X argcnt);
- X
- X XtManageChild(numberText);
- X XtAddCallback(numberText, XmNactivateCallback, ReturnHit, (caddr_t)0);
- X
- X argcnt = 0;
- X XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
- X XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;
- X XtSetArg(args[argcnt], XmNtopWidget, primaryLabel); argcnt++;
- X XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNtopOffset, (int)12); argcnt++;
- X XtSetArg(args[argcnt], XmNleftOffset, (int)0); argcnt++;
- X XtSetArg(args[argcnt], XmNwidth, 81); argcnt++;
- X secondaryLabel = XtCreateWidget("secondaryLabel",
- X xmLabelWidgetClass,
- X form1,
- X args,
- X argcnt);
- X
- X XtManageChild(secondaryLabel);
- X
- X argcnt = 0;
- X XtSetArg(args[argcnt], XmNmaxLength, (int)100); argcnt++;
- X XtSetArg(args[argcnt], XmNeditMode, XmSINGLE_LINE_EDIT); argcnt++;
- X XtSetArg(args[argcnt], XmNcolumns, (short)20); argcnt++;
- X XtSetArg(args[argcnt], XmNrows, (short)1); argcnt++;
- X XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNtopOffset, (int)-5); argcnt++;
- X XtSetArg(args[argcnt], XmNleftOffset, (int)0); argcnt++;
- X XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++;
- X XtSetArg(args[argcnt], XmNtopWidget, secondaryLabel); argcnt++;
- X XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_WIDGET); argcnt++;
- X XtSetArg(args[argcnt], XmNleftWidget, primaryLabel); argcnt++;
- X numberText2 = XtCreateWidget("numberText",
- X xmTextWidgetClass,
- X form1,
- X args,
- X argcnt);
- X
- X XtManageChild(numberText2);
- X XtAddCallback(numberText2, XmNactivateCallback, ReturnHit, (caddr_t)0);
- X
- X argcnt = 0;
- X XtSetArg(args[argcnt], XmNmaxLength, (int)100); argcnt++;
- X XtSetArg(args[argcnt], XmNeditMode, XmSINGLE_LINE_EDIT); argcnt++;
- X XtSetArg(args[argcnt], XmNcolumns, (short)35); argcnt++;
- X XtSetArg(args[argcnt], XmNrows, (short)1); argcnt++;
- X XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNtopOffset, (int)-5); argcnt++;
- X XtSetArg(args[argcnt], XmNleftOffset, (int)0); argcnt++;
- X nameText = XtCreateWidget("nameText",
- X xmTextWidgetClass,
- X form1,
- X args,
- X argcnt);
- X XtManageChild(nameText);
- X XtAddCallback(nameText, XmNactivateCallback, ReturnHit, (caddr_t)0);
- X
- X argcnt = 0;
- X XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;
- X XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNtopOffset, (int)12); argcnt++;
- X XtSetArg(args[argcnt], XmNleftOffset, (int)2); argcnt++;
- X XtSetArg(args[argcnt], XmNx, 2); argcnt++;
- X XtSetArg(args[argcnt], XmNy, 2); argcnt++;
- X XtSetArg(args[argcnt], XmNwidth, 81); argcnt++;
- X nameLabel = XtCreateWidget("nameLabel",
- X xmLabelWidgetClass,
- X form1,
- X args,
- X argcnt);
- X XtManageChild(nameLabel);
- X
- X argcnt = 0;
- X XtSetArg(args[argcnt], XmNscrollingPolicy, XmAUTOMATIC); argcnt++;
- X XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_FORM); argcnt++;
- X XtSetArg(args[argcnt], XmNbottomOffset, (int)2); argcnt++;
- X XtSetArg(args[argcnt], XmNleftOffset, (int)2); argcnt++;
- X XtSetArg(args[argcnt], XmNrightOffset, (int)2); argcnt++;
- X XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_WIDGET); argcnt++;
- X XtSetArg(args[argcnt], XmNbottomWidget, separator); argcnt++;
- X XtSetArg(args[argcnt], XmNeditMode, XmMULTI_LINE_EDIT); argcnt++;
- X XtSetArg(args[argcnt], XmNtopOffset, (int)12); argcnt++;
- X XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;
- X XtSetArg(args[argcnt], XmNtopWidget, secondaryLabel); argcnt++;
- X commentText = XmCreateScrolledText(form1,"commentText",
- X args,
- X argcnt);
- X XtManageChild(commentText);
- X
- X argcnt = 0;
- X XtSetArg(args[argcnt], XmNtopOffset, (int)-5); argcnt++;
- X XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++;
- X XtSetArg(args[argcnt], XmNtopWidget, nameLabel); argcnt++;
- X XtSetArg(args[argcnt], XmNleftOffset, (int)0); argcnt++;
- X XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_WIDGET); argcnt++;
- X XtSetArg(args[argcnt], XmNleftWidget, nameLabel); argcnt++;
- X XtSetValues(nameText, args, argcnt);
- X
- X argcnt = 0;
- X XtSetArg(args[argcnt], XmNtopOffset, (int)12); argcnt++;
- X XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_WIDGET); argcnt++;
- X XtSetArg(args[argcnt], XmNtopWidget, nameLabel); argcnt++;
- X XtSetArg(args[argcnt], XmNleftOffset, (int)0); argcnt++;
- X XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET); argcnt++;
- X XtSetArg(args[argcnt], XmNleftWidget, nameLabel); argcnt++;
- X XtSetValues(primaryLabel, args, argcnt);
- X
- X argcnt = 0;
- X XtSetArg(args[argcnt], XmNbottomOffset, (int)0); argcnt++;
- X XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_WIDGET); argcnt++;
- X XtSetArg(args[argcnt], XmNbottomWidget, rowColumn1); argcnt++;
- X XtSetValues(separator, args, argcnt);
- X
- X return( retval );
- X}
- X
- XWidget
- XCreatemessageBox(parent)
- XWidget parent;
- X{
- X Arg args[512];
- X int argcnt;
- X Widget retval;
- X XmString xmstr[32];
- X XmString *xmstrTable[8];
- X Widget messageBox;
- X XmRegisterConverters();
- X
- X argcnt = 0;
- X XtSetArg(args[argcnt], XmNdefaultButtonType, XmDIALOG_OK_BUTTON); argcnt++;
- X XtSetArg(args[argcnt], XmNmessageString, (xmstr[0]=XmStringCreateLtoR(
- X "Save changes to this card?",
- X XmSTRING_DEFAULT_CHARSET))); argcnt++;
- X XtSetArg(args[argcnt], XmNmessageAlignment, XmALIGNMENT_CENTER); argcnt++;
- X XtSetArg(args[argcnt], XmNx, 0); argcnt++;
- X XtSetArg(args[argcnt], XmNy, 0); argcnt++;
- X messageBox = XtCreateWidget("messageBox",
- X xmMessageBoxWidgetClass,
- X parent,
- X args,
- X argcnt);
- X XmStringFree( xmstr[0] );
- X
- X XtAddCallback(messageBox, XmNcancelCallback, DontDeleteCard, (caddr_t)0);
- X XtAddCallback(messageBox, XmNokCallback, ActuallyDeleteCard, (caddr_t)0);
- X retval = messageBox;
- X
- X return( retval );
- X}
- X
- END_OF_FILE
- if test 17363 -ne `wc -c <'mrolo/creation.c'`; then
- echo shar: \"'mrolo/creation.c'\" unpacked with wrong size!
- fi
- # end of 'mrolo/creation.c'
- fi
- if test -f 'mrolo/rolo.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'mrolo/rolo.c'\"
- else
- echo shar: Extracting \"'mrolo/rolo.c'\" \(6899 characters\)
- sed "s/^X//" >'mrolo/rolo.c' <<'END_OF_FILE'
- X/* Copyright 1993 by gregg hanna */
- X#include <stdio.h>
- X#include <stdlib.h>
- X#include <ctype.h>
- X#include <X11/Xos.h>
- X#include <Xm/Xm.h>
- X#include <Xm/List.h>
- X
- X#include "patchlevel.h"
- X#include "rolo.h"
- X#include "roloP.h"
- X
- XRoloRec *RoloList = NULL;
- X
- Xstatic char *rolofile = NULL;
- X
- Xvoid MakeNewRolo(name,number,number2,text)
- X char *name, *number, *number2, *text;
- X{
- X RoloRec *rr, *pp;
- X char *s;
- X
- X rr = (RoloRec*)malloc(sizeof(RoloRec));
- X
- X rr->next = NULL;
- X
- X rr->name = strdup(name);
- X s = index(rr->name,'\n');
- X if ( s != NULL ) *s = '\0';
- X
- X rr->number = strdup(number);
- X s = index(rr->number,'\n');
- X if ( s != NULL ) *s = '\0';
- X
- X rr->number2 = strdup(number2);
- X s = index(rr->number2,'\n');
- X if ( s != NULL ) *s = '\0';
- X
- X rr->text = strdup(text);
- X
- X rr->on = 1;
- X
- X if ( RoloList == NULL ) RoloList = rr;
- X else if ( strcasecmp(RoloList->name,rr->name) > 0 ) {
- X rr->next = RoloList;
- X RoloList = rr;
- X } else {
- X for ( pp = RoloList; pp->next != NULL; pp = pp->next )
- X if ( strcasecmp(pp->next->name,rr->name) > 0 ) break;
- X rr->next = pp->next;
- X pp->next = rr;
- X }
- X}
- X
- X
- Xvoid InitRolo(argc,argv,stop)
- X int argc;
- X char *argv[];
- X int stop;
- X{
- X int c;
- X extern char *optarg;
- X FILE *f;
- X
- X rolofile = getenv("ROLODEX");
- X if ( rolofile == NULL ) {
- X rolofile = getenv("HOME");
- X if ( rolofile == NULL ) rolofile = ".rolo";
- X else {
- X rolofile = (char*)malloc(500);
- X sprintf(rolofile,"%s/%s",getenv("HOME"),".rolo");
- X }
- X }
- X
- X fprintf(stderr,"MRolo Version %d.%d Patch Level %d\n",VERSION_MAJOR,VERSION_MINOR,PATCHLEVEL);
- X while ((c = getopt(argc, argv, "f:h")) != -1) {
- X switch (c) {
- X case 'f':
- X rolofile = optarg;
- X break;
- X case 'h':
- X case '?':
- X default:
- X if (!stop) break;
- X fprintf(stderr,"usage: %s [-f rolodexfile]\n",argv[0]);
- X exit(1);
- X break;
- X }
- X }
- X f = fopen(rolofile,"r");
- X if ( f == NULL ) {
- X fprintf(stderr,"Creating new rolodex file %s\n",rolofile);
- X f = fopen(rolofile,"w");
- X }
- X fclose(f);
- X}
- X
- Xvoid SetupRolo()
- X{
- X FILE *f, *g;
- X char name[BUFSIZE], number[BUFSIZE], number2[BUFSIZE], text[BUFSIZE], *s;
- X int c;
- X
- X sprintf(name,"%s-",rolofile);
- X fprintf(stderr,"Backing up '%s' to '%s'.\n",rolofile,name);
- X g = fopen(name,"w");
- X f = fopen(rolofile,"r");
- X if ( f == NULL || g == NULL ) {
- X perror("SetupRolo");
- X exit(1);
- X }
- X
- X while (1) {
- X c = fgetc(f);
- X if ( c == -1 ) break;
- X fputc(c,g);
- X }
- X
- X fclose(g);
- X rewind(f);
- X
- X while (!feof(f)) {
- X
- X name[0] = number[0] = number2[0] = '\0';
- X
- X /* get three lines, if we hit a ^L, punt */
- X fgets(name,BUFSIZE,f);
- X if ( feof(f) ) /* yikes! eof in a record, or maybe empty file */
- X break;
- X s = strchr(number,(char)26);
- X if ( s == NULL ) {
- X fgets(number,BUFSIZE,f);
- X s = strchr(number,(char)26);
- X if ( s == NULL ) {
- X fgets(number2,BUFSIZE,f);
- X s = strchr(number2,(char)26);
- X }
- X }
- X if ( s != NULL ) {
- X ungetc(26,f);
- X *s = '\0';
- X }
- X
- X s = text;
- X while(1){
- X c = fgetc(f);
- X if ( c < 1 || c == 12 ) { *s = '\0'; break; }
- X *s = (char)c;
- X s++;
- X }
- X while ( c != 12 && !feof(f) ) c = fgetc(f);
- X
- X MakeNewRolo(name,number,number2,text);
- X
- X for ( c = fgetc(f); c == '\n'; c = fgetc(f) );
- X
- X if ( c != -1 ) ungetc((char)c,f);
- X }
- X
- X fclose(f);
- X}
- X
- XRoloRec *GetN();
- X
- Xvoid DeleteRoloCard(n)
- X int n;
- X{
- X RoloRec *rr, *pp;
- X
- X if ( n < 0 ) return;
- X
- X rr = GetN(n);
- X if ( rr == RoloList ) RoloList = RoloList->next;
- X else {
- X for ( pp = RoloList; pp->next != rr; pp = pp->next );
- X pp->next = rr->next;
- X }
- X if (rr->name != NULL) free(rr->name);
- X if (rr->number != NULL) free(rr->number);
- X if (rr->number2 != NULL) free(rr->number2);
- X if (rr->text != NULL) free(rr->text);
- X free(rr);
- X}
- X
- Xvoid WriteRolo()
- X{
- X FILE *f;
- X char buf[500], *s;
- X RoloRec *rr;
- X
- X#if 0
- X sprintf(buf,"%s-",rolofile);
- X if ( rename(rolofile,buf) ) {
- X perror("WriteRolo");
- X fprintf(stderr,"An error occured while trying to write your\n");
- X fprintf(stderr,"rolodex file. The attempt is being aborted\n");
- X fprintf(stderr,"so your most recent changes might not be saved.\n");
- X fprintf(stderr,"The error occurred while attempting to rename\n");
- X fprintf(stderr,"%s to %s.\n",rolofile,buf);
- X return;
- X }
- X#endif
- X
- X f = fopen(rolofile,"w");
- X if ( f == NULL ) {
- X perror("WriteRolo");
- X fprintf(stderr,"An error occured while trying to write your\n");
- X fprintf(stderr,"rolodex file. The attempt is being aborted\n");
- X fprintf(stderr,"so your most recent changes might not be saved.\n");
- X fprintf(stderr,"The error occurred while attempting to open the\n");
- X fprintf(stderr,"file %s for writing.\n",rolofile);
- X return;
- X }
- X
- X for ( rr = RoloList; rr != NULL; rr = rr->next ) {
- X /* write data */
- X if ( rr->name ) fprintf(f,"%s\n",rr->name);
- X else fputc('\n',f);
- X if ( rr->number ) fprintf(f,"%s\n",rr->number);
- X else fputc('\n',f);
- X if ( rr->number2 ) fprintf(f,"%s\n",rr->number2);
- X else fputc('\n',f);
- X if ( rr->text ) fprintf(f,"%s",rr->text);
- X /* do new-line check to make xrolo happy */
- X for ( s = &rr->text[strlen(rr->text)-1]; *s == ' ' || *s == '\t'; s-- );
- X if ( *s != '\n' ) fputc('\n',f);
- X fputc((char)12,f);
- X fputc('\n',f);
- X }
- X fclose(f);
- X}
- X
- Xint GetIndex(s)
- X char *s;
- X{
- X RoloRec *rr;
- X int n;
- X
- X for ( rr = RoloList, n = 0; rr != NULL; rr = rr->next, n++ )
- X if ( rr->on && strcasecmp(rr->name,s) >= 0 ) break;
- X
- X return n;
- X}
- X
- XRoloRec *GetN(n)
- X int n;
- X{
- X RoloRec *rr;
- X
- X for ( rr = RoloList; rr != NULL && ! rr->on; rr = rr->next );
- X for ( ; rr != NULL; rr = rr->next ) {
- X if ( rr->on ) n--;
- X if ( n < 0 ) break;
- X }
- X return rr;
- X}
- X
- Xchar *GetName(n)
- X int n;
- X{
- X RoloRec *rr;
- X rr = GetN(n);
- X return (rr?rr->name:"");
- X}
- X
- Xchar *GetNumber(n)
- X int n;
- X{
- X RoloRec *rr;
- X rr = GetN(n);
- X return (rr?rr->number:"");
- X}
- X
- Xchar *GetNumber2(n)
- X int n;
- X{
- X RoloRec *rr;
- X rr = GetN(n);
- X return (rr?rr->number2:"");
- X}
- X
- Xchar *GetText(n)
- X int n;
- X{
- X RoloRec *rr;
- X rr = GetN(n);
- X return (rr?rr->text:"");
- X}
- X
- Xstatic int AllSpace(s)
- X char *s;
- X{
- X for ( ; *s != '\0'; s++)
- X if ( ! isspace(*s) ) return 0;
- X return 1;
- X}
- X
- Xchar *strstrcase(t,s)
- X char *t, *s;
- X{
- X int n;
- X char s1, s2;
- X
- X n = strlen(s);
- X s1 = s[0];
- X if ( isupper(s1) ) s2 = tolower(s1);
- X else if ( islower(s1) ) s2 = toupper(s1);
- X else s2 = s1;
- X for (; *t != '\0'; t++ ) {
- X if ( *t == s1 || *t == s2 )
- X if ( strncasecmp(t,s,n) == 0 ) return t;
- X }
- X return NULL;
- X}
- X
- Xvoid RoloFilter(s)
- X char *s;
- X{
- X RoloRec *rr;
- X
- X if ( s == NULL || AllSpace(s) )
- X for ( rr = RoloList; rr != NULL; rr = rr->next )
- X rr->on = 1;
- X else
- X for ( rr = RoloList; rr != NULL; rr = rr->next )
- X rr->on = ( strstrcase(rr->name,s) != NULL ||
- X strstrcase(rr->number,s) != NULL ||
- X strstrcase(rr->number2,s) != NULL ||
- X strstrcase(rr->text,s) != NULL );
- X}
- END_OF_FILE
- if test 6899 -ne `wc -c <'mrolo/rolo.c'`; then
- echo shar: \"'mrolo/rolo.c'\" unpacked with wrong size!
- fi
- # end of 'mrolo/rolo.c'
- fi
- echo shar: End of archive 2 \(of 2\).
- cp /dev/null ark2isdone
- MISSING=""
- for I in 1 2 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked both archives.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-
- exit 0 # Just in case...
- --
- // chris@Sterling.COM | Send comp.sources.x submissions to:
- \X/ Amiga - The only way to fly! | sources-x@sterling.com
- "It's intuitively obvious to the |
- most casual observer..." | GCS d+/-- p+ c++ l+ m+ s++/+ g+ w+ t+ r+ x+
-