You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
3.8 KiB
120 lines
3.8 KiB
4 years ago
|
/***************************************************************************
|
||
|
* Copyright (C) 2004 by Hans Oischinger *
|
||
|
* oisch@sourceforge.net *
|
||
|
* *
|
||
|
* 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 "komposeglwidget.h"
|
||
|
#include "komposelayout.h"
|
||
|
|
||
4 years ago
|
#include <tqtimer.h>
|
||
4 years ago
|
#include <kdebug.h>
|
||
|
|
||
|
|
||
|
/*
|
||
|
* The constructor accepts a custom layout, if none is specified a defaultlayout is used
|
||
|
*/
|
||
4 years ago
|
KomposeGLWidget::KomposeGLWidget(TQObject *parent, KomposeLayout *l, const char *name)
|
||
|
: TQObject(parent)
|
||
4 years ago
|
{
|
||
4 years ago
|
geometry = TQRect(0,0,1,1);
|
||
4 years ago
|
if (!l)
|
||
|
layout = new KomposeLayout( this );
|
||
|
else
|
||
|
layout = l;
|
||
|
}
|
||
|
|
||
|
|
||
|
KomposeGLWidget::~KomposeGLWidget()
|
||
|
{}
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Whenever a child is added to the widget it's also added to the layout
|
||
|
*/
|
||
4 years ago
|
void KomposeGLWidget::childEvent ( TQChildEvent * ce )
|
||
4 years ago
|
{
|
||
|
if ( !ce->child()->inherits("KomposeGLWidget") )
|
||
|
return;
|
||
|
|
||
|
if ( ce->inserted() )
|
||
|
{
|
||
4 years ago
|
tqDebug("KomposeGLWidget::childEvent : Added widget " << ce->child()->className() << " to " << className() << endl;
|
||
4 years ago
|
list.append( dynamic_cast<KomposeGLWidget*>(ce->child()) );
|
||
|
layout->add( dynamic_cast<KomposeWidgetInterface*>(ce->child()) );
|
||
|
}
|
||
|
else if ( ce->removed() )
|
||
|
{
|
||
4 years ago
|
tqDebug("KomposeGLWidget::childEvent : Removed widget %s from %s", ce->child()->className(), className() );
|
||
4 years ago
|
list.remove( dynamic_cast<KomposeGLWidget*>(ce->child()) );
|
||
|
layout->remove( dynamic_cast<KomposeWidgetInterface*>(ce->child()) );
|
||
|
}
|
||
|
|
||
|
// Whenever a child is added/removed: rearrange layout
|
||
|
// FIXME: sometimes widget's aren't added in time, so we have to add a short delay:
|
||
4 years ago
|
TQTimer::singleShot( 200, layout, SLOT( arrangeLayout() ) );
|
||
4 years ago
|
}
|
||
|
|
||
|
/*
|
||
|
* Main GL draw routine
|
||
|
*/
|
||
|
void KomposeGLWidget::draw()
|
||
|
{
|
||
4 years ago
|
tqDebug("KomposeGLWidget::draw - Arranging layout");
|
||
4 years ago
|
layout->arrangeLayout();
|
||
|
}
|
||
|
|
||
|
|
||
4 years ago
|
// Redirect these functions to TQWidget
|
||
4 years ago
|
|
||
4 years ago
|
void KomposeGLWidget::setGeom ( const TQRect &rect )
|
||
4 years ago
|
{
|
||
|
geometry = rect;
|
||
|
}
|
||
|
|
||
4 years ago
|
void KomposeGLWidget::setGeom ( const TQSize &size )
|
||
4 years ago
|
{
|
||
|
geometry.setSize( size );
|
||
|
}
|
||
|
|
||
4 years ago
|
TQSize KomposeGLWidget::getSize() const
|
||
4 years ago
|
{
|
||
|
return geometry.size();
|
||
|
}
|
||
|
|
||
4 years ago
|
TQRect KomposeGLWidget::getRect() const
|
||
4 years ago
|
{
|
||
|
return geometry;
|
||
|
}
|
||
|
|
||
|
KomposeWidgetInterface* KomposeGLWidget::getParentWidget() const
|
||
|
{
|
||
4 years ago
|
if ( TQObject::parent()->inherits("KomposeWidgetInterface") )
|
||
|
return (KomposeWidgetInterface*)TQObject::parent();
|
||
4 years ago
|
else
|
||
|
{
|
||
4 years ago
|
tqDebug("KomposeGLWidget::getParentWidget() - TQWidget::parent() does not inherit (KomposeWidgetInterface)");
|
||
4 years ago
|
return NULL;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void KomposeGLWidget::removeChildWidget( KomposeWidgetInterface* obj )
|
||
|
{
|
||
4 years ago
|
TQObject::removeChild((TQObject *) obj);
|
||
4 years ago
|
}
|
||
|
|
||
|
#include "komposeglwidget.moc"
|