diff options
Diffstat (limited to 'kpager/windowdrag.cpp')
-rw-r--r-- | kpager/windowdrag.cpp | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/kpager/windowdrag.cpp b/kpager/windowdrag.cpp new file mode 100644 index 000000000..fc854b8a9 --- /dev/null +++ b/kpager/windowdrag.cpp @@ -0,0 +1,60 @@ +/************************************************************************* + + windowdrag.cpp - The windowDrag object, used to drag windows across + desktops + + Copyright (C) 1998,99,2000 Antonio Larrosa Jimenez <[email protected]> + + 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. + + Send comments and bug fixes to [email protected] + +*************************************************************************/ + +#include "windowdrag.h" + +PagerWindowDrag::PagerWindowDrag(WId w,int deltax,int deltay, int origdesk,TQWidget *parent) + : TQStoredDrag("application/x-kpager",parent,"windowdrag") +{ + TQString tmp; + tmp.sprintf("%d %d %d %d", static_cast<int>(w), deltax, deltay, origdesk); + TQByteArray data; + data.setRawData(tmp.latin1(),tmp.length()+1); + + setEncodedData(data); + data.resetRawData(tmp.latin1(),tmp.length()+1); +} + +PagerWindowDrag::~PagerWindowDrag() +{ +} + +bool PagerWindowDrag::canDecode (TQDragMoveEvent *e) +{ + return e->provides("application/x-kpager"); +} + +bool PagerWindowDrag::decode( TQDropEvent *e, WId &w,int &deltax,int &deltay,int &origdesk) +{ + TQByteArray data=e->data("application/x-kpager"); + if (data.size()) + { + char *tmp=data.data(); + sscanf(tmp,"%lu %d %d %d", &w, &deltax, &deltay, &origdesk); + e->accept(); + return TRUE; + } + return FALSE; +} |