summaryrefslogtreecommitdiffstats
path: root/wifi/picture.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'wifi/picture.cpp')
-rw-r--r--wifi/picture.cpp92
1 files changed, 92 insertions, 0 deletions
diff --git a/wifi/picture.cpp b/wifi/picture.cpp
new file mode 100644
index 00000000..11d77cae
--- /dev/null
+++ b/wifi/picture.cpp
@@ -0,0 +1,92 @@
+/***************************************************************************
+ picture.cpp - description
+ -------------------
+ begin : Mon Aug 19 2002
+ copyright : (C) 2002 by Stefan Winter
+ email : mail@stefan-winter.de
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * 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 <qwidget.h>
+#include <qpainter.h>
+#include <qpixmap.h>
+#include <kstandarddirs.h>
+#include "picture.h"
+#include "interface_wireless.h"
+
+#define X_OFFSET 20
+#define Y_OFFSET 10
+
+Picture::Picture (QWidget * parent, Interface_wireless * device):QWidget (parent,
+ "picture")
+{
+ this->device = device;
+ KStandardDirs finder;
+ kdedir = finder.findResourceDir ("data", "kwifimanager/pics/no_card.png");
+ kdedir += "kwifimanager/pics/";
+ NO_CARD = new QPixmap (kdedir + "no_card.png");
+ AD_HOC = new QPixmap (kdedir + "ad_hoc.png");
+ ALL_ALONE = new QPixmap (kdedir + "all_alone.png");
+ AP_CONNECT = new QPixmap (kdedir + "ap_connect.png");
+}
+
+QSize Picture::mySizeHint() {
+ /* make this quite general, just in case someone uses different icons */
+ QSize* temp = new QSize(NO_CARD->size());
+ if (AD_HOC->size().width() > temp->width ()) { temp->setWidth (AD_HOC->size().width ()); }
+ if (AD_HOC->size().height() > temp->height()) { temp->setHeight(AD_HOC->size().height()); }
+ if (ALL_ALONE->size().width() > temp->width ()) { temp->setWidth (ALL_ALONE->size().width ()); }
+ if (ALL_ALONE->size().height() > temp->height()) { temp->setHeight(ALL_ALONE->size().height()); }
+ if (AP_CONNECT->size().width() > temp->width ()) { temp->setWidth (AP_CONNECT->size().width ()); }
+ if (AP_CONNECT->size().height() > temp->height()) { temp->setHeight(AP_CONNECT->size().height()); }
+ temp->setWidth (temp->width() + X_OFFSET);
+ temp->setHeight(temp->height() + Y_OFFSET);
+ return *temp;
+}
+
+Picture::~Picture ()
+{
+ delete NO_CARD;
+ delete AD_HOC;
+ delete ALL_ALONE;
+ delete AP_CONNECT;
+
+}
+
+void
+Picture::paintEvent (QPaintEvent *)
+{
+ QPainter *picturepainter = new QPainter (this);
+ double freq;
+ int mode;
+ device->get_mode (mode);
+ int sig, noise, qual;
+ device->get_current_quality (sig, noise, qual);
+ if (!device->get_device_freq (freq) || device->get_txpower_disabled())
+ {
+ picturepainter->drawPixmap (X_OFFSET, Y_OFFSET, *NO_CARD);
+ }
+ else if (mode == 1)
+ {
+ picturepainter->drawPixmap (X_OFFSET, Y_OFFSET, *AD_HOC);
+ }
+ else if (qual == 0)
+ {
+ picturepainter->drawPixmap (X_OFFSET, Y_OFFSET, *ALL_ALONE);
+ }
+ else if (qual > 0)
+ {
+ picturepainter->drawPixmap (X_OFFSET, Y_OFFSET, *AP_CONNECT);
+ }
+ else
+ picturepainter->drawPixmap (X_OFFSET, Y_OFFSET, *NO_CARD);
+ delete picturepainter;
+}