static Select_Info *initialize_Graph_Select_Reg(void){ Panel panel; Frame gsr_frame = NULL; Canvas gsr_cvs = NULL; Window gsr_win; Xv_Window window; Select_Info *ret_val = (Select_Info*)Malloc(sizeof(Select_Info)); gsr_frame = xv_create(tracesFrame, FRAME, XV_HEIGHT, gsrwin_h+40, XV_WIDTH, gsrwin_w, NULL); gsr_cvs = xv_create(gsr_frame, CANVAS, XV_X, 0, XV_Y, 40, CANVAS_REPAINT_PROC, redraw_gsrwin, CANVAS_RESIZE_PROC, resize_gsrwin, NULL); gsr_win = xv_get(canvas_paint_window(gsr_cvs), XV_XID); handle_colours(gsr_win); window = (Xv_Window)xv_get(gsr_cvs,CANVAS_NTH_PAINT_WINDOW,0); xv_set(window,WIN_EVENT_PROC,gsr_event_handle, WIN_CONSUME_EVENTS,WIN_MOUSE_BUTTONS,NULL, NULL); panel = (Panel)xv_create(gsr_frame, PANEL, XV_X, 0, XV_Y, 0, XV_HEIGHT, 40, NULL); (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, close_gsr_win, PANEL_CLIENT_DATA,gsr_frame, NULL); (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Select All", PANEL_NOTIFY_PROC, gsr_select_all, XV_KEY_DATA, PANEL_SEL_REG,ret_val, NULL); (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Deselect All", PANEL_NOTIFY_PROC, gsr_deselect_all, XV_KEY_DATA, PANEL_SEL_REG,ret_val, NULL); (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Default Selection", PANEL_NOTIFY_PROC, gsr_default, XV_KEY_DATA, PANEL_SEL_REG,ret_val, NULL); init_selection_values(ret_val); ret_val->can = gsr_cvs; ret_val->board = gsr_frame; ret_val->wind = gsr_win; createGC(gsr_win, &ret_val->txtgc); fil_sel_reg(ret_val); return ret_val; }
static void InitFpltFrame() { Panel panel; Menu menu; fplt_frame= xv_create(tracesFrame, FRAME, XV_HEIGHT, fpltwin_h+40, XV_WIDTH, fpltwin_w, NULL); fplt_cvs= xv_create(fplt_frame, CANVAS, XV_X, 0, XV_Y, 40, CANVAS_REPAINT_PROC, redrawFplt, NULL); fplt_win= xv_get(canvas_paint_window(fplt_cvs), XV_XID); createGC( fplt_win, &fplt_gc); panel= (Panel)xv_create(fplt_frame, PANEL, XV_X, 0, XV_Y, 0, XV_HEIGHT, 40, NULL); (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, close_fplt_win, NULL); menu= (Menu)xv_create(NULL,MENU, MENU_STRINGS, "taper etc.", "no taper", "shades", "no shades", NULL, MENU_NOTIFY_PROC, options_menu_proc, NULL); (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Options", PANEL_ITEM_MENU, menu, NULL); len_txt= (Panel_item)xv_create(panel, PANEL_TEXT, PANEL_LABEL_STRING, "Length", PANEL_VALUE_DISPLAY_WIDTH, 60, NULL); step_txt= (Panel_item)xv_create(panel, PANEL_TEXT, PANEL_LABEL_STRING, "Step", PANEL_VALUE_DISPLAY_WIDTH, 60, NULL); scale_txt= (Panel_item)xv_create(panel, PANEL_TEXT, PANEL_LABEL_STRING, "Scale", PANEL_VALUE_DISPLAY_WIDTH, 60, NULL); itrc_txt= (Panel_item)xv_create(panel, PANEL_NUMERIC_TEXT, PANEL_LABEL_STRING, "Trc No.", PANEL_VALUE_DISPLAY_WIDTH, 60, NULL); (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Go", PANEL_NOTIFY_PROC, go_fplt, NULL); InitStipples(); }
/* * Create object `canvas1' in the specified instance. */ Xv_opaque SoundingChart_GUI_window1_canvas1_create(SoundingChart_GUI_window1_objects *ip, Xv_opaque owner) { extern Notify_value canvas_event_func(Xv_window, Event *, Notify_arg, Notify_event_type); extern void canvas_repaint(Canvas, Xv_window, Rectlist *); Xv_opaque obj; obj = xv_create(owner, CANVAS, XV_KEY_DATA, INSTANCE, ip, XV_X, 0, XV_Y, (int)xv_get(ip->controls1, XV_Y) + (int)xv_get(ip->controls1, XV_HEIGHT), XV_WIDTH, WIN_EXTEND_TO_EDGE, XV_HEIGHT, WIN_EXTEND_TO_EDGE, CANVAS_REPAINT_PROC, canvas_repaint, NULL); xv_set(canvas_paint_window(obj), WIN_CONSUME_EVENTS, WIN_MOUSE_BUTTONS, LOC_MOVE, LOC_DRAG, LOC_WINENTER, LOC_WINEXIT, WIN_ASCII_EVENTS, WIN_LEFT_KEYS, WIN_RIGHT_KEYS, WIN_TOP_KEYS, NULL, NULL); notify_interpose_event_func(canvas_paint_window(obj), (Notify_func) canvas_event_func, NOTIFY_SAFE); /* * This line is here for backwards compatibility. It will be * removed for the next release. */ xv_set(canvas_paint_window(obj), XV_KEY_DATA, INSTANCE, ip, NULL); return obj; }
int initZTScale(Frame frame) { ztscl_top_canvas= (Canvas)xv_create(frame, CANVAS, XV_X, 0, XV_Y, 0, XV_WIDTH, ZCvsWidth+ZTrkLabWidth+4, XV_HEIGHT, ZTSHEIGHT+1, XV_KEY_DATA, WHICH_TS, TOP_TS, CANVAS_REPAINT_PROC, RedrawZTScale, NULL); ztscl_bot_canvas= (Canvas)xv_create(frame, CANVAS, XV_X, 0, XV_Y, ZCvsHeight+ZTSHEIGHT-1, XV_WIDTH, ZCvsWidth+ZTrkLabWidth+4, XV_HEIGHT, ZTSHEIGHT+1, XV_KEY_DATA, WHICH_TS, BOTTOM_TS, CANVAS_REPAINT_PROC, RedrawZTScale, NULL); ztscl_top_win= (Window)xv_get(canvas_paint_window(ztscl_top_canvas), XV_XID); ztscl_bot_win= (Window)xv_get(canvas_paint_window(ztscl_bot_canvas), XV_XID); createGC(ztscl_top_win, &ztscl_gc); if(!Mode_ZDisplayTScale || !Mode_align) { xv_set(ztscl_top_canvas, XV_SHOW, FALSE, NULL); xv_set(ztscl_bot_canvas, XV_SHOW, FALSE, NULL); } }
main(int argc, char **argv) { XColor rgb_def; XColor rgb_exact; XGCValues gcvalues; /* * Initialize XView. */ xv_init(XV_INIT_ARGC_PTR_ARGV, &argc, argv, NULL); INSTANCE = xv_unique_key(); /* * Initialize user interface components. * Do NOT edit the object initializations by hand. */ Cclock_window1 = cclock_window1_objects_initialize(NULL, 0); dpy = (Display *) xv_get(Cclock_window1->window1, XV_DISPLAY); cmap = DefaultColormap(dpy,DefaultScreen(dpy)); can_xid = xv_get(canvas_paint_window(Cclock_window1->canvas1),XV_XID); XAllocNamedColor(dpy,cmap,"White",&rgb_def,&rgb_exact); gcvalues.foreground = rgb_exact.pixel; XAllocNamedColor(dpy,cmap,"Black",&rgb_def,&rgb_exact); gcvalues.background = rgb_exact.pixel; w_gc = XCreateGC(dpy,can_xid,(GCForeground | GCBackground),&gcvalues); gcvalues.foreground = rgb_exact.pixel; b_gc = XCreateGC(dpy,can_xid,(GCForeground | GCBackground),&gcvalues); XSetLineAttributes(dpy, w_gc, 3, LineSolid, CapButt, JoinRound); /* * Turn control over to XView. */ xv_main_loop(Cclock_window1->window1); exit(0); }
static void InitPmotionFrame() { Panel panel; Menu menu; pm_frame= xv_create(tracesFrame, FRAME, XV_HEIGHT, pmwin_h+40, XV_WIDTH, pmwin_w, NULL); pm_cvs= xv_create(pm_frame, CANVAS, XV_X, 0, XV_Y, 40, CANVAS_REPAINT_PROC, redrawPmotion, NULL); pm_win= xv_get(canvas_paint_window(pm_cvs), XV_XID); createGC(pm_win, &pm_gc); panel= (Panel)xv_create(pm_frame, PANEL, XV_X, 0, XV_Y, 0, XV_HEIGHT, 40, NULL); (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, close_pmotion_win, NULL); (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "redo", PANEL_NOTIFY_PROC, handle_particle_motion, NULL); (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "next selection", PANEL_NOTIFY_PROC, next_motion, NULL); (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Z-X", PANEL_NOTIFY_PROC, changeZX, NULL); (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Z-Y", PANEL_NOTIFY_PROC, changeZY, NULL); (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "X-Y", PANEL_NOTIFY_PROC, changeXY, NULL); }
void InitZTrkLab(Frame frame) { Server_image raise, lower, compress, expand, center, zero; int i, y; int show= ZTrkHeight>=105; ZLab_win= (Window *)Malloc(sizeof(Window)*NumZTracks); ZLab_canvas= (Canvas *)Malloc(sizeof(Canvas)*NumZTracks); ZLab_canvas2= (Canvas *)Malloc(sizeof(Canvas)*NumZTracks); ZLab_panel= (Panel *)Malloc(sizeof(Panel)*NumZTracks); if (ZLab_win==NULL || ZLab_canvas==NULL || ZLab_panel==NULL || ZLab_canvas2==NULL ) return; /* not enuff memory */ /* creates button images */ raise = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, raise_width, XV_HEIGHT, raise_height, SERVER_IMAGE_DEPTH, 1, SERVER_IMAGE_X_BITS, raise_bits, NULL); lower = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, lower_width, XV_HEIGHT, lower_height, SERVER_IMAGE_DEPTH, 1, SERVER_IMAGE_X_BITS, lower_bits, NULL); center = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, center_width, XV_HEIGHT, center_height, SERVER_IMAGE_DEPTH, 1, SERVER_IMAGE_X_BITS, center_bits, NULL); zero = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, zero_width, XV_HEIGHT, zero_height, SERVER_IMAGE_DEPTH, 1, SERVER_IMAGE_X_BITS, zero_bits, NULL); expand = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, expand_width, XV_HEIGHT, expand_height, SERVER_IMAGE_DEPTH, 1, SERVER_IMAGE_X_BITS, expand_bits, NULL); compress = (Server_image)xv_create(NULL, SERVER_IMAGE, XV_WIDTH, compress_width, XV_HEIGHT, compress_height, SERVER_IMAGE_DEPTH, 1, SERVER_IMAGE_X_BITS, compress_bits, NULL); /* set up the label canvas */ y= (Mode_align && Mode_ZDisplayTScale)? ZTSHEIGHT : 0; for(i=0; i < NumZTracks; i++) { Panel panel; Canvas canvas; Panel_item item0, item1, item2; int ht; ht= (i!=NumZTracks-1)? ZTrkHeight : ZCvsHeight-ZTrkHeight*(NumZTracks-1); canvas = (Canvas)xv_create(frame, CANVAS, XV_X, 0, XV_Y, y, XV_WIDTH, ZTrkLabWidth, XV_HEIGHT, ht, /* CANVAS_WIDTH, ZTrkLabWidth, CANVAS_HEIGHT, ZTrkHeight, CANVAS_AUTO_EXPAND, FALSE, CANVAS_AUTO_SHRINK, FALSE, */ CANVAS_X_PAINT_WINDOW, TRUE, CANVAS_REPAINT_PROC, Zlab_repaint_proc, XV_KEY_DATA, TRACK_INDEX, i, /* for identification */ NULL); ZLab_canvas[i]= canvas; panel = (Panel)xv_create(canvas, PANEL, XV_X, 1, XV_HEIGHT, ht-1, XV_WIDTH, ZTrkLabWidth, /* PANEL_LAYOUT, PANEL_HORIZONTAL, PANEL_ITEM_X_GAP, 3, PANEL_ITEM_Y_GAP, 3, */ NULL); ZLab_panel[i]= panel; /* raise trace */ item0= (Panel_item)xv_create(panel, PANEL_BUTTON, XV_X, 5, XV_Y, ZTrkHeight - 60, PANEL_LABEL_IMAGE, raise, PANEL_NOTIFY_PROC, Zlab_notify_raise, XV_SHOW, (show? TRUE:FALSE), XV_KEY_DATA, TRACK_INDEX, i, NULL); /* lower trace */ item1= (Panel_item)xv_create(panel, PANEL_BUTTON, XV_X, 45, XV_Y, ZTrkHeight - 60, PANEL_LABEL_IMAGE, lower, PANEL_NOTIFY_PROC, Zlab_notify_lower, XV_SHOW, (show? TRUE:FALSE), XV_KEY_DATA, TRACK_INDEX, i, NULL); /* center trace */ item2= (Panel_item)xv_create(panel, PANEL_BUTTON, XV_X, 65, XV_Y, ZTrkHeight - 60, PANEL_LABEL_IMAGE, center, PANEL_NOTIFY_PROC, Zlab_notify_center, XV_SHOW, (show? TRUE:FALSE), XV_KEY_DATA, TRACK_INDEX, i, NULL); /* expand vertically */ (void)xv_create(panel, PANEL_BUTTON, XV_X, 5, XV_Y, ZTrkHeight - 30, PANEL_LABEL_IMAGE, expand, PANEL_NOTIFY_PROC, Zlab_notify_expand, PANEL_NEXT_ROW, -1, XV_SHOW, (show? TRUE:FALSE), XV_KEY_DATA, TRACK_INDEX, i, NULL); /* compress vertically */ (void)xv_create(panel, PANEL_BUTTON, XV_X, 35, XV_Y, ZTrkHeight - 30, PANEL_LABEL_IMAGE, compress, PANEL_NOTIFY_PROC, Zlab_notify_compress, XV_SHOW, (show? TRUE:FALSE), XV_KEY_DATA, TRACK_INDEX, i, NULL); /* zero bias and unity gain for trace */ (void)xv_create(panel, PANEL_BUTTON, XV_X, 65, XV_Y, ZTrkHeight - 30, PANEL_LABEL_IMAGE, zero, PANEL_NOTIFY_PROC, Zlab_notify_zero, XV_SHOW, (show? TRUE:FALSE), XV_KEY_DATA, TRACK_INDEX, i, NULL); canvas = (Canvas)xv_create(canvas, CANVAS, XV_X, 5, XV_Y, 10, XV_WIDTH, ZTrkLabWidth-10, XV_HEIGHT, 30, /* ZTrkHeight,*/ CANVAS_X_PAINT_WINDOW, TRUE, CANVAS_REPAINT_PROC, Zlab_repaint_proc, OPENWIN_SHOW_BORDERS, FALSE, XV_KEY_DATA, TRACK_INDEX, i, /* for identification */ NULL); xv_set(canvas_paint_window(canvas), WIN_EVENT_PROC, Zlab_event_proc, WIN_CONSUME_EVENTS, LOC_DRAG, LOC_MOVE, WIN_ASCII_EVENTS, WIN_MOUSE_BUTTONS, LOC_WINENTER, LOC_WINEXIT, NULL, XV_KEY_DATA, TRACK_INDEX, i, /* for identification */ NULL); ZLab_canvas2[i]= canvas; ZLab_win[i]= (Window)xv_get(canvas_paint_window(canvas),XV_XID); y+=ZTrkHeight; } }
/* initialized to the variables indicated by the user. */ void vs_win_create(Frame owner, /* owner frame handle */ int x, /* x location of window */ int y, /* y location of window */ int wd, /* width of canvas */ int ht, /* height of canvas */ Siscms *siscms, /* SIS color map */ int gs_start, /* start index of greyscale map */ int gs_size) /* size of greyscale map */ { Menu color_menu; /* Initialize variables */ vsi.cm = siscms; vsi.gs_start = gs_start; vsi.gs_num = gs_size; if (wd == 0){ vsi.canvas_width = 350; }else{ vsi.canvas_width = wd; } if (ht == 0){ vsi.canvas_height = 350; }else{ vsi.canvas_height = ht; } vsi.curve_pts = (Gpoint *)malloc(sizeof(Gpoint) * 65536 * 2); vsi.n_curve_pts = 0;/*CMP*/ if (!vsi.curve_pts){ perror("vs_win_create(): Out of memory for curve_pts"); exit(1); } vsi.popup = xv_create(owner, FRAME_CMD, XV_X, x, XV_Y, y, WIN_SHOW, FALSE, FRAME_LABEL, "Vertical Scaling", FRAME_CMD_PUSHPIN_IN, TRUE, FRAME_SHOW_RESIZE_CORNER, TRUE, FRAME_SHOW_FOOTER, TRUE, NULL); vsi.panel = (Panel) xv_get(vsi.popup, FRAME_CMD_PANEL); xv_set(vsi.panel, PANEL_LAYOUT, PANEL_VERTICAL, NULL); vsi.func_choice = xv_create(vsi.panel, PANEL_CHOICE, PANEL_LAYOUT, PANEL_VERTICAL, PANEL_CHOICE_STRINGS, "Curve", "Linear", "Spline", NULL, PANEL_NOTIFY_PROC, update_callback, NULL); vsi.negative = xv_create(vsi.panel, PANEL_TOGGLE, /*PANEL_NEXT_COL, -1,*/ PANEL_CHOICE_STRINGS, "Negative", NULL, PANEL_NOTIFY_PROC, update_callback, NULL); /*Rect *rect = (Rect*)xv_get(vsi.func_choice, PANEL_CHOICE_RECT, 2); vsi.exponent = xv_create(vsi.panel, PANEL_TEXT, XV_X, rect->r_left + rect->r_width + 5, XV_Y, rect->r_top + 5, PANEL_VALUE, "0", PANEL_VALUE_DISPLAY_LENGTH, 7, PANEL_VALUE_STORED_LENGTH, 7, PANEL_NOTIFY_PROC, update_callback, NULL); rect = (Rect*)xv_get(vsi.func_choice, PANEL_CHOICE_RECT, 3); vsi.power = xv_create(vsi.panel, PANEL_TEXT, XV_X, rect->r_left + rect->r_width + 5, XV_Y, rect->r_top + 5, PANEL_VALUE, "1", PANEL_VALUE_DISPLAY_LENGTH, 7, PANEL_VALUE_STORED_LENGTH, 7, PANEL_NOTIFY_PROC, update_callback, NULL); */ // Dummy menu--the real one is created and attached below color_menu = (Menu)xv_create(NULL, MENU, NULL); vsi.oflow_color = xv_create(vsi.panel, PANEL_BUTTON, PANEL_NEXT_COL, -1, PANEL_ITEM_MENU, color_menu, PANEL_LABEL_STRING, "Overflow", NULL); vsi.uflow_color = xv_create(vsi.panel, PANEL_BUTTON, PANEL_ITEM_MENU, color_menu, PANEL_LABEL_STRING, "Underflow", NULL); vsi.min_data = xv_create(vsi.panel, PANEL_TEXT, XV_X, 0, XV_Y, ((int)xv_get(vsi.negative, XV_Y) + (int)xv_get(vsi.negative, XV_HEIGHT) + 10), PANEL_VALUE, "0", PANEL_VALUE_DISPLAY_LENGTH, 10, PANEL_VALUE_STORED_LENGTH, 10, PANEL_NOTIFY_PROC, update_callback, NULL); vsi.range_label = xv_create(vsi.panel, PANEL_MESSAGE, XV_Y, (int)xv_get(vsi.min_data, XV_Y), PANEL_LABEL_STRING, "<- Data Range ->", PANEL_LABEL_BOLD, FALSE, NULL); xv_set(vsi.range_label, XV_X, (vsi.canvas_width - (int)xv_get(vsi.range_label, XV_WIDTH))/2, NULL); vsi.max_data = xv_create(vsi.panel, PANEL_TEXT, XV_Y, (int)xv_get(vsi.min_data, XV_Y), PANEL_VALUE, "0.03", PANEL_VALUE_DISPLAY_LENGTH, 10, PANEL_VALUE_STORED_LENGTH, 10, PANEL_NOTIFY_PROC, update_callback, NULL); xv_set(vsi.max_data, XV_X, vsi.canvas_width - (int)xv_get(vsi.max_data, XV_WIDTH), NULL); window_fit_height(vsi.panel); vsi.canvas = xv_create(vsi.popup, CANVAS, CANVAS_AUTO_EXPAND, TRUE, CANVAS_AUTO_SHRINK, TRUE, CANVAS_FIXED_IMAGE, FALSE, WIN_BELOW, vsi.panel, XV_HEIGHT, vsi.canvas_height, XV_WIDTH, vsi.canvas_width, CANVAS_HEIGHT, vsi.canvas_height, CANVAS_WIDTH, vsi.canvas_width, OPENWIN_SHOW_BORDERS, FALSE, CANVAS_REPAINT_PROC, canvas_repaint_proc, CANVAS_RESIZE_PROC, canvas_resize_proc, NULL); vsi.gdev = g_device_create(vsi.canvas, vsi.cm); G_Set_Op(vsi.gdev, GXcopy); color_menu = make_color_menu(oflow_callback); xv_set(vsi.oflow_color, PANEL_ITEM_MENU, color_menu, NULL); color_menu = make_color_menu(uflow_callback); xv_set(vsi.uflow_color, PANEL_ITEM_MENU, color_menu, NULL); xv_set(canvas_paint_window(vsi.canvas), WIN_EVENT_PROC, canvas_event_proc, WIN_CONSUME_EVENTS, LOC_DRAG, ACTION_SELECT, NULL, NULL); window_fit(vsi.canvas); xv_set(vsi.panel, XV_WIDTH, (int)xv_get(vsi.canvas, XV_WIDTH), NULL); window_fit(vsi.popup); vsi.uflow_cmi = vsi.gs_start; vsi.oflow_cmi = vsi.gs_start + vsi.gs_num - 1; // Note that LIN_KNOTS are same as SPL_KNOTS vsi.knotlists[LIN_KNOTS] = (Fpoint *)malloc(4 * sizeof(Fpoint)); vsi.knotlists[LOG_KNOTS] = (Fpoint *)malloc(3 * sizeof(Fpoint)); vsi.knotlists[PWR_KNOTS] = (Fpoint *)malloc(3 * sizeof(Fpoint)); vsi.knotlists[CRV_KNOTS] = (Fpoint *)malloc(3 * sizeof(Fpoint)); if (!vsi.knotlists[LIN_KNOTS] || !vsi.knotlists[LOG_KNOTS] || !vsi.knotlists[PWR_KNOTS] || !vsi.knotlists[CRV_KNOTS] ) { perror("vs_win_create(): Out of memory for knotlists"); exit(1); } vsi.nknots[LIN_KNOTS] = 4; vsi.knotlists[LIN_KNOTS][0].x = vsi.knotlists[LIN_KNOTS][0].y = 0; vsi.knotlists[LIN_KNOTS][1].x = vsi.knotlists[LIN_KNOTS][1].y = 0.33; vsi.knotlists[LIN_KNOTS][2].x = vsi.knotlists[LIN_KNOTS][2].y = 0.67; vsi.knotlists[LIN_KNOTS][3].x = vsi.knotlists[LIN_KNOTS][3].y = 1; vsi.nknots[LOG_KNOTS] = 3; vsi.knotlists[LOG_KNOTS][0].x = vsi.knotlists[LOG_KNOTS][0].y = 0; vsi.knotlists[LOG_KNOTS][1].x = vsi.knotlists[LOG_KNOTS][1].y = 0.5; vsi.knotlists[LOG_KNOTS][2].x = vsi.knotlists[LOG_KNOTS][2].y = 1; vsi.nknots[PWR_KNOTS] = 3; vsi.knotlists[PWR_KNOTS][0].x = vsi.knotlists[PWR_KNOTS][0].y = 0; vsi.knotlists[PWR_KNOTS][1].x = vsi.knotlists[PWR_KNOTS][1].y = 0.5; vsi.knotlists[PWR_KNOTS][2].x = vsi.knotlists[PWR_KNOTS][2].y = 1; vsi.nknots[CRV_KNOTS] = 3; vsi.knotlists[CRV_KNOTS][0].x = vsi.knotlists[CRV_KNOTS][0].y = 0; vsi.knotlists[CRV_KNOTS][1].x = vsi.knotlists[CRV_KNOTS][1].y = 0.5; vsi.knotlists[CRV_KNOTS][2].x = vsi.knotlists[CRV_KNOTS][2].y = 1; func_update(); } /* end of vs_win_create() */
static void CreateTrk(Frame frame, int i, int height, int width, int y) { Canvas canvas, txtcanvas; Track *trk; extern Display *theDisp; int theScrn; trk= tracks[i]= (Track *)Malloc(sizeof(Track)); if (trk==NULL) return; /* not enuff mem */ if (Mode_noBorder) { txtcanvas= (Canvas)xv_create(frame, CANVAS, XV_X, 0, XV_Y, y, XV_WIDTH, TXTCANV_WIDTH-2, XV_HEIGHT, height, /* CANVAS_AUTO_EXPAND, FALSE, -- allow for resize CANVAS_AUTO_SHRINK, FALSE, */ OPENWIN_SHOW_BORDERS, FALSE, CANVAS_X_PAINT_WINDOW, TRUE, CANVAS_RETAINED, FALSE, CANVAS_REPAINT_PROC, repaintTrackLabs, XV_KEY_DATA, TRACK_INDEX, i, /* for identification */ NULL); canvas= (Canvas)xv_create(frame, CANVAS, XV_X, TXTCANV_WIDTH, XV_Y, y, XV_WIDTH, FrmWidth-TXTCANV_WIDTH-19, XV_HEIGHT, height, CANVAS_X_PAINT_WINDOW, TRUE, OPENWIN_SHOW_BORDERS, FALSE, /* CANVAS_AUTO_EXPAND, FALSE, CANVAS_AUTO_SHRINK, FALSE,*/ CANVAS_RETAINED, FALSE, CANVAS_REPAINT_PROC, repaintTracks, XV_KEY_DATA, TRACK_INDEX, i, /* for identification */ NULL); }else { /* well, guess what? OPENWIN_SHOW_BORDERS can only be used in xv_create! */ txtcanvas= (Canvas)xv_create(frame, CANVAS, XV_X, 0, XV_Y, y, XV_WIDTH, TXTCANV_WIDTH, XV_HEIGHT, height, /* CANVAS_AUTO_EXPAND, FALSE, -- allow for resize CANVAS_AUTO_SHRINK, FALSE, */ CANVAS_X_PAINT_WINDOW, TRUE, CANVAS_RETAINED, FALSE, CANVAS_REPAINT_PROC, repaintTrackLabs, XV_KEY_DATA, TRACK_INDEX, i, /* for identification */ NULL); canvas= (Canvas)xv_create(frame, CANVAS, XV_X, TXTCANV_WIDTH, XV_Y, y, XV_WIDTH, FrmWidth-TXTCANV_WIDTH-19, XV_HEIGHT, height, CANVAS_X_PAINT_WINDOW, TRUE, /* CANVAS_AUTO_EXPAND, FALSE, CANVAS_AUTO_SHRINK, FALSE,*/ CANVAS_RETAINED, FALSE, CANVAS_REPAINT_PROC, repaintTracks, XV_KEY_DATA, TRACK_INDEX, i, /* for identification */ NULL); } trk->height= height; trk->width= width-TXTCANV_WIDTH-19; trk->canvas= canvas; trk->TxtCanvas= txtcanvas; trk->xwin=(Window)xv_get(canvas_paint_window(canvas),XV_XID); trk->txtwin=(Window)xv_get(canvas_paint_window(txtcanvas),XV_XID); /* standard GC */ createGC( trk->xwin, &trk->gc); /* xor GC */ createGC( trk->xwin, &trk->ovrGC); XSetFunction(theDisp, trk->ovrGC, GXxor); theScrn = DefaultScreen(theDisp); XSetForeground(theDisp, trk->ovrGC, WhitePixel(theDisp, theScrn)^BlackPixel(theDisp, theScrn)); /* text font for track labels */ createGC(trk->txtwin, &trk->txtgc); /* XSetFunction(theDisp, trk->txtgc, GXxor); */ xv_set(canvas_paint_window(canvas), WIN_EVENT_PROC, Cvs_event_proc, WIN_CONSUME_EVENTS, KBD_DONE, KBD_USE, LOC_WINENTER, LOC_WINEXIT, WIN_ASCII_EVENTS, WIN_MOUSE_BUTTONS, LOC_DRAG, NULL, NULL); xv_set(canvas_paint_window(txtcanvas), WIN_EVENT_PROC, TxtCvs_event_proc, WIN_CONSUME_EVENTS, WIN_MOUSE_BUTTONS, NULL, NULL); }
static void InitXSpctrmFrame() { Panel panel; Menu menu; char dash_list[2]; xspctrm_frame= xv_create(tracesFrame, FRAME, XV_HEIGHT, xspctrmwin_h+40, XV_WIDTH, xspctrmwin_w, NULL); xspctrm_cvs= xv_create(xspctrm_frame, CANVAS, XV_X, 0, XV_Y, 40, CANVAS_RETAINED, TRUE, CANVAS_REPAINT_PROC, redrawXSpctrm, CANVAS_RESIZE_PROC, resizeXSpctrm, NULL); xspc_win= xv_get(canvas_paint_window(xspctrm_cvs), XV_XID); createGC( xspc_win, &xspc_gc); createGC( xspc_win, &xspc_dot_gc); dash_list[0]= 1; dash_list[1]= 5; XSetLineAttributes(theDisp, xspc_dot_gc, 1, LineOnOffDash, CapRound, JoinRound); createGC( xspc_win, &xspc_smdot_gc); XSetLineAttributes(theDisp, xspc_smdot_gc, 1, LineOnOffDash, CapRound, JoinRound); XSetDashes(theDisp, xspc_smdot_gc,2,dash_list,2); panel= (Panel)xv_create(xspctrm_frame, PANEL, XV_X, 0, XV_Y, 0, XV_HEIGHT, 40, NULL); (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Quit", PANEL_NOTIFY_PROC, close_xspctrm_win, NULL); (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Redo", PANEL_NOTIFY_PROC, redo_xspctrm, NULL); (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Next", PANEL_NOTIFY_PROC, next_xspctrm, NULL); menu= (Menu)xv_create(NULL,MENU, MENU_STRINGS, "Linear Scale", "Log-Linear Sc", "Log Scale", NULL, MENU_NOTIFY_PROC, scale_menu_proc, NULL); (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Scale", PANEL_ITEM_MENU, menu, NULL); menu= (Menu)xv_create(NULL,MENU, MENU_STRINGS, "trace portion", "no trace", "taper etc.", "no taper", "grid on", "grid off", NULL, MENU_NOTIFY_PROC, options_menu_proc, NULL); (void)xv_create(panel, PANEL_BUTTON, PANEL_LABEL_STRING, "Options", PANEL_ITEM_MENU, menu, NULL); itrc_txt= (Panel_item)xv_create(panel, PANEL_NUMERIC_TEXT, PANEL_LABEL_STRING, "Trc No.", PANEL_VALUE_DISPLAY_WIDTH, 60, NULL); itrc2_txt= (Panel_item)xv_create(panel, PANEL_NUMERIC_TEXT, PANEL_LABEL_STRING, "Trc No.", PANEL_VALUE_DISPLAY_WIDTH, 60, NULL); }