completely revamped/debugged how short focus names are calculated
[dyninst.git] / visiClients / tableVisi / src / tvFocus.h
1 // tvFocus.h
2 // Ariel Tamches
3
4 /*
5  * $Log: tvFocus.h,v $
6  * Revision 1.3  1995/12/22 22:39:28  tamches
7  * added visiLibId
8  *
9  * Revision 1.2  1995/11/08 21:48:12  tamches
10  * moved implementation of constructor to .C file
11  *
12  * Revision 1.1  1995/11/04 00:46:39  tamches
13  * First version of new table visi
14  *
15  */
16
17 #ifndef _TV_FOCUS_H_
18 #define _TV_FOCUS_H_
19
20 #include "String.h"
21 #include "tkclean.h"
22
23 class tvFocus {
24  private:
25    unsigned visiLibId; // what unique-id has the visi-lib assigned to us?
26    string longName, shortName;
27    unsigned longNamePixWidth, shortNamePixWidth;
28
29  public:
30    tvFocus(){} // needed by class Vector (nuts)
31    tvFocus(unsigned iVisiLibId, const string &iLongName, XFontStruct *nameFontStruct);
32
33    tvFocus(const tvFocus &src) : longName(src.longName), shortName(src.shortName) {
34       visiLibId = src.visiLibId;
35       longNamePixWidth = src.longNamePixWidth;
36       shortNamePixWidth = src.shortNamePixWidth;
37    }
38   ~tvFocus() {}
39
40    unsigned getVisiLibId() const {return visiLibId;}
41
42    bool less_than(const tvFocus &other, bool useLongName) {
43       if (useLongName)
44          return (longName < other.longName);
45       else
46          return (shortName < other.shortName);
47    }
48
49    bool greater_than(const tvFocus &other, bool useLongName) {
50       if (useLongName)
51          return (longName > other.longName);
52       else
53          return (shortName > other.shortName);
54    }
55
56    const string &getLongName() const {return longName;}
57    const string &getShortName() const {return shortName;}
58    unsigned getLongNamePixWidth() const {return longNamePixWidth;}
59    unsigned getShortNamePixWidth() const {return shortNamePixWidth;}
60 };
61
62 #endif