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

📄 test4.c

📁 安装DDD之前
💻 C
📖 第 1 页 / 共 3 页
字号:
/* $Header: /cvsroot/lesstif/lesstif/test/Xm/form/test4.c,v 1.9 2002/05/01 15:39:21 amai Exp $ */#include <stdio.h>#include <stdlib.h>#include <Xm/Xm.h>#include <Xm/List.h>#include <Xm/ScrolledW.h>#include <Xm/Form.h>#include <Xm/Label.h>#include <Xm/MenuShell.h>#include <Xm/PushB.h>#include <Xm/Separator.h>#include <Xm/Text.h>#include <Xm/TextF.h>#include <Xm/RowColumn.h>#include "../../common/Test.h"Widget	form, toplevel, deleteButton, dbDescFileTf, dbFileTf, DBOptionMenu, dbNameTf, dbList;char *fallback[] = {	"*form.background:	red",	"*test.background:	blue",	"*label.background:	yellow",	"*quit.background:	green",	NULL};#define	LARGE_WIDTH	400#define	LARGE_HEIGHT	500#define	SMALL_WIDTH	200#define	SMALL_HEIGHT	250void Quit(Widget w, XtPointer client, XtPointer call){	exit(0);}/* * Function: *      CONVERT(w, from_string, to_type, to_size, success); * Description: *      A converter wrapper for convenience from BuilderXcessory. * Input: *      w - Widget : the widget to use for conversion *	from_string - char * : the string to convert from *	to_type - char * : the type to convert to *	to_size - int : the size of the conversion result *	success - Boolean* : Set to the result value of the conversion * Output: *      None */XtPointer CONVERT(Widget w, char *from_string, char * to_type, int to_size, Boolean * success){    XrmValue		fromVal, toVal;	/* resource holders		*/    Boolean		convResult;	/* return value			*/    unsigned char	oByte;		/* one byte result		*/    unsigned short	tByte;		/* two byte result		*/    XtPointer		fByte;		/* four byte result		*/    XtPointer		aByte;		/* allocated result		*/        /*     * Zero it.     */    fByte = aByte = NULL;    *success = False;    /*     * Sometimes we do not know this at code output.     */    if (to_size == 0)    {	if (!strcmp(to_type, XmRXmString) || !strcmp(to_type, XmRXmStringTable))	{	    to_size = sizeof(XtPointer);	}	else	{	    to_size = strlen(from_string);	}    }            /*     * Set up the list.     */    fromVal.size = strlen(from_string) + 1;    fromVal.addr = from_string;    switch( to_size )    {    case 1:	toVal.size = sizeof(unsigned char);	toVal.addr = (XtPointer)&oByte;	break;    case 2:	toVal.size = sizeof(unsigned short);	toVal.addr = (XtPointer)&tByte;	break;    default:	toVal.size = sizeof(XtPointer);	toVal.addr = (XtPointer)&fByte;	break;    }        convResult = XtConvertAndStore(w, 				   XmRString, 				   &fromVal,				   to_type,				   &toVal);        if( convResult )    {	switch( to_size )	{	case 1:	    fByte = (XtPointer)((int)oByte);	    break;	case 2:	    fByte = (XtPointer)((int)tByte);	    break;	default:	    break;	}    }        /*     * Conversion will fail if we need more than 4 bytes.     * For strings it will fail always the first time.     */    if( !convResult && toVal.size != to_size )    {	/*	 * Need to allocate more space for this one.	 */	toVal.addr = (XtPointer)XtMalloc(toVal.size);	fByte = aByte = toVal.addr;	convResult = XtConvertAndStore(w, 				       XmRString, 				       &fromVal,				       to_type,				       &toVal);    }        /*     * Free any thing useless we may have allocated.     */    if( !convResult )    {	XtFree((char*)aByte);	aByte = NULL;    }        /*     * Return the result.     */    *success = convResult;    /*SUPPRESS 80*/    return(fByte);}/* * Function: CreateConfigureWindow() *        Create configureWindow hierarchy of widgets. */WidgetCreateConfigureWindow(Widget parent){    Arg    	args[512];    Cardinal   	argcnt;    Boolean   	argok;    Widget 	retval;    Widget	configureWindow;    Widget	applyButton;    Widget	cancelButton;    Widget	label1;    Widget	scrolledWindow1;    Widget	label2;    Widget	menuShell;    Widget	pulldownMenu5;    Widget	pushButton5;    Widget	label3;    Widget	label4;    Widget	label5;    Widget	separator1;    Widget	separator2;    Widget	addDBButton;    Widget	moveUpButton;    Widget	moveDownButton;    argok = False;    argcnt = 0;    XtSetArg(args[argcnt], XmNautoUnmanage, False); argcnt++;    XtSetArg(args[argcnt], XmNresizePolicy, XmRESIZE_GROW); argcnt++;    XtSetArg(args[argcnt], XmNx, 0); argcnt++;    XtSetArg(args[argcnt], XmNy, 0); argcnt++;    XtSetArg(args[argcnt], XmNwidth, 500); argcnt++;    XtSetArg(args[argcnt], XmNheight, 504); argcnt++;    configureWindow = XtCreateWidget("configureWindow",		xmFormWidgetClass,		parent,		args,		argcnt);    retval = configureWindow;    argcnt = 0;    XtSetArg(args[argcnt], XmNlabelString,              CONVERT(parent,"Move Down", "XmString", 0, &argok)); if (argok) argcnt++;    XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;    XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++;    XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;    XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_NONE); argcnt++;    XtSetArg(args[argcnt], XmNtopOffset, 0); argcnt++;    XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++;    XtSetArg(args[argcnt], XmNleftOffset, 25); argcnt++;    XtSetArg(args[argcnt], XmNrightOffset, 0); argcnt++;    XtSetArg(args[argcnt], XmNwidth, 99); argcnt++;    XtSetArg(args[argcnt], XmNheight, 30); argcnt++;    moveDownButton = XtCreateWidget("moveDownButton",		xmPushButtonWidgetClass,		configureWindow,		args,		argcnt);    XtManageChild(moveDownButton);    argcnt = 0;    XtSetArg(args[argcnt], XmNlabelString,              CONVERT(parent,"Move Up", "XmString", 0, &argok)); if (argok) argcnt++;    XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;    XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++;    XtSetArg(args[argcnt], XmNleftAttachment, XmATTACH_FORM); argcnt++;    XtSetArg(args[argcnt], XmNrightAttachment, XmATTACH_NONE); argcnt++;    XtSetArg(args[argcnt], XmNtopOffset, 0); argcnt++;    XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++;    XtSetArg(args[argcnt], XmNleftOffset, 25); argcnt++;    XtSetArg(args[argcnt], XmNrightOffset, 0); argcnt++;    XtSetArg(args[argcnt], XmNwidth, 99); argcnt++;    XtSetArg(args[argcnt], XmNheight, 30); argcnt++;    moveUpButton = XtCreateWidget("moveUpButton",		xmPushButtonWidgetClass,		configureWindow,		args,		argcnt);    XtManageChild(moveUpButton);    argcnt = 0;    XtSetArg(args[argcnt], XmNlabelString,              CONVERT(parent,"New", "XmString", 0, &argok)); if (argok) argcnt++;    XtSetArg(args[argcnt], XmNrecomputeSize, False); argcnt++;    XtSetArg(args[argcnt], XmNtopAttachment, XmATTACH_FORM); argcnt++;    XtSetArg(args[argcnt], XmNbottomAttachment, XmATTACH_NONE); argcnt++;    XtSetArg(args[argcnt], XmNtopOffset, 10); argcnt++;    XtSetArg(args[argcnt], XmNbottomOffset, 0); argcnt++;    XtSetArg(args[argcnt], XmNx, 10); argcnt++;    XtSetArg(args[argcnt], XmNwidth, 99); argcnt++;    XtSetArg(args[argcnt], XmNheight, 30); argcnt++;    addDBButton = XtCreateWidget("addDBButton",		xmPushButtonWidgetClass,		configureWindow,		args,		argcnt);

⌨️ 快捷键说明

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