From c601b5a27f74b16158adafe429faefbe573e64a2 Mon Sep 17 00:00:00 2001 From: Szymon Tomasz Stefanek Date: Sat, 1 Jan 2011 20:19:56 +0000 Subject: The big rename for modules. Still some details remaining. git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@5284 17fca916-40b9-46aa-a4ea-0a15b648b75c --- src/modules/notifier/NotifierWindowBorder.cpp | 205 ++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 src/modules/notifier/NotifierWindowBorder.cpp (limited to 'src/modules/notifier/NotifierWindowBorder.cpp') diff --git a/src/modules/notifier/NotifierWindowBorder.cpp b/src/modules/notifier/NotifierWindowBorder.cpp new file mode 100644 index 000000000..a47d3a64c --- /dev/null +++ b/src/modules/notifier/NotifierWindowBorder.cpp @@ -0,0 +1,205 @@ +//============================================================================= +// +// File : NotifierWindowBorder.cpp +// Creation date : Mon 03 Jan 2005 02:27:22 by Iacopo Palazzi +// +// This file is part of the KVIrc distribution +// Copyright (C) 2005-2008 Iacopo Palazzi < iakko(at)siena(dot)linux(dot)it > +// +// 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 opinion) 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 "NotifierWindowBorder.h" +#include "NotifierWindowTab.h" + +#include "KviIconManager.h" + +#include + +NotifierWindowBorder::NotifierWindowBorder(QSize s) +{ + loadImages(); + resize(s); +} + +NotifierWindowBorder::~NotifierWindowBorder() +{ +} + +void NotifierWindowBorder::loadImages() +{ + // Normal Border + + QPixmap * p; + + if((p = g_pIconManager->getPixmap("notifier_pix_wnd_sx.png"))) + m_pixSX_N = *p; + if((p = g_pIconManager->getPixmap("notifier_pix_wnd_dx.png"))) + m_pixDX_N = *p; + if((p = g_pIconManager->getPixmap("notifier_pix_wnd_dwn.png"))) + m_pixDWN_N = *p; + if((p = g_pIconManager->getPixmap("notifier_pix_wnd_dwndx.png"))) + m_pixDWNDX_N = *p; + if((p = g_pIconManager->getPixmap("notifier_pix_wnd_dwnsx.png"))) + m_pixDWNSX_N = *p; + if((p = g_pIconManager->getPixmap("notifier_pix_caption_sx.png"))) + m_pixCaptionSX_N = *p; + if((p = g_pIconManager->getPixmap("notifier_pix_caption_dx.png"))) + m_pixCaptionDX_N = *p; + if((p = g_pIconManager->getPixmap("notifier_pix_caption_bkg.png"))) + m_pixCaptionBKG_N = *p; + + if((p = g_pIconManager->getPixmap("notifier_icon_close_out.png"))) + m_pixIconClose_out_N = *p; + if((p = g_pIconManager->getPixmap("notifier_icon_close_over.png"))) + m_pixIconClose_over_N = *p; + if((p = g_pIconManager->getPixmap("notifier_icon_close_clicked.png"))) + m_pixIconClose_clicked_N = *p; + + // Highlighted Border + + if((p = g_pIconManager->getPixmap("notifier_pix_wnd_sx_hl.png"))) + m_pixSX_HL = *p; + if((p = g_pIconManager->getPixmap("notifier_pix_wnd_dx_hl.png"))) + m_pixDX_HL = *p; + if((p = g_pIconManager->getPixmap("notifier_pix_wnd_dwn_hl.png"))) + m_pixDWN_HL = *p; + if((p = g_pIconManager->getPixmap("notifier_pix_wnd_dwndx_hl.png"))) + m_pixDWNDX_HL = *p; + if((p = g_pIconManager->getPixmap("notifier_pix_wnd_dwnsx_hl.png"))) + m_pixDWNSX_HL = *p; + if((p = g_pIconManager->getPixmap("notifier_pix_caption_sx_hl.png"))) + m_pixCaptionSX_HL = *p; + if((p = g_pIconManager->getPixmap("notifier_pix_caption_dx_hl.png"))) + m_pixCaptionDX_HL = *p; + if((p = g_pIconManager->getPixmap("notifier_pix_caption_bkg_hl.png"))) + m_pixCaptionBKG_HL = *p; + + if((p = g_pIconManager->getPixmap("notifier_icon_close_out_hl.png"))) + m_pixIconClose_out_HL = *p; + if((p = g_pIconManager->getPixmap("notifier_icon_close_over_hl.png"))) + m_pixIconClose_over_HL = *p; + if((p = g_pIconManager->getPixmap("notifier_icon_close_clicked_hl.png"))) + m_pixIconClose_clicked_HL = *p; + + setPics(); + setCloseIcon(WDG_ICON_OUT); + + if ( m_pixCaptionDX->height()==m_pixCaptionSX->height() && m_pixCaptionDX->height()==m_pixCaptionBKG->height()) // just to be sure that the height is fitting + m_captionRect.setHeight(m_pixCaptionDX->height()); + +} + +void NotifierWindowBorder::setPics(bool b) +{ + if (b) { + m_pixSX = &m_pixSX_HL; + m_pixDX = &m_pixDX_HL; + m_pixDWN = &m_pixDWN_HL; + m_pixDWNSX = &m_pixDWNSX_HL; + m_pixDWNDX = &m_pixDWNDX_HL; + m_pixCaptionSX = &m_pixCaptionSX_HL; + m_pixCaptionDX = &m_pixCaptionDX_HL; + m_pixCaptionBKG = &m_pixCaptionBKG_HL; + m_pixIconClose_out = &m_pixIconClose_out_HL; + m_pixIconClose_over = &m_pixIconClose_over_HL; + m_pixIconClose_clicked = &m_pixIconClose_clicked_HL; + } else { + m_pixSX = &m_pixSX_N; + m_pixDX = &m_pixDX_N; + m_pixDWN = &m_pixDWN_N; + m_pixDWNSX = &m_pixDWNSX_N; + m_pixDWNDX = &m_pixDWNDX_N; + m_pixCaptionSX = &m_pixCaptionSX_N; + m_pixCaptionDX = &m_pixCaptionDX_N; + m_pixCaptionBKG = &m_pixCaptionBKG_N; + m_pixIconClose_out = &m_pixIconClose_out_N; + m_pixIconClose_over = &m_pixIconClose_over_N; + m_pixIconClose_clicked = &m_pixIconClose_clicked_N; + } +} + +void NotifierWindowBorder::setWidth(int w) +{ + m_iRctWidth = w; + recalculatePositions(); +} + +void NotifierWindowBorder::setHeight(int h) +{ + m_iRctHeight = h; + recalculatePositions(); +} + +void NotifierWindowBorder::recalculatePositions() +{ + m_rct.setHeight(m_iRctHeight); + m_rct.setWidth(m_iRctWidth); + m_rct.setTopLeft(QPoint(0,0)); + + m_closeIconRect.setX(m_rct.width()-m_pixCaptionDX->width()-m_pixIconClose->width()); + m_closeIconRect.setY(2); + m_closeIconRect.setWidth(m_pixIconClose->width()); + m_closeIconRect.setHeight(m_pixIconClose->height()); + + m_captionRect.setTopLeft( m_rct.topLeft() ); + m_captionRect.setSize( QSize(m_rct.width(),m_pixCaptionDX->height()) ); + + m_bodyRect.setTopLeft( QPoint(m_pixCaptionDX->width(),m_captionRect.height()) ); + m_bodyRect.setSize( QSize(m_captionRect.width()-(2*m_pixCaptionDX->width()),m_rct.height()-m_captionRect.height()-m_pixDWN->height()) ); + + m_titleRect.setTopLeft( QPoint(m_pixCaptionSX->width(),0) ); + m_titleRect.setSize( QSize(m_rct.width()-m_pixCaptionSX->width()-m_pixCaptionDX->width()-m_pixIconClose->width(),m_captionRect.height())); + +} + +void NotifierWindowBorder::setCloseIcon(int state) +{ + m_eIconState = state; + switch (m_eIconState) { + case WDG_ICON_OUT: m_pixIconClose = m_pixIconClose_out; break; + case WDG_ICON_OVER: m_pixIconClose = m_pixIconClose_over; break; + case WDG_ICON_CLICKED: m_pixIconClose = m_pixIconClose_clicked; break; + }; +} + +void NotifierWindowBorder::resetIcons() +{ + setCloseIcon(WDG_ICON_OUT); +} + +void NotifierWindowBorder::draw(QPainter * p, bool b) +{ + setPics(b); + setCloseIcon(m_eIconState); + + // Draw the caption + p->drawPixmap(m_captionRect.x(), m_captionRect.y(), *m_pixCaptionSX); + p->drawTiledPixmap(m_pixCaptionSX->width(), 0, m_captionRect.width() - (m_pixCaptionSX->width() + m_pixCaptionDX->width()), m_captionRect.height(), *m_pixCaptionBKG); + p->drawPixmap(m_captionRect.width() - m_pixCaptionDX->width(), 0, *m_pixCaptionDX); + + // Draw the tiled borders + p->drawTiledPixmap(0, m_captionRect.height(), m_pixSX->width(), m_bodyRect.height(), *m_pixSX); + p->drawTiledPixmap(m_bodyRect.width() + m_bodyRect.x(), m_captionRect.height(), m_pixDX->width(), m_bodyRect.height(), *m_pixDX); + p->drawTiledPixmap(m_pixDWNSX->width(), m_captionRect.height() + m_bodyRect.height(), m_bodyRect.width() + 1, m_pixDWN->height(), *m_pixDWN); + + // Draw down corners + p->drawPixmap(0, m_captionRect.height() + m_bodyRect.height(), *m_pixDWNSX); + p->drawPixmap(m_bodyRect.width() + m_bodyRect.x(), m_captionRect.height() + m_bodyRect.height(), *m_pixDWNDX); + + //Drawing icons + p->drawPixmap(m_closeIconRect.x(), m_closeIconRect.y(), *m_pixIconClose); +} -- cgit v1.3.1-10-gc9f91