rock_widget_collection  0.1
Classes | Public Slots | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
RockSlider Class Reference

#include <RockSlider.h>

Inherits QSlider.

Public Slots

void addMarker (int position, std::string comment="")
 

Public Member Functions

 RockSlider (QWidget *parent)
 
 ~RockSlider ()
 

Protected Member Functions

void paint_p (QPainter *painter)
 
int rangeValueToPixelPos (int pos) const
 
void paintEvent (QPaintEvent *)
 

Protected Attributes

std::vector< Entry > markers
 

Detailed Description

Definition at line 7 of file RockSlider.h.

Constructor & Destructor Documentation

◆ RockSlider()

RockSlider::RockSlider ( QWidget *  parent)

Definition at line 6 of file RockSlider.cc.

6  :
7  QSlider(parent)
8 {
9 }

◆ ~RockSlider()

RockSlider::~RockSlider ( )

Definition at line 11 of file RockSlider.cc.

12 {
13 }

Member Function Documentation

◆ addMarker

void RockSlider::addMarker ( int  position,
std::string  comment = "" 
)
slot

Definition at line 16 of file RockSlider.cc.

16  {
17  Entry e;
18  e.position = position;
19  e.comment = comment;
20  markers.push_back(e);
21 }
std::vector< Entry > markers
Definition: RockSlider.h:25

◆ paint_p()

void RockSlider::paint_p ( QPainter *  painter)
protected

Definition at line 44 of file RockSlider.cc.

45 {
46  QStyleOptionSlider opt;
47  initStyleOption(&opt);
48  QRect gr = style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderGroove, this);
49 // QRect sr = style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderHandle, this);
50 
51  for(int i=0;i<markers.size();i++){
52  int pos = rangeValueToPixelPos(markers[i].position);
53  if(orientation() == Qt::Horizontal){
54  painter->drawLine(pos,gr.top(),pos,gr.bottom());
55  }else{
56  painter->drawLine(gr.left(),pos,gr.right(),pos);
57  }
58  }
59 }
int rangeValueToPixelPos(int pos) const
Definition: RockSlider.cc:23
std::vector< Entry > markers
Definition: RockSlider.h:25

◆ paintEvent()

void RockSlider::paintEvent ( QPaintEvent *  e)
protected

Definition at line 62 of file RockSlider.cc.

63 {
64  QSlider::paintEvent(e);
65  QPainter p(this);
66  paint_p(&p);
67 }
void paint_p(QPainter *painter)
Definition: RockSlider.cc:44

◆ rangeValueToPixelPos()

int RockSlider::rangeValueToPixelPos ( int  pos) const
protected

Definition at line 23 of file RockSlider.cc.

24 {
25  QStyleOptionSlider opt;
26  initStyleOption(&opt);
27  QRect gr = style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderGroove, this);
28  QRect sr = style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderHandle, this);
29  int sliderMin, sliderMax, sliderLength;
30 
31  if (orientation() == Qt::Horizontal) {
32  sliderLength = sr.width();
33  sliderMin = gr.x();
34  sliderMax = gr.right() - sliderLength + 1;
35  } else {
36  sliderLength = sr.height();
37  sliderMin = gr.y();
38  sliderMax = gr.bottom() - sliderLength + 1;
39  }
40  //TODO Dosn't fit perfect, a few pixel misaligment is there, reason unknown...
41  return QStyle::sliderPositionFromValue(minimum(), maximum(), pos, sliderMax - sliderMin, opt.upsideDown) + sliderLength/2.0;
42 }

Member Data Documentation

◆ markers

std::vector<Entry> RockSlider::markers
protected

Definition at line 25 of file RockSlider.h.


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