From b8b7804fcc229e9c34e18dc3ec6dfafd2e3485b0 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Fri, 1 Jul 2011 18:54:41 +0000 Subject: moved skinned ui to separate plugin git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2252 90c681e8-e032-0410-971d-27865f9a5e38 --- src/ui/dock.cpp | 266 -------------------------------------------------------- 1 file changed, 266 deletions(-) delete mode 100644 src/ui/dock.cpp (limited to 'src/ui/dock.cpp') diff --git a/src/ui/dock.cpp b/src/ui/dock.cpp deleted file mode 100644 index a4e5d52d2..000000000 --- a/src/ui/dock.cpp +++ /dev/null @@ -1,266 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2006 by Ilya Kotov * - * forkotov02@hotmail.ru * - * * - * 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., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ - -#include -#include -#include - -#include "dock.h" - - -Dock *Dock::m_instance = 0; - -Dock *Dock::instance() -{ - if (!m_instance) - m_instance = new Dock(); - return m_instance; -} - -Dock::Dock (QObject *parent) - : QObject (parent) -{ - m_instance = this; - m_mainWidget = 0; -} - -Dock::~Dock() -{ - m_instance = 0; -} - -void Dock::setMainWidget (QWidget *widget) -{ - m_mainWidget = widget; - m_widgetList.prepend (widget); - m_dockedList.prepend (false); -} - - -QPoint Dock::snap (QPoint npos, QWidget* mv, QWidget* st) -{ - int nx = npos.x() - st->x(); - int ny = abs (npos.y() - st->y() + mv->height()); - - if (abs (nx) < 13 && ny < 13) //above - npos.rx() = st->x(); - if (ny < 13 && nx > -mv->width() && nx < st->width()) - npos.ry() = st->y() - mv->height(); - nx = abs (npos.x() + mv->width() - st->x() - st->width()); - if (nx < 13 && ny < 13) - npos.rx() = st->x() + st->width() - mv->width(); - - /***********/ - nx = npos.x() - st->x(); - ny = abs (npos.y() - st->y() - st->height()); - - if (abs (nx) < 13 && ny < 13) //near - npos.rx() = st->x(); - if (ny < 13 && nx > -mv->width() && nx < st->width()) - npos.ry() = st->y() + st->height(); - nx = abs (npos.x() + mv->width() - st->x() - st->width()); - if (nx < 13 && ny < 13) - npos.rx() = st->x() + st->width() - mv->width(); - /**************/ - nx = abs (npos.x() - st->x() + mv->width()); - ny = npos.y() - st->y(); - - if (nx < 13 && abs (ny) < 13) //left - npos.ry() = st->y(); - if (nx < 13 && ny > -mv->height() && ny < st->height()) - npos.rx() = st->x() - mv->width(); - - ny = abs (npos.y() + mv->height() - st->y() - st->height()); - if (nx < 13 && ny < 13) - npos.ry() = st->y() + st->height() - mv->height(); - /*****************/ - nx = abs (npos.x() - st->x() - st->width()); - ny = npos.y() - st->y(); - - if (nx < 13 && abs (ny) < 13) //right - npos.ry() = st->y(); - if (nx < 13 && ny > -mv->height() && ny < st->height()) - npos.rx() = st->x() + st->width(); - - ny = abs (npos.y() + mv->height() - st->y() - st->height()); - if (nx < 13 && ny < 13) - npos.ry() = st->y() + st->height() - mv->height(); - - return (npos); -} - -void Dock::addWidget (QWidget *widget) -{ - m_widgetList.append (widget); - m_dockedList.append (false); - widget->addActions(m_actions); - -} - -void Dock::move (QWidget* mv, QPoint npos) -{ - QRect DesktopRect = QApplication::desktop()->availableGeometry(m_mainWidget); - if(npos.y() < DesktopRect.y()) - npos.setY(DesktopRect.y()); - if(npos.x() < DesktopRect.x()) - npos.setX(DesktopRect.x()); - if (mv == m_mainWidget) - { - - for (int i = 1; iisVisible()) - npos = snap (npos, mv, m_widgetList.at (i)); - - } - else - { - QPoint pos = QPoint (npos.x() + x_list.at (i), - npos.y() + y_list.at (i)); - for (int j = 1; jisVisible()) - { - pos = snap (pos, m_widgetList.at (i), m_widgetList.at (j)); - npos = QPoint (pos.x() - x_list.at (i), - pos.y() - y_list.at (i)); - } - } - } - } - mv->move (npos); - for (int i = 1; imove(npos.x() + x_list.at (i), - npos.y() + y_list.at (i)); - } - } - else - { - for (int i = 0; iisVisible()) - { - npos = snap (npos, mv, m_widgetList.at (i)); - } - } - mv->move (npos); - } -} - -void Dock::calculateDistances() -{ - x_list.clear(); - y_list.clear(); - foreach (QWidget *w, m_widgetList) - { - if (w!=m_mainWidget) - { - x_list.append (- m_mainWidget->x() + w->x()); - y_list.append (- m_mainWidget->y() + w->y()); - } - else - { - x_list.prepend (0); - y_list.prepend (0); - } - } -} - -void Dock::updateDock() -{ - QWidget *mv = m_widgetList.at (0); - for (int j = 1; jx() - st->x(); - int ny = abs (mv->y() - st->y() + mv->height()); - if (ny < 2 && nx > -mv->width() && nx < st->width()) //above - return true; - - /***********/ - nx = mv->x() - st->x(); - ny = abs (mv->y() - st->y() - st->height()); - if (ny < 2 && nx > -mv->width() && nx < st->width()) //near - return true; - - /**************/ - nx = abs (mv->x() - st->x() + mv->width()); - ny = mv->y() - st->y(); - if (nx < 2 && ny > -mv->height() && ny < st->height()) //left - return true; - - /*****************/ - nx = abs (mv->x() - st->x() - st->width()); - ny = mv->y() - st->y(); - if (nx < 2 && ny > -mv->height() && ny < st->height()) //right - return true; - return false; -} - -void Dock::addActions (QList actions) -{ - m_actions << actions; - for (int i = 0; iaddActions (actions); -} - -bool Dock::isUnder(QWidget* upper, QWidget* nether, int dy) -{ - int nx = upper->x() - nether->x(); - return abs (upper->y() + upper->height() -dy - nether->y()) < 2 && - nx > -upper->width() && nx < nether->width(); -} - -void Dock::align(QWidget* w, int dy) -{ - for (int i = 0; imove(m_widgetList.at(i)->x(), m_widgetList.at(i)->y()+dy); - align(m_widgetList.at(i), dy); - } - } -} -- cgit v1.2.3-13-gbd6f