This is TeXviewObject.m in view mode; [Download] [Up]
/* Generated by Interface Builder */ #import "TeXviewObject.h" #import "structures.h" #import "dviAccessors.h" #import <dpsclient/wraps.h> #import <strings.h> #import "TeXviewSwitchBoard.h" #include <kpathsea/proginit.h> #include <kpathsea/progname.h> @implementation TeXviewObject TeXviewObject *myTeXviewObject ; extern TeXviewSwitchBoard *myTeXviewSwitchBoard ; extern int existsize100[] ; extern void todpi(), error() ; extern void recalculate(), resetsizes() ; extern void display() ; extern void saveconfig() ; extern float screendpi ; extern Boolean generatefonts, pagedrawn ; static char text[20] ; char *dpistring(i) int i ; { sprintf(text, "%3d", i) ; return(text) ; } void reportnewdpi() { [myTeXviewObject setDpiTitle:dpistring((int)(screendpi+0.5))] ; } - setDpiTitle:(char *)s { int i ; i = [popup indexOfItem:s] ; if (i != -1) { [[popup itemList] selectCellAt:i:0] ; [dpiPopup setTitle:s] ; } return self ; } - setSizeMatrix:anObject { sizeMatrix = anObject ; [self setsizes] ; return self ; } - setGenerateButtons:anObject { generateButtons = anObject ; [self setsizes] ; return self ; } - setStatus:anObject { status = anObject ; return self ; } /* - setZoomed:anObject { zoomed = anObject ; return self ; } - zoom { return [zoomed setState:1] ; } - unzoom { return [zoomed setState:0] ; } */ - getStatus { return status ; } extern void writeconsole() ; void setstatus(s) const char *s ; { writeconsole(s) ; [[myTeXviewObject getStatus] setStringValue:s] ; PSflush() ; } void qstatus(s) const char *s ; { [[myTeXviewObject getStatus] setStringValue:s] ; PSflush() ; } - setDpiPopup:anObject { id popuplist ; int i ; dpiPopup = anObject; myTeXviewObject = self ; popup = [PopUpList new] ; popuplist = popup ; [popup changeButtonTitle:YES] ; /* we'll do it ourselves */ for (i=1; i<13; i++) [popuplist addItem:dpistring(existsize100[i])] ; [popuplist addItem:dpistring(300)] ; [popuplist addItem:dpistring(400)] ; NXAttachPopUpList(anObject, popuplist) ; [popup setAction:@selector(cdpi:)] ; [popup setTarget:myTeXviewObject] ; return self; } - popIt:anObject { [popup popUp:anObject] ; return self ; } /* - setPageForm:anObject { pageForm = anObject; return self; } */ - setPageNum:(char *)p { [[myTeXviewSwitchBoard getCurrentPageForm] setStringValue:p at:0] ; return self ; } static NXEvent ne ; - cdpi:anObject { ne.type = NX_APPDEFINED ; strcpy(ne.data.compound.misc.C, [[anObject selectedCell] title]) ; DPSPostEvent(&ne, 1) ; return self ; } - firePage { [[myTeXviewSwitchBoard getCurrentPageForm] selectTextAt:0] ; return self ; } NXEvent nw ; - startRandom:(NXEvent *)e { [[myTeXviewSwitchBoard getCurrentPageForm] setStringValue:"" at:0] ; [[myTeXviewSwitchBoard getCurrentPageForm] selectTextAt:0] ; nw = *e ; DPSPostEvent(&nw, 1) ; return self ; } extern int actualdpi ; - changeGenerate:(Matrix *)anObject { Boolean tmp=(![anObject selectedRow]); if(tmp!=generatefonts) { generatefonts=tmp; kpse_init_prog ("XDVI", actualdpi, NULL, (generatefonts==1),"cmr10"); } return self ; } extern real defhsize, defvsize, defhmarg, defvmarg ; extern real hsize, vsize, hmarg, vmarg ; static int error_inc ; static real check(siz, low, high, def) real siz, low, high, def ; { error_inc = 0 ; if (siz < low) { error("Size too small") ; return(def) ; } else if (siz > high) { error("Size too large") ; return(def) ; } else { error_inc = 1 ; return(siz) ; } } int checksizes(anObject) id anObject ; { float newsize ; int i ; for (i=0; i<4; i++) { newsize = [[anObject cellAt:i:0] floatValue] ; switch (i) { case 0: hsize = check(newsize, 1.0, 50.0, 8.5) ; break ; case 1: vsize = check(newsize, 1.0, 50.0, 11.0) ; break ; case 2: hmarg = check(newsize, -5.0, 5.0, 1.0) ; break ; case 3: vmarg = check(newsize, -5.0, 5.0, 1.0) ; break ; } if (error_inc == 0) { [anObject selectCellAt:i:0] ; return 1 ; } } recalculate() ; return 0 ; } - changeSize:(Matrix *)anObject { float newsize ; int i ; newsize = [[anObject selectedCell] floatValue] ; switch (i=[anObject selectedRow]) { case 0: hsize = check(newsize, 1.0, 50.0, 8.5) ; break ; case 1: vsize = check(newsize, 1.0, 50.0, 11.0) ; break ; case 2: hmarg = check(newsize, -5.0, 5.0, 1.0) ; break ; case 3: vmarg = check(newsize, -5.0, 5.0, 1.0) ; break ; } recalculate() ; [anObject selectCellAt:(i + error_inc) % 4:0] ; return self ; } - setsizes { if (generatefonts) [generateButtons selectCellAt:0:0] ; else [generateButtons selectCellAt:1:0] ; [[sizeMatrix cellAt:0:0] setFloatValue:hsize] ; [[sizeMatrix cellAt:1:0] setFloatValue:vsize] ; [[sizeMatrix cellAt:2:0] setFloatValue:hmarg] ; [[sizeMatrix cellAt:3:0] setFloatValue:vmarg] ; return self ; } - saveConfig:(Matrix *)anObject { if (checksizes(sizeMatrix)) return self ; defhsize = hsize ; defvsize = vsize ; defhmarg = hmarg ; defvmarg = vmarg ; if ([anObject selectedRow] == 0) saveconfig() ; [[anObject window] orderOut:anObject] ; pagedrawn = 0 ; display() ; return self ; } - defaultSize:anObject { resetsizes() ; pagedrawn = 0 ; return self ; } void notifysizes() { if (myTeXviewObject) [myTeXviewObject setsizes] ; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.