Audacity  2.2.2
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
LabelStruct Class Reference

A LabelStruct holds information for ONE label in a LabelTrack. More...

#include <LabelTrack.h>

Classes

struct  BadFormatException
 

Public Types

enum  TimeRelations {
  BEFORE_LABEL, AFTER_LABEL, SURROUNDS_LABEL, WITHIN_LABEL,
  BEGINS_IN_LABEL, ENDS_IN_LABEL
}
 Relationships between selection region and labels. More...
 

Public Member Functions

 LabelStruct (const SelectedRegion &region, const wxString &aTitle)
 
 LabelStruct (const SelectedRegion &region, double t0, double t1, const wxString &aTitle)
 
void DrawLines (wxDC &dc, const wxRect &r) const
 
void DrawGlyphs (wxDC &dc, const wxRect &r, int GlyphLeft, int GlyphRight) const
 
void DrawText (wxDC &dc, const wxRect &r) const
 
void DrawTextBox (wxDC &dc, const wxRect &r) const
 
void DrawHighlight (wxDC &dc, int xPos1, int xPos2, int charHeight) const
 Draws text-selected region within the label. More...
 
void getXPos (wxDC &dc, int *xPos1, int cursorPos) const
 
const SelectedRegiongetSelectedRegion () const
 
double getDuration () const
 
double getT0 () const
 
double getT1 () const
 
bool AdjustEdge (int iEdge, double fNewTime)
 
void MoveLabel (int iEdge, double fNewTime)
 
void Export (wxTextFile &file) const
 
TimeRelations RegionRelation (double reg_t0, double reg_t1, const LabelTrack *parent=NULL) const
 

Static Public Member Functions

static LabelStruct Import (wxTextFile &file, int &index)
 

Public Attributes

SelectedRegion selectedRegion
 
wxString title
 
int width
 Text of the label. More...
 
int x
 width of the text in pixels. More...
 
int x1
 Pixel position of left hand glyph. More...
 
int xText
 Pixel position of right hand glyph. More...
 
int y
 Pixel position of left hand side of text box. More...
 
bool updated
 Pixel position of label. More...
 

Detailed Description

A LabelStruct holds information for ONE label in a LabelTrack.

LabelStruct also has label specific functions, mostly functions for drawing different aspects of the label and its text box.

Definition at line 44 of file LabelTrack.h.

Member Enumeration Documentation

Relationships between selection region and labels.

Enumerator
BEFORE_LABEL 
AFTER_LABEL 
SURROUNDS_LABEL 
WITHIN_LABEL 
BEGINS_IN_LABEL 
ENDS_IN_LABEL 

Definition at line 73 of file LabelTrack.h.

Constructor & Destructor Documentation

LabelStruct::LabelStruct ( const SelectedRegion region,
const wxString &  aTitle 
)

Definition at line 528 of file LabelTrack.cpp.

References updated, width, x, x1, xText, and y.

530 : selectedRegion(region)
531 , title(aTitle)
532 {
533  updated = false;
534  width = 0;
535  x = 0;
536  x1 = 0;
537  xText = 0;
538  y = 0;
539 }
wxString title
Definition: LabelTrack.h:92
int xText
Pixel position of right hand glyph.
Definition: LabelTrack.h:98
bool updated
Pixel position of label.
Definition: LabelTrack.h:101
int x1
Pixel position of left hand glyph.
Definition: LabelTrack.h:97
int x
width of the text in pixels.
Definition: LabelTrack.h:96
int width
Text of the label.
Definition: LabelTrack.h:93
SelectedRegion selectedRegion
Definition: LabelTrack.h:91
int y
Pixel position of left hand side of text box.
Definition: LabelTrack.h:99
LabelStruct::LabelStruct ( const SelectedRegion region,
double  t0,
double  t1,
const wxString &  aTitle 
)

Definition at line 541 of file LabelTrack.cpp.

References selectedRegion, SelectedRegion::setTimes(), updated, width, x, x1, xText, and y.

544 : selectedRegion(region)
545 , title(aTitle)
546 {
547  // Overwrite the times
548  selectedRegion.setTimes(t0, t1);
549 
550  updated = false;
551  width = 0;
552  x = 0;
553  x1 = 0;
554  xText = 0;
555  y = 0;
556 }
wxString title
Definition: LabelTrack.h:92
int xText
Pixel position of right hand glyph.
Definition: LabelTrack.h:98
bool updated
Pixel position of label.
Definition: LabelTrack.h:101
int x1
Pixel position of left hand glyph.
Definition: LabelTrack.h:97
int x
width of the text in pixels.
Definition: LabelTrack.h:96
int width
Text of the label.
Definition: LabelTrack.h:93
bool setTimes(double t0, double t1)
SelectedRegion selectedRegion
Definition: LabelTrack.h:91
int y
Pixel position of left hand side of text box.
Definition: LabelTrack.h:99

Member Function Documentation

bool LabelStruct::AdjustEdge ( int  iEdge,
double  fNewTime 
)

Definition at line 1234 of file LabelTrack.cpp.

References SelectedRegion::setT0(), SelectedRegion::setT1(), and updated.

Referenced by LabelTrack::MayAdjustLabel().

1235 {
1236  updated = true;
1237  if( iEdge < 0 )
1238  return selectedRegion.setT0(fNewTime);
1239  else
1240  return selectedRegion.setT1(fNewTime);
1241 }
bool updated
Pixel position of label.
Definition: LabelTrack.h:101
bool setT1(double t, bool maySwap=true)
SelectedRegion selectedRegion
Definition: LabelTrack.h:91
bool setT0(double t, bool maySwap=true)
void LabelStruct::DrawGlyphs ( wxDC &  dc,
const wxRect &  r,
int  GlyphLeft,
int  GlyphRight 
) const

DrawGlyphs draws the wxIcons at the start and end of a label.

Parameters
dcthe device context
rthe LabelTrack rectangle.

Definition at line 600 of file LabelTrack.cpp.

References LabelTrack::GetGlyph(), LabelTrack::mIconHeight, LabelTrack::mIconWidth, and LabelTrack::mTextHeight.

601 {
602  const int xHalfWidth=LabelTrack::mIconWidth/2;
603  const int yStart=y-LabelTrack::mIconHeight/2+(LabelTrack::mTextHeight+3)/2;
604 
605  // If y == -1, nothing to draw
606  if( y == -1 )
607  return;
608 
609  if((x >= r.x) && (x <= (r.x+r.width)))
610  dc.DrawBitmap(LabelTrack::GetGlyph(GlyphLeft), x-xHalfWidth,yStart, true);
611  // The extra test commented out here would suppress right hand markers
612  // when they overlap the left hand marker (e.g. zoomed out) or to the left.
613  if((x1 >= r.x) && (x1 <= (r.x+r.width)) /*&& (x1>x+LabelTrack::mIconWidth)*/)
614  dc.DrawBitmap(LabelTrack::GetGlyph(GlyphRight), x1-xHalfWidth,yStart, true);
615 }
static int mIconHeight
Definition: LabelTrack.h:284
int x1
Pixel position of left hand glyph.
Definition: LabelTrack.h:97
static int mIconWidth
Definition: LabelTrack.h:285
int x
width of the text in pixels.
Definition: LabelTrack.h:96
static wxBitmap & GetGlyph(int i)
static int mTextHeight
Definition: LabelTrack.h:286
int y
Pixel position of left hand side of text box.
Definition: LabelTrack.h:99
void LabelStruct::DrawHighlight ( wxDC &  dc,
int  xPos1,
int  xPos2,
int  charHeight 
) const

Draws text-selected region within the label.

Definition at line 699 of file LabelTrack.cpp.

700 {
701  wxPen curPen = dc.GetPen();
702  curPen.SetColour(wxString(wxT("BLUE")));
703  wxBrush curBrush = dc.GetBrush();
704  curBrush.SetColour(wxString(wxT("BLUE")));
705  if (xPos1 < xPos2)
706  dc.DrawRectangle(xPos1-1, y-charHeight/2, xPos2-xPos1+1, charHeight);
707  else
708  dc.DrawRectangle(xPos2-1, y-charHeight/2, xPos1-xPos2+1, charHeight);
709 }
int y
Pixel position of left hand side of text box.
Definition: LabelTrack.h:99
void LabelStruct::DrawLines ( wxDC &  dc,
const wxRect &  r 
) const

Draw vertical lines that go exactly through the position of the start or end of a label.

Parameters
dcthe device context
rthe LabelTrack rectangle.

Definition at line 562 of file LabelTrack.cpp.

References AColor::Line(), LabelTrack::mIconHeight, LabelTrack::mTextHeight, x, x1, and y.

563 {
564  // How far out from the centre line should the vertical lines
565  // start, i.e. what is the y position of the icon?
566  // We adjust this so that the line encroaches on the icon
567  // slightly (there is white space in the design).
568  const int yIconStart = y - (LabelTrack::mIconHeight /2)+1+(LabelTrack::mTextHeight+3)/2;
569  const int yIconEnd = yIconStart + LabelTrack::mIconHeight-2;
570 
571  // If y is positive then it is the center line for the
572  // Label.
573  if( y >= 0 )
574  {
575  if((x >= r.x) && (x <= (r.x+r.width)))
576  {
577  // Draw line above and below left dragging widget.
578  AColor::Line(dc, x, r.y, x, yIconStart - 1);
579  AColor::Line(dc, x, yIconEnd, x, r.y + r.height);
580  }
581  if((x1 >= r.x) && (x1 <= (r.x+r.width)))
582  {
583  // Draw line above and below right dragging widget.
584  AColor::Line(dc, x1, r.y, x1, yIconStart - 1);
585  AColor::Line(dc, x1, yIconEnd, x1, r.y + r.height);
586  }
587  }
588  else
589  {
590  // Draw the line, even though the widget is off screen
591  AColor::Line(dc, x, r.y, x, r.y + r.height);
592  AColor::Line(dc, x1, r.y, x1, r.y + r.height);
593  }
594 }
static int mIconHeight
Definition: LabelTrack.h:284
int x1
Pixel position of left hand glyph.
Definition: LabelTrack.h:97
int x
width of the text in pixels.
Definition: LabelTrack.h:96
static void Line(wxDC &dc, wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2)
Definition: AColor.cpp:122
static int mTextHeight
Definition: LabelTrack.h:286
int y
Pixel position of left hand side of text box.
Definition: LabelTrack.h:99
void LabelStruct::DrawText ( wxDC &  dc,
const wxRect &  r 
) const

Draw the text of the label and also draw a long thin rectangle for its full extent from x to x1 and a rectangular frame behind the text itself.

Parameters
dcthe device context
rthe LabelTrack rectangle.

Definition at line 623 of file LabelTrack.cpp.

References LabelTrack::mIconWidth, LabelTrack::mTextHeight, title, width, xText, and y.

624 {
625  //If y is positive then it is the center line for the
626  //text we are about to draw.
627  //if it isn't, nothing to draw.
628 
629  if( y == -1 )
630  return;
631 
632  // Draw frame for the text...
633  // We draw it half an icon width left of the text itself.
634  {
635  const int xStart=wxMax(r.x,xText-LabelTrack::mIconWidth/2);
636  const int xEnd=wxMin(r.x+r.width,xText+width+LabelTrack::mIconWidth/2);
637  const int xWidth = xEnd-xStart;
638 
639  if( (xStart < (r.x+r.width)) && (xEnd > r.x) && (xWidth>0))
640  {
641  // Now draw the text itself.
642  dc.DrawText(title, xText, y-LabelTrack::mTextHeight/2);
643  }
644  }
645 
646 }
wxString title
Definition: LabelTrack.h:92
int xText
Pixel position of right hand glyph.
Definition: LabelTrack.h:98
static int mIconWidth
Definition: LabelTrack.h:285
int width
Text of the label.
Definition: LabelTrack.h:93
static int mTextHeight
Definition: LabelTrack.h:286
int y
Pixel position of left hand side of text box.
Definition: LabelTrack.h:99
void LabelStruct::DrawTextBox ( wxDC &  dc,
const wxRect &  r 
) const

Definition at line 648 of file LabelTrack.cpp.

References LabelTrack::mIconWidth, LabelTrack::mTextHeight, width, x, x1, xText, and y.

649 {
650  //If y is positive then it is the center line for the
651  //text we are about to draw.
652  const int yBarHeight=3;
653  const int yFrameHeight = LabelTrack::mTextHeight+3;
654  const int xBarShorten = LabelTrack::mIconWidth+4;
655  if( y == -1 )
656  return;
657 
658  {
659  const int xStart=wxMax(r.x,x+xBarShorten/2);
660  const int xEnd=wxMin(r.x+r.width,x1-xBarShorten/2);
661  const int xWidth = xEnd-xStart;
662 
663  if( (xStart < (r.x+r.width)) && (xEnd > r.x) && (xWidth>0))
664  {
665 
666  wxRect bar( xStart,y-yBarHeight/2+yFrameHeight/2,
667  xWidth,yBarHeight);
668  if( x1 > x+xBarShorten )
669  dc.DrawRectangle(bar);
670  }
671  }
672 
673  // In drawing the bar and the frame, we compute the clipping
674  // to the viewport ourselves. Under Win98 the GDI does its
675  // calculations in 16 bit arithmetic, and so gets it completely
676  // wrong at higher zooms where the bar can easily be
677  // more than 65536 pixels wide.
678 
679  // Draw bar for label extent...
680  // We don't quite draw from x to x1 because we allow
681  // half an icon width at each end.
682  {
683  const int xStart=wxMax(r.x,xText-LabelTrack::mIconWidth/2);
684  const int xEnd=wxMin(r.x+r.width,xText+width+LabelTrack::mIconWidth/2);
685  const int xWidth = xEnd-xStart;
686 
687  if( (xStart < (r.x+r.width)) && (xEnd > r.x) && (xWidth>0))
688  {
689  wxRect frame(
690  xStart,y-yFrameHeight/2,
691  xWidth,yFrameHeight );
692  dc.DrawRectangle(frame);
693  }
694  }
695 }
int xText
Pixel position of right hand glyph.
Definition: LabelTrack.h:98
int x1
Pixel position of left hand glyph.
Definition: LabelTrack.h:97
static int mIconWidth
Definition: LabelTrack.h:285
int x
width of the text in pixels.
Definition: LabelTrack.h:96
int width
Text of the label.
Definition: LabelTrack.h:93
static int mTextHeight
Definition: LabelTrack.h:286
int y
Pixel position of left hand side of text box.
Definition: LabelTrack.h:99
void LabelStruct::Export ( wxTextFile &  file) const

Definition at line 1331 of file LabelTrack.cpp.

References SelectedRegion::f0(), SelectedRegion::f1(), getT0(), getT1(), title, Internat::ToString(), and SelectedRegion::UndefinedFrequency.

1332 {
1333  file.AddLine(wxString::Format(wxT("%s\t%s\t%s"),
1334  Internat::ToString(getT0(), FLT_DIG),
1335  Internat::ToString(getT1(), FLT_DIG),
1336  title
1337  ));
1338 
1339  // Do we need more lines?
1340  auto f0 = selectedRegion.f0();
1341  auto f1 = selectedRegion.f1();
1344  return;
1345 
1346  // Write a \ character at the start of a second line,
1347  // so that earlier versions of Audacity ignore it.
1348  file.AddLine(wxString::Format(wxT("\\\t%s\t%s"),
1349  Internat::ToString(f0, FLT_DIG),
1350  Internat::ToString(f1, FLT_DIG)
1351  ));
1352 
1353  // Additional lines in future formats should also start with '\'.
1354 }
wxString title
Definition: LabelTrack.h:92
double f0() const
static wxString ToString(double numberToConvert, int digitsAfterDecimalPoint=-1)
Convert a number to a string, always uses the dot as decimal separator.
Definition: Internat.cpp:138
double getT1() const
Definition: LabelTrack.h:62
SelectedRegion selectedRegion
Definition: LabelTrack.h:91
double f1() const
double getT0() const
Definition: LabelTrack.h:61
static const int UndefinedFrequency
double LabelStruct::getDuration ( ) const
inline

Definition at line 60 of file LabelTrack.h.

References SelectedRegion::duration(), and selectedRegion.

Referenced by MoveLabel().

60 { return selectedRegion.duration(); }
SelectedRegion selectedRegion
Definition: LabelTrack.h:91
double duration() const
const SelectedRegion& LabelStruct::getSelectedRegion ( ) const
inline

Definition at line 59 of file LabelTrack.h.

References selectedRegion.

59 { return selectedRegion; }
SelectedRegion selectedRegion
Definition: LabelTrack.h:91
double LabelStruct::getT0 ( ) const
inline
double LabelStruct::getT1 ( ) const
inline
void LabelStruct::getXPos ( wxDC &  dc,
int *  xPos1,
int  cursorPos 
) const

Definition at line 711 of file LabelTrack.cpp.

References title, and xText.

712 {
713  *xPos1 = xText;
714  if( cursorPos > 0)
715  {
716  int partWidth;
717  // Calculate the width of the substring and add it to Xpos
718  dc.GetTextExtent(title.Left(cursorPos), &partWidth, NULL);
719  *xPos1 += partWidth;
720  }
721 }
wxString title
Definition: LabelTrack.h:92
int xText
Pixel position of right hand glyph.
Definition: LabelTrack.h:98
LabelStruct LabelStruct::Import ( wxTextFile &  file,
int &  index 
)
static

Definition at line 1259 of file LabelTrack.cpp.

References Internat::CompatibleToDouble(), SelectedRegion::setFrequencies(), SelectedRegion::setTimes(), and title.

Referenced by LabelTrack::Import().

1260 {
1261  SelectedRegion sr;
1262  wxString title;
1263  static const wxString continuation{ wxT("\\") };
1264 
1265  wxString firstLine = file.GetLine(index++);
1266 
1267  {
1268  // Assume tab is an impossible character within the exported text
1269  // of the label, so can be only a delimiter. But other white space may
1270  // be part of the label text.
1271  wxStringTokenizer toker { firstLine, wxT("\t") };
1272 
1273  //get the timepoint of the left edge of the label.
1274  auto token = toker.GetNextToken();
1275 
1276  double t0;
1277  if (!Internat::CompatibleToDouble(token, &t0))
1278  throw BadFormatException{};
1279 
1280  token = toker.GetNextToken();
1281 
1282  double t1;
1283  if (!Internat::CompatibleToDouble(token, &t1))
1284  //s1 is not a number.
1285  t1 = t0; //This is a one-sided label; t1 == t0.
1286  else
1287  token = toker.GetNextToken();
1288 
1289  sr.setTimes( t0, t1 );
1290 
1291  title = token;
1292  }
1293 
1294  // Newer selection fields are written on additional lines beginning with
1295  // '\' which is an impossible numerical character that older versions of
1296  // audacity will ignore. Test for the presence of such a line and then
1297  // parse it if we can.
1298 
1299  // There may also be additional continuation lines from future formats that
1300  // we ignore.
1301 
1302  // Advance index over all continuation lines first, before we might throw
1303  // any exceptions.
1304  int index2 = index;
1305  while (index < (int)file.GetLineCount() &&
1306  file.GetLine(index).StartsWith(continuation))
1307  ++index;
1308 
1309  if (index2 < index) {
1310  wxStringTokenizer toker { file.GetLine(index2++), wxT("\t") };
1311  auto token = toker.GetNextToken();
1312  if (token != continuation)
1313  throw BadFormatException{};
1314 
1315  token = toker.GetNextToken();
1316  double f0;
1317  if (!Internat::CompatibleToDouble(token, &f0))
1318  throw BadFormatException{};
1319 
1320  token = toker.GetNextToken();
1321  double f1;
1322  if (!Internat::CompatibleToDouble(token, &f1))
1323  throw BadFormatException{};
1324 
1325  sr.setFrequencies(f0, f1);
1326  }
1327 
1328  return LabelStruct{ sr, title };
1329 }
wxString title
Definition: LabelTrack.h:92
A LabelStruct holds information for ONE label in a LabelTrack.
Definition: LabelTrack.h:44
static bool CompatibleToDouble(const wxString &stringToConvert, double *result)
Convert a string to a number.
Definition: Internat.cpp:122
Defines a selected portion of a project.
bool setTimes(double t0, double t1)
bool setFrequencies(double f0, double f1)
void LabelStruct::MoveLabel ( int  iEdge,
double  fNewTime 
)

Definition at line 1244 of file LabelTrack.cpp.

References getDuration(), SelectedRegion::setTimes(), and updated.

1245 {
1246  double fTimeSpan = getDuration();
1247 
1248  if( iEdge < 0 )
1249  {
1250  selectedRegion.setTimes(fNewTime, fNewTime+fTimeSpan);
1251  }
1252  else
1253  {
1254  selectedRegion.setTimes(fNewTime-fTimeSpan, fNewTime);
1255  }
1256  updated = true;
1257 }
bool updated
Pixel position of label.
Definition: LabelTrack.h:101
double getDuration() const
Definition: LabelTrack.h:60
bool setTimes(double t0, double t1)
SelectedRegion selectedRegion
Definition: LabelTrack.h:91
auto LabelStruct::RegionRelation ( double  reg_t0,
double  reg_t1,
const LabelTrack parent = NULL 
) const

Returns relationship between a region described and this label; if parent is set, it will consider point labels at the very beginning and end of parent to be within a region that borders them (this makes it possible to DELETE capture all labels with a Select All).

Definition at line 1356 of file LabelTrack.cpp.

References AFTER_LABEL, BEFORE_LABEL, BEGINS_IN_LABEL, ENDS_IN_LABEL, getT0(), getT1(), gPrefs, SURROUNDS_LABEL, and WITHIN_LABEL.

1359 {
1360  bool retainLabels = false;
1361 
1362  wxASSERT(reg_t0 <= reg_t1);
1363  gPrefs->Read(wxT("/GUI/RetainLabels"), &retainLabels);
1364 
1365  if(retainLabels) {
1366 
1367  // Desired behavior for edge cases: The length of the selection is smaller
1368  // than the length of the label if the selection is within the label or
1369  // matching exactly a (region) label.
1370 
1371  if (reg_t0 < getT0() && reg_t1 > getT1())
1372  return SURROUNDS_LABEL;
1373  else if (reg_t1 < getT0())
1374  return BEFORE_LABEL;
1375  else if (reg_t0 > getT1())
1376  return AFTER_LABEL;
1377 
1378  else if (reg_t0 >= getT0() && reg_t0 <= getT1() &&
1379  reg_t1 >= getT0() && reg_t1 <= getT1())
1380  return WITHIN_LABEL;
1381 
1382  else if (reg_t0 >= getT0() && reg_t0 <= getT1())
1383  return BEGINS_IN_LABEL;
1384  else
1385  return ENDS_IN_LABEL;
1386 
1387  } else {
1388 
1389  // AWD: Desired behavior for edge cases: point labels bordered by the
1390  // selection are included within it. Region labels are included in the
1391  // selection to the extent that the selection covers them; specifically,
1392  // they're not included at all if the selection borders them, and they're
1393  // fully included if the selection covers them fully, even if it just
1394  // borders their endpoints. This is just one of many possible schemes.
1395 
1396  // The first test catches bordered point-labels and selected-through
1397  // region-labels; move it to third and selection edges become inclusive
1398  // WRT point-labels.
1399  if (reg_t0 <= getT0() && reg_t1 >= getT1())
1400  return SURROUNDS_LABEL;
1401  else if (reg_t1 <= getT0())
1402  return BEFORE_LABEL;
1403  else if (reg_t0 >= getT1())
1404  return AFTER_LABEL;
1405 
1406  // At this point, all point labels should have returned.
1407 
1408  else if (reg_t0 > getT0() && reg_t0 < getT1() &&
1409  reg_t1 > getT0() && reg_t1 < getT1())
1410  return WITHIN_LABEL;
1411 
1412  // Knowing that none of the other relations match simplifies remaining
1413  // tests
1414  else if (reg_t0 > getT0() && reg_t0 < getT1())
1415  return BEGINS_IN_LABEL;
1416  else
1417  return ENDS_IN_LABEL;
1418 
1419  }
1420 }
AudacityPrefs * gPrefs
Definition: Prefs.cpp:73
double getT1() const
Definition: LabelTrack.h:62
double getT0() const
Definition: LabelTrack.h:61

Member Data Documentation

SelectedRegion LabelStruct::selectedRegion
wxString LabelStruct::title
bool LabelStruct::updated

Pixel position of label.

Definition at line 101 of file LabelTrack.h.

Referenced by AdjustEdge(), SetLabelCommand::Apply(), LabelStruct(), and MoveLabel().

int LabelStruct::width
mutable

Text of the label.

Definition at line 93 of file LabelTrack.h.

Referenced by DrawText(), DrawTextBox(), LabelStruct(), and LabelTrack::OverTextBox().

int LabelStruct::x
mutable

width of the text in pixels.

Definition at line 96 of file LabelTrack.h.

Referenced by DrawLines(), DrawTextBox(), and LabelStruct().

int LabelStruct::x1
mutable

Pixel position of left hand glyph.

Definition at line 97 of file LabelTrack.h.

Referenced by DrawLines(), DrawTextBox(), and LabelStruct().

int LabelStruct::xText
mutable

Pixel position of right hand glyph.

Definition at line 98 of file LabelTrack.h.

Referenced by DrawText(), DrawTextBox(), getXPos(), LabelStruct(), and LabelTrack::OverTextBox().

int LabelStruct::y
mutable

Pixel position of left hand side of text box.

Definition at line 99 of file LabelTrack.h.

Referenced by DrawLines(), DrawText(), DrawTextBox(), LabelStruct(), LabelTrack::OverTextBox(), and LabelTrack::ShowContextMenu().


The documentation for this class was generated from the following files: