### IStandardTabRuler

  Concrete class implementing the IMTabRuler protocol. Do not derive from this class.

### IStandardTabRuler - Member Functions and Data by Group

### Constructors & Destructor

Use the constructors and destructor in this group to create and destroy objects of class IStandardTabRuler.

~IStandardTabRuler

      public:
      virtual ~IStandardTabRuler()

  Destroys the IStandardRulerTab.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

IStandardTabRuler
  These functions construct objects of the IStandardTabRuler class.

  Overload 1

      public:
      IStandardTabRuler(const IMTabRuler& ruler)

  Use this constructor to create a standard tab ruler that is based on the given IMTabRuler.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 2

      public:
      IStandardTabRuler(GCoord autoSpacing)

  Creates a tab ruler conaining only auto tabs, autoSpacing from 0 to eternity. Use this constructor to create an IStandardTabRuler whose tab positions are initialized using the given automatic spacing metric.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 3

      public:
      IStandardTabRuler()

  Default constructor to create an empty standard tab ruler.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 4

      public:
      IStandardTabRuler( size_t tabCount,
                         const ITabStop* tabs,
                         GCoord autoSpacing )

  Creates a tub ruler containing tabs as provided, then autoSpacing after the last tab to eternity. Use this constructor to create a standard tab ruler whose initial values are set using the given number of tabs, tab stops, and automatic spacing.
  tabCount
    Number of tabs in array pointed to by "tabs".
  tabs
    Array of tabs to populate the ruler with (the tabs are copied; the caller retains ownership of the tabs and the array that contains them).
  autoSpacing
    Spacing interval for autotabs

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Copying the Tab Ruler

Use this function to clone a tab ruler.

clone

      public:
      virtual IMTabRuler* clone() const

  Returns a new tab ruler that is identical to this one.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Modifying Tab Stops

Use these functions to move, add, or remove tab stops to the ruler.

addTab

      public:
      virtual void addTab(const ITabStop& tabToAdd)

  Adds a new tab stop to the ruler. If the new tab stop has the same position as an existing tab stop, the existing one is removed.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

moveTab

      public:
      virtual void
        moveTab( GCoord fromPosition,
                 GCoord toPosition )

  Moves a tab stop to a new position. If the ruler contains a tab stop at fromPosition, moves it to toPosition; otherwise, does nothing.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

removeTab

      public:
      virtual void removeTab(GCoord position)

  Removes a tab stop from the ruler. If the ruler contains a tab stop at "position," it is removed; otherwise, nothing happens.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Obtaining a Copy of a Tab Stop

Use these functions to copy the specified tab stop.

firstTab

      public:
      virtual ITabStop firstTab() const

  Returns a copy of the first tab in the ruler. If an autoTab, it is at position zero, and all subsequent tabs will be autotabs at autoSpacing intervals.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

nextTab

      public:
      virtual ITabStop nextTab(GCoord position) const

  Returns a copy of the first tab in the ruler with fPosition > position. If it is an autotab, it is at an even multiple of autoSpacing, and all subsequent tabs will be autotabs at autoSpacing intervals.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Obtaining a Reference to a Tab Stop

Use these functions to get a constant or mutable reference to a tab stop.

operator []
  Returns a reference to a tab stop.

  Overload 1

      public:
      virtual const ITabStop& operator [](size_t ndx) const

  Returns a const reference to the "ndx"-th tab stop in the ruler.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 2

      public:
      virtual ITabStop& operator [](size_t ndx)

  Returns a modifiable reference to the "ndx"-th tab stop in the ruler.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Obtaining Information about Tab Stops

Use these functions to determine the number of tab stops, the space interval between stop, or if the ruler contains a tab stop that matches the given tab stop position and type.

autoSpacing

      public:
      virtual GCoord autoSpacing() const

  Returns the interval for autotabs.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

contains

      public:
      virtual bool contains(const ITabStop& tabToTest) const

  Returns true if the ruler contains a tab stop with the same position and type as tabStop.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

tabCount

      public:
      virtual size_t tabCount() const

  Returns the number of tab stops in this ruler.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### IStandardTabRuler - Inherited Member Functions and Data

#### Inherited Public Functions

  IMTabRuler

  -     virtual GCoord autoSpacing() const = 0

  -     virtual IMTabRuler* clone() const = 0

  -     virtual ITabStop firstTab() const = 0

  -     virtual ITabStop nextTab(GCoord position) const = 0

  -     bool operator ==(const IMTabRuler& other) const

  -     virtual const ITabStop& operator [](size_t ndx) const = 0

  -     virtual ITabStop& operator [](size_t ndx) = 0

  -     virtual size_t tabCount() const = 0

#### Inherited Public Data

  - None

#### Inherited Protected Functions

  - None

#### Inherited Protected Data

  - None