Jelajahi Sumber

Fehler behoben

kolja 7 tahun lalu
induk
melakukan
b77b7b8b9d
8 mengubah file dengan 92 tambahan dan 83 penghapusan
  1. 54 54
      Fenster.cpp
  2. 10 10
      Fenster.h
  3. 3 0
      MausEreignis.h
  4. 2 2
      RenderThread.cpp
  5. 6 5
      RenderThread.h
  6. 3 0
      TastaturEreignis.h
  7. 4 4
      Zeichnung.cpp
  8. 10 8
      Zeichnung.h

+ 54 - 54
Fenster.cpp

@@ -411,10 +411,10 @@ WFenster::WFenster()
     makParam( 0 ),
     sakParam( 0 ),
     takParam( 0 ),
-    MausAktion( 0 ),
-    VSchließAktion( 0 ),
-    NSchließAktion( 0 ),
-    TastaturAktion( 0 ),
+    mausAktion( 0 ),
+    vCloseAktion( 0 ),
+    nCloseAktion( 0 ),
+    tastaturAktion( 0 ),
     screen( 0 ),
     mx( -1 ),
     my( -1 ),
@@ -522,16 +522,16 @@ void WFenster::setPosition( Punkt &p )// Fenster Position
     RECT res;
     res.left = p.x, res.top = p.y, res.right = r.right - r.left, res.bottom = r.bottom - r.top;
     AdjustWindowRect( &res, style, 0 );
-/*    if( res.top < 0 )
-    {
-        res.bottom -= res.top;
-        res.top = 0;
-    }
-    if( res.left < 0 )
-    {
-        res.right -= res.left;
-        res.left = 0;
-    }*/
+    /*    if( res.top < 0 )
+        {
+            res.bottom -= res.top;
+            res.top = 0;
+        }
+        if( res.left < 0 )
+        {
+            res.right -= res.left;
+            res.left = 0;
+        }*/
     SetWindowPos( hWnd, 0, res.left, res.top, res.right, res.bottom, 0 ); // Position ändern
 }
 
@@ -542,16 +542,16 @@ void WFenster::setSize( Punkt &g )// Fenster Gr
     RECT res;
     res.left = r.left, res.top = r.top, res.right = g.x, res.bottom = g.y;
     AdjustWindowRect( &res, style, 0 );
-/*    if( res.top < 0 )
-    {
-        res.bottom -= res.top;
-        res.top = 0;
-    }
-    if( res.left < 0 )
-    {
-        res.right -= res.left;
-        res.left = 0;
-    }*/
+    /*    if( res.top < 0 )
+        {
+            res.bottom -= res.top;
+            res.top = 0;
+        }
+        if( res.left < 0 )
+        {
+            res.right -= res.left;
+            res.left = 0;
+        }*/
     SetWindowPos( hWnd, 0, res.left, res.top, res.right, res.bottom, 0 ); // Größe ändern
 }
 
@@ -562,16 +562,16 @@ void WFenster::setSize( int breite, int h
     RECT res;
     res.left = r.left, res.top = r.top, res.right = breite, res.bottom = höhe;
     AdjustWindowRect( &res, style, 0 );
-/*    if( res.top < 0 )
-    {
-        res.bottom -= res.top;
-        res.top = 0;
-    }
-    if( res.left < 0 )
-    {
-        res.right -= res.left;
-        res.left = 0;
-    }*/
+    /*    if( res.top < 0 )
+        {
+            res.bottom -= res.top;
+            res.top = 0;
+        }
+        if( res.left < 0 )
+        {
+            res.right -= res.left;
+            res.left = 0;
+        }*/
     SetWindowPos( hWnd, 0, res.left, res.top, res.right, res.bottom, 0 ); // Größe ändern
 }
 
@@ -604,7 +604,7 @@ void WFenster::zerst
 
 void WFenster::doMausAktion( MausEreignis &me )
 {
-    if( !MausAktion || !MausAktion( makParam, this, me ) )
+    if( !mausAktion || !mausAktion( makParam, this, me ) )
         return;
     if( screen && me.id != ME_Betritt && me.id != ME_Leaves )
     {
@@ -640,21 +640,21 @@ void WFenster::doMausAktion( MausEreignis &me )
 
 void WFenster::doVSchließAktion()
 {
-    if( !VSchließAktion )
+    if( !vCloseAktion )
         return;
-    VSchließAktion( sakParam, this );
+    vCloseAktion( sakParam, this );
 }
 
 void WFenster::doNSchließAktion()
 {
-    if( !NSchließAktion )
+    if( !nCloseAktion )
         return;
-    NSchließAktion( sakParam, this );
+    nCloseAktion( sakParam, this );
 }
 
 void WFenster::doTastaturAktion( TastaturEreignis &te )
 {
-    if( !TastaturAktion || !TastaturAktion( takParam, this, te ) )
+    if( !tastaturAktion || !tastaturAktion( takParam, this, te ) )
         return;
     if( screen )
         screen->doTastaturEreignis( te );
@@ -682,24 +682,24 @@ void WFenster::setTastaturEreignisParameter( void *p ) // setzt den Parameter vo
     takParam = p;
 }
 
-void WFenster::setMausAktion( bool( *MausAk )( void *, void *, MausEreignis ) )
+void WFenster::setMausAktion( MausAktion mausAk )
 {
-    MausAktion = MausAk;
+    mausAktion = mausAk;
 }
 
-void WFenster::setVSchließAktion( void( *vSchließAk )( void *, void * ) )
+void WFenster::setVSchließAktion( std::function< void( void*, void* ) > vSchließAk )
 {
-    VSchließAktion = vSchließAk;
+    vCloseAktion = vSchließAk;
 }
 
-void WFenster::setNSchließAktion( void( *nSchließAk )( void *, void * ) )
+void WFenster::setNSchließAktion( std::function< void( void*, void* ) > nSchließAk )
 {
-    NSchließAktion = nSchließAk;
+    nCloseAktion = nSchließAk;
 }
 
-void WFenster::setTastaturAktion( bool( *TastaturAk )( void *, void *, TastaturEreignis ) )
+void WFenster::setTastaturAktion( TastaturAktion tastaturAk )
 {
-    TastaturAktion = TastaturAk;
+    tastaturAktion = tastaturAk;
 }
 
 void WFenster::setFensterHandle( HWND hWnd ) // setzt das operationsfenster
@@ -879,22 +879,22 @@ HWND WFenster::getFensterHandle() const // gibt ein Handle zum Fenster zur
 
 bool WFenster::hatMausAktion() const
 {
-    return MausAktion != 0;
+    return mausAktion != 0;
 }
 
 bool WFenster::hatVSchließAktion() const
 {
-    return VSchließAktion != 0;
+    return vCloseAktion != 0;
 }
 
 bool WFenster::hatNSchließAktion() const
 {
-    return NSchließAktion != 0;
+    return nCloseAktion != 0;
 }
 
 bool WFenster::hatTastaturAktion() const
 {
-    return TastaturAktion != 0;
+    return tastaturAktion != 0;
 }
 
 Bildschirm *WFenster::getBildschirm() const
@@ -1366,7 +1366,7 @@ void Fenster::setClosingMeParam( void *param )
     closingMeParam = param;
 }
 
-void Fenster::setClosingMe( std::function< bool( void*, void*, MausEreignis ) > closingMe ) // setzt das Schließen Mausereignis
+void Fenster::setClosingMe( MausAktion closingMe ) // setzt das Schließen Mausereignis
 {
     this->closingMe = closingMe;
 }
@@ -1928,7 +1928,7 @@ void Fenster::render( Bild &zRObj ) // zeichent nach zRObj
             unlockZeichnung();
             return;
         }
-		Zeichnung::render( zRObj );
+        Zeichnung::render( zRObj );
         int rbr = 0;
         if( hatStyle( Style::Rahmen ) && rahmen )
         {

+ 10 - 10
Fenster.h

@@ -43,10 +43,10 @@ namespace Framework
         void *makParam;
         void *sakParam;
         void *takParam;
-        bool( *MausAktion )( void *, void *, MausEreignis );
-        void( *VSchließAktion )( void *, void * );
-        void( *NSchließAktion )( void *, void * );
-        bool( *TastaturAktion )( void *, void *, TastaturEreignis );
+        MausAktion mausAktion;
+        std::function< void( void*, void* ) > vCloseAktion;
+        std::function< void( void*, void* ) > nCloseAktion;
+        TastaturAktion tastaturAktion;
         Bildschirm *screen;
         int mx, my;
         bool verschiebbar;
@@ -121,19 +121,19 @@ namespace Framework
         // Wenn die Rückruffunktion 0 zurückgiebt, oder nicht gesetzt wurde, wird ein Maus Ereignis von dem Fenster nicht weiter beachtet
         // Es kann die Standartfunktion __ret1ME verwendet werden, die in MausEreignis.h definiert ist und immer 1 zurückgibt
         //  ak: Ein Zeiger auf die Rückruffunktion
-        __declspec( dllexport ) void setMausAktion( bool( *MausAk )( void *, void *, MausEreignis ) );
+        __declspec( dllexport ) void setMausAktion( MausAktion ak );
         // Setzt die Rückruffunktion, die bei vor dem Schließen aufgerufen werden soll.
         //  ak: Ein Zeiger auf die Rückruffunktion
-        __declspec( dllexport ) void setVSchließAktion( void( *vSchließAk )( void *, void * ) );
+        __declspec( dllexport ) void setVSchließAktion( std::function< void( void*, void* ) > ak );
         // Setzt die Rückruffunktion, die bei nach dem Schließen aufgerufen werden soll.
         //  ak: Ein Zeiger auf die Rückruffunktion
-        __declspec( dllexport ) void setNSchließAktion( void( *nSchließAk )( void *, void * ) );
+        __declspec( dllexport ) void setNSchließAktion( std::function< void( void*, void* ) > ak );
         // Setzt die Rückruffunktion, die bei einem Tastatur Ereignis aufgerufen werdne soll.
         // Wenn die Rückruffunktion 0 zurückgiebt, oder nicht gesetzt wurde, wird ein Tastatur Ereignis von der Zeichnung nicht weiter beachtet
         // Es kann die Standartfunktion __ret1TE verwendet werden, die in TastaturEreignis.h definiert ist und immer 1 zurückgibt
         // Weitere Standartfunktionen sind _nurNummernTE und _nurHexTE ebenfals aus TastaturEreignis.h
         //  ak: Ein Zeiger auf die Rückruffunktion
-        __declspec( dllexport ) void setTastaturAktion( bool( *TastaturAk )( void *, void *, TastaturEreignis ) );
+        __declspec( dllexport ) void setTastaturAktion( TastaturAktion ak );
         //  Setzt das Handle zum Fenster, das von dieser Klasse verwaltet werden soll
         //  hwnd: Das Handle
         __declspec( dllexport ) void setFensterHandle( HWND hWnd );
@@ -277,7 +277,7 @@ namespace Framework
             const static __int64 normal = Sichtbar | Erlaubt | Rahmen | Titel | TitelBuffered | Closable | ClosingHBild | ClosingKlickBuffer | Beweglich; // Vereint die Flags Sichtbar, Erlaubt, Rahmen, Titel, TitelBuffered, Schließbar, SchließHBild, SchließKlickBuffer, Beweglich
         };
     private:
-        std::function< bool( void*, void*, MausEreignis ) > closingMe;
+        MausAktion closingMe;
         void *closingMeParam;
         LRahmen *rahmen;
         TextFeld *titel;
@@ -384,7 +384,7 @@ namespace Framework
         // Wenn die Rückruffunktion 0 zurückgiebt, oder nicht gesetzt wurde, wird ein Maus Ereignis von der Zeichnung nicht weiter beachtet
         // Das Fenster wird nicht von selbst geschlossen, sondern sollte in der Rückruffunktion durch den aufruf von löscheStyle( Fenster::Style::Sichtbar ); geschlossen werden
         //  ak: Ein Zeiger auf die Rückruffunktion
-        __declspec( dllexport ) void setClosingMe( std::function< bool( void*, void*, MausEreignis ) > closingMe );
+        __declspec( dllexport ) void setClosingMe( MausAktion closingMe );
         // Setzt die Hintergrund Farbe des Schließen Knopfes
         //  f: Die Farbe im A8R8G8B8 Format
         __declspec( dllexport ) void setSBgFarbe( int f );

+ 3 - 0
MausEreignis.h

@@ -2,6 +2,7 @@
 #define MausEreignis_H
 
 #include "Vec3.h"
+#include <functional>
 
 namespace Framework
 {
@@ -55,6 +56,8 @@ namespace Framework
         bool verarbeitet;
     };
 
+    typedef std::function< bool( void*, void*, MausEreignis ) > MausAktion;
+
     // Standart Maus Ereinis Rückruffunktion
     //  param: Ein beliebiger Parameter
     //  obj: Die Zeichnung, welches diese Funktion aufruft

+ 2 - 2
RenderThread.cpp

@@ -107,12 +107,12 @@ void RenderTh::setPause( bool p ) // Renderpause
     pause = p;
 }
 
-void RenderTh::setRenderFunktion( void( *rF )( void *, void *, Bild * ) ) // setzt die Rückruf Funktion beim Rendern
+void RenderTh::setRenderFunktion( std::function< void( void*, void*, Bild* ) > rF ) // setzt die Rückruf Funktion beim Rendern
 {
     renderFunktion = rF;
 }
 
-void RenderTh::setTickFunktion( void( *tF )( void *, void *, double ) ) // setzt die Rückruf Funktion beim Tick
+void RenderTh::setTickFunktion( std::function< void( void*, void*, double ) > tF ) // setzt die Rückruf Funktion beim Tick
 {
     tickFunktion = tF;
 }

+ 6 - 5
RenderThread.h

@@ -3,6 +3,7 @@
 
 #include "Thread.h"
 #include "Critical.h"
+#include <functional>
 
 namespace Framework
 {
@@ -20,8 +21,8 @@ namespace Framework
         double renderTickZeit;
         void *renderParameter;
         void *tickParameter;
-        void( *renderFunktion )( void *, void *, Bild * );
-        void( *tickFunktion )( void *, void *, double );
+        std::function< void( void*, void*, Bild* ) > renderFunktion;
+        std::function< void( void*, void*, double ) > tickFunktion;
         bool pause;
         Critical cs;
         int maxFps;
@@ -55,10 +56,10 @@ namespace Framework
         __declspec( dllexport ) void setPause( bool p );
         // Setzt die Rückruffunktion, die immer vor dem Zeichnen aufgerufen wird
         //  rF: Die Rückruffunktion
-        __declspec( dllexport ) void setRenderFunktion( void( *rF )( void *, void *, Bild * ) );
+        __declspec( dllexport ) void setRenderFunktion( std::function< void( void*, void*, Bild* ) > rF );
         // Setzt die Rückruffunktion, die immer vor dem Aktualisieren aller Objekte aufgerufen wird
-        //  rF: Die Rückruffunktion
-        __declspec( dllexport ) void setTickFunktion( void( *tF )( void *, void *, double ) );
+        //  tF: Die Rückruffunktion
+        __declspec( dllexport ) void setTickFunktion( std::function< void( void*, void*, double ) > tF );
         // Setzt den Parameter der Rückruffunktion, die immer vor dem Zeichnen aufgerufen wird
         //  p: Der Parameter
         __declspec( dllexport ) void setRenderFunktionParameter( void *p );

+ 3 - 0
TastaturEreignis.h

@@ -2,6 +2,7 @@
 #define TastaturEreignis_H
 
 #include "Betriebssystem.h"
+#include <functional>
 
 namespace Framework
 {
@@ -55,6 +56,8 @@ namespace Framework
         bool verarbeitet;
     };
 
+    typedef std::function< bool( void*, void*, TastaturEreignis ) > TastaturAktion;
+
     // Standart Tastatur Ereinis Rückruffunktion
     //  param: Ein beliebiger Parameter
     //  obj: Die Zeichnung, welches diese Funktion aufruft

+ 4 - 4
Zeichnung.cpp

@@ -83,12 +83,12 @@ void Zeichnung::setTastaturEreignisParameter( void *p ) // setzt den Parameter v
     takParam = p;
 }
 
-void Zeichnung::setMausEreignis( std::function< bool( void*, void*, MausEreignis ) > ak ) // setzt das Maus Ereignis
+void Zeichnung::setMausEreignis( MausAktion ak ) // setzt das Maus Ereignis
 {
     mak = ak;
 }
 
-void Zeichnung::setTastaturEreignis( std::function< bool( void*, void*, TastaturEreignis ) > ak ) // setzt das TastaturEreignis
+void Zeichnung::setTastaturEreignis( TastaturAktion ak ) // setzt das TastaturEreignis
 {
     tak = ak;
 }
@@ -103,12 +103,12 @@ void Zeichnung::setNTastaturEreignisParameter( void *p ) // setzt den Parameter
     ntakParam = p;
 }
 
-void Zeichnung::setNMausEreignis( std::function< bool( void*, void*, MausEreignis ) > ak ) // setzt das Maus Ereignis
+void Zeichnung::setNMausEreignis( MausAktion ak ) // setzt das Maus Ereignis
 {
     nMak = ak;
 }
 
-void Zeichnung::setNTastaturEreignis( std::function< bool( void*, void*, TastaturEreignis ) > ak ) // setzt das TastaturEreignis
+void Zeichnung::setNTastaturEreignis( TastaturAktion ak ) // setzt das TastaturEreignis
 {
     nTak = ak;
 }

+ 10 - 8
Zeichnung.h

@@ -2,6 +2,8 @@
 #define Zeichnung_H
 
 #include "Punkt.h"
+#include "MausEreignis.h"
+#include "TastaturEreignis.h"
 #include "Critical.h"
 #include <queue>
 #include <functional>
@@ -38,12 +40,12 @@ namespace Framework
         Punkt gr;
         void *makParam;
         void *takParam;
-        std::function< bool( void*, void*, MausEreignis ) > mak;
-        std::function< bool( void*, void*, TastaturEreignis ) > tak;
+        MausAktion mak;
+        TastaturAktion tak;
         void *nmakParam;
         void *ntakParam;
-        std::function< bool( void*, void*, MausEreignis ) > nMak;
-        std::function< bool( void*, void*, TastaturEreignis ) > nTak;
+        MausAktion nMak;
+        TastaturAktion nTak;
         bool mausIn;
         Critical cs;
         ToolTip *toolTip;
@@ -80,13 +82,13 @@ namespace Framework
         // Wenn die Rückruffunktion 0 zurückgiebt, oder nicht gesetzt wurde, wird ein Maus Ereignis von der Zeichnung nicht weiter beachtet
         // Es kann die Standartfunktion __ret1ME verwendet werden, die in MausEreignis.h definiert ist und immer 1 zurückgibt
         //  ak: Ein Zeiger auf die Rückruffunktion
-        __declspec( dllexport ) void setMausEreignis( std::function< bool( void*, void*, MausEreignis ) > ak );
+        __declspec( dllexport ) void setMausEreignis( MausAktion ak );
         // Setzt die Rückruffunktion, die bei einem Tastatur Ereignis aufgerufen werdne soll.
         // Wenn die Rückruffunktion 0 zurückgiebt, oder nicht gesetzt wurde, wird ein Tastatur Ereignis von der Zeichnung nicht weiter beachtet
         // Es kann die Standartfunktion __ret1TE verwendet werden, die in TastaturEreignis.h definiert ist und immer 1 zurückgibt
         // Weitere Standartfunktionen sind _nurNummernTE und _nurHexTE ebenfals aus TastaturEreignis.h
         //  ak: Ein Zeiger auf die Rückruffunktion
-        __declspec( dllexport ) void setTastaturEreignis( std::function< bool( void*, void*, TastaturEreignis ) > ak );
+        __declspec( dllexport ) void setTastaturEreignis( TastaturAktion ak );
         // setzt den Parameter, der bei einem Maus Ereignis an die Rückruffunktion übergeben wird, die aufgerufen wird, fals das Ereignis von der Zeichnung verarbeitet wurde
         //  p: Der Parameter
         __declspec( dllexport ) void setNMausEreignisParameter( void *p );
@@ -97,13 +99,13 @@ namespace Framework
         // Wenn die Rückruffunktion 1 zurückgiebt, oder nicht gesetzt wurde, wird das Maus Ereignis von keiner weiteren Zeichnung verarbeitet, die zum Beispiel hinter dieser Zeichnung liegen
         // Es kann die Standartfunktion __ret1ME verwendet werden, die in MausEreignis.h definiert ist und immer 1 zurückgibt
         //  ak: Ein Zeiger auf die Rückruffunktion
-        __declspec( dllexport ) void setNMausEreignis( std::function< bool( void*, void*, MausEreignis ) > ak );
+        __declspec( dllexport ) void setNMausEreignis( MausAktion ak );
         // Setzt die Rückruffunktion, die bei einem Tastatur Ereignis aufgerufen werdne soll, nachdem das Ereignis bereits von der Zeichnung verarbeitet wurde
         // Wenn die Rückruffunktion 1 zurückgiebt, oder nicht gesetzt wurde, wird das Tastatur Ereignis von keiner weiteren Zeichnung verarbeitet
         // Es kann die Standartfunktion __ret1TE verwendet werden, die in TastaturEreignis.h definiert ist und immer 1 zurückgibt
         // Weitere Standartfunktionen sind _nurNummernTE und _nurHexTE ebenfals aus TastaturEreignis.h
         //  ak: Ein Zeiger auf die Rückruffunktion
-        __declspec( dllexport ) void setNTastaturEreignis( std::function< bool( void*, void*, TastaturEreignis ) > ak );
+        __declspec( dllexport ) void setNTastaturEreignis( TastaturAktion ak );
         // Verarbeitet ein Maus Ereignis. Wird vom Framework automatisch aufgerufen.
         //  me: Das Ereignis
         __declspec( dllexport ) virtual void doMausEreignis( MausEreignis &me );