Uploaded MSHV v2.69 Non-Gendered
179
src/HvSlider_H/hvslider_h.cpp
Normal file
@ -0,0 +1,179 @@
|
||||
/* MSHV AggressiveDialog
|
||||
* Copyright 2015 Hrisimir Hristov, LZ2HV
|
||||
* (Edited by Harper Innes, VK1TTY - to remove Gendered Language and Replace with Non-Gendered language) NOTE:May be used under the terms of the GNU General Public License (GPL)
|
||||
*/
|
||||
#include "hvslider_h.h"
|
||||
//
|
||||
HvSlider_H::HvSlider_H(int MaxValue, int x_pos, int y_pos, QPixmap sld_left,
|
||||
QPixmap sld_track, QPixmap sld_right, QPixmap tumb, QPixmap tumb_over, QWidget * parent)
|
||||
: QWidget(parent)
|
||||
{
|
||||
saved_val = 0;
|
||||
MaxValuein = MaxValue;
|
||||
move(x_pos, y_pos);
|
||||
pix_sld_left = sld_left;
|
||||
pix_sld_track = sld_track;
|
||||
pix_sld_right = sld_right;
|
||||
pix_tumb = tumb;
|
||||
pix_tumb_over = tumb_over;
|
||||
setFixedSize((pix_sld_left.width()+pix_sld_track.width()+pix_sld_right.width()),
|
||||
pix_sld_track.height());
|
||||
|
||||
Y_tumb_offset =(pix_sld_track.height() - pix_tumb.height())/2;
|
||||
Sl_track_range = pix_sld_track.width() - pix_tumb.width();
|
||||
Sl_track_begin = pix_sld_left.width();
|
||||
Sl_track_end = Sl_track_begin + Sl_track_range;
|
||||
MidDel = pix_sld_track.width()/MaxValuein/2;
|
||||
upd_pos_x = Sl_track_begin;
|
||||
Reg_offset = 0;
|
||||
wheeldata = 0;
|
||||
wheelevent = true;
|
||||
rightbutton = true;
|
||||
|
||||
if (pix_tumb.mask().isNull()) // vazno za mov evanta i release evanta mask().contains ima_niama_maska ???
|
||||
pix_tumb.setMask(pix_tumb.createHeuristicMask(true));
|
||||
|
||||
if (pix_tumb_over.mask().isNull()) // vazno za mov evanta i release evanta mask().contains ima_niama_maska ???
|
||||
pix_tumb_over.setMask(pix_tumb_over.createHeuristicMask(true));
|
||||
|
||||
Tregion = pix_tumb.mask();
|
||||
Tregion.translate(upd_pos_x, Y_tumb_offset);
|
||||
|
||||
setPix_tumb(pix_tumb);
|
||||
update();
|
||||
SetValue(0);
|
||||
}
|
||||
HvSlider_H::~HvSlider_H()
|
||||
{}
|
||||
void HvSlider_H::setPix_tumb(QPixmap pix)
|
||||
{
|
||||
upd_tumb = pix;
|
||||
update(Sl_track_begin, Y_tumb_offset, pix_sld_track.width(), pix_tumb.height());
|
||||
}
|
||||
void HvSlider_H::paintEvent(QPaintEvent *)
|
||||
{
|
||||
QPainter painter(this);
|
||||
painter.drawPixmap(0, 0, pix_sld_left);
|
||||
painter.drawPixmap(pix_sld_left.width(), 0, pix_sld_track);
|
||||
painter.drawPixmap(pix_sld_left.width() + pix_sld_track.width(), 0, pix_sld_right);
|
||||
painter.drawPixmap(upd_pos_x, Y_tumb_offset, upd_tumb);
|
||||
}
|
||||
void HvSlider_H::mousePressEvent ( QMouseEvent *event)
|
||||
{
|
||||
if (event->button() == Qt::LeftButton)
|
||||
{
|
||||
//MouseDragThumb(true);
|
||||
if (!(Tregion.contains(event->pos())))
|
||||
{
|
||||
Reg_offset = pix_tumb.width()/2 - MidDel;// -MidDel moze i tuk HV za da zastava po sredata na delenieto!!!
|
||||
MoveSlider(event->x());
|
||||
}
|
||||
else
|
||||
{
|
||||
Reg_offset = event->x() - upd_pos_x - MidDel;// -MidDel moze i tuk HV za da zastava po sredata na delenieto!!!
|
||||
setPix_tumb(pix_tumb_over);
|
||||
}
|
||||
}
|
||||
|
||||
if (rightbutton == true)
|
||||
{
|
||||
if (event->button() == Qt::RightButton)
|
||||
Move(MaxValuein/2, false);
|
||||
}
|
||||
}
|
||||
void HvSlider_H::mouseReleaseEvent(QMouseEvent *event)
|
||||
{
|
||||
if (event->button() == Qt::LeftButton)
|
||||
{
|
||||
setPix_tumb(pix_tumb);
|
||||
//MouseDragThumb(false);
|
||||
}
|
||||
|
||||
if (rightbutton == true)
|
||||
{
|
||||
if (event->button() == Qt::RightButton)
|
||||
setPix_tumb(pix_tumb);
|
||||
}
|
||||
}
|
||||
void HvSlider_H::mouseMoveEvent(QMouseEvent *event)
|
||||
{
|
||||
if (event->buttons() == Qt::LeftButton)
|
||||
{
|
||||
MoveSlider(event->x());
|
||||
}
|
||||
}
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
void HvSlider_H::MoveSlider(int pos)
|
||||
{
|
||||
upd_pos_x = pos - Reg_offset ; //+MidDel moze i tuk HV za da zastava po sredata na delenieto!!! qDebug()<< "WWW";
|
||||
register unsigned int a;
|
||||
a=MaxValuein*((unsigned int)upd_pos_x - Sl_track_begin);
|
||||
a/=(unsigned int)Sl_track_range;
|
||||
|
||||
if ((pos - Reg_offset) >= Sl_track_begin && (pos - Reg_offset) <= Sl_track_end)
|
||||
{
|
||||
Move(a, false);
|
||||
}
|
||||
if (pos - Reg_offset < Sl_track_begin )
|
||||
{
|
||||
Move(0, false);
|
||||
}
|
||||
if (pos - Reg_offset > Sl_track_end )
|
||||
{
|
||||
Move(MaxValuein, false);
|
||||
}
|
||||
}
|
||||
void HvSlider_H::Move(int val, bool mouseMove)
|
||||
{
|
||||
register unsigned int b;
|
||||
b=(unsigned int)Sl_track_range*(unsigned int)val;
|
||||
b/=(unsigned int)MaxValuein;
|
||||
upd_pos_x = b + Sl_track_begin;
|
||||
Tregion = pix_tumb.mask();
|
||||
Tregion.translate(upd_pos_x, Y_tumb_offset);
|
||||
|
||||
if (mouseMove == true)
|
||||
setPix_tumb(pix_tumb);
|
||||
else
|
||||
setPix_tumb(pix_tumb_over);
|
||||
|
||||
emit SendValue(val);
|
||||
wheeldata = val;
|
||||
saved_val = val;
|
||||
}
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
void HvSlider_H::SetValue(int val)
|
||||
{
|
||||
if (val >= 0 && val <= MaxValuein)
|
||||
{
|
||||
Move(val, true);
|
||||
}
|
||||
if (val < 0 )
|
||||
{
|
||||
Move(0, true);
|
||||
}
|
||||
if (val > MaxValuein)
|
||||
{
|
||||
Move(MaxValuein, true);
|
||||
}
|
||||
}
|
||||
void HvSlider_H::wheelEvent(QWheelEvent *event)
|
||||
{
|
||||
if (wheelevent == true)
|
||||
{
|
||||
//int Step = event->delta() / 120;
|
||||
int Step = event->angleDelta().y() / 120;//2.56
|
||||
wheeldata = wheeldata + Step;
|
||||
SetValue(wheeldata);
|
||||
}
|
||||
}
|
||||
/*void HvSlider_H::MouseWheelEvent(bool event_b)
|
||||
{
|
||||
wheelevent = event_b;
|
||||
}
|
||||
void HvSlider_H::MouseRightButtonEvent(bool event_b)
|
||||
{
|
||||
rightbutton = event_b;
|
||||
}*/
|
||||
|
||||
|
64
src/HvSlider_H/hvslider_h.h
Normal file
@ -0,0 +1,64 @@
|
||||
/* MSHV AggressiveDialog
|
||||
* Copyright 2015 Hrisimir Hristov, LZ2HV
|
||||
* (Edited by Harper Innes, VK1TTY - to remove Gendered Language and Replace with Non-Gendered language) NOTE:May be used under the terms of the GNU General Public License (GPL)
|
||||
*/
|
||||
|
||||
#ifndef HVSLIDER_H_H
|
||||
#define HVSLIDER_H_H
|
||||
//
|
||||
#include <qwidget.h>
|
||||
#include <qpainter.h>
|
||||
#include <qbitmap.h>
|
||||
#include <qevent.h>
|
||||
//
|
||||
class HvSlider_H : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
HvSlider_H(int MaxValue, int x_pos, int y_pos, QPixmap pic_sld_left, QPixmap pic_sld_track,
|
||||
QPixmap pic_sld_right, QPixmap pic_tumb, QPixmap pic_tumb_over, QWidget * parent = 0);
|
||||
virtual ~HvSlider_H();
|
||||
|
||||
int get_value(void) const
|
||||
{
|
||||
return saved_val;
|
||||
}; //hv
|
||||
void SetValue(int);
|
||||
|
||||
private: // 4astni ne se vizdat ot van
|
||||
QPixmap upd_tumb;
|
||||
QPixmap pix_sld_left;
|
||||
QPixmap pix_sld_track;
|
||||
QPixmap pix_sld_right;
|
||||
QPixmap pix_tumb;
|
||||
QPixmap pix_tumb_over;
|
||||
QRegion Tregion;
|
||||
int MaxValuein;
|
||||
int upd_pos_x;
|
||||
int Reg_offset, Y_tumb_offset, Sl_track_range, Sl_track_begin, Sl_track_end;
|
||||
int MidDel;
|
||||
int wheeldata;
|
||||
bool wheelevent, rightbutton;
|
||||
int saved_val;
|
||||
|
||||
signals:
|
||||
void SendValue(int);
|
||||
//void MouseDragThumb(bool);
|
||||
|
||||
//public slots:
|
||||
//void SetValue(int);
|
||||
//void MouseWheelEvent(bool);
|
||||
//void MouseRightButtonEvent(bool);
|
||||
|
||||
protected:
|
||||
void paintEvent(QPaintEvent *);
|
||||
void mouseMoveEvent(QMouseEvent *);
|
||||
void mousePressEvent ( QMouseEvent *);
|
||||
void mouseReleaseEvent(QMouseEvent *);
|
||||
void wheelEvent(QWheelEvent *);
|
||||
void setPix_tumb(QPixmap);
|
||||
void Move(int, bool);
|
||||
void MoveSlider(int);
|
||||
|
||||
};
|
||||
#endif
|
19
src/HvSlider_H/hvslider_h.qrc
Normal file
@ -0,0 +1,19 @@
|
||||
<!DOCTYPE RCC><RCC version="1.0">
|
||||
<qresource>
|
||||
<file>pic/sld_h_track.png</file>
|
||||
<file>pic/sld_h_left.png</file>
|
||||
<file>pic/sld_h_right.png</file>
|
||||
<file>pic/tumb_h_over_play.png</file>
|
||||
<file>pic/tumb_h_play.png</file>
|
||||
<file>pic/tumb_h_over_rec.png</file>
|
||||
<file>pic/tumb_h_rec.png</file>
|
||||
<file>pic/sld_h_track_b.png</file>
|
||||
<file>pic/sld_h_left_b.png</file>
|
||||
<file>pic/sld_h_right_b.png</file>
|
||||
<file>pic/tumb_h_over_play_b.png</file>
|
||||
<file>pic/tumb_h_play_b.png</file>
|
||||
<file>pic/tumb_h_over_rec_b.png</file>
|
||||
<file>pic/tumb_h_rec_b.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
BIN
src/HvSlider_H/pic/sld_h_left.png
Normal file
After Width: | Height: | Size: 127 B |
BIN
src/HvSlider_H/pic/sld_h_left_b.png
Normal file
After Width: | Height: | Size: 114 B |
BIN
src/HvSlider_H/pic/sld_h_right.png
Normal file
After Width: | Height: | Size: 131 B |
BIN
src/HvSlider_H/pic/sld_h_right_b.png
Normal file
After Width: | Height: | Size: 114 B |
BIN
src/HvSlider_H/pic/sld_h_track.png
Normal file
After Width: | Height: | Size: 199 B |
BIN
src/HvSlider_H/pic/sld_h_track_b.png
Normal file
After Width: | Height: | Size: 156 B |
BIN
src/HvSlider_H/pic/tumb_h_over_play.png
Normal file
After Width: | Height: | Size: 112 B |
BIN
src/HvSlider_H/pic/tumb_h_over_play_b.png
Normal file
After Width: | Height: | Size: 143 B |
BIN
src/HvSlider_H/pic/tumb_h_over_rec.png
Normal file
After Width: | Height: | Size: 113 B |
BIN
src/HvSlider_H/pic/tumb_h_over_rec_b.png
Normal file
After Width: | Height: | Size: 143 B |
BIN
src/HvSlider_H/pic/tumb_h_play.png
Normal file
After Width: | Height: | Size: 112 B |
BIN
src/HvSlider_H/pic/tumb_h_play_b.png
Normal file
After Width: | Height: | Size: 143 B |
BIN
src/HvSlider_H/pic/tumb_h_rec.png
Normal file
After Width: | Height: | Size: 113 B |
BIN
src/HvSlider_H/pic/tumb_h_rec_b.png
Normal file
After Width: | Height: | Size: 143 B |