ftp.nice.ch/pub/next/text/tex/apps/TeXview-kp0.25.s.tar.gz#/HyperTeXview/TVWindow.m

This is TVWindow.m in view mode; [Download] [Up]

/* Generated by Interface Builder */

#import "TVWindow.h"
#import "PageView.h"
#import "SheetView.h"
#import "TeXviewObject.h"
#import "TeXviewSwitchBoard.h"
#import "dviAccessors.h"
#import <appkit/Application.h>
extern void display() ;
extern void reTeXit() ;
extern void textofront(), consoletofront(), previewtofront(), commandup() ;
extern void mysystem() ;
extern int debugon ;

@implementation TVWindow

extern TeXviewObject *myTeXviewObject ;
extern TeXviewSwitchBoard *myTeXviewSwitchBoard ;
/* extern NXRect *initsizewindow() ; */

- initContent:(const NXRect *)contentRect style:(int)aStyle
             backing:(int)bufferingType buttonMask:(int)mask
             defer:(BOOL)flag
{
   self = [super initContent:contentRect style:aStyle backing:bufferingType
                 buttonMask:mask defer:flag] ;
   [self setDelegate:myTeXviewSwitchBoard] ;
   [myTeXviewSwitchBoard setCurrentWindow:self];
   slaves = NULL ;
   return self ;
}

static NXEvent newevent ;

- keyDown:(NXEvent *)theEvent;
{
   int shiftstate = ((theEvent->flags & NX_SHIFTMASK) ? 1 : 0) +
                    ((theEvent->flags & NX_CONTROLMASK) ? 2 : 0) ;

   switch (theEvent->data.key.charCode) {
   case 174:
      if (shiftstate)
         [myTeXviewSwitchBoard moveRight:shiftstate-1] ;
      else
         dviNextPage() ;
      break ;
   case 172:
      if (shiftstate)
         [myTeXviewSwitchBoard moveLeft:shiftstate-1] ;
      else
         dviPrevPage() ;
      break ;
   case 173:
      [myTeXviewSwitchBoard moveUp:shiftstate] ;
      break ;
   case 175:
      [myTeXviewSwitchBoard moveDown:shiftstate] ;
      break ;
   case '-': case '0': case '1': case '2': case '3': case '4': case '5':
   case '6': case '7': case '8': case '9':
      [myTeXviewObject startRandom:theEvent] ;
      break ;
   case 'q':
      if (NXRunAlertPanel(NULL, "Are you sure you want to exit?",
                     "Cancel", "Exit", 0) == NX_ALERTDEFAULT)
         break ;
   case 'Q':
      [NXApp terminate:self] ;
      break ;
   case ' ':
      if (![myTeXviewSwitchBoard moveDown:shiftstate]) {
         [myTeXviewSwitchBoard Top:1] ;
         if (!dviNextPage())
            display() ;
      }
      break ;
   case 8: case 127:
      if (![myTeXviewSwitchBoard moveUp:shiftstate]) {
         [myTeXviewSwitchBoard Bot:1] ;
         if (!dviPrevPage())
            display() ;
      }
      break ;
   default:
      if ((theEvent->flags & NX_COMMANDMASK) == 0) {
         newevent = *theEvent ;
         newevent.flags |= NX_COMMANDMASK ;
         DPSPostEvent(&newevent, 1) ;
      }
      break ;
   }
   return self ;
}

- appDidUnhide:sender
{
   return self ;
}

- setDocViewIndex:(int)index
{
   docViewIndex = index ;
   return self ;
}

- (int)getDocViewIndex
{
#ifdef DEBUG
  if (debugon > 1 ) {
    printf("docViewIndex is %i\n", docViewIndex) ;
    }
#endif
  return docViewIndex ;
}

- setMaster:(int)index;
{ 
  master = index ;
  return self ;
}

- (int)getMaster ;
{
  return master ;
}

- (int)getSlave ; /* transverse the linked list looking for unfrozen slave */
{
  Slave_link *sl ;

  for (sl = slaves ; sl != NULL; sl = sl->next) 
   if (![myTeXviewSwitchBoard checkFrozen:(sl->slave)]) 
       return sl->slave ; /* return last opened unfrozen slave */
    return 0 ;
} 

- setFrozen:(int)thaw 
{
  frozen = thaw; 
  return self ;
}

- (int)getFrozen 
{
  return frozen ;
}

- setPageView:anObject 
{ 
   pageView = anObject ;
   return self;
}

- getPageView ;
{
   return pageView ;
}

- installSlave:(int)num
{
   Slave_link *sl ;

    sl = (Slave_link *)malloc(sizeof(Slave_link)) ;
    sl-> next = slaves ;
    sl->slave = num ;
    slaves = sl ;
  
    return self ;
}

- removeSlave:(int)num
{
  Slave_link *sl ;

  for (sl = slaves; sl != NULL; sl = sl->next) {
    if ( sl->slave == num) { /* first link or only one link */
      slaves = sl->next ;
      free(sl) ;
      return self; 
       } else if (sl->next->slave == num) { /* next link to be removed */
           sl->next = sl->next->next ;
           free(sl->next) ;
           return self;
           }
      }
  return nil ;       
}

- emancipateSlaves
{
  Slave_link *sl ;

  for (sl = slaves; sl != NULL; sl = slaves) 
    [myTeXviewSwitchBoard emancipateByNumber:sl->slave] ;
  slaves = NULL ;
  return self ;
}

@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.