This is hts.m in view mode; [Download] [Up]
#import <objc/HashTable.h>
#import <stdio.h>
#import <string.h>
#import <stdlib.h>
#import <ctype.h>
#import "structures.h"
#import "Htag.h"
#import "TeXviewSwitchBoard.h"
extern TeXviewSwitchBoard *myTeXviewSwitchBoard ;
extern Boolean prescan;
extern shalfword hh, vv;
extern integer pagenum;
extern int lasthh, lastvv;
extern int last_pagenum;
//extern id htags;
//extern id htpages;
//extern id page;
extern shalfword hh, vv;
extern shalfword hhoffset, vvoffset;
extern shalfword hhmarg, vvmarg;
extern int ht_highlight;
extern id ht_highlight_tag;
void
draw_all_ht_pt(int sheetview)
{
char *key;
id value;
NXHashState state;
id htpages ;
id page ;
htpages = [myTeXviewSwitchBoard getCurrentHtpages] ;
page = [htpages valueForKey:(void *)pagenum];
if (!page)
return;
state = [page initState];
while ([page nextState:&state key:(void *)&key value:(void *)&value]) {
[value paintBox:0.66666:0.0];
}
if (ht_highlight) {
/*Need to highlight a target that we just moved to*/
[ht_highlight_tag showSelf:(id)sheetview];
[ht_highlight_tag paintBox:0.2:3.0];
}
}
#define BIGH 17
#define SMALLH 9
int
process_ht_click(int x, int y,id sheetview, int cmdclk)
{
char *key;
id value;
NXHashState state;
id htpages ;
id page ;
htpages = [myTeXviewSwitchBoard getCurrentHtpages] ;
page = [htpages valueForKey:(void *)pagenum];
state = [page initState];
x = x - hhoffset;
y = y - vvoffset;
if (ht_highlight)
if ([ht_highlight_tag checkIfHit:x :y :sheetview: SMALLH: cmdclk])
return 1;
while ([page nextState:&state key:(void *)&key value:(void *)&value]) {
if ([value checkIfHit:x :y :sheetview :SMALLH: cmdclk])
return 1;
}
if (ht_highlight)
if ([ht_highlight_tag checkIfHit:x :y :sheetview: BIGH: cmdclk])
return 1;
while ([page nextState:&state key:(void *)&key value:(void *)&value]) {
if ([value checkIfHit:x :y :sheetview :BIGH:cmdclk])
return 1;
}
return 0;
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.