Extend TDEPassivePopupStackContainer to include an optional user-provided ID per popup

Add display method with icon pixmap as parameter
pull/1/head
Timothy Pearson 9 years ago
parent 9cca766255
commit 7fc4b62912

@ -32,15 +32,19 @@ TDEPassivePopupStackContainer::~TDEPassivePopupStackContainer() {
// //
} }
KPassivePopup* TDEPassivePopupStackContainer::displayMessage(TQString title, TQString message, TQString icon, int x, int y) { KPassivePopup* TDEPassivePopupStackContainer::displayMessage(TQString title, TQString message, TQString icon, int x, int y, TQString id) {
TQPixmap px; TQPixmap px;
TDEIconLoader* il = TDEGlobal::iconLoader(); TDEIconLoader* il = TDEGlobal::iconLoader();
px = il->loadIcon(icon, TDEIcon::NoGroup); px = il->loadIcon(icon, TDEIcon::NoGroup);
KPassivePopup *pop = new KPassivePopup(KPassivePopup::Boxed, this, ""); return displayMessage(title, message, px, x, y, id);
pop->setAutoDelete(true); }
pop->setView(title, message, icon);
pop->setTimeout(-1); KPassivePopup* TDEPassivePopupStackContainer::displayMessage(TQString title, TQString message, TQPixmap icon, int x, int y, TQString id) {
KPassivePopup *popup = new KPassivePopup(KPassivePopup::Boxed, this, "");
popup->setAutoDelete(true);
popup->setView(title, message, icon);
popup->setTimeout(-1);
TQPoint leftCorner(x, y); TQPoint leftCorner(x, y);
if (leftCorner.isNull()) { if (leftCorner.isNull()) {
if (mPopupList.isEmpty()) { if (mPopupList.isEmpty()) {
@ -50,18 +54,20 @@ KPassivePopup* TDEPassivePopupStackContainer::displayMessage(TQString title, TQS
mTopOfStack = r.height(); mTopOfStack = r.height();
mRightOfStack = r.width(); mRightOfStack = r.width();
} }
TQSize popupSize = pop->sizeHint(); TQSize popupSize = popup->sizeHint();
mTopOfStack = mTopOfStack-popupSize.height(); mTopOfStack = mTopOfStack-popupSize.height();
if (mTopOfStack < 0) mTopOfStack = 0; if (mTopOfStack < 0) mTopOfStack = 0;
leftCorner.setX(mRightOfStack-popupSize.width()); leftCorner.setX(mRightOfStack-popupSize.width());
leftCorner.setY(mTopOfStack); leftCorner.setY(mTopOfStack);
} }
connect(pop, SIGNAL(hidden(KPassivePopup*)), this, SLOT(popupClosed(KPassivePopup*))); connect(popup, SIGNAL(hidden(KPassivePopup*)), this, SLOT(popupClosed(KPassivePopup*)));
connect(pop, SIGNAL(clicked(TQPoint)), this, SLOT(popupClicked(TQPoint))); connect(popup, SIGNAL(clicked(TQPoint)), this, SLOT(popupClicked(TQPoint)));
mPopupList.append(pop); connect(popup, SIGNAL(destroyed(TQObject*)), this, SLOT(popupDestroyed(TQObject*)));
pop->show(leftCorner); mPopupList.append(popup);
mPopupIDMap[popup] = id;
popup->show(leftCorner);
return pop; return popup;
} }
void TDEPassivePopupStackContainer::processEvents() { void TDEPassivePopupStackContainer::processEvents() {
@ -82,7 +88,20 @@ void TDEPassivePopupStackContainer::popupClosed(KPassivePopup* popup) {
} }
void TDEPassivePopupStackContainer::popupClicked(TQPoint point) { void TDEPassivePopupStackContainer::popupClicked(TQPoint point) {
emit(popupClicked(dynamic_cast<KPassivePopup*>(const_cast<TQObject*>(TQObject::sender())), point)); KPassivePopup* popup = dynamic_cast<KPassivePopup*>(const_cast<TQObject*>(TQObject::sender()));
if (popup) {
emit(popupClicked(popup, point, mPopupIDMap[popup]));
}
else {
emit(popupClicked(NULL, point, TQString::null));
}
}
void TDEPassivePopupStackContainer::popupDestroyed(TQObject* object) {
KPassivePopup* popup = static_cast<KPassivePopup*>(const_cast<TQObject*>(object));
if (popup) {
mPopupIDMap.remove(popup);
}
} }
#include "tdepassivepopupstack.moc" #include "tdepassivepopupstack.moc"

@ -28,6 +28,8 @@
#include "kiconloader.h" #include "kiconloader.h"
#include "kpassivepopup.h" #include "kpassivepopup.h"
typedef TQMap<KPassivePopup*, TQString> TQStringPopupIDMap;
class TDEUI_EXPORT TDEPassivePopupStackContainer : public TQWidget class TDEUI_EXPORT TDEPassivePopupStackContainer : public TQWidget
{ {
Q_OBJECT Q_OBJECT
@ -36,20 +38,23 @@ public:
TDEPassivePopupStackContainer(TQWidget *parent=0, const char *name=0); TDEPassivePopupStackContainer(TQWidget *parent=0, const char *name=0);
~TDEPassivePopupStackContainer(); ~TDEPassivePopupStackContainer();
KPassivePopup* displayMessage(TQString title, TQString message, TQString icon, int x, int y); KPassivePopup* displayMessage(TQString title, TQString message, TQString icon, int x, int y, TQString id=TQString::null);
KPassivePopup* displayMessage(TQString title, TQString message, TQPixmap icon, int x, int y, TQString id=TQString::null);
void processEvents(); void processEvents();
signals: signals:
void popupClicked(KPassivePopup*, TQPoint); void popupClicked(KPassivePopup*, TQPoint, TQString);
private slots: private slots:
void popupClosed(KPassivePopup*); void popupClosed(KPassivePopup*);
void popupClicked(TQPoint); void popupClicked(TQPoint);
void popupDestroyed(TQObject* object);
private: private:
TQPtrList<KPassivePopup> mPopupList; TQPtrList<KPassivePopup> mPopupList;
long mTopOfStack; long mTopOfStack;
long mRightOfStack; long mRightOfStack;
TQStringPopupIDMap mPopupIDMap;
}; };
#endif /* TDEPASSIVEPOPUPSTACK_H */ #endif /* TDEPASSIVEPOPUPSTACK_H */

Loading…
Cancel
Save