⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test9.c

📁 安装DDD之前
💻 C
📖 第 1 页 / 共 2 页
字号:
/* $Header: /cvsroot/lesstif/lesstif/test/Xm/filesb/test9.c,v 1.14 2002/05/01 15:39:21 amai Exp $ */#include <stdio.h>#include <stdlib.h>#include <Xm/Xm.h>#include <Xm/Label.h>#include <Xm/TextF.h>#include <Xm/Form.h>#include <Xm/RowColumn.h>#include <Xm/FileSBP.h>#include <Xm/FileSB.h>#include <Xm/PushB.h>#include <Xm/Frame.h>#include <Xm/Text.h>#include <Xm/MessageB.h>#include "../../common/Test.h"#include "mkdirtree.h"XmQualifyProc (*defaultQualifyProc)();Widget In;Widget Out;static char *FallBack[] = {		"*.geometrySlop: 0",		NULL};static voidStuffInt(Widget w, int value){char buf[1024];	sprintf(buf, "%i", value);	XmTextFieldSetString(w, buf);}static voidStuffXmString(Widget w, XmString value){char *buf;	if (XmStringGetLtoR(value, XmFONTLIST_DEFAULT_TAG, &buf))	{	    XmTextFieldSetString(w, buf);	    XmTextFieldSetInsertionPosition(w, XmTextFieldGetLastPosition(w));	    printf(" >%s<\n", buf);	    XtFree(buf);	}	else	{	    if (value)	    {		XmTextFieldSetString(w, "");	        printf(" ><\n");	    }	    else	    {		XmTextFieldSetString(w, "NULL");	        printf(" NULL\n");	    }	}}static voidStuffValues(Widget w, Widget In, XmFileSelectionBoxCallbackStruct *in){	printf("reason %i\n", in->reason);	StuffInt(XtNameToWidget(In, "*reason_Text"), in->reason);	printf("event %i\n", (int)in->event);	StuffInt(XtNameToWidget(In, "*event_Text"), (int)in->event);	printf("value %i", in->length);	StuffXmString(XtNameToWidget(In, "*value_Text"), in->value);	StuffInt(XtNameToWidget(In, "*length_Text"), in->length);	printf("mask %i", in->mask_length);	StuffXmString(XtNameToWidget(In, "*mask_Text"), in->mask);	StuffInt(XtNameToWidget(In, "*mask_length_Text"), in->mask_length);	printf("dir %i", in->dir_length);	StuffXmString(XtNameToWidget(In, "*dir_Text"), in->dir);	StuffInt(XtNameToWidget(In, "*dir_length_Text"), in->dir_length);	printf("pattern %i", in->pattern_length);	StuffInt(XtNameToWidget(In, "*pattern_length_Text"), in->pattern_length);	StuffXmString(XtNameToWidget(In, "*pattern_Text"), in->pattern);}static voidmyQualifyProc(Widget w, XmFileSelectionBoxCallbackStruct *in, XmFileSelectionBoxCallbackStruct *out){	printf("------ IN -----\n");	StuffValues(w, In, in);	(*defaultQualifyProc)(w, in, out);	printf("\n------ OUT -----\n");	StuffValues(w, Out, out);	printf("\n");}static WidgetCreateField(Widget parent, String name, ArgList arglist, Cardinal argcount){Widget Form;Widget Label;Widget TextField;String tmpName;	tmpName = XtMalloc(strlen(name) + 100);	sprintf(tmpName, "%s_Form", name);	Form = XmCreateForm(parent, tmpName, NULL, 0);	Label = XmCreateLabel(Form, name, NULL, 0);	sprintf(tmpName, "%s_Text", name);	TextField = XmCreateTextField(Form, tmpName, arglist, argcount);	XtVaSetValues(Label,		XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,		XmNtopWidget, TextField,		XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,		XmNbottomWidget, TextField,		XmNleftAttachment, XmATTACH_FORM,		XmNrightAttachment, XmATTACH_WIDGET,		XmNrightWidget, TextField,		NULL);	XtVaSetValues(TextField,		XmNrightAttachment, XmATTACH_FORM,		NULL);	XtManageChild(Label);	XtManageChild(TextField);	XtFree(tmpName);	return(Form);}static WidgetCreateFSBcallbackStruct(Widget parent, String name, ArgList arglist, Cardinal argcount){String *tmp;String tmpName;Widget Frame;Widget Title;Widget RC;Widget Field;String fields[] = {	"reason",	"event",	"value",	"length",	"mask",	"mask_length",	"dir",	"dir_length",	"pattern",	"pattern_length",	NULL};	tmpName = XtMalloc(strlen(name) + 37);	Frame = XmCreateFrame(parent, name, arglist, argcount);	XtVaSetValues(Frame,		/*XmNshadowType, XmSHADOW_IN,*//* blows up */		/*XmNshadowType, XmSHADOW_OUT,*//* blows up */		XmNshadowType, XmSHADOW_ETCHED_IN,		/*XmNshadowType, XmSHADOW_ETCHED_OUT,*//* blows up */		XmNshadowThickness, 5,		NULL);	sprintf(tmpName, "%sput CallbackStruct", name);	Title = XmCreateLabel(Frame, tmpName, arglist, argcount);	XtFree(tmpName);	XtVaSetValues(Title,		XmNchildType, XmFRAME_TITLE_CHILD,		XmNchildHorizontalAlignment, XmALIGNMENT_CENTER,		NULL);	RC = XmCreateRowColumn(Frame, name, arglist, argcount);	tmp = fields;	while (*tmp)	{	    Field = CreateField(RC, *tmp, arglist, argcount);	    XtManageChild(Field);	    tmp++;	};	XtManageChild(Title);	XtManageChild(RC);	return(Frame);}static voidQualifyCallback(Widget w){XmFileSelectionBoxCallbackStruct In1;XmFileSelectionBoxCallbackStruct Out1;String Text;	printf("qualify\n");	Text = XmTextFieldGetString(XtNameToWidget(In, "*reason_Text"));	In1.reason = atoi(Text); XtFree(Text);	Text = XmTextFieldGetString(XtNameToWidget(In, "*event_Text"));	In1.event = (XEvent *)atoi(Text); XtFree(Text);	Text = XmTextFieldGetString(XtNameToWidget(In, "*value_Text"));	if (strcmp("NULL", Text) == 0)	{	    In1.value = (XmString)NULL;	}	else	{	    In1.value = XmStringCreateSimple(Text); XtFree(Text);	}	Text = XmTextFieldGetString(XtNameToWidget(In, "*length_Text"));	In1.length = atoi(Text); XtFree(Text);	Text = XmTextFieldGetString(XtNameToWidget(In, "*mask_Text"));	if (strcmp("NULL", Text) == 0)	{	    In1.mask = (XmString)NULL;	}	else	{	    In1.mask = XmStringCreateSimple(Text); XtFree(Text);	}	Text = XmTextFieldGetString(XtNameToWidget(In, "*mask_length_Text"));	In1.mask_length = atoi(Text); XtFree(Text);	Text = XmTextFieldGetString(XtNameToWidget(In, "*dir_Text"));	if (strcmp("NULL", Text) == 0)	{	    In1.dir = (XmString)NULL;	}	else	{	    In1.dir = XmStringCreateSimple(Text); XtFree(Text);	}	Text = XmTextFieldGetString(XtNameToWidget(In, "*dir_length_Text"));	In1.dir_length = atoi(Text); XtFree(Text);	Text = XmTextFieldGetString(XtNameToWidget(In, "*pattern_Text"));	if (strcmp("NULL", Text) == 0)	{	    In1.pattern = (XmString)NULL;	}	else	{	    In1.pattern = XmStringCreateSimple(Text); XtFree(Text);	}	Text = XmTextFieldGetString(XtNameToWidget(In, "*pattern_length_Text"));	In1.pattern_length = atoi(Text); XtFree(Text);	myQualifyProc(w, &In1, &Out1);	XmStringFree(In1.value);	XmStringFree(In1.mask);	XmStringFree(In1.dir);	XmStringFree(In1.pattern);	XmStringFree(Out1.value);	XmStringFree(Out1.mask);	XmStringFree(Out1.dir);	XmStringFree(Out1.pattern);}intmain(int argc, char **argv){  XtAppContext app;  Widget toplevel;  Widget Form;  Widget FSB;  Widget Qualify;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -