From 55a4cec6cbde366324b811e0d01068dc601414f9 Mon Sep 17 00:00:00 2001
From: marco <marco@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Fri, 12 Mar 2010 09:17:03 +0000
Subject: [PATCH] draw hud

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@1816 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 examples/dokk/dokk.py  |  9 ++++++++-
 examples/dokk/glwin.py | 39 +++++++++++++++++++++++++++++++++++----
 2 files changed, 43 insertions(+), 5 deletions(-)

diff --git a/examples/dokk/dokk.py b/examples/dokk/dokk.py
index 46de08f32..fce59b4cc 100644
--- a/examples/dokk/dokk.py
+++ b/examples/dokk/dokk.py
@@ -4,5 +4,12 @@ from ost import io
 sdh=io.LoadPDB('../entity/sdh.pdb')
 go=gfx.Entity("sdh", sdh)
 scene.Add(go)
+
 dokk_win=glwin.DokkGLWin()
-dokk_win.Show()
+
+scene.CenterOn(go)
+
+if '--fullscreen' in sys.argv:
+  dokk_win.Show(fullscreen=True)
+else:
+  dokk_win.Show(fullscreen=False)
\ No newline at end of file
diff --git a/examples/dokk/glwin.py b/examples/dokk/glwin.py
index 0cc5f4fc0..9c4dcedfb 100644
--- a/examples/dokk/glwin.py
+++ b/examples/dokk/glwin.py
@@ -7,15 +7,44 @@ from PyQt4.QtOpenGL import *
 class DokkGLCanvas(QGLWidget):
   def __init__(self, format, parent=None):
     QGLWidget.__init__(self, format, parent)
+    self.last_pos_=QPoint()
+    self.setAutoFillBackground(False)
   def initializeGL(self):
     gfx.Scene().InitGL()
 
   def paintGL(self):
     gfx.Scene().RenderGL()
+  def paintEvent(self, event):
+    gfx.Scene().RenderGL()
+    painter=QPainter(self)
+    self.RenderHUD(painter)
 
+  def RenderHUD(self, painter):
+    painter.setPen(QColor(100, 100, 100, 50))
+    painter.setBrush(QColor(200, 200, 200, 50))
+    painter.drawRect(QRect(QPoint(0, 0), QSize(self.width(), 25)))
+    painter.setPen(QPen(QColor(255,255,255), Qt.SolidLine))
+    painter.setFont(QFont("Verdana"))
+    painter.drawText(QPoint(10, 20), "Test Message")
   def resizeGL(self, w, h):
     gfx.Scene().Resize(w, h)
 
+  def mousePressEvent(self, event):
+    self.last_point_=QPoint(event.x(), event.y())
+
+  def mouseMoveEvent(self, event):
+    delta=QPoint(event.x(), event.y())-self.last_point_
+    self.last_point_=QPoint(event.x(), event.y())
+    if delta.y()!=0:
+      gfx.Scene().Apply(gfx.InputEvent(gfx.INPUT_DEVICE_MOUSE,
+                                       gfx.INPUT_COMMAND_ROTX, delta.y()*0.5), 
+                        False)
+    if delta.x()!=0:
+      gfx.Scene().Apply(gfx.InputEvent(gfx.INPUT_DEVICE_MOUSE,
+                                       gfx.INPUT_COMMAND_ROTY, delta.x()*0.5), 
+                        False)
+    self.update()
+
 class DokkGLWin(gfx.GLWinBase):
     def _CreateFormat(self):
       fmt=QGLFormat()
@@ -24,11 +53,13 @@ class DokkGLWin(gfx.GLWinBase):
     def __init__(self):
         gfx.GLWinBase.__init__(self)
         self.canvas_=DokkGLCanvas(self._CreateFormat())
-
     def DoRefresh(self):
       self.refresh_=True
-
-    def Show(self):
-      self.canvas_.show()
+      
+    def Show(self, fullscreen):
+      if fullscreen:
+        self.canvas_.showFullScreen()
+      else:
+        self.canvas_.show()
     def SetStereo():
       pass
\ No newline at end of file
-- 
GitLab