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

📄 test11.c

📁 安装DDD之前
💻 C
字号:
#include <stdio.h>#include <Xm/Xm.h>#include <Xm/DrawnB.h>#include <X11/Xft/Xft.h>void HiCB(Widget w,XtPointer client_data,XtPointer call_data);intmain(int argc, char **argv){  XtAppContext theApp;  Widget toplevel;  Widget butt;  toplevel = XtVaAppInitialize(&theApp, "drawn", NULL, 0,                              &argc, argv, NULL, NULL);  butt= XtVaCreateManagedWidget("Button1", xmDrawnButtonWidgetClass, toplevel,                                XmNwidth, 100,                               XmNheight, 100,                               NULL);  XtAddCallback(butt,XmNarmCallback,HiCB,NULL);  XtAddCallback(butt,XmNdisarmCallback,HiCB,NULL);  XtAddCallback(butt,XmNactivateCallback,HiCB,NULL);  XtAddCallback(butt,XmNexposeCallback,HiCB,NULL);  XtAddCallback(butt,XmNresizeCallback,HiCB,NULL);  XtRealizeWidget(toplevel);  /* Note: the following values are the result of * querying the current geometry. */{static XtWidgetGeometry Expected[] = {   CWWidth | CWHeight            ,    0,    0,  100,  100, 0,0,0, /* Button1 */};/* toplevel should be replaced with to correct applicationShell */PrintDetails(toplevel, Expected);}LessTifTestMainLoop(toplevel);  exit(0);}void draw(Widget w, Window win, Dimension width, Dimension height, Pixel pix){       GC drawGC;       drawGC = XtAllocateGC(w, 0,0, NULL, 0,0);       XSetForeground(XtDisplayOfObject(w), drawGC, pix);       XDrawRectangle(XtDisplayOfObject(w), win, drawGC,                      10, 10, width - 20, height - 20);       XtReleaseGC(w, drawGC);{	/* Xft based stuff */	static XftFont		*f = NULL;	static XftColor		*color = NULL, c;	static XftDraw		*draw;	XftChar8		*s = "Yow baby";	int			len = 8,				x = 20,				y = 40;	static char		*fn = NULL;	static int		one = 0;	if (! fn)		fn = XtNewString("-*-chancery l-*-*-*-*-*-120-*-*-*-*-iso8859-1");	if (! one) {		one++;		XftInit(NULL);	}	if (! f)		f = XftFontOpenXlfd(XtDisplay(w),			XScreenNumberOfScreen(XtScreen(w)), fn);#if 0			"-*-luxi serif-*-*-*-*-*-120-*-*-*-*-iso8859-1");#endif	if (! f)		f = XftFontOpenXlfd(XtDisplay(w),			XScreenNumberOfScreen(XtScreen(w)),			"fixed");	if (! f)		return;	if (!color) {		color = &c;		color->color.red = 100;		color->color.green = 0;		color->color.blue = 0;		color->color.alpha = 0xFFFF;		XtVaGetValues(w, XmNforeground, &color->pixel, NULL);		color->pixel = pix;	}	if (!draw)		draw = XftDrawCreate(XtDisplay(w),			win, DefaultVisualOfScreen(XtScreen(w)),			DefaultColormapOfScreen(XtScreen(w)));	XftDrawString8(draw, color, f, x, y, s, len);//	XftFontClose(XtDisplay(w), f);}}void HiCB(Widget w,XtPointer client_data,XtPointer call_data){       XmDrawnButtonCallbackStruct *cbs = (XmDrawnButtonCallbackStruct *)call_data;       Dimension width, height;       Pixel color;       XtVaGetValues(w,                     XmNwidth, &width,                     XmNheight, &height,                     XmNforeground, &color,                     NULL);       switch (cbs->reason) {       case XmCR_ARM:               printf("Widget armed\n");               break;       case XmCR_DISARM:               printf("Widget disarmed\n");               break;       case XmCR_ACTIVATE:               printf("Widget activated\n");               break;       case XmCR_EXPOSE:               printf("Widget exposed\n");               draw(w, cbs->window, width, height, color);               break;       case XmCR_RESIZE:               printf("Widget resized\n");               draw(w, cbs->window, width, height, color);               break;       default:               printf("callback for unknown reason\n");       }}

⌨️ 快捷键说明

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