added visiLibId
[dyninst.git] / visiClients / tableVisi / src / tvMetric.h
1 // tvMetric.h
2 // Ariel Tamches
3
4 /*
5  * $Log: tvMetric.h,v $
6  * Revision 1.4  1995/12/22 22:38:56  tamches
7  * added visiLibId
8  *
9  * Revision 1.3  1995/12/19 00:52:49  tamches
10  * added numSigFigs and valuesPixWidth member variables.
11  * Constructor takes in 2 new params, accordingly.
12  * changeUnitsName was cleaned up (it should not have been const)
13  *
14  * Revision 1.2  1995/12/03 21:09:32  newhall
15  * changed units labeling to match type of data being displayed
16  *
17  * Revision 1.1  1995/11/04  00:45:58  tamches
18  * First version of new table visi
19  *
20  */
21
22 #ifndef _TV_METRIC_H_
23 #define _TV_METRIC_H_
24
25 #include "String.h"
26 #include "tkclean.h"
27
28 class tvMetric {
29  private:
30    unsigned visiLibId; // what unique-id has the visi-lib assigned to us?
31    string name;
32    string unitsName;
33    unsigned namePixWidth;
34    unsigned unitsPixWidth;
35    unsigned numSigFigs;
36    unsigned valuesPixWidth; // a direct function of numSigFigsBeingDisplayed
37
38  public:
39    tvMetric() {} // needed by class Vector (nuts)
40    tvMetric(unsigned iVisiLibId,
41             const string &iName, const string &iUnitsName,
42             XFontStruct *nameFontStruct,
43             XFontStruct *unitsNameFontStruct,
44             XFontStruct *valuesFontStruct,
45             unsigned numSigFigs);
46    tvMetric(const tvMetric &src) : name(src.name), unitsName(src.unitsName) {
47       visiLibId = src.visiLibId;
48       namePixWidth = src.namePixWidth;
49       unitsPixWidth = src.unitsPixWidth;
50    }
51   ~tvMetric() {}
52
53    unsigned getVisiLibId() const {return visiLibId;}
54
55    bool operator<(const tvMetric &other) const {
56       return name < other.name;
57    }
58
59    bool operator>(const tvMetric &other) const {
60       return name > other.name;
61    }
62
63    const string &getName() const {return name;}
64    const string &getUnitsName() const {return unitsName;}
65    void changeUnitsName(const string &newunitsname) {
66       unitsName = newunitsname;
67    }
68
69    void changeNumSigFigs(unsigned newSigFigs, XFontStruct *valuesFontStruct);
70    
71    unsigned getNamePixWidth() const {return namePixWidth;}
72    unsigned getUnitsPixWidth() const {return unitsPixWidth;}
73    unsigned getColPixWidth() const; // width of whole column (incl. horiz padding)
74 };
75
76 #endif