File: e_mark.h

package info (click to toggle)
fte 0.50.2b6-20110708-2
  • links: PTS, VCS
  • area: main
  • in suites: buster, stretch
  • size: 3,768 kB
  • ctags: 6,761
  • sloc: cpp: 47,985; ansic: 2,795; sh: 112; makefile: 71; perl: 29
file content (60 lines) | stat: -rw-r--r-- 1,460 bytes parent folder | download | duplicates (6)
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