From 15318cad33835e4e2dc620d033e43cd930676cdd Mon Sep 17 00:00:00 2001 From: kergoth Date: Fri, 25 Jan 2002 22:14:26 +0000 Subject: Initial revision --- (limited to 'core/launcher/sidething.cpp') diff --git a/core/launcher/sidething.cpp b/core/launcher/sidething.cpp new file mode 100644 index 0000000..821c9d5 --- a/dev/null +++ b/core/launcher/sidething.cpp @@ -0,0 +1,75 @@ +/********************************************************************** +** Copyright (C) 2000 Trolltech AS. All rights reserved. +** +** This file is part of Qtopia Environment. +** +** This file may be distributed and/or modified under the terms of the +** GNU General Public License version 2 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. +** +** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** +** See http://www.trolltech.com/gpl/ for GPL licensing information. +** +** Contact info@trolltech.com if any conditions of this licensing are +** not clear to you. +** +**********************************************************************/ + +#include "sidething.h" + +#include + +#include +#include +#include + + +void PopupWithLaunchSideThing::setFrameRect( const QRect &r ) +{ + fr = r; + QPopupMenu::setFrameRect( r ); +} + + +void PopupWithLaunchSideThing::paintEvent( QPaintEvent *event ) +{ + QPainter paint( this ); + + if ( !contentsRect().contains( event->rect() ) ) { + + QPopupMenu::setFrameRect( fr ); + int oldLW = lineWidth(); + setUpdatesEnabled(FALSE); + setLineWidth(oldLW); + setUpdatesEnabled(TRUE); + + paint.save(); + paint.setClipRegion( event->region().intersect( frameRect() ) ); + QPixmap pm( Resource::loadPixmap( sidePixmap ) ); + paint.drawPixmap( 2, fr.height() - pm.height() - 2, pm ); +// Need to draw a filled rectangle that extends the colour from the +// end of the pixmap up to the top of the popupmenu +// paint.fillRect(); + drawFrame( &paint ); + paint.restore(); + + } + if ( event->rect().intersects( contentsRect() ) /* && + (fstyle & MShape) != HLine && (fstyle & MShape) != VLine */ ) { + + QPopupMenu::setFrameRect( QRect(fr.left() + 21, fr.top(), fr.width() - 21, fr.height()) ); + int oldLW = lineWidth(); + setUpdatesEnabled(FALSE); + setLineWidth(oldLW); + setUpdatesEnabled(TRUE); + + paint.setClipRegion( event->region().intersect( contentsRect() ) ); + drawContents( &paint ); + } + +} + + -- cgit v0.9.0.2