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

📄 test10.c

📁 安装DDD之前
💻 C
字号:
/* $Header: /cvsroot/lesstif/lesstif/test/Xm/scrolledwindow/test10.c,v 1.7 2002/05/01 15:27:19 amai Exp $ *//*** Generated by X-Designer ** traverse obscured*//***LIBS: -lXm -lXt -lX11*/#include <stdlib.h>#include <stdio.h>#include <X11/Xatom.h>#include <X11/Intrinsic.h>#include <X11/Shell.h>#include <Xm/Xm.h>#include <Xm/DialogS.h>#include <Xm/Form.h>#include <Xm/Label.h>#include <Xm/PushB.h>#include <Xm/RowColumn.h>#include <Xm/ScrollBar.h>#include <Xm/ScrolledW.h>#include "../../common/Test.h"extern void traverse_obscured ();extern Boolean aardvarkConverter ();extern Boolean objStringConverter ();Widget appshell = (Widget) NULL;Widget form = (Widget) NULL;Widget scrollwin = (Widget) NULL;Widget hsb = (Widget) NULL;Widget vsb = (Widget) NULL;Widget rowcol = (Widget) NULL;Widget button1 = (Widget) NULL;Widget button2 = (Widget) NULL;Widget button3 = (Widget) NULL;Widget label = (Widget) NULL;void traverse_obscured(w, client_data, call_data)	Widget          w;	XtPointer       client_data;	XtPointer       call_data;{	XmScrollVisible(w, ((XmTraverseObscuredCallbackStruct *)			    call_data)->traversal_destination, 0, 0);}void create_appshell (display, app_name, app_argc, app_argv)Display *display;char *app_name;int app_argc;char **app_argv;{	Widget children[3];      /* Children to manage */	Arg al[64];                    /* Arg List */	register int ac = 0;           /* Arg Count */	XmString xmstrings[16];    /* temporary storage for XmStrings */	XtSetArg(al[ac], XmNallowShellResize, TRUE); ac++;	XtSetArg(al[ac], XmNtitle, "Automatic Traversal to Obscured Widgets in Scrolled Window"); ac++;	XtSetArg(al[ac], XmNargc, app_argc); ac++;	XtSetArg(al[ac], XmNargv, app_argv); ac++;	appshell = XtAppCreateShell ( app_name, "XApplication", applicationShellWidgetClass, display, al, ac );	ac = 0;	XtSetArg(al[ac], XmNautoUnmanage, FALSE); ac++;	XtSetArg(al[ac], XmNhorizontalSpacing, 10); ac++;	XtSetArg(al[ac], XmNverticalSpacing, 10); ac++;	form = XmCreateForm ( appshell, "form", al, ac );	ac = 0;	XtSetArg(al[ac], XmNscrollingPolicy, XmAUTOMATIC); ac++;	scrollwin = XmCreateScrolledWindow ( form, "scrollwin", al, ac );	ac = 0;	XtSetArg(al[ac], XmNhorizontalScrollBar, &hsb ); ac++;	XtSetArg(al[ac], XmNverticalScrollBar, &vsb ); ac++;	XtGetValues(scrollwin, al, ac );	ac = 0;	XtSetArg(al[ac], XmNorientation, XmHORIZONTAL); ac++;	rowcol = XmCreateRowColumn ( scrollwin, "rowcol", al, ac );	ac = 0;	button1 = XmCreatePushButton ( rowcol, "button1", al, ac );	button2 = XmCreatePushButton ( rowcol, "button2", al, ac );	button3 = XmCreatePushButton ( rowcol, "button3", al, ac );	xmstrings[0] = XmStringCreateLtoR("Use arrow keys to traverse between buttons.\nTraversing to an obscured button will scroll the window to reveal it.", (XmStringCharSet)XmFONTLIST_DEFAULT_TAG);	XtSetArg(al[ac], XmNlabelString, xmstrings[0]); ac++;	label = XmCreateLabel ( form, "label", al, ac );	ac = 0;	XmStringFree ( xmstrings [ 0 ] );	XtSetArg(al[ac], XmNtopAttachment, XmATTACH_WIDGET); ac++;	XtSetArg(al[ac], XmNtopWidget, label); ac++;	XtSetArg(al[ac], XmNbottomAttachment, XmATTACH_NONE); ac++;	XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;	XtSetArg(al[ac], XmNrightAttachment, XmATTACH_NONE); ac++;	XtSetValues ( scrollwin,al, ac );	ac = 0;	XtSetArg(al[ac], XmNtopAttachment, XmATTACH_FORM); ac++;	XtSetArg(al[ac], XmNleftAttachment, XmATTACH_FORM); ac++;	XtSetValues ( label,al, ac );	ac = 0;	XtAddCallback (scrollwin, XmNtraverseObscuredCallback, traverse_obscured,NULL);	children[ac++] = button1;	children[ac++] = button2;	children[ac++] = button3;	XtManageChildren(children, ac);	ac = 0;	children[ac++] = rowcol;	XtManageChildren(children, ac);	{	unsigned char policy;		XtVaGetValues(scrollwin,			XmNscrollBarDisplayPolicy, &policy,			NULL);		printf("scrollBarDisplayPolicy %s\n",			policy == XmSTATIC ? "XmSTATIC" : "XmAS_NEEDED");	}	ac = 0;	XmScrolledWindowSetAreas(scrollwin, hsb, vsb, rowcol );	{	unsigned char policy;		XtVaGetValues(scrollwin,			XmNscrollBarDisplayPolicy, &policy,			NULL);		printf("scrollBarDisplayPolicy %s\n",			policy == XmSTATIC ? "XmSTATIC" : "XmAS_NEEDED");	}	children[ac++] = scrollwin;	children[ac++] = label;	XtManageChildren(children, ac);	ac = 0;	XtManageChild ( form);	XtAddCallback(button1, XmNactivateCallback, XdbPrintTreeCB, (XtPointer)form);}XtAppContext app_context;Display *display;       /*  Display             */int main (argc,argv)int    argc;char            **argv;{	XtSetLanguageProc ( (XtAppContext) NULL, (XtLanguageProc) NULL, (XtPointer) NULL );	XtToolkitInitialize ();	app_context = XtCreateApplicationContext ();	display = XtOpenDisplay (app_context, NULL, argv[0], "XApplication",	                         NULL, 0, &argc, argv);	if (!display)	{	    printf("%s: can't open display, exiting...\n", argv[0]);	    exit (-1);	}	create_appshell ( display, argv[0], argc, argv );	XtRealizeWidget (appshell);  {    static XtWidgetGeometry Expected[] = {   CWWidth | CWHeight            ,  508,  524,  428,  150, 0,0,0, /* form */   CWWidth | CWHeight | CWX | CWY,   10,   50,  100,  100, 0,0,0, /* scrollwin */   CWWidth | CWHeight | CWX | CWY,    4,    2,   92,   71, 0,0,0, /* ScrolledWindowClipWindow */   CWWidth | CWHeight | CWX | CWY,    0,    0,  174,   31, 0,0,0, /* rowcol */   CWWidth | CWHeight | CWX | CWY,    3,    3,   54,   25, 0,0,0, /* button1 */   CWWidth | CWHeight | CWX | CWY,   60,    3,   54,   25, 0,0,0, /* button2 */   CWWidth | CWHeight | CWX | CWY,  117,    3,   54,   25, 0,0,0, /* button3 */   CWWidth | CWHeight | CWX | CWY,  100,    0,   19,  100, 0,0,0, /* VertScrollBar */   CWWidth | CWHeight | CWX | CWY,    0,   81,  100,   19, 0,0,0, /* HorScrollBar */   CWWidth | CWHeight | CWX | CWY,   10,   10,  418,   30, 0,0,0, /* label */     };    LessTifTestSetSlop(appshell, 2);    PrintDetails(appshell,Expected);};  LessTifTestMainLoop(appshell);	exit (0);}

⌨️ 快捷键说明

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