Trusted Solaris Developer's Guide

Code

#include <stdio.h>
#include <X11/Intrinsic.h>
#include <X11/StringDefs.h>
#include <Xm/Xm.h>
#include <Xm/Label.h>
#include <Xm/PushB.h>
#include <Xm/Form.h>
#include <tsol/Xtsol.h>
#include <Dt/label_clipping.h>

XTsolResAttributes winattrs;
int retval, error;
uid_t uid;
Window window;
Display *display;
char *string = (char *)0, *string1 = (char *)0, *string2 = (char *)0,
	*string3 = (char *)0, *string4 = "SECRET";
XmFontList fontlist;
XmString xmstr;
XFontStruct *italic;
Arg args[9];
Dimension width = 144;
Widget stringLabel;
bslabel_t senslabel;
bclabel_t cmwlabel;

/* Callbacks */

void Xclock(Widget w, caddr_t client_data, caddr_t call_data)
{ system("xclock &"); }

void Xterm(Widget w, caddr_t client_data, caddr_t call_data)
{ system("xterm &"); }

void Quit(Widget w, caddr_t client_data, caddr_t call_data)
{
	fprintf(stderr, "exiting  . . .\n");
	exit(0);
}
main(int argc, char **argv)
{
	Widget rowcolumn, label, xclock, xterm, quit, form, topLevel;
	int i = 0;
	Arg args[9];

/* Create Widgets */
	topLevel = XtInitialize(argv[0], "XMCmds1", NULL, 0, &argc, argv);
	form = XtCreateManagedWidget("form", xmFormWidgetClass, 
	       topLevel, NULL, 0);

/* Launch application with any command argument to use the */
/* Text label string and font list for the label widget */

	if (argc == 2) {
/* Create the font list and translate the label using it */
		retval = getcmwplabel(&cmwlabel);
		getcsl(&senslabel, &cmwlabel);
		italic = XLoadQueryFont(XtDisplay(topLevel),
			"-adobe-times-medium-i-*-*-14-*-*-*-*-*-iso8859-1");
		fontlist = XmFontListCreate(italic, "italic");
		xmstr = (XmString)Xbsltos(XtDisplay(topLevel), &senslabel,
			width, fontlist, LONG_WORDS);

/* Create a label widget using the font list and label text*/
		i=0;
		XtSetArg(args[i], XmNfontList, fontlist); i++;
		XtSetArg(args[i], XmNlabelString, xmstr); i++;
		label = XtCreateManagedWidget("label", xmLabelWidgetClass, 
			form, args, i);
	}

/* Launch application with no command arguments to use the text */
/* in the resource file for the label widget */

	else {
		label = XtCreateManagedWidget("label", xmLabelWidgetClass, 
		        form, NULL, 0); }

/* Continue widget creation */
	i=0;
	XtSetArg(args[i], XmNtopAttachment, XmATTACH_WIDGET); i++;
	XtSetArg(args[i], XmNtopWidget, label); i++;
	XtSetArg(args[i], XmNleftAttachment, XmATTACH_FORM); i++;
	XtSetArg(args[i], XmNrightAttachment, XmATTACH_POSITION); i++;
	XtSetArg(args[i], XmNrightPosition, 33); i++;
	XtSetArg(args[i], XmNbottomAttachment, XmATTACH_FORM); i++;
	xclock = XtCreateManagedWidget("xclock", xmPushButtonWidgetClass, 
	   form, args, i);

	i=0;
	XtSetArg(args[i], XmNtopAttachment, XmATTACH_WIDGET); i++;
	XtSetArg(args[i], XmNtopWidget, label); i++;
	XtSetArg(args[i], XmNleftAttachment, XmATTACH_POSITION); i++;
	XtSetArg(args[i], XmNleftPosition, 33); i++;
	XtSetArg(args[i], XmNrightAttachment, XmATTACH_POSITION);i++;Ha>