📄 test3.c
字号:
/*** Generated by X-Designer *//***LIBS: -lXm -lXt -lX11*/#include <X11/Xatom.h>#include <X11/Intrinsic.h>#include <X11/Shell.h>#include <Xm/Xm.h>#include <Xm/DialogS.h>#include <Xm/RowColumn.h>#include <Xm/ScrollBar.h>#include <Xm/Text.h>#include <stdio.h>extern Boolean aardvarkConverter ();extern Boolean objStringConverter ();Widget appshell = (Widget) NULL;Widget rowcol = (Widget) NULL;Widget text1_sw = (Widget) NULL;Widget text1 = (Widget) NULL;Widget text2_sw = (Widget) NULL;Widget text2 = (Widget) NULL;void create_appshell (display, app_name, app_argc, app_argv)Display *display;char *app_name;int app_argc;char **app_argv;{ Arg al[64]; /* Arg List */ register int ac = 0; /* Arg Count */ XtSetArg(al[ac], XmNallowShellResize, TRUE); ac++; XtSetArg(al[ac], XmNtitle, "Text Sources"); 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], XmNorientation, XmHORIZONTAL); ac++; rowcol = XmCreateRowColumn ( appshell, "rowcol", al, ac ); ac = 0; XtSetArg(al[ac], XmNcolumns, 38); ac++; XtSetArg(al[ac], XmNeditMode, XmMULTI_LINE_EDIT); ac++; XtSetArg(al[ac], XmNrows, 8); ac++; XtSetArg(al[ac], XmNwordWrap, TRUE); ac++; XtSetArg(al[ac], XmNscrollHorizontal, FALSE); ac++; text1 = XmCreateScrolledText ( rowcol, "text1", al, ac ); ac = 0; text1_sw = XtParent ( text1 ); XmTextSetString ( text1, "These two text widgets share a common text source\n\nThis means that any edits I make in one text widget will be automatically reflected in the other.\n\nThe text widgets can be displaying different parts of the source at the same time." ); XtSetArg(al[ac], XmNcolumns, 24); ac++; XtSetArg(al[ac], XmNeditMode, XmMULTI_LINE_EDIT); ac++; XtSetArg(al[ac], XmNwordWrap, TRUE); ac++; XtSetArg(al[ac], XmNscrollHorizontal, FALSE); ac++; text2 = XmCreateScrolledText ( rowcol, "text2", al, ac ); ac = 0; text2_sw = XtParent ( text2 ); XmTextSetSource(text2, XmTextGetSource(text1), 0, 0 ); XtManageChild(text1); XtManageChild(text2); XtManageChild ( rowcol);}XtAppContext app_context;Display *display; /* Display */void change(Widget w, XtPointer client, XtPointer call){ char *s = (char *)client; fprintf(stderr, "%s in widget %s\n", s, XtName(w));}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);/* Check if a change callback is reported from both widgets */ XtAddCallback(text1, XmNvalueChangedCallback, change, XmNvalueChangedCallback); XtAddCallback(text2, XmNvalueChangedCallback, change, XmNvalueChangedCallback); XtAddCallback(text1, XmNmodifyVerifyCallback, change, XmNmodifyVerifyCallback); XtAddCallback(text2, XmNmodifyVerifyCallback, change, XmNmodifyVerifyCallback); { static XtWidgetGeometry Expected[] = { CWWidth | CWHeight , 56, 72, 455, 128, 0,0,0, /* rowcol */ CWWidth | CWHeight | CWX | CWY, 3, 3, 265, 122, 0,0,0, /* text1SW */ CWWidth | CWHeight | CWX | CWY, 250, 0, 15, 122, 0,0,0, /* VertScrollBar */ CWWidth | CWHeight | CWX | CWY, 0, 0, 246, 122, 0,0,0, /* text1 */ CWWidth | CWHeight | CWX | CWY, 271, 3, 181, 122, 0,0,0, /* text2SW */ CWWidth | CWHeight | CWX | CWY, 166, 0, 15, 122, 0,0,0, /* VertScrollBar */ CWWidth | CWHeight | CWX | CWY, 0, 0, 162, 122, 0,0,0, /* text2 */ }; PrintDetails(appshell,Expected);}; LessTifTestMainLoop(appshell); exit (0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -