#if 0

// Note: this file has been copied from the TQt source.
// Those classes are normally used internally in TQt
// but we need them for immitate the roll-over effect of TQComboBox.
//
// Some class definitions have been moved from qeffects.cpp to this file.
// They are framed with the comment "MOVED FROM qeffect.cpp"

/****************************************************************************
** $Id: qt/qeffects_p.h   3.3.4   edited May 27 2003 $
**
** Definition of TQEffects functions
**
** Created : 000621
**
** Copyright (C) 2000 Trolltech AS.  All rights reserved.
**
** This file is part of the widgets module of the TQt GUI Toolkit.
**
** This file may be distributed under the terms of the Q Public License
** as defined by Trolltech AS of Norway and appearing in the file
** LICENSE.TQPL included in the packaging of this file.
**
** 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.
**
** Licensees holding valid TQt Enterprise Edition or TQt Professional Edition
** licenses may use this file in accordance with the TQt Commercial License
** Agreement provided with the Software.
**
** 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/pricing.html or email sales@trolltech.com for
**   information about TQt Commercial License Agreements.
** See http://www.trolltech.com/qpl/ for TQPL licensing information.
** 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.
**
**********************************************************************/

#ifndef TQEFFECTS_P_H
#define TQEFFECTS_P_H


//
//  W A R N I N G
//  -------------
//
// This file is not part of the TQt API.  It exists for the convenience
// of qeffects.cpp, qcombobox.cpp, qpopupmenu.cpp and qtooltip.cpp.
// This header file may change from version to version without notice,
// or even be removed.
//
// We mean it.
//
//

#ifndef TQT_H
#include "tqnamespace.h"
#endif // TQT_H

#ifndef TQT_NO_EFFECTS
class TQWidget;

struct TQEffects
{
	enum Direction {
		LeftScroll	= 0x0001,
		RightScroll	= 0x0002,
		UpScroll	= 0x0004,
		DownScroll	= 0x0008
	};

	typedef uint DirFlags;
};

extern void TQ_EXPORT qScrollEffect( TQWidget*, TQEffects::DirFlags dir = TQEffects::DownScroll, int time = -1 );
extern void TQ_EXPORT qFadeEffect( TQWidget*, int time = -1 );


/******************* MOVED FROM qeffect.cpp: */

#include "tqguardedptr.h"
#include "tqdatetime.h"
#include "tqtimer.h"
#include "tqpixmap.h"
#include "tqimage.h"

/*
  Internal class to get access to protected TQWidget-members
*/

class TQAccessWidget : public TQWidget
{
	friend class TQAlphaWidget;
	friend class TQRollEffect;
	public:
		TQAccessWidget( TQWidget* parent=0, const char* name=0, WFlags f = 0 )
	: TQWidget( parent, name, f ) {}
};

/*
  Internal class TQAlphaWidget.

  The TQAlphaWidget is shown while the animation lasts
  and displays the pixmap resulting from the alpha blending.
*/

class TQAlphaWidget: public TQWidget, private TQEffects
{
	Q_OBJECT
  
	public:
		TQAlphaWidget( TQWidget* w, WFlags f = 0 );

		void run( int time );

	protected:
		void paintEvent( TQPaintEvent* e );
		void closeEvent( TQCloseEvent* );
		bool eventFilter( TQObject* o, TQEvent* e );
		void alphaBlend();

	protected slots:
		void render();

	private:
		TQPixmap pm;
		double alpha;
		TQImage back;
		TQImage front;
		TQImage mixed;
		TQGuardedPtr<TQAccessWidget> widget;
		int duration;
		int elapsed;
		bool showWidget;
		TQTimer anim;
		TQTime checkTime;
};

/*
  Internal class TQRollEffect

  The TQRollEffect widget is shown while the animation lasts
  and displays a scrolling pixmap.
*/

class TQRollEffect : public TQWidget, private TQEffects
{
	Q_OBJECT
  
	public:
		TQRollEffect( TQWidget* w, WFlags f, DirFlags orient );

		void run( int time );

	protected:
		void paintEvent( TQPaintEvent* );
		bool eventFilter( TQObject*, TQEvent* );
		void closeEvent( TQCloseEvent* );

	private slots:
		void scroll();

	private:
		TQGuardedPtr<TQAccessWidget> widget;

		int currentHeight;
		int currentWidth;
		int totalHeight;
		int totalWidth;

		int duration;
		int elapsed;
		bool done;
		bool showWidget;
		int orientation;

		TQTimer anim;
		TQTime checkTime;

		TQPixmap pm;
};

/******************************/

#endif // TQT_NO_EFFECTS

#endif // TQEFFECTS_P_H

#endif // #if 0
