Changeset 2549 in Sophya
- Timestamp:
- Jun 3, 2004, 4:24:30 PM (21 years ago)
- Location:
- trunk/SophyaPI/PI
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaPI/PI/pibargraph.cc
r2544 r2549 41 41 fgFill = fill; 42 42 fgHoriz = horiz; 43 fgValLabel = false; 43 44 packFrac = 0.5; 45 SetName("BarGraph"); 44 46 } 45 47 … … 80 82 { 81 83 double tmp = a; 82 a = b; b = a;84 a = b; b = tmp; 83 85 } 84 86 … … 109 111 { 110 112 PIGrCoord tmp = a; 111 a = b; b = a;113 a = b; b = tmp; 112 114 } 113 115 … … 119 121 double larg = packFrac*(idMax-idMin)/mBars.size(); 120 122 for(unsigned int k=0; k<mBars.size(); k++) { 123 PIColors dcol = g->GetForeground(); 121 124 x = mBars[k].id-0.5*larg; dx = larg; 122 125 y = 0.; dy = mBars[k].val; … … 127 130 } 128 131 if (fgFill) g->DrawFBox(x,y,dx,dy); 129 else { 130 g->DrawBox(x,y,dx,dy); 131 if ( mBars[k].lab.length() > 0 ) { 132 x = mBars[k].id; 133 y = 0.5*mBars[k].val; 134 if (fgHoriz) 135 g->DrawString(y, x, mBars[k].lab.c_str(), 136 PI_VerticalCenter|PI_HorizontalCenter|PI_TextDirectionHorizontal); 137 else 138 g->DrawString(x, y, mBars[k].lab.c_str(), 139 PI_VerticalCenter|PI_HorizontalCenter|PI_TextDirectionVerticalUp); 140 } 141 } 132 else g->DrawBox(x,y,dx,dy); 133 if ((mBars[k].lab.length() == 0 ) && !fgValLabel ) continue; 134 string lab = mBars[k].lab; 135 if (fgValLabel) { 136 char buff[32]; 137 sprintf(buff, " %g ", mBars[k].val); 138 lab = buff; 139 } 140 x = mBars[k].id; 141 y = mBars[k].val; 142 double fy = y; 143 bool fgneg = false; 144 bool fgin = false; 145 if (fy > 0.) { 146 if (fy > mMax/2.) { fgin = true; fy *= 0.95; } 147 else fy *= 1.05; 148 } 149 else { 150 fgneg = true; 151 if (fy < mMin/2.) { fgin = true; fy *= 0.95; } 152 else fy *= 1.05; 153 } 154 y = fy; 155 unsigned long pflg = PI_VerticalCenter|PI_HorizontalLeft; 156 if ( (fgin && !fgneg) || (!fgin && fgneg) ) pflg = PI_VerticalCenter|PI_HorizontalRight; 157 if (fgHoriz) pflg |= PI_TextDirectionHorizontal; 158 else pflg |= PI_TextDirectionVerticalUp; 159 if (fgHoriz) swap_ifhoriz_g(x, y); 160 if (fgin) g->DrawOpaqueString(x, y, lab.c_str(), pflg); 161 else g->DrawString(x, y, lab.c_str(), pflg); 162 163 if (mBars[k].col != PI_NotDefColor) g->SelForeground(dcol); 142 164 } 143 165 } … … 164 186 else if (opts=="fill") SetFill(true); 165 187 else if (opts=="nofill") SetFill(false); 166 else if (opts =="packfrac=") {188 else if (opts.substr(0,9)=="packfrac=") { 167 189 double frac = atof(opts.substr(9).c_str()); 168 190 SetPacking(frac); 169 191 } 192 else if (opts=="barvaluelabel") UseBarValueAsLabel(true); 193 else if (opts=="nobarvaluelabel") UseBarValueAsLabel(false); 170 194 else { 171 195 // Si option non decode … … 187 211 if (fgHoriz) opt.push_back("horizontalbars"); else opt.push_back("verticalbars"); 188 212 if (fgFill) opt.push_back("fill"); else opt.push_back("nofill"); 213 if (fgValLabel) opt.push_back("barvaluelabel"); else opt.push_back("nobarvaluelabel"); 189 214 char buff[64]; 190 215 sprintf(buff,"packfrac=%g", packFrac); … … 200 225 info += " horizontalbars/verticalbars: set bar orientation \n"; 201 226 info += " packfrac=value : set bar packing fraction (0..1) \n"; 227 info += " barvaluelabel/nobarvaluelabel: Use/Don't use bar value as labels \n"; 202 228 info += " --- + Usual colr/line/font attribute decoding ... \n"; 203 229 PIDrawer::GetOptionsHelpInfo(info); -
trunk/SophyaPI/PI/pibargraph.h
r2544 r2549 31 31 // Fraction de remplissage des bars 32 32 inline void SetPacking(double frac=0.5) { packFrac=frac; } 33 // Use Bar values as labels 34 inline void UseBarValueAsLabel(bool fg=true) { fgValLabel = fg; } 33 35 36 // ------------------------------ 34 37 virtual void Draw(PIGraphicUC* g, double xmin, double ymin, double xmax, double ymax); 35 38 virtual void UpdateLimits(); … … 49 52 double idMin, idMax; 50 53 bool fgFill, fgHoriz; 54 bool fgValLabel; // Use values as labels 51 55 double packFrac; 52 56 }; -
trunk/SophyaPI/PI/pitxtdrw.cc
r2543 r2549 39 39 { 40 40 fgFrame = fgframe; 41 SetName("TextDrw"); 41 42 } 42 43 -
trunk/SophyaPI/PI/piversion.h
r2529 r2549 2 2 #define PIVERSION_H_SEEN 3 3 4 #define PI_VERSIONNUMBER 3.9 74 #define PI_VERSIONNUMBER 3.98 5 5 6 6 #endif
Note:
See TracChangeset
for help on using the changeset viewer.