// // C++ Implementation: komposegldesktopwidget // // Description: // // // Author: Hans Oischinger , (C) 2004 // // Copyright: See COPYING file that comes with this distribution // // #include "komposegldesktopwidget.h" #include "komposetask.h" #include "komposegltaskwidget.h" #include "komposetaskmanager.h" #include #include #include #include KomposeGLDesktopWidget::KomposeGLDesktopWidget(int desktop, TQObject *parent, const char *name) : KomposeGLWidget( parent ), deskNum( desktop ) { // Retrieve geometry TQDesktopWidget *deskwidget = new TQDesktopWidget(); deskRect = deskwidget->availableGeometry(); delete deskwidget; createTaskWidgets(); //connect( KomposeTaskManager::instance(), SIGNAL( newTask( KomposeTask* ) ), this, SLOT( createTaskWidget( KomposeTask* ) ) ); } KomposeGLDesktopWidget::~KomposeGLDesktopWidget() {} void KomposeGLDesktopWidget::createTaskWidgets() { TaskList tl = KomposeTaskManager::instance()->getTasks(); tqDebug("KomposeGLDesktopWidget::createTaskWidgets() on %d tasks", tl.count()); TQPtrListIterator it( tl ); KomposeTask *task; while ( (task = it.current()) != 0 ) { ++it; TQ_CHECK_PTR(task); createTaskWidget( task ); } } void KomposeGLDesktopWidget::createTaskWidget( KomposeTask* task ) { if (deskNum == task->onDesktop()-1 ) { tqDebug("KomposeGLDesktopWidget::createTaskWidget()" ); KomposeGLTaskWidget *taskwidget = new KomposeGLTaskWidget( task, this, 0, "" ); } } int KomposeGLDesktopWidget::getHeightForWidth( int w ) const { tqDebug("KomposeGLDesktopWidget::getHeightForWidth()"); return ((double)w / (double)deskRect.width()) * deskRect.height(); } int KomposeGLDesktopWidget::getWidthForHeight( int h ) const { tqDebug("KomposeGLDesktopWidget::getWidthForHeight()"); return ((double)h / (double)deskRect.height()) * deskRect.width(); } double KomposeGLDesktopWidget::getAspectRatio() { tqDebug("KomposeGLDesktopWidget::getAspectRatio()"); return (double)deskRect.width() / (double)deskRect.height(); } void KomposeGLDesktopWidget::draw() { KomposeGLWidget::draw(); tqDebug("KomposeGLDesktopWidget::draw() - %d,%d %dx%d", getRect().x(), getRect().y(), getRect().width(), getRect().height()); glColor3f(0.0f, 0.0f, 1.0f); glBegin( GL_QUADS ); glVertex2i( getRect().x() + getRect().width(), getRect().y() ); glVertex2i( getRect().x(), getRect().y() ); glVertex2i( getRect().x(), getRect().y() + getRect().height() ); glVertex2i( getRect().x() + getRect().width(), getRect().y() + getRect().height() ); glEnd(); // Draw Task Widgets TQPtrListIterator it( list ); // Check or empty list if (it.count() == 0) { tqDebug("KomposeGLDesktopWidget::draw() - empty list... skipping!"); return; } KomposeGLWidget *widget; while ( (widget = (KomposeGLWidget*)it.current()) != 0 ) { ++it; widget->draw(); } } #include "komposegldesktopwidget.moc"