Add TDEPassivePopupStackContainer class

pull/1/head
Timothy Pearson 9 years ago
parent feaced1b3c
commit 9cca766255

@ -70,7 +70,7 @@ install( FILES
kcommand.h twindowlistmenu.h tdefontcombo.h tdeaccelgen.h ktip.h
kdatewidget.h karrowbutton.h kguiitem.h kstdguiitem.h
kstringvalidator.h twindowinfo.h
ktextedit.h kpassivepopup.h
ktextedit.h kpassivepopup.h tdepassivepopupstack.h
kdatetimewidget.h ktimewidget.h ktimezonewidget.h kscrollview.h
tdespell.h ksconfig.h tdespelldlg.h ksyntaxhighlighter.h
ktabbar.h ktabwidget.h ksplashscreen.h tdeconfigdialog.h
@ -135,8 +135,8 @@ set( ${target}_SRCS
tdemainwindowiface.skel kguiitem.cpp kstdguiitem.cpp
kstringvalidator.cpp kactivelabel.cpp
twindowinfo.cpp ktextedit.cpp kwizard.cpp kpassivepopup.cpp
tdetoolbarhandler.cpp kdatetimewidget.cpp ktimewidget.cpp ktimezonewidget.cpp
ksconfig.cpp tdespelldlg.cpp
tdepassivepopupstack.cpp tdetoolbarhandler.cpp kdatetimewidget.cpp
ktimewidget.cpp ktimezonewidget.cpp ksconfig.cpp tdespelldlg.cpp
tdespell.cpp ksyntaxhighlighter.cpp ktabbar.cpp ktabwidget.cpp
ksplashscreen.cpp tdespellui.ui tdeconfigdialog.cpp
tdeactionselector.cpp klanguagebutton.cpp tdelistviewsearchline.cpp

@ -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…
Cancel
Save