diff options
Diffstat (limited to 'kgeography/src/popupmanager.cpp')
-rw-r--r-- | kgeography/src/popupmanager.cpp | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/kgeography/src/popupmanager.cpp b/kgeography/src/popupmanager.cpp new file mode 100644 index 00000000..4b19d4d5 --- /dev/null +++ b/kgeography/src/popupmanager.cpp @@ -0,0 +1,67 @@ +/*************************************************************************** + * Copyright (C) 2004-2005 by Albert Astals Cid * + * tsdgeos@terra.es * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + ***************************************************************************/ + +#include "mypopup.h" +#include "popupmanager.h" + +popupManager::popupManager(QWidget *parent) +{ + p_parent = parent; + p_mp = 0; +} + +void popupManager::show(const QString &text, const QString &text2, const QPoint &p, const QString &flagFile) +{ + delete p_mp; + + p_mp = new myPopup(p_parent, text, text2, flagFile); + init(p); +} + +void popupManager::show(const QString &text, const QString &text2, const QPoint &p) +{ + delete p_mp; + + p_mp = new myPopup(p_parent, text, text2); + init(p); +} + +void popupManager::show(const QString &text, const QPoint &p) +{ + delete p_mp; + + p_mp = new myPopup(p_parent, text); + init(p); +} + +void popupManager::clear() +{ + if (p_mp) + { + p_mp -> deleteLater(); + p_mp = 0; + } +} + +void popupManager::init(const QPoint &p) +{ + int x, y, maxX, maxY; + maxX = p_parent -> width() - p_mp -> width(); + maxY = p_parent -> height() - p_mp -> height(); + if (p.x() < maxX) x = p.x(); + else x = maxX; + if (p.y() < maxY) y = p.y(); + else y = maxY; + p_mp -> move(x, y); + p_mp -> show(); + connect(p_mp, SIGNAL(deleteMe()), this, SLOT(clear())); +} + +#include "popupmanager.moc" |