parent
feaced1b3c
commit
9cca766255
@ -0,0 +1,88 @@
|
||||
/* This file is part of the TDE libraries
|
||||
* Copyright (C) 2011 - 2015 Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License version 2 as published by the Free Software Foundation.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU Library General Public License
|
||||
* along with this library; see the file COPYING.LIB. If not, write to
|
||||
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#include "tdepassivepopupstack.h"
|
||||
|
||||
TDEPassivePopupStackContainer::TDEPassivePopupStackContainer(TQWidget *parent, const char *name) : TQWidget(parent, name) {
|
||||
mPopupList.clear();
|
||||
|
||||
// Determine bottom of desktop
|
||||
TQPoint cursorPos = TQCursor::pos();
|
||||
TQRect r = TDEGlobalSettings::desktopGeometry(cursorPos);
|
||||
mTopOfStack = r.height();
|
||||
mRightOfStack = r.width();
|
||||
}
|
||||
|
||||
TDEPassivePopupStackContainer::~TDEPassivePopupStackContainer() {
|
||||
//
|
||||
}
|
||||
|
||||
KPassivePopup* TDEPassivePopupStackContainer::displayMessage(TQString title, TQString message, TQString icon, int x, int y) {
|
||||
TQPixmap px;
|
||||
TDEIconLoader* il = TDEGlobal::iconLoader();
|
||||
px = il->loadIcon(icon, TDEIcon::NoGroup);
|
||||
|
||||
KPassivePopup *pop = new KPassivePopup(KPassivePopup::Boxed, this, "");
|
||||
pop->setAutoDelete(true);
|
||||
pop->setView(title, message, icon);
|
||||
pop->setTimeout(-1);
|
||||
TQPoint leftCorner(x, y);
|
||||
if (leftCorner.isNull()) {
|
||||
if (mPopupList.isEmpty()) {
|
||||
// Determine bottom of desktop
|
||||
TQPoint cursorPos = TQCursor::pos();
|
||||
TQRect r = TDEGlobalSettings::desktopGeometry(cursorPos);
|
||||
mTopOfStack = r.height();
|
||||
mRightOfStack = r.width();
|
||||
}
|
||||
TQSize popupSize = pop->sizeHint();
|
||||
mTopOfStack = mTopOfStack-popupSize.height();
|
||||
if (mTopOfStack < 0) mTopOfStack = 0;
|
||||
leftCorner.setX(mRightOfStack-popupSize.width());
|
||||
leftCorner.setY(mTopOfStack);
|
||||
}
|
||||
connect(pop, SIGNAL(hidden(KPassivePopup*)), this, SLOT(popupClosed(KPassivePopup*)));
|
||||
connect(pop, SIGNAL(clicked(TQPoint)), this, SLOT(popupClicked(TQPoint)));
|
||||
mPopupList.append(pop);
|
||||
pop->show(leftCorner);
|
||||
|
||||
return pop;
|
||||
}
|
||||
|
||||
void TDEPassivePopupStackContainer::processEvents() {
|
||||
tqApp->processEvents();
|
||||
}
|
||||
|
||||
void TDEPassivePopupStackContainer::popupClosed(KPassivePopup* popup) {
|
||||
// Remove the popup from our list of popups
|
||||
mPopupList.remove(popup);
|
||||
|
||||
if (mPopupList.isEmpty()) {
|
||||
// Determine bottom of desktop
|
||||
TQPoint cursorPos = TQCursor::pos();
|
||||
TQRect r = TDEGlobalSettings::desktopGeometry(cursorPos);
|
||||
mTopOfStack = r.height();
|
||||
mRightOfStack = r.width();
|
||||
}
|
||||
}
|
||||
|
||||
void TDEPassivePopupStackContainer::popupClicked(TQPoint point) {
|
||||
emit(popupClicked(dynamic_cast<KPassivePopup*>(const_cast<TQObject*>(TQObject::sender())), point));
|
||||
}
|
||||
|
||||
#include "tdepassivepopupstack.moc"
|
@ -0,0 +1,55 @@
|
||||
/* This file is part of the TDE libraries
|
||||
* Copyright (C) 2011 - 2015 Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License version 2 as published by the Free Software Foundation.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU Library General Public License
|
||||
* along with this library; see the file COPYING.LIB. If not, write to
|
||||
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
* Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef TDEPASSIVEPOPUPSTACK_H
|
||||
#define TDEPASSIVEPOPUPSTACK_H
|
||||
|
||||
#include <tqwidget.h>
|
||||
#include <tqcursor.h>
|
||||
|
||||
#include "tdeapplication.h"
|
||||
#include "tdeglobal.h"
|
||||
#include "tdeglobalsettings.h"
|
||||
#include "kiconloader.h"
|
||||
#include "kpassivepopup.h"
|
||||
|
||||
class TDEUI_EXPORT TDEPassivePopupStackContainer : public TQWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TDEPassivePopupStackContainer(TQWidget *parent=0, const char *name=0);
|
||||
~TDEPassivePopupStackContainer();
|
||||
|
||||
KPassivePopup* displayMessage(TQString title, TQString message, TQString icon, int x, int y);
|
||||
void processEvents();
|
||||
|
||||
signals:
|
||||
void popupClicked(KPassivePopup*, TQPoint);
|
||||
|
||||
private slots:
|
||||
void popupClosed(KPassivePopup*);
|
||||
void popupClicked(TQPoint);
|
||||
|
||||
private:
|
||||
TQPtrList<KPassivePopup> mPopupList;
|
||||
long mTopOfStack;
|
||||
long mRightOfStack;
|
||||
};
|
||||
|
||||
#endif /* TDEPASSIVEPOPUPSTACK_H */
|
Loading…
Reference in new issue