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

📄 axes.c

📁 seismic software,very useful
💻 C
字号:
/* Copyright (c) Colorado School of Mines, 1990./* All rights reserved.                       *//*****************************************************************************axes.c : test the Axes widget  ******************************************************************************Author:  Dave Hale, Colorado School of Mines, 08/28/90*****************************************************************************/#include <stdio.h>#include "Xcwp/Xcwp.h"#include "Xcwp/Axes.h"void resizeCB (XcwpAxesWidget w, 	caddr_t clientdata,	XcwpAxesCallbackStruct *calldata);void exposeCB (XcwpAxesWidget w, 	caddr_t clientdata,	XcwpAxesCallbackStruct *calldata);void inputCB (XcwpAxesWidget w, 	caddr_t clientdata,	XcwpAxesCallbackStruct *calldata);main(int argc, char *argv[]){	Widget toplevel,axes;	toplevel = XtInitialize(argv[0],"AxesTest",NULL,0,&argc,argv);	axes = XtCreateManagedWidget("axes",xcwpAxesWidgetClass, 		toplevel,NULL,0);	XtAddCallback(axes,XtNresizeCallback,resizeCB,NULL);	XtAddCallback(axes,XtNexposeCallback,exposeCB,NULL);	XtAddCallback(axes,XtNinputCallback,inputCB,NULL);	XcwpSetAxesValues(axes,0.0,3.1415,-2.0,2.0);	XtRealizeWidget(toplevel);	XtMainLoop();}void resizeCB (Widget w, 	caddr_t clientdata,	XcwpAxesCallbackStruct *ca){	printf("resize callback\n");}void exposeCB (Widget w, 	caddr_t clientdata,	XcwpAxesCallbackStruct *ca){	Position x=ca->x,y=ca->y;	Dimension width=ca->width,height=ca->height;	GC gc;		/* create GC */	gc = XCreateGC(XtDisplay(w),XtWindow(w),0L,NULL);	XSetForeground(XtDisplay(w),gc,BlackPixelOfScreen(XtScreen(w)));		/* draw something */	XFillRectangle(XtDisplay(w),XtWindow(w),gc,x,y,width,height);			/* free GC */	XFreeGC(XtDisplay(w),gc);}void inputCB (Widget w, 	caddr_t clientdata,	XcwpAxesCallbackStruct *ca){	int x=ca->x,y=ca->y,width=ca->width,height=ca->height;	float x1beg=ca->x1beg,x1end=ca->x1end,x2beg=ca->x2beg,x2end=ca->x2end;	float p1beg=ca->p1beg,p1end=ca->p1end,p2beg=ca->p2beg,p2end=ca->p2end;	XEvent *event=ca->event;	int xe,ye;	float xf,yf;		/* NOTE:  this test assumes seismic style! */	xe = event->xbutton.x;	ye = event->xbutton.y;	xf = x2beg+p2beg+(x2end+p2end-x2beg-p2beg)*(xe-x)/width;	yf = x1beg+p1beg+(x1end+p1end-x1beg-p1beg)*(ye-y)/height;	printf("x=%g y=%g\n",xf,yf);}

⌨️ 快捷键说明

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