コード
#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;
/* コールバック */
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];
/* ウィジェットを作成する */
topLevel = XtInitialize(argv[0], "XMCmds1", NULL, 0, &argc, argv);
form = XtCreateManagedWidget("form", xmFormWidgetClass, topLevel, NULL, 0);
/* コマンドの引数にラベルウィジェットが使用する ASCII 文字列とフォントリストを持つ */
/* アプリケーションはここで起動する */
if (argc == 2) {
/* フォントリストを作成しラベルを変換する */
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);
/* フォントリストとラベルテキストを使用してラベルウィジェットを作成する */
i=0;
XtSetArg(args[i], XmNfontList, fontlist); i++;
XtSetArg(args[i], XmNlabelString, xmstr); i++;
label = XtCreateManagedWidget( "label", xmLabelWidgetClass, form, args, i);
}
/* コマンドの引数にラベルウィジェット用の資源ファイル内のテキストを使用しない */
/* アプリケーションはここで起動する */
else {
label = XtCreateManagedWidget("label", xmLabelWidgetClass, form, NULL, 0); }
/* 引き続きウィジェットを作成する */
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>