commit
c8a88bbb58
@ -0,0 +1,70 @@ |
|||||||
|
#include <QPainter> |
||||||
|
#include <QDebug> |
||||||
|
|
||||||
|
#include "UBActionableWidget.h" |
||||||
|
|
||||||
|
UBActionableWidget::UBActionableWidget(QWidget *parent, const char *name):QWidget(parent) |
||||||
|
, mShowActions(false) |
||||||
|
{ |
||||||
|
setObjectName(name); |
||||||
|
mActions.clear(); |
||||||
|
} |
||||||
|
|
||||||
|
UBActionableWidget::~UBActionableWidget() |
||||||
|
{ |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
void UBActionableWidget::addAction(eAction act) |
||||||
|
{ |
||||||
|
if(!mActions.contains(act)){ |
||||||
|
mActions << act; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
void UBActionableWidget::removeAction(eAction act) |
||||||
|
{ |
||||||
|
if(mActions.contains(act)){ |
||||||
|
mActions.remove(mActions.indexOf(act)); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
void UBActionableWidget::removeAllActions() |
||||||
|
{ |
||||||
|
mActions.clear(); |
||||||
|
} |
||||||
|
|
||||||
|
void UBActionableWidget::setActionsVisible(bool bVisible) |
||||||
|
{ |
||||||
|
mShowActions = bVisible; |
||||||
|
} |
||||||
|
|
||||||
|
bool UBActionableWidget::shouldClose(QPoint p) |
||||||
|
{ |
||||||
|
qDebug() << "Should close: " << p.x() << "," << p.y(); |
||||||
|
bool close = false; |
||||||
|
|
||||||
|
if(mShowActions && |
||||||
|
p.x() >= 0 && |
||||||
|
p.x() <= ACTIONSIZE && |
||||||
|
p.y() >= 0 && |
||||||
|
p.y() <= ACTIONSIZE){ |
||||||
|
close = true; |
||||||
|
} |
||||||
|
|
||||||
|
return close; |
||||||
|
} |
||||||
|
|
||||||
|
void UBActionableWidget::paintEvent(QPaintEvent* ev) |
||||||
|
{ |
||||||
|
if(mShowActions){ |
||||||
|
QPainter p(this); |
||||||
|
if(mActions.contains(eAction_Close)){ |
||||||
|
p.drawPixmap(0, 0, 16, 16, QPixmap(":images/close.svg")); |
||||||
|
}else if(mActions.contains(eAction_MoveUp)){ |
||||||
|
// Implement me later
|
||||||
|
}else if(mActions.contains(eAction_MoveDown)){ |
||||||
|
// Implement me later
|
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,35 @@ |
|||||||
|
#ifndef UBACTIONABLEWIDGET_H |
||||||
|
#define UBACTIONABLEWIDGET_H |
||||||
|
|
||||||
|
#include <QWidget> |
||||||
|
#include <QPaintEvent> |
||||||
|
|
||||||
|
#define ACTIONSIZE 16 |
||||||
|
|
||||||
|
typedef enum{ |
||||||
|
eAction_Close, |
||||||
|
eAction_MoveUp, |
||||||
|
eAction_MoveDown |
||||||
|
}eAction; |
||||||
|
|
||||||
|
class UBActionableWidget : public QWidget |
||||||
|
{ |
||||||
|
Q_OBJECT |
||||||
|
public: |
||||||
|
UBActionableWidget(QWidget* parent=0, const char* name="UBActionableWidget"); |
||||||
|
~UBActionableWidget(); |
||||||
|
void addAction(eAction act); |
||||||
|
void removeAction(eAction act); |
||||||
|
void removeAllActions(); |
||||||
|
void setActionsVisible(bool bVisible); |
||||||
|
bool shouldClose(QPoint p); |
||||||
|
|
||||||
|
protected: |
||||||
|
void paintEvent(QPaintEvent* ev); |
||||||
|
QVector<eAction> mActions; |
||||||
|
|
||||||
|
private: |
||||||
|
bool mShowActions; |
||||||
|
}; |
||||||
|
|
||||||
|
#endif // UBACTIONABLEWIDGET_H
|
Loading…
Reference in new issue