#include "mview_view.h" #include "mview_misc.h" #include "mview_macros.h" #include "mview_widgets.h" static Widget clipshell=NULL; static char dumstr[80]; int Clipmin=1, Clipmax=100; void clips() { MrmCode class; Widget clips_w; if (clipshell != NULL) { XMapRaised(display, XtWindow(clipshell)); return; } clipshell = XtVaAppCreateShell("Clips", "clipshell", topLevelShellWidgetClass, XtDisplay(toplevel), XmNmwmDecorations, MWM_DECOR_TITLE | MWM_DECOR_BORDER | MWM_DECOR_MINIMIZE, NULL); if (MrmFetchWidget(Hierarchie, "CLIPS_W", clipshell, &clips_w, &class) != MrmSUCCESS ){ sprintf(dumstr, "Can't fetch widget.\n"); printf(dumstr); exit(0); } else { XtManageChild(clips_w); } XtRealizeWidget(clipshell); set_colormap(clipshell); } extern XImage *hugeimage; extern char *lotofpixels; extern Widget zoomshell, zoom_w; extern Dimension zoom_width, zoom_height; scale_images() { unsigned long selectcursor, selectslice; int Z, curz, pos[2]; XImage *image; char *spixels, *pixels, *subpixels; XSetForeground(display, gc, BlackPixelOfScreen(ecran)); if ((lotofpixels != NULL) && (zoomshell == NULL)) XFillRectangle(display, XtWindow(small_w), gc, 0, 0, 64, 64); if ((lotofpixels != NULL) && (zoomshell != NULL)) XFillRectangle(display, XtWindow(zoom_w), gc, 0, 0, zoom_width, zoom_height); pixels = (char*) malloc(sizex*sizey*sizeof(char)); if (subpixmap[0] != 0) subpixels = (char*) malloc(zsizex*zsizey*sizeof(char)); for (Z=0; Z=32/factor) && ((pos[1]+voffset)>=(32/factor)) && (pos[0]=zoom_width/(2*factor)) && ((pos[1]+voffset)>=zoom_height/(2*factor)) && (pos[0]value - 1); displayclip[0] = newclip; Clipmin = cbs->value; if (Clipmin == Clipmax) { XmTextSetString(lowcut, "Doesn't make sense ..."); return; } sprintf(dumstr, "lowcut = %f", displayclip[0]); XmTextSetString(lowcut, dumstr); sprintf(dumstr, "highcut = %f", displayclip[1]); XmTextSetString(highcut, dumstr); break; case k_highscale: newclip = clipsav[0] + ((clipsav[1] - clipsav[0])/99.)*(cbs->value - 1); displayclip[1] = newclip; Clipmax = cbs->value; if (Clipmin == Clipmax) { XmTextSetString(highcut, "Doesn't make sense ..."); return; } sprintf(dumstr, "lowcut = %f", displayclip[0]); XmTextSetString(lowcut, dumstr); sprintf(dumstr, "highcut = %f", displayclip[1]); XmTextSetString(highcut, dumstr); break; case k_ok: XmTextSetString(comput, "Computing ..."); XtUnmapWidget(w); scale_images(); XmTextSetString(comput, "Press OK to validate"); XtMapWidget(w); break; } } void dismiss_clips(w, w_code, cbs) Widget w; int *w_code; XmAnyCallbackStruct *cbs; { XtUnmapWidget(clipshell); }