summaryrefslogtreecommitdiffstats
path: root/src/komposegl/komposegldesktopwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/komposegl/komposegldesktopwidget.cpp')
-rw-r--r--src/komposegl/komposegldesktopwidget.cpp116
1 files changed, 116 insertions, 0 deletions
diff --git a/src/komposegl/komposegldesktopwidget.cpp b/src/komposegl/komposegldesktopwidget.cpp
new file mode 100644
index 0000000..6b8d857
--- /dev/null
+++ b/src/komposegl/komposegldesktopwidget.cpp
@@ -0,0 +1,116 @@
+//
+// C++ Implementation: komposegldesktopwidget
+//
+// Description:
+//
+//
+// Author: Hans Oischinger <oisch@sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "komposegldesktopwidget.h"
+
+#include "komposetask.h"
+#include "komposegltaskwidget.h"
+#include "komposetaskmanager.h"
+
+#include <tqdesktopwidget.h>
+#include <tqobjectlist.h>
+#include <kdebug.h>
+
+#include <GL/gl.h>
+
+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<KomposeTask> 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<KomposeGLWidget> 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"