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

📄 test3.c

📁 安装DDD之前
💻 C
字号:
/***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/Label.h>#include <stdio.h>Widget appshell  = (Widget) NULL;void check_wm_state(shell)	Widget          shell;{	Display        *display;	Window          window;	Atom            xa_WM_STATE;	unsigned long  *property = NULL;	unsigned long   nitems;	unsigned long   leftover;	Atom            actual_type;	int             actual_format;	printf("WM state is ");	display = XtDisplay(shell);	window = XtWindow(shell);	/* Get WM_STATE property from window */	xa_WM_STATE = XInternAtom(display, "WM_STATE", False);	XGetWindowProperty(display, window, xa_WM_STATE, 0L, 1, False,			   xa_WM_STATE, &actual_type, &actual_format,			   &nitems, &leftover, (unsigned char **) &property);	if (property == NULL)		printf("Unknown\n");	else if (*property == IconicState)		printf("Iconic\n");	else if (*property == NormalState)		printf("Normal\n");	else if (*property == WithdrawnState)		printf("Withdrawn\n");	/* Tidy up */	if (property != NULL)		XFree((char *) property);}void check_map_state(shell)	Widget          shell;{	Display        *display;	Window          window;	XWindowAttributes win_attr;	printf("Map state is ");	display = XtDisplay(shell);	window = XtWindow(shell);	XGetWindowAttributes(display, window, &win_attr);	if (win_attr.map_state == IsUnmapped)		printf("Unmapped\n");	else if (win_attr.map_state == IsUnviewable)		printf("Unviewable\n");	if (win_attr.map_state == IsViewable)		printf("Viewable\n");}void watch_maps(shell, client_data, event, cont)	Widget          shell;	XtPointer       client_data;	XEvent         *event;	Boolean        *cont;{	if (event->type == MapNotify)		printf("Map state changed, window is Normal\n");	else if (event->type == UnmapNotify)		printf("Map state changed, window is Iconified\n");	else return;	/* Two other ways to check the state */	check_map_state(shell);	check_wm_state(shell);}void set_handler(shell)	Widget          shell;{	XtAddEventHandler(shell, StructureNotifyMask,			  False, watch_maps, (XtPointer) 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 */	Widget label = (Widget)NULL;	XtSetArg(al[ac], XmNallowShellResize, TRUE); 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;	label = XmCreateLabel ( appshell, "label", al, ac );	XtManageChild ( label);	/* Set up event handler to detect map/unmap of shell */	set_handler(appshell);}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            ,   50,   50,   34,   17, 0,0,0, /* label */     };    PrintDetails(appshell,Expected);};	LessTifTestMainLoop(appshell);	exit (0);}

⌨️ 快捷键说明

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