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

📄 xwinplt.c

📁 speech signal process tools
💻 C
📖 第 1 页 / 共 3 页
字号:
    if (first_time) {	XSelectInput (display, MCWindow,		      ButtonPressMask | ButtonReleaseMask |		      ExposureMask | PointerMotionMask);	first_time = 0;    }    XQueryPointer (display, MCWindow, &root, &child, &root_x, &root_y,		   &x_start, &win_y, &mask);    save_start = new_start = beginplot + (points * (x_start - box_start)					  / (box_end - box_start));    LeftMark_x = mark_x = x_start;    if (debug & 0x4)	fprintf (stderr, "x_start = %d, win_y = %d;  new_start = %d\n",		 x_start, win_y, new_start);    draw_line (display, screen, MCWindow,	       LeftMark_x, box_top,	       LeftMark_x, box_bottom);/*    draw_line (display, screen, MCWindow,	       x_start, box_top,	       x_start, box_bottom);*/    lines_drawn = 0;    sprintf (RangeString, "Range selected: %d ", new_start);    s_imagetext (RangeString, 5, 40);    if (debug & 0x1)	fprintf (stderr, "%s: tracking the mouse . . .\n", Module);    Button1Down = 1;    while (Button1Down) {	/* get rid of any other motion events still on queue */	while (XCheckMaskEvent (display, PointerMotionMask, &report))	    ;	if (lines_drawn) {	    undraw_line (display, screen, MCWindow,			 x_start, box_top,			 x_start, box_bottom);	    /* lines_drawn = 0; */	}	XQueryPointer (display, MCWindow, &root, &child, &root_x, &root_y,		       &x_start, &win_y, &mask);	new_start = beginplot + (points * (x_start - box_start)				 / (box_end - box_start));	if (x_start >= box_start && x_start <= box_end) {	    draw_line (display, screen, MCWindow,		       x_start, box_top,		       x_start, box_bottom);	    lines_drawn = 1;	}	RightMark_x = mark_x = x_start;	sprintf (RangeString, "Range selected: %d to %d", save_start, new_start);	s_imagetext (RangeString, 5, 40);	if (debug & 0x1)	    fprintf (stderr, "%s: Range selected: %d to %d\n",		     Module, save_start, new_start);		XMaskEvent (display, ButtonReleaseMask | PointerMotionMask, &report);	/* XtNextEvent (&report); */	if (report.type == ButtonRelease)	    break;    }	/* end while */    lines_drawn = 0;    new_nan = new_start;    new_start = save_start;    {	Arg		arg[1];	Cardinal	i;	/* Clear the "Select/Range Mode" toggle switch */	i = 0;	XtSetArg (arg[i], XtNset, False);  i++;	XtSetValues ((Widget) SRW, arg, (Cardinal) i);	OptionSelected = NONE;	RangeShown = 1;	/* Display "Clear Range" PushButton */	i = 0;	XtSetArg (arg[i], XtNlabel, (caddr_t) "Clear Range");  i++;	XtSetValues ((Widget) RRW, arg, (Cardinal) i);    }    /* Load in default mouse pointer */    MousePointer = XCreateFontCursor (display, XC_top_left_arrow);    XDefineCursor (display, MCWindow, MousePointer);}void EndRange(widget, closure, callData)    Widget widget;		/* unused */    caddr_t closure;		/* unused */    caddr_t callData;		/* unused */{    if (OptionSelected != SELECT_RANGE)	return;    fprintf (stderr, "End range selected\n");}void DrawPlot(widget, closure, callData)    Widget widget;		/* unused */    caddr_t closure;		/* unused */    caddr_t callData;		/* unused */{    char		*Module = "DrawPlot";    XGCValues		values;    XtGCMask		valuemask = 0;    static int		count = 0;    if (debug & 0x1)	fprintf (stderr, "%s: Number of times WorkSpace Widget exposed:  %d\n",		 Module, ++count);    display = XtDisplay (widget);    MCWindow = XtWindow (widget);    /* Load in left arrow as default mouse pointer */    MousePointer = XCreateFontCursor (display, XC_top_left_arrow);    XDefineCursor (display, MCWindow, MousePointer);    if (debug & 512)	fprintf (stderr, "%s: create Graphics Context\n",		 Module);    mc_gc = XtGetGC (widget, valuemask, &values);    repaint_canvas ();}init_device(){    char		*Module = "xmcd";/*    XGCValues		values;    unsigned long	valuemask = 0;*/    int			MCWinWidth, MCWinHeight;    Cardinal	i;    Arg arg[10];    static XtCallbackRec Quitcallbacks[] = { { Quit, NULL}, {NULL, NULL} };    static XtCallbackRec SRcallbacks[] = { { SelectRange, NULL}, {NULL, NULL} };    static XtCallbackRec PRcallbacks[] = { { PlayRange, NULL}, {NULL, NULL} };    static XtCallbackRec Refreshcallbacks[] = { { Refresh, NULL}, {NULL, NULL} };    static XtCallbackRec ZoomIncallbacks[] = { { ZoomIn, NULL}, {NULL, NULL} };    static XtCallbackRec ZoomOutcallbacks[] = { { ZoomOut, NULL}, {NULL, NULL} };    static XtCallbackRec Savecallbacks[] = { { SaveRange, NULL}, {NULL, NULL} };    static XtCallbackRec ERcallbacks[] = { { ReselectRange, NULL}, {NULL, NULL} };    static XtCallbackRec WSexposecallbacks[] = { { DrawPlot, NULL}, {NULL, NULL} };    static XtCallbackRec WSselectcallbacks[] = { { StartRange, NULL}, {NULL, NULL} };    static XtCallbackRec WSreleasecallbacks[] = { { EndRange, NULL}, {NULL, NULL} };    if (debug & 0x1)	fprintf (stderr, "%s: initialize device...\n",		 Module);/*    toplevel = XtInitialize (NULL, "XMcd", options, XtNumber(options), *			     &Argc, Argv); */    display = XtDisplay (toplevel);    screen = DefaultScreen (display);    width = DisplayWidth (display, screen);    height = DisplayHeight (display, screen);    i = 0;    XtSetArg( arg[i], XtNwidth, 200);  i++;    outer = XtCreateManagedWidget ("Paned", XwvPanedWidgetClass, toplevel,				   arg, i);    /* XtAddCallback (outer, XtNdestroyCallback, Destroyed, NULL); */    if (debug & 0x1)	fprintf (stderr, "%s: screen = %d, width = %d, height = %d\n",		 Module, screen, width, height);    if ((font_info = XLoadQueryFont (display, "6x10")) == NULL) {       if ((font_info = XLoadQueryFont (display, "6x13")) == NULL) {	fprintf(stderr,"%s: can't load font.\n", Module);	exit(1);       }    }    Texth = font_info->max_bounds.ascent + font_info->max_bounds.descent;    /*******************************/    /* C R E A T E   W I D G E T S */    /*******************************/    /* Create Label Widget for displaying title */    {	int	LabelHeight = 12;	i = 0;	XtSetArg (arg[i], XtNlabel, title);  i++;	/* The following is used to prevent the vPaned widget from displaying	 * sashes (control widgets) in the bottom right corner of each pane.	 */	XtSetArg( arg[i], XtNmin, LabelHeight);  i++;	XtSetArg( arg[i], XtNmax, LabelHeight);  i++;	XtSetArg (arg[i], XtNbackground,		  NameToPixel (display, screen, "blue",			       WhitePixel (display, screen)));  i++;	XtSetArg (arg[i], XtNforeground,		  NameToPixel (display, screen, "white",			       WhitePixel (display, screen)));  i++;	/* XtCreateManagedWidget ("Title", labelWidgetClass, outer, arg, i); */	XtCreateManagedWidget ("Title", XwstatictextWidgetClass, outer, arg, i);    }    /* Create a Form Widget for placing Toggle Widgets at proper place */    {	int	FormHeight = 20;	i = 0;	XtSetArg (arg[i], XtNwidgetType, XwWORK_SPACE);  i++;	XtSetArg( arg[i], XtNmin, FormHeight);  i++;	XtSetArg( arg[i], XtNmax, FormHeight);  i++;	FormW = XtCreateManagedWidget ("Form", XwformWidgetClass, outer, arg, i);    }    {	i = 0;	XtSetArg (arg[i], XtNlabel, "Quit");  i++;	XtSetArg (arg[i], XtNxRefWidget, FormW);  i++;	XtSetArg (arg[i], XtNxResizable, True);	 i++;	XtSetArg (arg[i], XtNyRefWidget, FormW);  i++;	XtSetArg (arg[i], XtNyResizable, True);  i++;	XtSetArg (arg[i], XtNtraversalType, XwHIGHLIGHT_ENTER);  i++;	XtSetArg (arg[i], XtNrelease, Quitcallbacks);  i++;	PrevW = QuitW = XtCreateManagedWidget ("Quit", XwpushButtonWidgetClass,					       FormW, arg, i);    }    if (R_flag || P_flag) {	i = 0;	XtSetArg (arg[i], XtNlabel, "Clear Range");  i++;	XtSetArg (arg[i], XtNxRefWidget, (caddr_t) PrevW);  i++;	XtSetArg (arg[i], XtNyRefWidget, (caddr_t) PrevW); i++;	XtSetArg (arg[i], XtNxAddWidth, True);  i++;	XtSetArg (arg[i], XtNxVaryOffset, True);  i++;	XtSetArg (arg[i], XtNtraversalType, XwHIGHLIGHT_ENTER);  i++;	/* XtSetArg (arg[i], XtNsquare, False);  i++; */	XtSetArg (arg[i], XtNselect, ERcallbacks);  i++;	PrevW = RRW = XtCreateManagedWidget ("RR", XwpushButtonWidgetClass,					     FormW, arg, i);    }    if (P_flag) {	i = 0;	XtSetArg (arg[i], XtNlabel, "Play selected range");  i++;	XtSetArg (arg[i], XtNxRefWidget, (caddr_t) PrevW);  i++;	XtSetArg (arg[i], XtNyRefWidget, (caddr_t) PrevW); i++;	XtSetArg (arg[i], XtNxAddWidth, True);  i++;	XtSetArg (arg[i], XtNxResizable, True);  i++;	XtSetArg (arg[i], XtNxVaryOffset, True);  i++;	/* XtSetArg (arg[i], XtNtraversalType, XwHIGHLIGHT_ENTER);  i++; */	XtSetArg (arg[i], XtNsquare, False);  i++;	XtSetArg (arg[i], XtNselect, PRcallbacks);  i++;	PrevW = PRW = XtCreateManagedWidget ("PR", XwtoggleWidgetClass, FormW, arg, i);    }    /* Create Refresh pushButton Widget */    {	i = 0;	XtSetArg (arg[i], XtNlabel, "Refresh");  i++;	XtSetArg (arg[i], XtNxRefWidget, (caddr_t) PrevW);  i++;	XtSetArg (arg[i], XtNyRefWidget, (caddr_t) PrevW); i++;	XtSetArg (arg[i], XtNxAddWidth, True);  i++;	XtSetArg (arg[i], XtNxAttachRight, True);  i++;	XtSetArg (arg[i], XtNxVaryOffset, True);  i++;	XtSetArg (arg[i], XtNtraversalType, XwHIGHLIGHT_ENTER);  i++;	XtSetArg (arg[i], XtNselect, Refreshcallbacks);  i++;	RefreshW = XtCreateManagedWidget ("Refresh", XwpushButtonWidgetClass,					  FormW, arg, i);    }    /* Create a Form Widget for placing Toggle Widgets at proper place */    if (R_flag || P_flag) {	int	FormHeight = 20;	i = 0;	XtSetArg (arg[i], XtNwidgetType, XwWORK_SPACE);  i++;	XtSetArg( arg[i], XtNmin, FormHeight);  i++;	XtSetArg( arg[i], XtNmax, FormHeight);  i++;	Form2W = XtCreateManagedWidget ("Form2", XwformWidgetClass, outer, arg, i);    }    if (R_flag || P_flag) {	i = 0;	XtSetArg (arg[i], XtNlabel, "Save Range"); i++;	XtSetArg (arg[i], XtNxRefWidget, Form2W);  i++;	XtSetArg (arg[i], XtNxResizable, True);	 i++;	XtSetArg (arg[i], XtNyRefWidget, Form2W);  i++;	XtSetArg (arg[i], XtNyResizable, True);  i++;	XtSetArg (arg[i], XtNsquare, False);  i++;	XtSetArg (arg[i], XtNselect, Savecallbacks);  i++;	PrevW = SaveW = XtCreateManagedWidget ("Save", XwtoggleWidgetClass,					     Form2W, arg, i);    }    if (R_flag || P_flag) {	i = 0;	XtSetArg (arg[i], XtNlabel, "Select/Range Mode"); i++;	XtSetArg (arg[i], XtNxRefWidget, (caddr_t) PrevW); i++;	XtSetArg (arg[i], XtNyRefWidget, (caddr_t) PrevW); i++;	XtSetArg (arg[i], XtNxAddWidth, True);  i++;	XtSetArg (arg[i], XtNxResizable, True);	i++;	XtSetArg (arg[i], XtNxVaryOffset, True);  i++;	/* XtSetArg (arg[i], XtNtraversalType, XwHIGHLIGHT_ENTER);  i++; */	XtSetArg (arg[i], XtNsquare, False);  i++;	XtSetArg (arg[i], XtNselect, SRcallbacks);  i++;	PrevW = SRW = XtCreateManagedWidget ("SR", XwtoggleWidgetClass, Form2W, arg, i);    }    if (R_flag || P_flag ) {	i = 0;	XtSetArg (arg[i], XtNlabel, "Zoom In");  i++;	XtSetArg (arg[i], XtNxRefWidget, (caddr_t) PrevW); i++;	XtSetArg (arg[i], XtNyRefWidget, (caddr_t) PrevW); i++;	/* XtSetArg (arg[i], XtNxAttachRight, True);  i++; */	XtSetArg (arg[i], XtNxAddWidth, True);  i++;	XtSetArg (arg[i], XtNxVaryOffset, True);  i++;	XtSetArg (arg[i], XtNsquare, False);  i++;	XtSetArg (arg[i], XtNselect, ZoomIncallbacks);  i++;	PrevW = ZoomInW = XtCreateManagedWidget ("ZoomIn", XwtoggleWidgetClass,					       Form2W, arg, i);    }    if (R_flag || P_flag ) {	i = 0;	XtSetArg (arg[i], XtNlabel, "Zoom Out");  i++;	XtSetArg (arg[i], XtNxRefWidget, (caddr_t) PrevW); i++;	XtSetArg (arg[i], XtNyRefWidget, (caddr_t) PrevW); i++;	XtSetArg (arg[i], XtNxAttachRight, True);  i++;	XtSetArg (arg[i], XtNxAddWidth, True);  i++;	XtSetArg (arg[i], XtNxVaryOffset, True);  i++;	XtSetArg (arg[i], XtNsquare, False);  i++;	XtSetArg (arg[i], XtNselect, ZoomOutcallbacks);  i++;	PrevW = ZoomOutW = XtCreateManagedWidget ("ZoomOut", XwtoggleWidgetClass,					       Form2W, arg, i);    }    /* Create a WorkSpace Widget for drawing */    i = 0;    XtSetArg (arg[i], XtNexpose, WSexposecallbacks);  i++;    XtSetArg (arg[i], XtNtraversalType, XwHIGHLIGHT_ENTER);  i++;    XtSetArg (arg[i], XtNselect, WSselectcallbacks);  i++;    XtSetArg (arg[i], XtNrelease, WSreleasecallbacks);  i++;    XtSetArg (arg[i], XtNwidth, DEFAULT_WIDTH);  i++;    XtSetArg (arg[i], XtNheight, DEFAULT_HEIGHT);  i++;    WSW = XtCreateManagedWidget ("WorkSpace", XwworkSpaceWidgetClass, outer, arg, i);    xorig = yorig = 1;    if (debug & 0x1)	fprintf (stderr, "%s: device initialized\n",		 Module);    /* OLD Method:     * MCWindow = XCreateSimpleWindow (display, RootWindow (display, screen),     *				       0, 0,     *				       MCWinWidth, MCWinHeight,     *				       1, BlackPixel (display, screen),     *				       WhitePixel (display, screen));     *     * XSetStandardProperties (display, MCWindow, Module, Module,     *			       None, NULL, 0, &szhint);     * XMapWindow (display, MCWindow);     *//*   XSelectInput (display, MCWindow, *		  KeyPressMask | ButtonPressMask | ExposureMask | ResizeRedirectMask); */    /* mc_gc = XCreateGC (display, MCWindow, valuemask, &values); */}erase(){    if (WidgetsCreated)	XClearWindow (display, MCWindow);

⌨️ 快捷键说明

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