[ #7901 ] Cleanup the changes

This commit is contained in:
Emmanuel Lepage
2011-12-19 13:41:35 -05:00
parent 354315a78d
commit 5fb39c4aec
7 changed files with 112 additions and 421 deletions

View File

@ -692,3 +692,68 @@ void CallView::clearHistory()
void CallView::keyPressEvent(QKeyEvent* event) {
SFLPhone::app()->view()->keyPressEvent(event);
}
/*****************************************************************************
* *
* Overlay *
* *
****************************************************************************/
///Constructor
CallViewOverlay::CallViewOverlay(QWidget* parent) : QWidget(parent),m_pIcon(0),m_pTimer(0),m_enabled(true),m_black("black")
{
m_black.setAlpha(75);
}
///Add a widget (usually an icon) in the corner
void CallViewOverlay::setCornerWidget(QWidget* wdg) {
wdg->setParent ( this );
wdg->setMinimumSize ( 100 , 100 );
wdg->resize ( 100 , 100 );
wdg->move ( width()-100 , height()-100 );
m_pIcon = wdg;
}
///Overload the setVisible method to trigger the timer
void CallViewOverlay::setVisible(bool enabled) {
if (m_enabled != enabled) {
if (m_pTimer) {
m_pTimer->stop();
disconnect(m_pTimer);
}
m_pTimer = new QTimer(this); //TODO LEAK?
connect(m_pTimer, SIGNAL(timeout()), this, SLOT(changeVisibility()));
m_step = 0;
m_black.setAlpha(0);
repaint();
m_pTimer->start(10);
}
m_enabled = enabled;
QWidget::setVisible(enabled);
}
///How to paint the overlay
void CallViewOverlay::paintEvent(QPaintEvent* event) {
Q_UNUSED(event)
QPainter customPainter(this);
customPainter.fillRect(rect(),m_black);
}
///Be sure the event is always the right size
void CallViewOverlay::resizeEvent(QResizeEvent *e) {
Q_UNUSED(e)
if (m_pIcon) {
m_pIcon->setMinimumSize(100,100);
m_pIcon->move(width()-100,height()-100);
}
}
///Step by step animation to fade in/out
void CallViewOverlay::changeVisibility() {
m_step++;
m_black.setAlpha(0.1*m_step*m_step);
repaint();
if (m_step >= 35)
m_pTimer->stop();
}

View File

@ -56,62 +56,26 @@ class CallTreeItemDelegate : public QItemDelegate
class CallViewOverlay : public QWidget {
Q_OBJECT
public:
CallViewOverlay(QWidget* parent) : QWidget(parent),m_pIcon(0),m_pTimer(0),m_enabled(true),black("black")
{
black.setAlpha(75);
}
void setCornerWidget(QWidget* wdg) {
wdg->setParent(this);
wdg->setMinimumSize(100,100);
wdg->resize(100,100);
wdg->move(width()-100,height()-100);
m_pIcon = wdg;
}
//Constructor
CallViewOverlay(QWidget* parent);
void setVisible(bool enabled) {
if (m_enabled != enabled) {
if (m_pTimer) {
m_pTimer->stop();
disconnect(m_pTimer);
}
m_pTimer = new QTimer(this); //TODO LEAK
connect(m_pTimer, SIGNAL(timeout()), this, SLOT(changeVisibility()));
m_step = 0;
black.setAlpha(0);
repaint();
m_pTimer->start(10);
}
m_enabled = enabled;
QWidget::setVisible(enabled);
}
//Setters
void setCornerWidget(QWidget* wdg);
void setVisible(bool enabled);
protected:
void paintEvent(QPaintEvent* event) {
Q_UNUSED(event)
QPainter customPainter(this);
customPainter.fillRect(rect(),black);
}
virtual void resizeEvent(QResizeEvent *e) {
Q_UNUSED(e)
if (m_pIcon) {
m_pIcon->setMinimumSize(100,100);
m_pIcon->move(width()-100,height()-100);
}
}
virtual void paintEvent (QPaintEvent* event );
virtual void resizeEvent (QResizeEvent* e );
private:
QWidget* m_pIcon;
uint m_step;
QTimer* m_pTimer;
bool m_enabled;
QColor black;
QWidget* m_pIcon ;
uint m_step ;
QTimer* m_pTimer ;
bool m_enabled;
QColor m_black ;
private slots:
void changeVisibility() {
m_step++;
black.setAlpha(0.1*m_step*m_step);
repaint();
if (m_step >= 35)
m_pTimer->stop();
}
void changeVisibility();
};
///@class CallView Central tree widget managing active calls

View File

@ -493,7 +493,7 @@ call_state Call::actionPerformed(call_action action)
if (previousState < 11 && action < 5) {
changeCurrentState(actionPerformedStateMap[previousState][action]);
//execute the action associated with this transition
(this->*(actionPerformedFunctionMap[previousState][action]))(); //WARNING BUG //WARNING SEGFAULT //TODO remove this node, it was not a good idea, it is not stable
(this->*(actionPerformedFunctionMap[previousState][action]))();
qDebug() << "Calling action " << action << " on call with state " << previousState << ". Become " << m_CurrentState;
//return the new state
}

View File

@ -277,8 +277,9 @@ template<typename CallWidget, typename Index> void CallModel<CallWidget,Index>::
///Transfer this call to "target" number
template<typename CallWidget, typename Index> void CallModel<CallWidget,Index>::transfer(Call* toTransfer, QString target)
{
qDebug() << "Transferring call " << target;
qDebug() << "\n\n\n\n\nTransferring call " << toTransfer->getCallId() << target << "\n\n\n\n\n";
toTransfer->setTransferNumber(target);
toTransfer->changeCurrentState(CALL_STATE_TRANSFER);
toTransfer->actionPerformed(CALL_ACTION_ACCEPT);
toTransfer->changeCurrentState(CALL_STATE_OVER);
}

View File

@ -250,7 +250,6 @@ void CallTreeItem::dragEnterEvent ( QDragEnterEvent *e )
e->mimeData()->data( MIME_CALLID) != SFLPhone::model()->getCall(this)->getCallId()) {
m_pBtnTrans->setVisible(true);
emit showChilds(this);
m_pBtnConf->forceDragState(e);
m_isHover = true;
e->accept();
}
@ -258,7 +257,6 @@ void CallTreeItem::dragEnterEvent ( QDragEnterEvent *e )
m_pBtnConf->setVisible(true);
m_pBtnTrans->setVisible(true);
emit showChilds(this);
m_pBtnConf->forceDragState(e);
m_isHover = true;
e->accept();
}

View File

@ -9,8 +9,7 @@
#include <QDragLeaveEvent>
#include <QMimeData>
TranslucentButtons* TranslucentButtons::m_psActiveButton =0;
///Constructor
TranslucentButtons::TranslucentButtons(QWidget* parent):QPushButton(parent),m_enabled(true),m_pTimer(0),m_CurrentState(0),m_pImg(0)
{
setAcceptDrops(true);
@ -18,18 +17,17 @@ TranslucentButtons::TranslucentButtons(QWidget* parent):QPushButton(parent),m_en
m_CurrentColor.setAlpha(0);
}
///Destructor
TranslucentButtons::~TranslucentButtons()
{
if (m_psActiveButton == this)
m_psActiveButton=0;
}
///How to paint
void TranslucentButtons::paintEvent(QPaintEvent* event)
{
Q_UNUSED(event)
QPainter customPainter(this);
//kDebug() << m_CurrentColor.name();
//customPainter.setBackgroundMode( Qt::OpaqueMode );
customPainter.setBackground(m_CurrentColor);
customPainter.setBrush(m_CurrentColor);
customPainter.setPen(Qt::NoPen);
@ -46,6 +44,7 @@ void TranslucentButtons::paintEvent(QPaintEvent* event)
customPainter.drawText (rect(), Qt::AlignVCenter|Qt::AlignHCenter, text().replace("&","") );
}
///Override the visibility toggler
void TranslucentButtons::setVisible(bool enabled)
{
kDebug() << "Enabling!";
@ -67,6 +66,7 @@ void TranslucentButtons::setVisible(bool enabled)
QWidget::setVisible(enabled);
}
///Step by step animation
void TranslucentButtons::changeVisibility()
{
m_step++;
@ -78,56 +78,29 @@ void TranslucentButtons::changeVisibility()
void TranslucentButtons::dragEnterEvent ( QDragEnterEvent *e )
{
// // if (m_psActiveButton && m_psActiveButton != this) {
// // m_psActiveButton->dragLeaveEvent(0);
// // }
// m_psActiveButton = this;
// kDebug() << "In button event";
// int alpha = m_CurrentColor.alpha();
// m_CurrentColor = "#FF0000";
// m_CurrentColor.setAlpha(alpha);
// repaint();
// e->accept();
e->ignore();
e->ignore();
}
void TranslucentButtons::dragMoveEvent ( QDragMoveEvent *e )
{
// kDebug() << "In button move event";
// int alpha = m_CurrentColor.alpha();
// m_CurrentColor = "#FF0000";
// m_CurrentColor.setAlpha(alpha);
// e->accept();
e->ignore();
e->ignore();
}
void TranslucentButtons::dragLeaveEvent ( QDragLeaveEvent *e )
{
// kDebug() << "Button drag leave";
// int alpha = m_CurrentColor.alpha();
// m_CurrentColor = "black";
// m_CurrentColor.setAlpha(alpha);
// //m_CurrentColor = "black";
// if (e)
// e->ignore();
// else {
// repaint();
// }
// e->ignore();
e->ignore();
e->ignore();
}
///Propagate the mime data
///@note This propagate like this: button -> tree item -> treewidget
void TranslucentButtons::dropEvent(QDropEvent *e)
{
kDebug() << "Drop accepted";
emit dataDropped((QMimeData*)e->mimeData());
}
void TranslucentButtons::forceDragState(QDragEnterEvent *e)
{
dragMoveEvent(e);
}
///Set the state when the user hover the widget
///@note This is not called directly to avoid a Qt bug/limitation
void TranslucentButtons::setHoverState(bool hover)
{
if (hover != m_CurrentState) {
@ -148,323 +121,8 @@ void TranslucentButtons::setHoverState(bool hover)
}
}
///Set the button pixmap
void TranslucentButtons::setPixmap(QImage* img)
{
m_pImg = img;
}
bool TranslucentButtons::event(QEvent* e)
{
// switch (e->type()) {
// case QEvent::None:
// kDebug() << "None"; break;
// case QEvent::Timer:
// kDebug() << "Timer"; break;
// case QEvent::MouseButtonPress:
// kDebug() << "MouseButtonPress"; break;
// case QEvent::MouseButtonRelease:
// kDebug() << "MouseButtonRelease"; break;
// case QEvent::MouseButtonDblClick:
// kDebug() << "MouseButtonDblClick"; break;
// case QEvent::MouseMove:
// kDebug() << "MouseMove"; break;
// case QEvent::KeyPress:
// kDebug() << "KeyPress"; break;
// case QEvent::KeyRelease:
// kDebug() << "KeyRelease"; break;
// case QEvent::FocusIn:
// kDebug() << "FocusIn"; break;
// case QEvent::FocusOut:
// kDebug() << "FocusOut"; break;
// case QEvent::Enter:
// kDebug() << "Enter"; break;
// case QEvent::Leave:
// kDebug() << "Leave"; break;
// case QEvent::Paint:
// kDebug() << "Paint"; break;
// case QEvent::Move:
// kDebug() << "Move"; break;
// case QEvent::Resize:
// kDebug() << "Resize"; break;
// case QEvent::Create:
// kDebug() << "Create"; break;
// case QEvent::Destroy:
// kDebug() << "Destroy"; break;
// case QEvent::Show:
// kDebug() << "Show"; break;
// case QEvent::Hide:
// kDebug() << "Hide"; break;
// case QEvent::Close:
// kDebug() << "Close"; break;
// case QEvent::Quit:
// kDebug() << "Quit"; break;
// case QEvent::ParentChange:
// kDebug() << "ParentChange"; break;
// case QEvent::ParentAboutToChange:
// kDebug() << "ParentAboutToChange"; break;
// case QEvent::ThreadChange:
// kDebug() << "ThreadChange"; break;
// case QEvent::WindowActivate:
// kDebug() << "WindowActivate"; break;
// case QEvent::WindowDeactivate:
// kDebug() << "WindowDeactivate"; break;
// case QEvent::ShowToParent:
// kDebug() << "ShowToParent"; break;
// case QEvent::HideToParent:
// kDebug() << "HideToParent"; break;
// case QEvent::Wheel:
// kDebug() << "Wheel"; break;
// case QEvent::WindowTitleChange:
// kDebug() << "WindowTitleChange"; break;
// case QEvent::WindowIconChange:
// kDebug() << "WindowIconChange"; break;
// case QEvent::ApplicationWindowIconChange:
// kDebug() << "ApplicationWindowIconChange"; break;
// case QEvent::ApplicationFontChange:
// kDebug() << "ApplicationFontChange"; break;
// case QEvent::ApplicationLayoutDirectionChange:
// kDebug() << "ApplicationLayoutDirectionChange"; break;
// case QEvent::ApplicationPaletteChange:
// kDebug() << "ApplicationPaletteChange"; break;
// case QEvent::PaletteChange:
// kDebug() << "PaletteChange"; break;
// case QEvent::Clipboard:
// kDebug() << "Clipboard"; break;
// case QEvent::Speech:
// kDebug() << "Speech"; break;
// case QEvent::MetaCall:
// kDebug() << "MetaCall"; break;
// case QEvent::SockAct:
// kDebug() << "SockAct"; break;
// case QEvent::WinEventAct:
// kDebug() << "WinEventAct"; break;
// case QEvent::DeferredDelete:
// kDebug() << "DeferredDelete"; break;
// case QEvent::DragEnter:
// kDebug() << "DragEnter"; break;
// case QEvent::DragMove:
// kDebug() << "DragMove"; break;
// case QEvent::DragLeave:
// kDebug() << "DragLeave"; break;
// case QEvent::Drop:
// kDebug() << "Drop"; break;
// case QEvent::DragResponse:
// kDebug() << "DragResponse"; break;
// case QEvent::ChildAdded:
// kDebug() << "ChildAdded"; break;
// case QEvent::ChildPolished:
// kDebug() << "ChildPolished"; break;
// case QEvent::ChildRemoved:
// kDebug() << "ChildRemoved"; break;
// case QEvent::ShowWindowRequest:
// kDebug() << "ShowWindowRequest"; break;
// case QEvent::PolishRequest:
// kDebug() << "PolishRequest"; break;
// case QEvent::Polish:
// kDebug() << "Polish"; break;
// case QEvent::LayoutRequest:
// kDebug() << "LayoutRequest"; break;
// case QEvent::UpdateRequest:
// kDebug() << "UpdateRequest"; break;
// case QEvent::UpdateLater:
// kDebug() << "UpdateLater"; break;
// case QEvent::EmbeddingControl:
// kDebug() << "EmbeddingControl"; break;
// case QEvent::ActivateControl:
// kDebug() << "ActivateControl"; break;
// case QEvent::DeactivateControl:
// kDebug() << "DeactivateControl"; break;
// case QEvent::ContextMenu:
// kDebug() << "ContextMenu"; break;
// case QEvent::InputMethod:
// kDebug() << "InputMethod"; break;
// case QEvent::AccessibilityPrepare:
// kDebug() << "AccessibilityPrepare"; break;
// case QEvent::TabletMove:
// kDebug() << "TabletMove"; break;
// case QEvent::LocaleChange:
// kDebug() << "LocaleChange"; break;
// case QEvent::LanguageChange:
// kDebug() << "LanguageChange"; break;
// case QEvent::LayoutDirectionChange:
// kDebug() << "LayoutDirectionChange"; break;
// case QEvent::Style:
// kDebug() << "Style"; break;
// case QEvent::TabletPress:
// kDebug() << "TabletPress"; break;
// case QEvent::TabletRelease:
// kDebug() << "TabletRelease"; break;
// case QEvent::OkRequest:
// kDebug() << "OkRequest"; break;
// case QEvent::HelpRequest:
// kDebug() << "HelpRequest"; break;
// case QEvent::IconDrag:
// kDebug() << "IconDrag"; break;
// case QEvent::FontChange:
// kDebug() << "FontChange"; break;
// case QEvent::EnabledChange:
// kDebug() << "EnabledChange"; break;
// case QEvent::ActivationChange:
// kDebug() << "ActivationChange"; break;
// case QEvent::StyleChange:
// kDebug() << "StyleChange"; break;
// case QEvent::IconTextChange:
// kDebug() << "IconTextChange"; break;
// case QEvent::ModifiedChange:
// kDebug() << "ModifiedChange"; break;
// case QEvent::MouseTrackingChange:
// kDebug() << "MouseTrackingChange"; break;
// case QEvent::WindowBlocked:
// kDebug() << "WindowBlocked"; break;
// case QEvent::WindowUnblocked:
// kDebug() << "WindowUnblocked"; break;
// case QEvent::WindowStateChange:
// kDebug() << "WindowStateChange"; break;
// case QEvent::ToolTip:
// kDebug() << "ToolTip"; break;
// case QEvent::WhatsThis:
// kDebug() << "WhatsThis"; break;
// case QEvent::StatusTip:
// kDebug() << "StatusTip"; break;
// case QEvent::ActionChanged:
// kDebug() << "ActionChanged"; break;
// case QEvent::ActionAdded:
// kDebug() << "ActionAdded"; break;
// case QEvent::ActionRemoved:
// kDebug() << "ActionRemoved"; break;
// case QEvent::FileOpen:
// kDebug() << "FileOpen"; break;
// case QEvent::Shortcut:
// kDebug() << "Shortcut"; break;
// case QEvent::ShortcutOverride:
// kDebug() << "ShortcutOverride"; break;
// case QEvent::WhatsThisClicked:
// kDebug() << "WhatsThisClicked"; break;
// case QEvent::QueryWhatsThis:
// kDebug() << "QueryWhatsThis"; break;
// case QEvent::EnterWhatsThisMode:
// kDebug() << "EnterWhatsThisMode"; break;
// case QEvent::LeaveWhatsThisMode:
// kDebug() << "LeaveWhatsThisMode"; break;
// case QEvent::ZOrderChange:
// kDebug() << "ZOrderChange"; break;
// case QEvent::HoverEnter:
// kDebug() << "HoverEnter"; break;
// case QEvent::HoverLeave:
// kDebug() << "HoverLeave"; break;
// case QEvent::HoverMove:
// kDebug() << "HoverMove"; break;
// case QEvent::AccessibilityHelp:
// kDebug() << "AccessibilityHelp"; break;
// case QEvent::AccessibilityDescription:
// kDebug() << "AccessibilityDescription"; break;
// case QEvent::AcceptDropsChange:
// kDebug() << "AcceptDropsChange"; break;
// case QEvent::MenubarUpdated:
// kDebug() << "MenubarUpdated"; break;
// case QEvent::ZeroTimerEvent:
// kDebug() << "ZeroTimerEvent"; break;
// case QEvent::GraphicsSceneMouseMove:
// kDebug() << "GraphicsSceneMouseMove"; break;
// case QEvent::GraphicsSceneMousePress:
// kDebug() << "GraphicsSceneMousePress"; break;
// case QEvent::GraphicsSceneMouseRelease:
// kDebug() << "GraphicsSceneMouseRelease"; break;
// case QEvent::GraphicsSceneMouseDoubleClick:
// kDebug() << "GraphicsSceneMouseDoubleClick"; break;
// case QEvent::GraphicsSceneContextMenu:
// kDebug() << "GraphicsSceneContextMenu"; break;
// case QEvent::GraphicsSceneHoverEnter:
// kDebug() << "GraphicsSceneHoverEnter"; break;
// case QEvent::GraphicsSceneHoverMove:
// kDebug() << "GraphicsSceneHoverMove"; break;
// case QEvent::GraphicsSceneHoverLeave:
// kDebug() << "GraphicsSceneHoverLeave"; break;
// case QEvent::GraphicsSceneHelp:
// kDebug() << "GraphicsSceneHelp"; break;
// case QEvent::GraphicsSceneDragEnter:
// kDebug() << "GraphicsSceneDragEnter"; break;
// case QEvent::GraphicsSceneDragMove:
// kDebug() << "GraphicsSceneDragMove"; break;
// case QEvent::GraphicsSceneDragLeave:
// kDebug() << "GraphicsSceneDragLeave"; break;
// case QEvent::GraphicsSceneDrop:
// kDebug() << "GraphicsSceneDrop"; break;
// case QEvent::GraphicsSceneWheel:
// kDebug() << "GraphicsSceneWheel"; break;
// case QEvent::KeyboardLayoutChange:
// kDebug() << "KeyboardLayoutChange"; break;
// case QEvent::DynamicPropertyChange:
// kDebug() << "DynamicPropertyChange"; break;
// case QEvent::TabletEnterProximity:
// kDebug() << "TabletEnterProximity"; break;
// case QEvent::TabletLeaveProximity:
// kDebug() << "TabletLeaveProximity"; break;
// case QEvent::NonClientAreaMouseMove:
// kDebug() << "NonClientAreaMouseMove"; break;
// case QEvent::NonClientAreaMouseButtonPress:
// kDebug() << "NonClientAreaMouseButtonPress"; break;
// case QEvent::NonClientAreaMouseButtonRelease:
// kDebug() << "NonClientAreaMouseButtonRelease"; break;
// case QEvent::NonClientAreaMouseButtonDblClick:
// kDebug() << "NonClientAreaMouseButtonDblClick"; break;
// case QEvent::MacSizeChange:
// kDebug() << "MacSizeChange"; break;
// case QEvent::ContentsRectChange:
// kDebug() << "ContentsRectChange"; break;
// case QEvent::MacGLWindowChange:
// kDebug() << "MacGLWindowChange"; break;
// case QEvent::FutureCallOut:
// kDebug() << "FutureCallOut"; break;
// case QEvent::GraphicsSceneResize:
// kDebug() << "GraphicsSceneResize"; break;
// case QEvent::GraphicsSceneMove:
// kDebug() << "GraphicsSceneMove"; break;
// case QEvent::CursorChange:
// kDebug() << "CursorChange"; break;
// case QEvent::ToolTipChange:
// kDebug() << "ToolTipChange"; break;
// case QEvent::NetworkReplyUpdated:
// kDebug() << "NetworkReplyUpdated"; break;
// case QEvent::GrabMouse:
// kDebug() << "GrabMouse"; break;
// case QEvent::UngrabMouse:
// kDebug() << "UngrabMouse"; break;
// case QEvent::GrabKeyboard:
// kDebug() << "GrabKeyboard"; break;
// case QEvent::UngrabKeyboard:
// kDebug() << "UngrabKeyboard"; break;
// case QEvent::MacGLClearDrawable:
// kDebug() << "MacGLClearDrawable"; break;
// case QEvent::StateMachineSignal:
// kDebug() << "StateMachineSignal"; break;
// case QEvent::StateMachineWrapped:
// kDebug() << "StateMachineWrapped"; break;
// case QEvent::TouchBegin:
// kDebug() << "TouchBegin"; break;
// case QEvent::TouchUpdate:
// kDebug() << "TouchUpdate"; break;
// case QEvent::TouchEnd:
// kDebug() << "TouchEnd"; break;
// case QEvent::NativeGesture:
// kDebug() << "NativeGesture"; break;
// case QEvent::RequestSoftwareInputPanel:
// kDebug() << "RequestSoftwareInputPanel"; break;
// case QEvent::CloseSoftwareInputPanel:
// kDebug() << "CloseSoftwareInputPanel"; break;
// case QEvent::UpdateSoftKeys:
// kDebug() << "UpdateSoftKeys"; break;
// case QEvent::WinIdChange:
// kDebug() << "WinIdChange"; break;
// case QEvent::Gesture:
// kDebug() << "Gesture"; break;
// case QEvent::GestureOverride:
// kDebug() << "GestureOverride"; break;
// case QEvent::User:
// kDebug() << "User"; break;
// case QEvent::MaxUser:
// kDebug() << "MaxUser"; break;
// }
return QPushButton::event(e);
}

View File

@ -12,27 +12,32 @@ class TranslucentButtons : public QPushButton
{
Q_OBJECT
public:
//Constructor
TranslucentButtons(QWidget* parent);
~TranslucentButtons();
void forceDragState(QDragEnterEvent *e);
//Setters
void setHoverState(bool hover);
void setPixmap(QImage* img);
protected:
//Reimplementation
virtual void paintEvent(QPaintEvent* event);
virtual void dragEnterEvent ( QDragEnterEvent *e );
virtual void dragMoveEvent ( QDragMoveEvent *e );
virtual void dragLeaveEvent ( QDragLeaveEvent *e );
virtual void dropEvent ( QDropEvent *e );
virtual bool event(QEvent* e);
private:
bool m_enabled;
uint m_step;
QTimer* m_pTimer;
QColor m_CurrentColor;
QPen m_Pen;
bool m_CurrentState;
QImage* m_pImg;
static TranslucentButtons* m_psActiveButton; /*Workaround for a Qt bug*/
//Attributes
bool m_enabled ;
uint m_step ;
QTimer* m_pTimer ;
QColor m_CurrentColor;
QPen m_Pen ;
bool m_CurrentState;
QImage* m_pImg ;
public slots:
void setVisible(bool enabled);
private slots: