class KRuler

A ruler widget. More...

Definition#include <kruler.h>
InheritsQFrame (qt)
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Types

Public Methods

Public Slots

Protected Methods


Detailed Description

A ruler widget.

The vertical ruler looks similar to this:


    meters                       inches

    ------   <--- end mark  ---> ------
        --                            -
        --   <---little mark--->     --
        --                            -
        --                          ---
       ---   <---medium mark          -
        --                           --
        --        tiny mark---->      -
        --                         ----
        --                            -
      ----   <-----big mark          --
        --                            -
      |>--   <--ruler pointer-->   |>--


There are tiny marks, little marks, medium marks, and big marks along the ruler.

To receive mouse clicks or mouse moves, the class has to be overloaded.

For performance reasons, the public methods don't call QWidget::repaint(). (Slots do, see documentation below.) All the changed settings will be painted once after leaving to the main event loop. For performance painting the slot methods should be used, they do a fast QWidget::repaint() call after changing the values. For setting multiple values like minValue(), maxValue(), offset() etc. using the public methods is recommended so the widget will be painted only once when entering the main event loop.

enum direction {horizontal, vertical }

Direction of the ruler. Has to be defined when constructing the widget.

enum metric_style {custom=0, pixel, inch, millimetres, centimetres, metres }

The types of units used.

enum paint_style {flat, raised, sunken }

The style (or look) of the ruler.

 KRuler (direction dir, QWidget *parent=0, const char *name=0, WFlags f=0, bool allowLines=TRUE)

Constructor, requires the ruler direction.

parent, name, f and allowLines are passed to QFrame. The default look is a raised widget but may be changed with the inherited QFrame methods.

Parameters:
dirCirection of the ruler.
parentWill be handed over to QFrame.
nameWill be handed over to QFrame.
fWill be handed over to QFrame.
allowLinesWill be handed over to QFrame.

 KRuler (direction dir, int widgetWidth, QWidget *parent=0, const char *name=0, WFlags f=0, bool allowLines=TRUE)

Constructor, requires the direction of the ruler and an initial width.

The width sets the fixed width of the widget. This is usefullif you want to draw the ruler bigger or smaller than the default size. Note: The size of the marks doesn't change. parent, name, f and allowLines are passed to QFrame.

Parameters:
dirDirection of the ruler.
widgetWidthFixed width of the widget.
parentWill be handed over to QFrame.
nameWill be handed over to QFrame.
fWill be handed over to QFrame.
allowLinesWill be handed over to QFrame.

KRuler ()

Destructor.

void  setMinValue (int)

Set the minimal value of the ruler pointer (default is 0).

This method calls update() so that the widget is painted after leaving to the main event loop.

inline int  getMinValue ()

[const]

Retrieve the minimal value of the ruler pointer.

void  setMaxValue (int)

Set the maximum value of the ruler pointer (default is 100).

This method calls update() so that the widget is painted after leaving to the main event loop.

inline int  getMaxValue ()

[const]

returns the maximal value of the ruler pointer.

void  setRange (int min, int max)

Set minimum and maxmimum values of the ruler pointer.

This method calls update() so that the widget is painted after leaving to the main event loop.

void  setValue (int)

Set the value of the ruler pointer.

The value is indicated by painting the ruler pointer at the corresponding position. This method calls update() so that the widget is painted after leaving to the main event loop.

void  setTinyMarkDistance (int)

Set distance between tiny marks.

This is mostly used in the English system (inches) with distance of 1.

inline int  getTinyMarkDistance ()

[const]

Retrieve the distance between tiny marks.

void  setLittleMarkDistance (int)

Set the distance between little marks.

The default value is 1 in the metric system and 2 in the English (inches) system.

inline int  getLittleMarkDistance ()

[const]

Retrieve the distance between little marks.

void  setMediumMarkDistance (int)

Set the distance between medium marks.

For English (inches) styles it defaults to twice the little mark distance. For metric styles it defaults to five times the little mark distance.

void  setBigMarkDistance (int)

Set distance between big marks.

For English (inches) or metric styles it is twice the medium mark distance.

inline int  getBigMarkDistance ()

[const]

Retrieve the distance between big marks.

void  showTinyMarks (bool)

Show/hide tiny marks.

void  showLittleMarks (bool)

Show/hide little marks.

void  showMediumMarks (bool)

Show/hide medium marks.

void  showBigMarks (bool)

Show/hide big marks.

void  showEndMarks (bool)

Show/hide end marks.

void  setValuePerLittleMark (int)

Sets the value that is shown per little mark.

For metric systems this is 1 per mark. Note: If you set the value for little marks the values for medium and big marks are updated according to the the values set in the setXXMarkDistance(int) methods.

void  setValuePerMediumMark (int)

Sets the value that is shown per medium mark.

For metric systems this is 5. Display of little marks is automatically disabled and big marks are updated according to the values set in the setBigMarkDistance() method.

void  setValuePerBigMark (int)

Sets the value that is shown per big mark.

For metric systems this is 1 Display of little and medium marks marks is disabled.

void  showLittleMarkLabel (bool)

Show/hide number values of the little marks.

Default is false.

void  showMediumMarkLabel (bool)

Show/hide number values of the medium marks.

Default is false.

void  showBigMarkLabel (bool)

Show/hide number values of the big marks.

Default is false.

void  showEndLabel (bool)

Show/hide number values of the end marks.

Default is false.

void  setEndLabel (const QString&)

Set the label this is drawn at the beginning of the visible part of the ruler.

void  setRulerStyle (metric_style)

Set up the necessary tasks for the provided styles.

A convenience method.

void  setRulerStyle (paint_style)

currently not implemented

inline paint_style  getPaintRulerStyle ()

[const]

currently not implemented

void  setTickStyle (paint_style)

currently not implemented

inline paint_style  getTickStyle ()

[const]

currently not implemented

void  setPixelPerMark (double)

Set the number of pixels between two base marks.

Calling this method stretches or shrinks your ruler.

For pixel display (metric_style) the value is 10.0 marks per pixel ;-) For English (inches) it is 9.0, and for centimetres ~2.835 -> 3.0 . If you want to magnify your part of display, you have to adjust the mark distance @bf here. Notice: The double type is only supported to give the possibility of having some double values. It should be used with care. Using values below 10.0 shows visible jumps of markpositions (e.g. 2.345). Using whole numbers is highly recommended. To use int values use setPixelPerMark((int)your_int_value); default: 1 mark per 10 pixels

inline double  getPixelPerMark ()

[const]

Retrieve the number of pixels between two base marks.

void  slideup (int count = 1)

Set the number of pixels by which the ruler may slide up.

This doesn't affect the position of the ruler pointer. Only the visible part of the ruler is moved.

void  slidedown (int count = 1)

Set the number of pixels by which the ruler may slide down.

This doesn't affect the position of the ruler pointer. Only the visible part of the ruler is moved.

void  setOffset (int offset)

Set ruler slide offset.

This is like slideup() or slidedown() with an absolute offset from the start of the ruler.

inline int  getOffset ()

[const]

Get the current ruler offset.

void  slotNewValue (int)

[slot]

Sets the pointer to a new position.

The offset is NOT updated. QWidget::repaint() is called afterwards.

void  slotNewOffset (int)

[slot]

Sets the ruler marks to a new position.

The pointer is NOT updated. QWidget::repaint() is called afterwards.