summaryrefslogtreecommitdiffstats
path: root/src/resizabledragwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/resizabledragwidget.cpp')
-rw-r--r--src/resizabledragwidget.cpp92
1 files changed, 92 insertions, 0 deletions
diff --git a/src/resizabledragwidget.cpp b/src/resizabledragwidget.cpp
new file mode 100644
index 0000000..0a3510b
--- /dev/null
+++ b/src/resizabledragwidget.cpp
@@ -0,0 +1,92 @@
+/***************************************************************************
+ * Copyright (C) 2007 by Todor Gyumyushev *
+ * yodor@developer.bg *
+ * *
+ * 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. *
+ * *
+ * This program 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 General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+#include "resizabledragwidget.h"
+#include <qpoint.h>
+#include "kmessagebox.h"
+#include "qpainter.h"
+
+ResizableDragWidget::ResizableDragWidget(QWidget *parent, const char *name, WFlags f)
+ : DragWidget(parent,name,f)
+{
+rsz=false;
+
+}
+
+
+ResizableDragWidget::~ResizableDragWidget()
+{
+}
+
+void ResizableDragWidget::mousePressEvent(QMouseEvent * e)
+{
+
+ QPoint pos = e->pos();
+ if (pos.x()>width()-20 && pos.x()<width() && pos.y()>height()-20 && pos.y()<height() ) {
+ rsz=true;
+ dragP=QPoint(width()-e->pos().x(),height()-e->pos().y());
+ }
+ else {
+ DragWidget::mousePressEvent(e);
+ }
+}
+
+void ResizableDragWidget::mouseMoveEvent(QMouseEvent * e)
+{
+ if (!rsz){
+ DragWidget::mouseMoveEvent(e);
+ return;
+ }
+
+ QPoint curr(e->globalPos().x(),e->globalPos().y());
+ QPoint pos = QWidget::pos();
+ //QPoint curr(e->globalPos().x()-dragP.x(),e->globalPos().y()-dragP.y());
+ int nw = curr.x()-pos.x()+dragP.x();
+ int nh = curr.y()-pos.y()+dragP.y();
+
+ resize(nw,nh);
+
+}
+
+void ResizableDragWidget::mouseReleaseEvent(QMouseEvent * e)
+{
+ if (!rsz){
+ DragWidget::mouseReleaseEvent(e);
+ return;
+ }
+
+ rsz=false;
+}
+
+void ResizableDragWidget::paintEvent(QPaintEvent *)
+{
+
+ QPainter p(this);
+
+ for (int a=0;a<20;a+=5){
+
+ p.setPen(QColor(170,0,0));
+ p.drawLine(width()-20+a,height()-2,width()-2,height()-20+a);
+ p.setPen(QColor(200,0,0));
+ p.drawLine(width()-19+a,height()-2,width()-2,height()-19+a);
+ }
+
+}
+
+