1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
#include "category.h"
#include "currents.h"
#include "tracing.h"
#include "globals.h"
#include "navigation.h"
// back/forward tracing functions
void addTrace( Currents c )
{
if( backlast != backptr )
backTracev.erase( backTracev.begin()+backptr+1, backTracev.end() );
backTracev.push_back( c );
backptr++;
backlast = backptr;
}
void clearTrace()
{
backTracev.clear();
backptr = -1;
backlast = -1;
}
int backTrace()
{
if( backptr != -1 )
{
Currents c; c.save();
if( !clear_goto( backTracev[ backptr ].fullpath ) )
return FALSE;
if( backptr == backlast )
{
addTrace( c );
backptr--;
}
backTracev[ backptr ].load_nocat();
backptr--;
return TRUE;
}
return FALSE;
}
int fwdTrace()
{
if( backlast > backptr + 1 )
{
if( !clear_goto( backTracev[ backptr + 2 ].fullpath ) )
return FALSE;
backTracev[ backptr + 2 ].load_nocat();
backptr++;
return TRUE;
}
return FALSE;
}
|