Audacity 3.2.0
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
Ruler::Updater Struct Reference
Collaboration diagram for Ruler::Updater:
[legend]

Classes

struct  TickOutputs
 
struct  UpdateOutputs
 

Public Member Functions

 Updater (const Ruler &ruler, const ZoomInfo *z)
 
bool Tick (wxDC &dc, int pos, double d, const TickSizes &tickSizes, wxFont font, TickOutputs outputs) const
 
bool TickCustom (wxDC &dc, int labelIdx, wxFont font, TickOutputs outputs) const
 
void Update (wxDC &dc, const Envelope *envelope, UpdateOutputs &allOutputs) const
 
void UpdateCustom (wxDC &dc, UpdateOutputs &allOutputs) const
 
void UpdateLinear (wxDC &dc, const Envelope *envelope, UpdateOutputs &allOutputs) const
 
void UpdateNonlinear (wxDC &dc, UpdateOutputs &allOutputs) const
 

Static Public Member Functions

static void ChooseFonts (std::unique_ptr< Fonts > &pFonts, const Fonts *pUserFonts, wxDC &dc, int desiredPixelHeight)
 

Public Attributes

const RulermRuler
 
const ZoomInfozoomInfo
 
const double mDbMirrorValue = mRuler.mDbMirrorValue
 
const int mLength = mRuler.mLength
 
const RulerFormat mFormat = mRuler.mFormat
 
const TranslatableString mUnits = mRuler.mUnits
 
const int mLeft = mRuler.mLeft
 
const int mTop = mRuler.mTop
 
const int mBottom = mRuler.mBottom
 
const int mRight = mRuler.mRight
 
const int mSpacing = mRuler.mSpacing
 
const int mOrientation = mRuler.mOrientation
 
const bool mFlip = mRuler.mFlip
 
const bool mCustom = mRuler.mCustom
 
const FontsmFonts = *mRuler.mpFonts
 
const bool mLog = mRuler.mLog
 
const double mHiddenMin = mRuler.mHiddenMin
 
const double mHiddenMax = mRuler.mHiddenMax
 
const bool mLabelEdges = mRuler.mLabelEdges
 
const double mMin = mRuler.mMin
 
const double mMax = mRuler.mMax
 
const int mLeftOffset = mRuler.mLeftOffset
 
const NumberScale mNumberScale = mRuler.mNumberScale
 

Detailed Description

Definition at line 849 of file Ruler.cpp.

Constructor & Destructor Documentation

◆ Updater()

Ruler::Updater::Updater ( const Ruler ruler,
const ZoomInfo z 
)
inlineexplicit

Definition at line 853 of file Ruler.cpp.

854 : mRuler{ ruler }
855 , zoomInfo{ z }
856 {}
const Ruler & mRuler
Definition: Ruler.cpp:850
const ZoomInfo * zoomInfo
Definition: Ruler.cpp:851

Member Function Documentation

◆ ChooseFonts()

void Ruler::Updater::ChooseFonts ( std::unique_ptr< Fonts > &  pFonts,
const Fonts pUserFonts,
wxDC &  dc,
int  desiredPixelHeight 
)
static

Definition at line 1017 of file Ruler.cpp.

1020{
1021 if ( pFonts )
1022 return;
1023
1024 if ( pUserFonts ) {
1025 pFonts = std::make_unique<Fonts>( *pUserFonts );
1026 return;
1027 }
1028
1029 pFonts = std::make_unique<Fonts>( Fonts{ {}, {}, {}, 0 } );
1030 auto &fonts = *pFonts;
1031
1032 int fontSize = 4;
1033
1034 desiredPixelHeight =
1035 std::max(MinPixelHeight, std::min(MaxPixelHeight, -desiredPixelHeight));
1036
1037 // Keep making the font bigger until it's too big, then subtract one.
1038 wxCoord height;
1039 FindFontHeights( height, fonts.lead, dc, fontSize, wxFONTWEIGHT_BOLD );
1040 while (height <= desiredPixelHeight && fontSize < 40) {
1041 fontSize++;
1042 FindFontHeights( height, fonts.lead, dc, fontSize, wxFONTWEIGHT_BOLD );
1043 }
1044 fontSize--;
1045 FindFontHeights( height, fonts.lead, dc, fontSize );
1046
1047 fonts.major = wxFont{ fontSize, wxFONTFAMILY_SWISS, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD };
1048 fonts.minor = wxFont{ fontSize, wxFONTFAMILY_SWISS, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL };
1049 fonts.minorMinor = wxFont{ fontSize - 1, wxFONTFAMILY_SWISS, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL };
1050}
int min(int a, int b)
static constexpr int MaxPixelHeight
Definition: Ruler.cpp:1007
static constexpr int MinPixelHeight
Definition: Ruler.cpp:1000
void FindFontHeights(wxCoord &height, wxCoord &lead, wxDC &dc, int fontSize, wxFontWeight weight=wxFONTWEIGHT_NORMAL)
Definition: Ruler.cpp:269

References anonymous_namespace{Ruler.cpp}::FindFontHeights(), MaxPixelHeight, min(), and MinPixelHeight.

Referenced by Ruler::ChooseFonts().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Tick()

bool Ruler::Updater::Tick ( wxDC &  dc,
int  pos,
double  d,
const TickSizes tickSizes,
wxFont  font,
TickOutputs  outputs 
) const

Definition at line 926 of file Ruler.cpp.

930{
931 // Bug 521. dB view for waveforms needs a 2-sided scale.
932 if(( mDbMirrorValue > 1.0 ) && ( -d > mDbMirrorValue ))
933 d = -2*mDbMirrorValue - d;
934
935 // FIXME: We don't draw a tick if off end of our label arrays
936 // But we shouldn't have an array of labels.
937 if( outputs.labels.size() >= mLength )
938 return false;
939
940 Label lab;
941 lab.value = d;
942 lab.pos = pos;
943 lab.text = tickSizes.LabelString( d, mFormat, mUnits );
944
945 const auto result = MakeTick(
946 lab,
947 dc, font,
948 outputs.bits,
950 mFlip,
951 mOrientation );
952
953 auto &rect = result.first;
954 outputs.box.Union( rect );
955 outputs.labels.emplace_back( result.second );
956 return !rect.IsEmpty();
957}
static std::pair< wxRect, Label > MakeTick(Label lab, wxDC &dc, wxFont font, std::vector< bool > &bits, int left, int top, int spacing, int lead, bool flip, int orientation)
Definition: Ruler.cpp:758
int lead
Definition: Ruler.h:102
const Fonts & mFonts
Definition: Ruler.cpp:873
const RulerFormat mFormat
Definition: Ruler.cpp:860
const int mLength
Definition: Ruler.cpp:859
const double mDbMirrorValue
Definition: Ruler.cpp:858
const int mOrientation
Definition: Ruler.cpp:869
const int mLeft
Definition: Ruler.cpp:863
const int mTop
Definition: Ruler.cpp:864
const bool mFlip
Definition: Ruler.cpp:870
const int mSpacing
Definition: Ruler.cpp:868
const TranslatableString mUnits
Definition: Ruler.cpp:861

References Ruler::Updater::TickOutputs::bits, Ruler::Updater::TickOutputs::box, Ruler::Updater::TickOutputs::labels, Ruler::TickSizes::LabelString(), Ruler::Fonts::lead, Ruler::MakeTick(), mDbMirrorValue, mFlip, mFonts, mFormat, mLeft, mLength, mOrientation, mSpacing, mTop, mUnits, Ruler::Label::pos, Ruler::Label::text, and Ruler::Label::value.

Here is the call graph for this function:

◆ TickCustom()

bool Ruler::Updater::TickCustom ( wxDC &  dc,
int  labelIdx,
wxFont  font,
TickOutputs  outputs 
) const

Definition at line 959 of file Ruler.cpp.

962{
963 // FIXME: We don't draw a tick if of end of our label arrays
964 // But we shouldn't have an array of labels.
965 if( labelIdx >= outputs.labels.size() )
966 return false;
967
968 //This should only used in the mCustom case
969
970 Label lab;
971 lab.value = 0.0;
972
973 const auto result = MakeTick(
974 lab,
975
976 dc, font,
977 outputs.bits,
979 mFlip,
980 mOrientation );
981
982 auto &rect = result.first;
983 outputs.box.Union( rect );
984 outputs.labels[labelIdx] = ( result.second );
985 return !rect.IsEmpty();
986}

References Ruler::Updater::TickOutputs::bits, Ruler::Updater::TickOutputs::box, Ruler::Updater::TickOutputs::labels, Ruler::MakeTick(), Ruler::mFlip, Ruler::mLeft, Ruler::mOrientation, Ruler::mSpacing, Ruler::mTop, and Ruler::Label::value.

Here is the call graph for this function:

◆ Update()

void Ruler::Updater::Update ( wxDC &  dc,
const Envelope envelope,
UpdateOutputs allOutputs 
) const

Definition at line 1302 of file Ruler.cpp.

1307{
1308 TickOutputs majorOutputs{
1309 allOutputs.majorLabels, allOutputs.bits, allOutputs.box };
1310
1311 if ( mCustom )
1312 UpdateCustom( dc, allOutputs );
1313 else if ( !mLog )
1314 UpdateLinear( dc, envelope, allOutputs );
1315 else
1316 UpdateNonlinear( dc, allOutputs );
1317
1318 int displacementx=0, displacementy=0;
1319 auto &box = allOutputs.box;
1320 if (!mFlip) {
1321 if (mOrientation==wxHORIZONTAL) {
1322 int d = mTop + box.GetHeight() + 5;
1323 box.Offset(0,d);
1324 box.Inflate(0,5);
1325 displacementx=0;
1326 displacementy=d;
1327 }
1328 else {
1329 int d = mLeft - box.GetLeft() + 5;
1330 box.Offset(d,0);
1331 box.Inflate(5,0);
1332 displacementx=d;
1333 displacementy=0;
1334 }
1335 }
1336 else {
1337 if (mOrientation==wxHORIZONTAL) {
1338 box.Inflate(0,5);
1339 displacementx=0;
1340 displacementy=0;
1341 }
1342 }
1343 auto update = [=]( Label &label ){
1344 label.lx += displacementx;
1345 label.ly += displacementy;
1346 };
1347 for( auto &label : allOutputs.majorLabels )
1348 update( label );
1349 for( auto &label : allOutputs.minorLabels )
1350 update( label );
1351 for( auto &label : allOutputs.minorMinorLabels )
1352 update( label );
1353}
TranslatableString label
Definition: TagsEditor.cpp:164
void UpdateNonlinear(wxDC &dc, UpdateOutputs &allOutputs) const
Definition: Ruler.cpp:1213
void UpdateCustom(wxDC &dc, UpdateOutputs &allOutputs) const
Definition: Ruler.cpp:1052
const bool mCustom
Definition: Ruler.cpp:872
void UpdateLinear(wxDC &dc, const Envelope *envelope, UpdateOutputs &allOutputs) const
Definition: Ruler.cpp:1066
const bool mLog
Definition: Ruler.cpp:874

References Ruler::Updater::UpdateOutputs::bits, Ruler::Updater::UpdateOutputs::box, label, Ruler::Updater::UpdateOutputs::majorLabels, Ruler::mCustom, Ruler::mFlip, Ruler::Updater::UpdateOutputs::minorLabels, Ruler::Updater::UpdateOutputs::minorMinorLabels, Ruler::mLeft, Ruler::mLog, Ruler::mOrientation, and Ruler::mTop.

◆ UpdateCustom()

void Ruler::Updater::UpdateCustom ( wxDC &  dc,
UpdateOutputs allOutputs 
) const

Definition at line 1052 of file Ruler.cpp.

1053{
1054 TickOutputs majorOutputs{
1055 allOutputs.majorLabels, allOutputs.bits, allOutputs.box };
1056
1057 // SET PARAMETER IN MCUSTOM CASE
1058 // Works only with major labels
1059
1060 int numLabel = allOutputs.majorLabels.size();
1061
1062 for( int i = 0; (i<numLabel) && (i<=mLength); ++i )
1063 TickCustom( dc, i, mFonts.major, majorOutputs );
1064}
wxFont major
Definition: Ruler.h:101
bool TickCustom(wxDC &dc, int labelIdx, wxFont font, TickOutputs outputs) const
Definition: Ruler.cpp:959

References Ruler::Updater::UpdateOutputs::bits, Ruler::Updater::UpdateOutputs::box, Ruler::Updater::UpdateOutputs::majorLabels, and Ruler::mLength.

◆ UpdateLinear()

void Ruler::Updater::UpdateLinear ( wxDC &  dc,
const Envelope envelope,
UpdateOutputs allOutputs 
) const

Definition at line 1066 of file Ruler.cpp.

1068{
1069 TickOutputs majorOutputs{
1070 allOutputs.majorLabels, allOutputs.bits, allOutputs.box };
1071
1072 // Use the "hidden" min and max to determine the tick size.
1073 // That may make a difference with fisheye.
1074 // Otherwise you may see the tick size for the whole ruler change
1075 // when the fisheye approaches start or end.
1076 double UPP = (mHiddenMax-mHiddenMin)/mLength; // Units per pixel
1077 TickSizes tickSizes{ UPP, mOrientation, mFormat, false };
1078
1079 auto TickAtValue =
1080 [this, &tickSizes, &dc, &majorOutputs]
1081 ( double value ) -> int {
1082 // Make a tick only if the value is strictly between the bounds
1083 if ( value <= std::min( mMin, mMax ) )
1084 return -1;
1085 if ( value >= std::max( mMin, mMax ) )
1086 return -1;
1087
1088 int mid;
1089 if (zoomInfo != NULL) {
1090 // Tick only at zero
1091 if ( value )
1092 return -1;
1093 mid = (int)(zoomInfo->TimeToPosition(0.0, mLeftOffset));
1094 }
1095 else
1096 mid = (int)(mLength*((mMin - value) / (mMin - mMax)) + 0.5);
1097
1098 const int iMaxPos = (mOrientation == wxHORIZONTAL) ? mRight : mBottom - 5;
1099 if (mid >= 0 && mid < iMaxPos)
1100 Tick( dc, mid, value, tickSizes, mFonts.major, majorOutputs );
1101 else
1102 return -1;
1103
1104 return mid;
1105 };
1106
1107 if ( mDbMirrorValue ) {
1108 // For dB scale, let the zeroes prevail over the extreme values if
1109 // not the same, and let midline prevail over all
1110
1111 // Do the midline
1112 TickAtValue( -mDbMirrorValue );
1113
1114 // Do the upper zero
1115 TickAtValue( 0.0 );
1116
1117 // Do the other zero
1118 TickAtValue( -2 * mDbMirrorValue );
1119 }
1120
1121 // Extreme values
1122 if (mLabelEdges) {
1123 Tick( dc, 0, mMin, tickSizes, mFonts.major, majorOutputs );
1124 Tick( dc, mLength, mMax, tickSizes, mFonts.major, majorOutputs );
1125 }
1126
1127 if ( !mDbMirrorValue ) {
1128 // Zero (if it's strictly in the middle somewhere)
1129 TickAtValue( 0.0 );
1130 }
1131
1132 double sg = UPP > 0.0? 1.0: -1.0;
1133
1134 int nDroppedMinorLabels=0;
1135 // Major and minor ticks
1136 for (int jj = 0; jj < 2; ++jj) {
1137 const double denom = jj == 0 ? tickSizes.mMajor : tickSizes.mMinor;
1138 auto font = jj == 0 ? mFonts.major : mFonts.minor;
1139 TickOutputs outputs{
1140 (jj == 0 ? allOutputs.majorLabels : allOutputs.minorLabels),
1141 allOutputs.bits, allOutputs.box
1142 };
1143 int ii = -1, j = 0;
1144 double d, warpedD, nextD;
1145
1146 double prevTime = 0.0, time = 0.0;
1147 if (zoomInfo != NULL) {
1149 prevTime = zoomInfo->PositionToTime(--j);
1150 time = zoomInfo->PositionToTime(++j);
1151 d = (prevTime + time) / 2.0;
1152 }
1153 else
1154 d = mMin - UPP / 2;
1155 if (envelope)
1156 warpedD = ComputeWarpedLength(*envelope, 0.0, d);
1157 else
1158 warpedD = d;
1159 // using ints doesn't work, as
1160 // this will overflow and be negative at high zoom.
1161 double step = floor(sg * warpedD / denom);
1162 while (ii <= mLength) {
1163 ii++;
1164 if (zoomInfo)
1165 {
1166 prevTime = time;
1167 time = zoomInfo->PositionToTime(++j);
1168 nextD = (prevTime + time) / 2.0;
1169 // wxASSERT(time >= prevTime);
1170 }
1171 else
1172 nextD = d + UPP;
1173 if (envelope)
1174 warpedD += ComputeWarpedLength(*envelope, d, nextD);
1175 else
1176 warpedD = nextD;
1177 d = nextD;
1178
1179 if (floor(sg * warpedD / denom) > step) {
1180 step = floor(sg * warpedD / denom);
1181 bool major = jj == 0;
1182 tickSizes.useMajor = major;
1183 bool ticked = Tick( dc, ii, sg * step * denom, tickSizes,
1184 font, outputs );
1185 if( !major && !ticked ){
1186 nDroppedMinorLabels++;
1187 }
1188 }
1189 }
1190 }
1191
1192 tickSizes.useMajor = true;
1193
1194 // If we've dropped minor labels through overcrowding, then don't show
1195 // any of them. We're allowed though to drop ones which correspond to the
1196 // major numbers.
1197 if( nDroppedMinorLabels >
1198 (allOutputs.majorLabels.size() + (mLabelEdges ? 2:0)) ){
1199 // Old code dropped the labels AND their ticks, like so:
1200 // mMinorLabels.clear();
1201 // Nowadays we just drop the labels.
1202 for( auto &label : allOutputs.minorLabels )
1203 label.text = {};
1204 }
1205
1206 // Left and Right Edges
1207 if (mLabelEdges) {
1208 Tick( dc, 0, mMin, tickSizes, mFonts.major, majorOutputs );
1209 Tick( dc, mLength, mMax, tickSizes, mFonts.major, majorOutputs );
1210 }
1211}
double PositionToTime(int64 position, int64 origin=0, bool ignoreFisheye=false) const
Definition: ZoomInfo.cpp:35
int64 TimeToPosition(double time, int64 origin=0, bool ignoreFisheye=false) const
STM: Converts a project time to screen x position.
Definition: ZoomInfo.cpp:45
double ComputeWarpedLength(const Envelope &env, double t0, double t1)
Definition: Ruler.cpp:989
wxFont minor
Definition: Ruler.h:101
bool Tick(wxDC &dc, int pos, double d, const TickSizes &tickSizes, wxFont font, TickOutputs outputs) const
Definition: Ruler.cpp:926
const int mBottom
Definition: Ruler.cpp:865
const int mRight
Definition: Ruler.cpp:866
const bool mLabelEdges
Definition: Ruler.cpp:877
const double mHiddenMin
Definition: Ruler.cpp:875
const double mHiddenMax
Definition: Ruler.cpp:876
const double mMin
Definition: Ruler.cpp:878
const double mMax
Definition: Ruler.cpp:879
const int mLeftOffset
Definition: Ruler.cpp:880

References Ruler::Updater::UpdateOutputs::bits, Ruler::Updater::UpdateOutputs::box, anonymous_namespace{Ruler.cpp}::ComputeWarpedLength(), label, Ruler::Updater::UpdateOutputs::majorLabels, Ruler::mBottom, Ruler::mDbMirrorValue, Ruler::mFormat, Ruler::mHiddenMax, Ruler::mHiddenMin, min(), Ruler::Updater::UpdateOutputs::minorLabels, Ruler::mLabelEdges, Ruler::mLeftOffset, Ruler::mLength, Ruler::mMax, Ruler::mMin, Ruler::mOrientation, and Ruler::mRight.

Here is the call graph for this function:

◆ UpdateNonlinear()

void Ruler::Updater::UpdateNonlinear ( wxDC &  dc,
UpdateOutputs allOutputs 
) const

Definition at line 1213 of file Ruler.cpp.

1215{
1216 TickOutputs majorOutputs{
1217 allOutputs.majorLabels, allOutputs.bits, allOutputs.box };
1218
1219 auto numberScale = ( mNumberScale == NumberScale{} )
1221 : mNumberScale;
1222
1223 double UPP = (mHiddenMax-mHiddenMin)/mLength; // Units per pixel
1224 TickSizes tickSizes{ UPP, mOrientation, mFormat, true };
1225
1226 tickSizes.mDigits = 2; //TODO: implement dynamic digit computation
1227
1228 double loLog = log10(mMin);
1229 double hiLog = log10(mMax);
1230 int loDecade = (int) floor(loLog);
1231
1232 double val;
1233 double startDecade = pow(10., (double)loDecade);
1234
1235 // Major ticks are the decades
1236 double decade = startDecade;
1237 double delta=hiLog-loLog, steps=fabs(delta);
1238 double step = delta>=0 ? 10 : 0.1;
1239 double rMin=std::min(mMin, mMax), rMax=std::max(mMin, mMax);
1240 for(int i=0; i<=steps; i++)
1241 { // if(i!=0)
1242 { val = decade;
1243 if(val >= rMin && val < rMax) {
1244 const int pos(0.5 + mLength * numberScale.ValueToPosition(val));
1245 Tick( dc, pos, val, tickSizes, mFonts.major, majorOutputs );
1246 }
1247 }
1248 decade *= step;
1249 }
1250
1251 // Minor ticks are multiples of decades
1252 decade = startDecade;
1253 float start, end, mstep;
1254 if (delta > 0)
1255 { start=2; end=10; mstep=1;
1256 }else
1257 { start=9; end=1; mstep=-1;
1258 }
1259 steps++;
1260 tickSizes.useMajor = false;
1261 TickOutputs minorOutputs{
1262 allOutputs.minorLabels, allOutputs.bits, allOutputs.box };
1263 for(int i=0; i<=steps; i++) {
1264 for(int j=start; j!=end; j+=mstep) {
1265 val = decade * j;
1266 if(val >= rMin && val < rMax) {
1267 const int pos(0.5 + mLength * numberScale.ValueToPosition(val));
1268 Tick( dc, pos, val, tickSizes, mFonts.minor, minorOutputs );
1269 }
1270 }
1271 decade *= step;
1272 }
1273
1274 // MinorMinor ticks are multiples of decades
1275 decade = startDecade;
1276 if (delta > 0)
1277 { start= 10; end=100; mstep= 1;
1278 }else
1279 { start=100; end= 10; mstep=-1;
1280 }
1281 steps++;
1282 TickOutputs minorMinorOutputs{
1283 allOutputs.minorMinorLabels, allOutputs.bits, allOutputs.box };
1284 for (int i = 0; i <= steps; i++) {
1285 // PRL: Bug1038. Don't label 1.6, rounded, as a duplicate tick for "2"
1286 if (!(mFormat == IntFormat && decade < 10.0)) {
1287 for (int f = start; f != (int)(end); f += mstep) {
1288 if ((int)(f / 10) != f / 10.0f) {
1289 val = decade * f / 10;
1290 if (val >= rMin && val < rMax) {
1291 const int pos(0.5 + mLength * numberScale.ValueToPosition(val));
1292 Tick( dc, pos, val, tickSizes,
1293 mFonts.minorMinor, minorMinorOutputs );
1294 }
1295 }
1296 }
1297 }
1298 decade *= step;
1299 }
1300}
@ nstLogarithmic
Definition: NumberScale.h:19
@ IntFormat
Definition: Ruler.h:30
auto end(const Ptr< Type, BaseDeleter > &p)
Enables range-for.
Definition: PackedArray.h:159
wxFont minorMinor
Definition: Ruler.h:101
const NumberScale mNumberScale
Definition: Ruler.cpp:881

References Ruler::Updater::UpdateOutputs::bits, Ruler::Updater::UpdateOutputs::box, PackedArray::end(), Ruler::IntFormat, Ruler::Updater::UpdateOutputs::majorLabels, Ruler::mFormat, Ruler::mHiddenMax, Ruler::mHiddenMin, min(), Ruler::Updater::UpdateOutputs::minorLabels, Ruler::Updater::UpdateOutputs::minorMinorLabels, Ruler::mLength, Ruler::mMax, Ruler::mMin, Ruler::mNumberScale, Ruler::mOrientation, and nstLogarithmic.

Here is the call graph for this function:

Member Data Documentation

◆ mBottom

const int Ruler::Updater::mBottom = mRuler.mBottom

Definition at line 865 of file Ruler.cpp.

◆ mCustom

const bool Ruler::Updater::mCustom = mRuler.mCustom

Definition at line 872 of file Ruler.cpp.

◆ mDbMirrorValue

const double Ruler::Updater::mDbMirrorValue = mRuler.mDbMirrorValue

Definition at line 858 of file Ruler.cpp.

Referenced by Tick().

◆ mFlip

const bool Ruler::Updater::mFlip = mRuler.mFlip

Definition at line 870 of file Ruler.cpp.

Referenced by Tick().

◆ mFonts

const Fonts& Ruler::Updater::mFonts = *mRuler.mpFonts

Definition at line 873 of file Ruler.cpp.

Referenced by Tick().

◆ mFormat

const RulerFormat Ruler::Updater::mFormat = mRuler.mFormat

Definition at line 860 of file Ruler.cpp.

Referenced by Tick().

◆ mHiddenMax

const double Ruler::Updater::mHiddenMax = mRuler.mHiddenMax

Definition at line 876 of file Ruler.cpp.

◆ mHiddenMin

const double Ruler::Updater::mHiddenMin = mRuler.mHiddenMin

Definition at line 875 of file Ruler.cpp.

◆ mLabelEdges

const bool Ruler::Updater::mLabelEdges = mRuler.mLabelEdges

Definition at line 877 of file Ruler.cpp.

◆ mLeft

const int Ruler::Updater::mLeft = mRuler.mLeft

Definition at line 863 of file Ruler.cpp.

Referenced by Tick().

◆ mLeftOffset

const int Ruler::Updater::mLeftOffset = mRuler.mLeftOffset

Definition at line 880 of file Ruler.cpp.

◆ mLength

const int Ruler::Updater::mLength = mRuler.mLength

Definition at line 859 of file Ruler.cpp.

Referenced by Tick().

◆ mLog

const bool Ruler::Updater::mLog = mRuler.mLog

Definition at line 874 of file Ruler.cpp.

◆ mMax

const double Ruler::Updater::mMax = mRuler.mMax

Definition at line 879 of file Ruler.cpp.

◆ mMin

const double Ruler::Updater::mMin = mRuler.mMin

Definition at line 878 of file Ruler.cpp.

◆ mNumberScale

const NumberScale Ruler::Updater::mNumberScale = mRuler.mNumberScale

Definition at line 881 of file Ruler.cpp.

◆ mOrientation

const int Ruler::Updater::mOrientation = mRuler.mOrientation

Definition at line 869 of file Ruler.cpp.

Referenced by Tick().

◆ mRight

const int Ruler::Updater::mRight = mRuler.mRight

Definition at line 866 of file Ruler.cpp.

◆ mRuler

const Ruler& Ruler::Updater::mRuler

Definition at line 850 of file Ruler.cpp.

◆ mSpacing

const int Ruler::Updater::mSpacing = mRuler.mSpacing

Definition at line 868 of file Ruler.cpp.

Referenced by Tick().

◆ mTop

const int Ruler::Updater::mTop = mRuler.mTop

Definition at line 864 of file Ruler.cpp.

Referenced by Tick().

◆ mUnits

const TranslatableString Ruler::Updater::mUnits = mRuler.mUnits

Definition at line 861 of file Ruler.cpp.

Referenced by Tick().

◆ zoomInfo

const ZoomInfo* Ruler::Updater::zoomInfo

Definition at line 851 of file Ruler.cpp.


The documentation for this struct was generated from the following file: