ftp.nice.ch/pub/next/unix/developer/pcn.2.0.s.tar.gz#/contrib/gauge/Xsw/Error.c

This is Error.c in view mode; [Download] [Up]

#if ( !defined(lint) && !defined(SABER))
  static char PCN_rcsid[] = "$Header: /ufs/comp/carl/PCN/IF/Xsw/RCS/Error.c,v 1.3 1992/01/23 03:14:00 carl Exp $";
#endif

/******************************************************************************
*									      *
*	Copyright (C) The Aerospace Corporation 1991			      *
*									      *
*	This software was developed by The Aerospace Corporation as a 	      *
*	research endeavor for the United States Air Force 		      *
*	Space Systems Division.  The current version of the Gauge	      *
*	computer program is available for  release to you for		      *
*	educational and research purposes only.  It is not 		      *
*	to be used for commercial purposes.				      *
*									      *
*	In addition, the following conditions shall apply.		      *
*									      *
*	1) The computer software and documentation were designed to	      *
*	satisfy internal Aerospace requirements only.			      *
*	The software is provided ``as is,'' and The Aerospace Corporation     *
*	makes no warranty, expressed or implied, as to it accuracy,	      *
*	functioning, or fitness for a particular purpose.		      *
*									      *
*	2) The Aerospace Corporation and its personnel are not		      *
*	responsible for providing technical support or general assistance     *
*	with respect to the software.					      *
*									      *
*	3) Neither The Aerospace Corporation nor its personnel shall be	      *
*	liable for claims, losses, or damages arising out of or connected     *
*	with the use of this software.					      *
*	Your sole and exclusive remedy shall be to request a replacement      *
*	copy of the program.						      *
*									      *
******************************************************************************/
#include "Xsw.h"

#include <X11/Shell.h>
#include <X11/Xaw/Command.h>

static char * old_text = NULL;
static int error_cnt = 0;

void
XswDisplayWarnings(app_context)
XtAppContext app_context;
{
  Widget error_w, message_w;
  Arg args[5];
  void exit();
  
  if (old_text != NULL) {
    if (app_context == NULL) {
      error_w = XtCreateApplicationShell("Warning Message",
					 transientShellWidgetClass,
					 NULL, 0);
    } else {
      error_w = XtAppCreateShell("Warning Message", "Message", 
				 transientShellWidgetClass,
				 XswGetDisplay(app_context),
				 NULL, 0);
    }
    XtSetArg(args[0], XtNlabel, old_text);
    message_w = XtCreateManagedWidget("warning", commandWidgetClass,
				      error_w, args, 1);    
    XtAddCallback(message_w, XtNcallback, 
		  XswDestroyWidgetCallback, (XtPointer)message_w); 
    XtAddCallback(message_w, XtNdestroyCallback, 
		  XswDestroyWidgetCallback, (XtPointer)error_w);
    XswPositionWidget(message_w, NULL, XswMouse);
    XtPopup(error_w, XtGrabExclusive);
    XtFree(old_text);
    old_text = NULL;

    if (error_cnt > 0) {
      XtAddCallback(message_w, XtNdestroyCallback, 
		    exit, (XtPointer)NULL); 
      if (app_context == NULL) XswMainLoop();
      else XswAppMainLoop(app_context);
    }
  }
}

void
XswWarning(message)
     String message;
{
  static char header[] = "  Warning: ";
  String text;

  if (old_text == NULL) {
    old_text = (char *)XtMalloc(strlen(header) + strlen(message) + 8);
    sprintf(old_text, "\n%s%s  \n", header, message);
  } else {
    text = (char *)XtMalloc(strlen(old_text) + strlen(header)
			    + strlen(message) + 8);
    sprintf(text, "%s%s%s  \n", old_text, header, message);
    XtFree(old_text);
    old_text = text;
  }
}


void
XswError(message)
     String message;
{
  static char header[] = "  Error: ";
  String text;

  error_cnt++;
  if (old_text == NULL) {
    old_text = (char *)XtMalloc(strlen(header) + strlen(message) + 8);
    sprintf(old_text, "\n%s%s  \n", header, message);
  } else {
    text = (char *)XtMalloc(strlen(old_text) + strlen(header)
			    + strlen(message) + 8);
    sprintf(text, "%s%s%s  \n", old_text, header, message);
    XtFree(old_text);
    old_text = text;
  }
  XswDisplayWarnings(XswApplicationContext());
}



These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.