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
|
#ifndef E_MARK_H
#define E_MARK_H
#include "e_buffer.h"
#include <stdio.h> // FILE
class EMark {
public:
EMark(const char *aName, const char *aFileName, EPoint aPoint, EBuffer *aBuffer = 0);
~EMark();
int SetBuffer(EBuffer *aBuffer);
int RemoveBuffer(EBuffer *aBuffer);
const char *GetName() const { return Name.c_str(); }
const char *GetFileName() const { return FileName.c_str(); }
EPoint &GetPoint();
EBuffer *GetBuffer() { return Buffer; }
private:
/* bookmark */
StlString Name;
StlString FileName;
EPoint Point;
/* bookmark in file */
EBuffer *Buffer;
};
class EMarkIndex {
public:
EMarkIndex();
~EMarkIndex();
EMark *insert(const char *aName, const char *aFileName, EPoint aPoint, EBuffer* aBuffer = 0);
EMark *insert(const char *aName, EBuffer* aBuffer, EPoint aPoint);
EMark *locate(const char *aName);
int remove(const char *aName);
int view(EView *aView, const char *aName);
// int MarkPush(EBuffer *B, EPoint P);
// int MarkPop(EView *V);
// int MarkSwap(EView *V, EBuffer *B, EPoint P);
// int MarkNext(EView *V);
// int MarkPrev(EView *V);
EMark *pushMark(EBuffer *aBuffer, EPoint P);
int popMark(EView *aView);
int retrieveForBuffer(EBuffer *aBuffer);
int storeForBuffer(EBuffer *aBuffer);
int saveToDesktop(FILE *fp);
private:
StlVector<EMark*> Marks;
};
extern EMarkIndex markIndex;
#endif // E_MARK_H
|