Răsfoiți Sursa

translate some more comments to english

Kolja Strohm 1 săptămână în urmă
părinte
comite
8d7e39626b
19 a modificat fișierele cu 1090 adăugiri și 1192 ștergeri
  1. 17 19
      AsynchronCall.h
  2. 23 24
      Bild.h
  3. 43 43
      Bildschirm.cpp
  4. 104 109
      Bildschirm.h
  5. 7 7
      Critical.h
  6. 56 56
      Datei.cpp
  7. 1 1
      Datei.h
  8. 19 19
      DateiSystem.cpp
  9. 97 105
      DateiSystem.h
  10. 95 107
      Fenster.h
  11. 24 27
      InMemoryBuffer.cpp
  12. 71 81
      Knopf.h
  13. 34 35
      M3Datei.h
  14. 19 20
      Reader.cpp
  15. 40 47
      Thread.h
  16. 44 54
      UIMLView.h
  17. 73 76
      XML.cpp
  18. 106 112
      XML.h
  19. 217 250
      Zeichnung.h

+ 17 - 19
AsynchronCall.h

@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <functional>
 
@@ -16,27 +16,25 @@ namespace Framework
         void threadEnd() override;
 
     public:
-        //! Konstruktor
-        //! \param f Die Funktion die asynchron aufgerufen werden soll
-        //!  Muss mit new aufgerufen werden. Das Objekt löscht sich selbst
+        //! Constructor
+        //! \param f The function to be called asynchronously
+        //!  Must be called with new. The object deletes itself
         DLLEXPORT AsynchronCall(std::function<void()> f);
-        //! Konstruktor
-        //! \param name Der Name des Threads
-        //! \param f Die Funktion die asynchron aufgerufen werden soll
-        //!  Muss mit new aufgerufen werden. Das Objekt löscht sich selbst
+        //! Constructor
+        //! \param name The name of the thread
+        //! \param f The function to be called asynchronously
+        //!  Must be called with new. The object deletes itself
         DLLEXPORT AsynchronCall(const char* name, std::function<void()> f);
-        //! Konstruktor
-        //! \param f Die Funktion die asynchron aufgerufen werden soll
-        //! \param finished Wird auf 1 gesetzt wenn der Aufruf abgearbeitet
-        //! wurde
-        //!  Muss mit new aufgerufen werden. Das Objekt löscht sich selbst
+        //! Constructor
+        //! \param f The function to be called asynchronously
+        //! \param finished Will be set to 1 when the call has been processed
+        //!  Must be called with new. The object deletes itself
         DLLEXPORT AsynchronCall(std::function<void()> f, bool* finished);
-        //! Konstruktor
-        //! \param name Der Name des Threads
-        //! \param f Die Funktion die asynchron aufgerufen werden soll
-        //! \param finished Wird auf 1 gesetzt wenn der Aufruf abgearbeitet
-        //! wurde
-        //!  Muss mit new aufgerufen werden. Das Objekt löscht sich selbst
+        //! Constructor
+        //! \param name The name of the thread
+        //! \param f The function to be called asynchronously
+        //! \param finished Will be set to 1 when the call has been processed
+        //!  Must be called with new. The object deletes itself
         DLLEXPORT AsynchronCall(
             const char* name, std::function<void()> f, bool* finished);
     };

+ 23 - 24
Bild.h

@@ -1,4 +1,4 @@
-#ifndef Bild_H
+#ifndef Bild_H
 #define Bild_H
 
 #include "Array.h"
@@ -7,17 +7,17 @@
 
 namespace Framework
 {
-    class Bild; //! aus dieser Datei
+    class Bild; //! from this file
 #ifdef WIN32
     class VScrollBar;    //! Scroll.h
     class HScrollBar;    //! Scroll.h
     class Rahmen;        //! Rahmen.h
-    struct MausEreignis; //! Mausereignis.h
+    struct MausEreignis; //! MausEreignis.h
     class Text;          //! Text.h
 #endif
 
-    //! Verwaltet ein Bild als Array von Pixel Farben im A8R8G8B8 Format, in den
-    //! gezeichnet werden kann
+    //! Manages an image as an array of pixel colors in A8R8G8B8 format
+    //! that can be drawn to
     class Bild : public virtual ReferenceCounter
     {
     private:
@@ -33,7 +33,7 @@ namespace Framework
         bool rend;
         bool alpha3D;
 
-        //! privat
+        //! private
         inline void alphaPixelP(int x, int y, int f);
         inline void alphaPixelP3D(int x, int y, int f);
         inline void alphaPixelP(int& fc, int f);
@@ -94,29 +94,28 @@ namespace Framework
             const Bild& textur);
 
     public:
-        //! Konstruktor
-        //! \param options 1, wenn das Bild Buffer zum Zeichnen anlegen soll,
-        //! wie zum Beispiel für temporäre Zeichnenflächen Begrenzungen und
-        //! Transparenz Filter
-        //!  Verbraucht etwa 50 kb mehr Arbeitsspeicher pro Bild
+        //! Constructor
+        //! \param options 1 if the image should create buffers for drawing,
+        //! such as for temporary drawing area boundaries and
+        //! transparency filters
+        //!  Uses about 50 kb more memory per image
         DLLEXPORT Bild(bool options = 0);
-        //! Destruktor
+        //! Destructor
         DLLEXPORT ~Bild();
-        //! Prüft ob ein Rechteck vollständig oder teilweise in der Zeichen
-        //! Fläche liegt.
-        //!  return 0, falls das Rechteck nicht in der Zeichenfläche liegt, 1
-        //!  sonst
+        //! Checks whether a rectangle is fully or partially within the drawing
+        //! area.
+        //!  return 0 if the rectangle is not in the drawing area, 1 otherwise
         DLLEXPORT bool isAreaDrawable(int x, int y, int width, int height);
-        //! Wird dieser Flag gesetzt, so wird beim Alpha Blending wenn die
-        //! vorheriege Farbe 0 ist nur die neue mit ihrem Alpha Wert kopiert.
-        //! Das ist sinnvoll für die Verwendung im 3DBildschirm, wo das
-        //! Gezeichnette Bild später mittels Alpha Blending angezeigt wird. Der
-        //! Flag wird im 3DBildschirm automatisch gesetzt
+        //! If this flag is set, when alpha blending and the previous color
+        //! is 0, the new color is only copied with its alpha value.
+        //! This is useful for use in the 3D screen, where the drawn image
+        //! is later displayed using alpha blending. The flag is set
+        //! automatically in the 3D screen
         DLLEXPORT void setAlpha3D(bool erlaubt);
-        //! Setzt die mindest Transparenz von allem was als nächstes gezeichnet
-        //! wird, bis der zugehörige releaseAlpha() aufruf erfolgt.
+        //! Sets the minimum transparency of everything drawn next,
+        //! until the corresponding releaseAlpha() call is made.
         DLLEXPORT void setAlpha(unsigned char alpha);
-        //! Entfernt die als letztes mit setAlpha() gesetzte Alpha grenze
+        //! Removes the last alpha limit set with setAlpha()
         DLLEXPORT void releaseAlpha();
         //! Setzt einen Zeiger auf die Pixel, in die gezeichnet werden soll
         //! \param buffer Ein Array mit den A8R8G8B8 Farbwerten

+ 43 - 43
Bildschirm.cpp

@@ -1,4 +1,4 @@
-#include "Bildschirm.h"
+#include "Bildschirm.h"
 
 #include <iostream>
 
@@ -27,8 +27,8 @@
 
 using namespace Framework;
 
-// Inhalt der Bildschirmklass aus Bildschirm.h
-// Konstruktor
+// Content of the Bildschirm class from Bildschirm.h
+// Constructor
 Bildschirm::Bildschirm(WFenster* f)
     : ReferenceCounter(),
       api(0),
@@ -48,7 +48,7 @@ Bildschirm::Bildschirm(WFenster* f)
       handleUserInputsOnTick(0)
 {}
 
-// Destruktor
+// Destructor
 Bildschirm::~Bildschirm()
 {
     lock();
@@ -75,7 +75,7 @@ void Bildschirm::setHandleUserInputsOnTick(bool handleOnTick)
     handleUserInputsOnTick = handleOnTick;
 }
 
-// nicht konstant
+// non-constant
 void Bildschirm::lock()
 {
     cs.lock();
@@ -91,7 +91,7 @@ void Bildschirm::setFill(bool f)
     fill = f;
 }
 
-// Aktualisiert die Objekte, mit der die Grafikkarte verwaltet wird
+// Updates the objects that manage the graphics card
 void Bildschirm::update()
 {
     lock();
@@ -100,13 +100,13 @@ void Bildschirm::update()
 }
 
 void Bildschirm::setTestRend(
-    bool tr) // legt fest, ob vo rendern auf updates geprüft werden soll
+bool tr) // specifies whether to check for updates before rendering
 {
     testRend = tr;
 }
 
 void Bildschirm::setRenderZeichnungen(
-    bool rO) // legt fest, ob die Zeichnunge gerendert werden
+bool rO) // specifies whether drawings are rendered
 {
     lock();
     renderZeichnungen = rO;
@@ -115,13 +115,13 @@ void Bildschirm::setRenderZeichnungen(
 }
 
 void Bildschirm::setOnTop(
-    bool onTop) // legt fest, ob das onTop Zeichnung gerendert wid
+bool onTop) // specifies whether the onTop drawing is rendered
 {
     renderOnTop = onTop;
     rend = 1;
 }
 
-void Bildschirm::setOnTopZeichnung(Zeichnung* obj) // setzt das OnTop Zeichnung
+void Bildschirm::setOnTopZeichnung(Zeichnung* obj) // sets the onTop drawing
 {
     lock();
     if (onTop) onTop->release();
@@ -130,13 +130,13 @@ void Bildschirm::setOnTopZeichnung(Zeichnung* obj) // setzt das OnTop Zeichnung
     unlock();
 }
 
-void Bildschirm::setdeckFarbe(int f) // setzt die deckFarbe
+void Bildschirm::setdeckFarbe(int f) // sets the overlay color
 {
     deckFarbe = f;
     rend = 1;
 }
 
-void Bildschirm::addMember(Zeichnung* obj) // Fügt ein Zeichnung hinzu
+void Bildschirm::addMember(Zeichnung* obj) // Adds a drawing
 {
     lock();
     members->add(obj);
@@ -144,7 +144,7 @@ void Bildschirm::addMember(Zeichnung* obj) // Fügt ein Zeichnung hinzu
     unlock();
 }
 
-void Bildschirm::removeMember(Zeichnung* zObj) // Entfernt ein Zeichnung
+void Bildschirm::removeMember(Zeichnung* zObj) // Removes a drawing
 {
     lock();
     for (int i = 0; i < members->getEintragAnzahl(); i++)
@@ -155,7 +155,7 @@ void Bildschirm::removeMember(Zeichnung* zObj) // Entfernt ein Zeichnung
     unlock();
 }
 
-// Zeichnet ein Bild und präsentiert es auf dem Bildschirm
+// Draws an image and presents it on the screen
 void Bildschirm::render()
 {
     lock();
@@ -164,13 +164,13 @@ void Bildschirm::render()
     unlock();
 }
 
-void Bildschirm::setFillFarbe(int f) // setzt die Fill Farbe
+void Bildschirm::setFillFarbe(int f) // sets the fill color
 {
     fillColor = f;
     rend = 1;
 }
 
-void Bildschirm::setVollbild(bool vollbild) // setzt vollbild
+void Bildschirm::setVollbild(bool vollbild) // sets fullscreen
 {
     lock();
     api->setFullScreen(vollbild);
@@ -208,7 +208,7 @@ void Bildschirm::tick(double tickval)
 }
 
 void Bildschirm::setBackBufferSize(
-    int breite, int height) // setzt die Größe des Backbuffers
+int breite, int height) // sets the size of the back buffer
 {
     lock();
     api->setBackBufferSize(Vec2<int>(breite, height));
@@ -222,7 +222,7 @@ void Bildschirm::setBackBufferSize(Punkt& size)
     unlock();
 }
 
-void Bildschirm::doMausEreignis(MausEreignis& me) // sendet maus Ereignis
+void Bildschirm::doMausEreignis(MausEreignis& me) // sends mouse event
 {
     int fBr = api->getBackBufferSize().x;
     int fHi = api->getBackBufferSize().y;
@@ -259,7 +259,7 @@ void Bildschirm::doMausEreignis(MausEreignis& me) // sendet maus Ereignis
 }
 
 void Bildschirm::doTastaturEreignis(
-    TastaturEreignis& te) // sendet tastatur Ereignis
+TastaturEreignis& te) // sends keyboard event
 {
     lock();
     if (!renderOnTop)
@@ -275,7 +275,7 @@ void Bildschirm::doTastaturEreignis(
     unlock();
 }
 
-void Bildschirm::addToolTip(ToolTip* tip) // fügt ToolTip hinzu
+void Bildschirm::addToolTip(ToolTip* tip) // adds a ToolTip
 {
     lock();
     tips->add(tip);
@@ -295,28 +295,28 @@ Bild* Bildschirm::zRenderBild() const
 }
 
 ArrayIterator<Zeichnung*>
-Bildschirm::getMembers() const // gibt die Zeichnunge zurück
+Bildschirm::getMembers() const // returns the drawings
 {
     return members->begin();
 }
 
-int Bildschirm::getFillFarbe() const // gibt die Füll Farbe zurück
+int Bildschirm::getFillFarbe() const // returns the fill color
 {
     return fillColor;
 }
 
-bool Bildschirm::istVolbild() const // gibt zurück, ob vollbild an ist
+bool Bildschirm::istVolbild() const // returns whether fullscreen is on
 {
     return api->isFullScreen();
 }
 
 const Punkt
-Bildschirm::getBackBufferSize() const // gibt die Größe des Backbuffers zurück
+Bildschirm::getBackBufferSize() const // returns the size of the back buffer
 {
     return api->getBackBufferSize();
 }
 
-void Bildschirm::warteAufRendern() const // wartet auf die render Funktion
+void Bildschirm::warteAufRendern() const // waits for the render function
 {
     while (rendering)
     {
@@ -325,18 +325,18 @@ void Bildschirm::warteAufRendern() const // wartet auf die render Funktion
 }
 
 double Bildschirm::getRenderZeit()
-    const // gibt zurück wie viele Sekunden das Rendern dauert
+const // returns how many seconds rendering takes
 {
     return renderZeit->getSekunden();
 }
 
-// Gibt die Grafik API zurück (ohne erhöhten Reference Counter)
+// Returns the graphics API (without increased reference counter)
 GraphicsApi* Bildschirm::zGraphicsApi() const
 {
     return api;
 }
 
-// Gibt die Grafik API zurück
+// Returns the graphics API
 GraphicsApi* Bildschirm::getGraphicsApi() const
 {
     return api ? dynamic_cast<GraphicsApi*>(api->getThis()) : 0;
@@ -394,7 +394,7 @@ Monitor Framework::getMonitor(int id)
 }
 
 // Bildschirm2D
-// Konstruktor
+// Constructor
 Bildschirm2D::Bildschirm2D(WFenster* fenster)
     : Bildschirm(fenster)
 {
@@ -404,10 +404,10 @@ Bildschirm2D::Bildschirm2D(WFenster* fenster)
         0);
 }
 
-// Destruktor
+// Destructor
 Bildschirm2D::~Bildschirm2D() {}
 
-void Bildschirm2D::render() // Zeichnet das Bild
+void Bildschirm2D::render() // Draws the image
 {
     if (!rend && testRend) return;
     rendering = 1;
@@ -424,13 +424,13 @@ void Bildschirm2D::render() // Zeichnet das Bild
             {
                 ui->setAlpha(255 - (unsigned char)(deckFarbe >> 24));
                 for (Zeichnung* z : *members)
-                    z->render(*ui); // zeichnen nach zwischenbuffer
+                    z->render(*ui); // draw to intermediate buffer
                 ui->releaseAlpha();
             }
             else
             {
                 for (Zeichnung* z : *members)
-                    z->render(*ui); // zeichnen nach zwischenbuffer
+                    z->render(*ui); // draw to intermediate buffer
                 if (renderOnTop && deckFarbe)
                     ui->alphaRegion(
                         0, 0, ui->getBreite(), ui->getHeight(), deckFarbe);
@@ -451,7 +451,7 @@ void Bildschirm2D::render() // Zeichnet das Bild
 }
 
 // Bildschirm3D
-// Konstruktor
+// Constructor
 Bildschirm3D::Bildschirm3D(WFenster* fenster)
     : Bildschirm(fenster),
       kameras(new RCArray<Kam3D>()),
@@ -492,14 +492,14 @@ Bildschirm3D::Bildschirm3D(WFenster* fenster, GraphicsApi* api)
         0);
 }
 
-// Destruktor
+// Destructor
 Bildschirm3D::~Bildschirm3D()
 {
     kameras->release();
 }
 
-// nicht constant
-void Bildschirm3D::addKamera(Kam3D* obj) // Fügt ein Zeichnung hinzu
+// non-constant
+void Bildschirm3D::addKamera(Kam3D* obj) // Adds a camera
 {
     lock();
     kameras->add(obj);
@@ -507,7 +507,7 @@ void Bildschirm3D::addKamera(Kam3D* obj) // Fügt ein Zeichnung hinzu
     unlock();
 }
 
-void Bildschirm3D::removeKamera(Kam3D* zObj) // Entfernt ein Zeichnung
+void Bildschirm3D::removeKamera(Kam3D* zObj) // Removes a camera
 {
     lock();
     for (int i = 0; kameras->z(i); i++)
@@ -552,7 +552,7 @@ void Bildschirm3D::tick(double tickval)
     }
 }
 
-void Bildschirm3D::doMausEreignis(MausEreignis& me) // sendet maus Ereignis
+void Bildschirm3D::doMausEreignis(MausEreignis& me) // sends mouse event
 {
     if (handleUserInputsOnTick)
     {
@@ -571,7 +571,7 @@ void Bildschirm3D::doMausEreignis(MausEreignis& me) // sendet maus Ereignis
 }
 
 void Bildschirm3D::doTastaturEreignis(
-    TastaturEreignis& te) // sendet tastatur Ereignis
+TastaturEreignis& te) // sends keyboard event
 {
     if (handleUserInputsOnTick)
     {
@@ -589,7 +589,7 @@ void Bildschirm3D::doTastaturEreignis(
     }
 }
 
-void Bildschirm3D::render() // Zeichnet das Bild
+void Bildschirm3D::render() // Draws the image
 {
     rendering = 1;
     lock();
@@ -616,13 +616,13 @@ void Bildschirm3D::render() // Zeichnet das Bild
             {
                 ui->setAlpha(255 - (unsigned char)(deckFarbe >> 24));
                 for (Zeichnung* z : *members)
-                    z->render(*ui); // zeichnen nach zwischenbuffer
+                    z->render(*ui); // draw to intermediate buffer
                 ui->releaseAlpha();
             }
             else
             {
                 for (Zeichnung* z : *members)
-                    z->render(*ui); // zeichnen nach zwischenbuffer
+                    z->render(*ui); // draw to intermediate buffer
                 if (renderOnTop && deckFarbe)
                     ui->alphaRegion(
                         0, 0, ui->getBreite(), ui->getHeight(), deckFarbe);

+ 104 - 109
Bildschirm.h

@@ -1,4 +1,4 @@
-#ifndef Bildschirm_H
+#ifndef Bildschirm_H
 #define Bildschirm_H
 
 #include <queue>
@@ -35,7 +35,7 @@ namespace Framework
 {
     class Bild;              //! Bild.h
     class WFenster;          //! Fenster.h
-    class Bildschirm;        //! aus dieser Datei
+    class Bildschirm;        //! from this file
     class Zeichnung;         //! Zeichnung.h
     class Zeichnung3D;       //! Zeichnung3D.h
     class ZeitMesser;        //! Zeit.h
@@ -61,15 +61,16 @@ namespace Framework
         DIRECTX12      //! 3d phong model with raytraycing
     };
 
-    //! Eine Struktur, die Informationen über einen Monitor beinhaltet
+    //! A structure containing information about a monitor
     struct Monitor
     {
-        int x, y, breite, height; //! Koordinaten des Monitors und die Auflösung
-        bool existiert; //! Speichert, ob der Monitor wirklich existiert
+        int x, y, breite,
+            height;     //! Coordinates of the monitor and its resolution
+        bool existiert; //! Stores whether the monitor really exists
         Text name;
     };
 
-    //! Diese Klasse verwaltet das Bild auf dem Bildschirm
+    //! This class manages the image on the screen
     class Bildschirm : public virtual ReferenceCounter
     {
     protected:
@@ -95,14 +96,13 @@ namespace Framework
         std::queue<std::function<void()>> actions;
 
     public:
-        //! Konstruktor
-        //! \param fenster Das Fenster, dessen Inhalt verwaltet werden soll
+        //! Constructor
+        //! \param fenster The window whose content should be managed
         DLLEXPORT Bildschirm(WFenster* fenster);
-        //! Destruktor
+        //! Destructor
         DLLEXPORT virtual ~Bildschirm();
-        //! Übergibt einen void Funktionszeiger auf eine Aktion die einmalig vom
-        //! Hauptthread ausgeführt werden soll. Wird am beginn von tick()
-        //! aufgerufen
+        //! Passes a void function pointer to an action that should be executed
+        //! once by the main thread. Called at the beginning of tick()
         DLLEXPORT void postAction(std::function<void()> action);
         //! if set to true, then maus and keyboard events are added to a queue
         //! and will be handled at the next call of tick. Otherwise they are
@@ -110,123 +110,119 @@ namespace Framework
         //! rendering and ticks. This can lead to longer waiting times since the
         //! lock can not allways be aquired betwean two frames
         DLLEXPORT void setHandleUserInputsOnTick(bool handleOnTick);
-        //! Dies ist notwendig, falls mehrere Threads gleichzeitig den
-        //! Bildschirm benutzen. Wenn lock() von zwei threads aufgerufen wird,
-        //! wartet der letzte so lange, bis der erste unlock() aufgerufen hat.
+        //! This is necessary if multiple threads use the screen simultaneously.
+        //! If lock() is called by two threads, the last one waits until the
+        //! first has called unlock().
         DLLEXPORT virtual void lock();
-        //! Dies ist notwendig, falls mehrere Threads gleichzeitig den
-        //! Bildschirm benutzen. Wenn lock() von zwei threads aufgerufen wird,
-        //! wartet der letzte so lange, bis der erste unlock() aufgerufen hat.
+        //! This is necessary if multiple threads use the screen simultaneously.
+        //! If lock() is called by two threads, the last one waits until the
+        //! first has called unlock().
         DLLEXPORT virtual void unlock();
-        //! Legt fest, ob der Bildschirm nach jedem Bild neu mit einer Farbe
-        //! ausgefüllt wird (Standartmäßig gesetzt) \param f 1, falls das Bild
-        //! vor dem Zeichnen zurückgesetzt werden soll
+        //! Specifies whether the screen is refilled with a color after each
+        //! frame (set by default) \param f 1 if the image should be reset
+        //! before drawing
         DLLEXPORT virtual void setFill(bool f);
-        //! Aktualisiert die Objekte, mit der die Grafikkarte verwaltet wird
+        //! Updates the objects that manage the graphics card
         DLLEXPORT virtual void update();
-        //! Legt fest, ob von dem Zeichnen überprüft wird, ob sich das Bild vom
-        //! letzten unterscheidet (Standartmäßig gesetzt) \param tr 1, wenn nur
-        //! gezeichnet werden soll, wenn es notwendig ist
+        //! Specifies whether it is checked before drawing if the image differs
+        //! from the last one (set by default) \param tr 1 if drawing should
+        //! only occur when necessary
         DLLEXPORT virtual void setTestRend(bool tr);
-        //! Legt fest, ob die 2D GUI Zeichnungen gezeichnet werden sollen
-        //! (Standartmäßig gesetzt) \param rO 1, falls die Zeichnungen
-        //! gezeichnet werden sollen
+        //! Specifies whether 2D GUI drawings should be drawn
+        //! (set by default) \param rO 1 if drawings should be drawn
         DLLEXPORT virtual void setRenderZeichnungen(bool rO);
-        //! Legt fest, ob eine Zeichnung über allen anderen Zeichnungen
-        //! gezeichnet werden soll (Standartmäßig nicht gesetzt) \param onTop 1,
-        //! falls eine Zeichnung über allem gezeichnet werden soll
+        //! Specifies whether a drawing should be drawn above all other drawings
+        //! (not set by default) \param onTop 1 if a drawing should be drawn
+        //! above everything
         DLLEXPORT virtual void setOnTop(bool onTop);
-        //! Setzt die Zecihnung, die über allem gezeichnet werden soll, falls
-        //! setOnTop( 1 ) gesetzt wurde \param obj Die Zeichnung
+        //! Sets the drawing to be drawn above everything, if setOnTop(1) was
+        //! set
+        //! \param obj The drawing
         DLLEXPORT virtual void setOnTopZeichnung(Zeichnung* obj);
-        //! Setzt eine Farbe, die nach den Zeichnungen mit alphablending über
-        //! das gesamte Bild geblendet wird, wenn setOnTop( 1 ) gesetzt wurde.
-        //! Die zeichnung, die mit setOnTopZeichnung() gesetzt wurde ist davon
-        //! nicht betroffen \param f Die Farbe im A8R8G8B8 Format
+        //! Sets a color that is alpha-blended over the entire image after
+        //! drawing, if setOnTop(1) was set. The drawing set with
+        //! setOnTopZeichnung() is not affected \param f The color in A8R8G8B8
+        //! format
         DLLEXPORT virtual void setdeckFarbe(int f);
-        //! Fügt dem Bild eine Zeichnung hinzu, die immer gezeichnet wird, wenn
-        //! setRenderZeichnungen( 1 ) gesetzt wurde. \param obj Die Zeichnung
+        //! Adds a drawing to the image that is always drawn when
+        //! setRenderZeichnungen(1) was set. \param obj The drawing
         DLLEXPORT virtual void addMember(Zeichnung* obj);
-        //! Entfernt eine Zeichnung aus dem Bild. Darf nicht aufgerufen werden,
-        //! wärend doMausEreignis(), doTastaturEreignis(), tick() oder render()
-        //! aufgerufen wird. \param obj Die Zeichnung (ohne erhöhten reference
-        //! Counter)
+        //! Removes a drawing from the image. Must not be called while
+        //! doMausEreignis(), doTastaturEreignis(), tick() or render() is
+        //! being called. \param obj The drawing (without increased reference
+        //! counter)
         DLLEXPORT virtual void removeMember(Zeichnung* zObj);
-        //! Zeichnet ein Bild und präsentiert es auf dem Bildschirm
+        //! Draws an image and presents it on the screen
         DLLEXPORT virtual void render();
-        //! Setzt die Farbe, mit der das Bild for dem Zeichnen gefüllt wird,
-        //! wenn setFüll( 1 ) gesetzt wurde \param f Die Farbe im A8R8G8B8
-        //! Format
+        //! Sets the color used to fill the image before drawing, if
+        //! setFill(1) was set \param f The color in A8R8G8B8 format
         DLLEXPORT virtual void setFillFarbe(int f);
-        //! Legt fest, ob das Bild im Vollbildmodus präsentiert werden soll.
-        //! (Standartmäßig nicht gesetzt) \param fullscreen 1, für Vollbildmodus
+        //! Specifies whether the image should be presented in fullscreen mode.
+        //! (not set by default) \param fullscreen 1 for fullscreen mode
         DLLEXPORT virtual void setVollbild(bool fullscreen);
-        //! Verarbeitet die Zeit, die seit dem letzten Aufruf der Funktion
-        //! vergangen ist Ruft die tick Funktionen aller sich im Bild
-        //! befindenden Zeichnungen auf \param tickval Die vergangene Zeit in
-        //! Sekunden
+        //! Processes the time elapsed since the last call of this function.
+        //! Calls the tick functions of all drawings in the image
+        //! \param tickval The elapsed time in seconds
         DLLEXPORT virtual void tick(double tickval);
-        //! Setzt die Auflösung des Bildes, das angezeigt wird. Es wird von der
-        //! Grafikkarte automatisch skalliert, so das es das Fenster ausfüllt
-        //! \param breite Die Breite des Bildes in Pixeln
-        //! \param height Die Höhe des Bildes in Pixeln
+        //! Sets the resolution of the displayed image. It is automatically
+        //! scaled by the graphics card to fill the window
+        //! \param breite The width of the image in pixels
+        //! \param height The height of the image in pixels
         DLLEXPORT virtual void setBackBufferSize(int breite, int height);
-        //! Setzt die Auflösung des Bildes, das angezeigt wird. Es wird von der
-        //! Grafikkarte automatisch skalliert, so das es das Fenster ausfüllt
-        //! \param size Die Breite und Höhe in Pixeln
+        //! Sets the resolution of the displayed image. It is automatically
+        //! scaled by the graphics card to fill the window
+        //! \param size The width and height in pixels
         DLLEXPORT virtual void setBackBufferSize(Punkt& size);
-        //! Verarbeitet ein Maus Ereignis. Wird vom Framework automatisch
-        //! aufgerufen. Gibt das Ereignis automatisch an alle sich im Bild
-        //! befindenden Zeichnungen weiter \param me Das Ereignis
+        //! Processes a mouse event. Called automatically by the framework.
+        //! Passes the event to all drawings in the image
+        //! \param me The event
         DLLEXPORT virtual void doMausEreignis(MausEreignis& me);
-        //! Verarbeitet ein Tastatur Ereignis. Wird vom Framework automatisch
-        //! aufgerufen Gibt das Ereignis automatisch an alle sich im Bild
-        //! befindenden Zeichnungen weiter \param te Das Ereignis
+        //! Processes a keyboard event. Called automatically by the framework.
+        //! Passes the event to all drawings in the image
+        //! \param te The event
         DLLEXPORT virtual void doTastaturEreignis(TastaturEreignis& te);
-        //! Fügt einen Tooltip hinzu.
-        //! \param tip Der Tooltip
+        //! Adds a tooltip.
+        //! \param tip The tooltip
         DLLEXPORT virtual void addToolTip(ToolTip* tip);
-        //! Gibt das Bild zurück, in das die 2D GUI Zeichnungen des Frameworks
-        //! gezeichnet werden
+        //! Returns the image into which the 2D GUI drawings of the framework
+        //! are drawn
         DLLEXPORT virtual Bild* getRenderBild() const;
-        //! Gibt das Bild ohne erhöhten Reference Counter zurück, in das die 2D
-        //! GUI Zeichnungen des Frameworks gezeichnet werden
+        //! Returns the image without increased reference counter into which
+        //! the 2D GUI drawings of the framework are drawn
         DLLEXPORT virtual Bild* zRenderBild() const;
-        //! Gibt ein Array von 2D GUI Zeichnungen zurück, die sich im Bild
-        //! befinden
+        //! Returns an array of 2D GUI drawings in the image
         DLLEXPORT virtual ArrayIterator<Zeichnung*> getMembers() const;
-        //! Gibt die Farbe im A8R8G8B8 Format zurück, mit der das Bild vor dem
-        //! Zeichnen befüllt wird
+        //! Returns the color in A8R8G8B8 format used to fill the image
+        //! before drawing
         DLLEXPORT virtual int getFillFarbe() const;
-        //! Gibt zurück, ob man sich im Vollbildmodus befindet
+        //! Returns whether fullscreen mode is active
         DLLEXPORT virtual bool istVolbild() const;
-        //! Gibt die Auflösung in Pixeln zurück, in der gezeichnet wird
+        //! Returns the resolution in pixels at which drawing occurs
         DLLEXPORT virtual const Punkt getBackBufferSize() const;
-        //! Wartet, bis das Zeichnen des aktuellen Bildes abgeschlossen ist
+        //! Waits until the current image has finished drawing
         DLLEXPORT virtual void warteAufRendern() const;
-        //! Gibt die Zeit in Sekunden zurück, die benötigt wurde, um das letzte
-        //! Bild zu zeichnen
+        //! Returns the time in seconds needed to draw the last image
         DLLEXPORT virtual double getRenderZeit() const;
-        //! Gibt die Grafik API zurück (ohne erhöhten Reference Counter)
+        //! Returns the graphics API (without increased reference counter)
         DLLEXPORT GraphicsApi* zGraphicsApi() const;
-        //! Gibt die Grafik API zurück
+        //! Returns the graphics API
         DLLEXPORT GraphicsApi* getGraphicsApi() const;
     };
 #ifdef WIN32
-    //! Diese Klasse verwaltet das Bild auf dem Bildschirm ohne 3D Elemente
+    //! This class manages the image on the screen without 3D elements
     class Bildschirm2D : public Bildschirm
     {
     public:
-        //! Konstruktor
-        //! \param fenster Das Fenster, dessen Inhalt verwaltet werden soll
+        //! Constructor
+        //! \param fenster The window whose content should be managed
         DLLEXPORT Bildschirm2D(WFenster* fenster);
-        //! Destruktor
+        //! Destructor
         DLLEXPORT virtual ~Bildschirm2D();
-        //! Zeichnet ein Bild und präsentiert es auf dem Bildschirm
+        //! Draws an image and presents it on the screen
         DLLEXPORT virtual void render();
     };
 
-    //! Diese Klasse verwaltet das Bild auf dem Bildschirm mit 3D Elementen
+    //! This class manages the image on the screen with 3D elements
     class Bildschirm3D : public Bildschirm
     {
     private:
@@ -234,38 +230,37 @@ namespace Framework
         bool rend3D;
 
     public:
-        //! Konstruktor
-        //! \param fenster Das Fenster, dessen Inhalt verwaltet werden soll
+        //! Constructor
+        //! \param fenster The window whose content should be managed
         DLLEXPORT Bildschirm3D(WFenster* fenster);
         DLLEXPORT Bildschirm3D(WFenster* fenster, GraphicApiType apiTyp);
         DLLEXPORT Bildschirm3D(WFenster* fenster, GraphicsApi* api);
-        //! Destruktor
+        //! Destructor
         DLLEXPORT virtual ~Bildschirm3D();
-        //! Fügt dem Bildschirm eine Kamera hinzu
-        //! \param obj Die Kamera
+        //! Adds a camera to the screen
+        //! \param obj The camera
         DLLEXPORT void addKamera(Kam3D* obj);
-        //! Entfernt eine kamera von dem Bildschirm
+        //! Removes a camera from the screen
         DLLEXPORT void removeKamera(Kam3D* zObj);
-        //! Verarbeitet die Zeit, die seit dem letzten Aufruf der Funktion
-        //! vergangen ist Ruft die tick Funktionen aller sich im Bild
-        //! befindenden Zeichnungen und der Kameras auf \param tickval Die
-        //! vergangene Zeit in Sekunden
+        //! Processes the time elapsed since the last call of this function.
+        //! Calls the tick functions of all drawings and cameras in the image
+        //! \param tickval The elapsed time in seconds
         DLLEXPORT void tick(double tickval);
-        //! Verarbeitet ein Maus Ereignis. Wird vom Framework automatisch
-        //! aufgerufen. Gibt das Ereignis automatisch an alle sich im Bild
-        //! befindenden Zeichnungen und Kameras weiter \param me Das Ereignis
+        //! Processes a mouse event. Called automatically by the framework.
+        //! Passes the event to all drawings and cameras in the image
+        //! \param me The event
         DLLEXPORT void doMausEreignis(MausEreignis& me);
-        //! Verarbeitet ein Tastatur Ereignis. Wird vom Framework automatisch
-        //! aufgerufen Gibt das Ereignis automatisch an alle sich im Bild
-        //! befindenden Zeichnungen und Kameras weiter \param te Das Ereignis
+        //! Processes a keyboard event. Called automatically by the framework.
+        //! Passes the event to all drawings and cameras in the image
+        //! \param te The event
         DLLEXPORT void doTastaturEreignis(TastaturEreignis& te);
-        //! Zeichnet ein Bild und präsentiert es auf dem Bildschirm
+        //! Draws an image and presents it on the screen
         DLLEXPORT void render();
     };
 
-    //! Findet die Psition und Auflösung eines Monitors heraus
-    //! \param id Die ID des Monitors. Falls der Monitor nicht gefunden wurde
-    //! ist der existiert flag der zurückgegebenen Monitor Struktur 0
+    //! Finds the position and resolution of a monitor
+    //! \param id The ID of the monitor. If the monitor was not found,
+    //! the existiert flag of the returned Monitor structure is 0
     DLLEXPORT Monitor getMonitor(int id);
 #endif
 } // namespace Framework

+ 7 - 7
Critical.h

@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <condition_variable>
 
@@ -17,20 +17,20 @@ namespace Framework
         int id;
 
     public:
-        //! Konstructor
+        //! Constructor
         DLLEXPORT Critical();
         //! Destructor
         DLLEXPORT ~Critical();
-        //! sperrt das Objekt
+        //! Locks the object
         DLLEXPORT void lock();
-        //! versucht das Objekt zu sperren
+        //! Tries to lock the object
         DLLEXPORT bool tryLock();
-        //! entsperrt das Objekt
+        //! Unlocks the object
         DLLEXPORT void unlock();
 
-        //! gibt true zurück, wenn das Objekt gesperrt ist
+        //! Returns true if the object is locked
         DLLEXPORT bool isLocked() const;
-        //! gibt einen Zeiger auf den Thread zurück, der das Objekt gesperrt hat
+        //! Returns a pointer to the thread that locked the object
         DLLEXPORT const Thread* zOwner() const;
     };
 

+ 56 - 56
Datei.cpp

@@ -1,4 +1,4 @@
-#include "Datei.h"
+#include "Datei.h"
 
 #include "Key.h"
 #include "Text.h"
@@ -16,8 +16,8 @@
 using namespace Framework;
 using namespace Encryption;
 
-// Inhalt der Datei Klasse aus Datei.h
-// Konstruktor
+// Content of the Datei class from Datei.h
+// Constructor
 Datei::Datei()
     : ReferenceCounter(),
       stream(0),
@@ -30,21 +30,21 @@ Datei::Datei()
       key(0)
 {}
 
-//! Konstruktor
+//! Constructor
 Datei::Datei(const char* pfad)
     : Datei()
 {
     setDatei(pfad);
 }
 
-//! Konstruktor
+//! Constructor
 Datei::Datei(Text* pfad)
     : Datei()
 {
     setDatei(pfad);
 }
 
-// Destruktor
+// Destructor
 Datei::~Datei()
 {
     if (key) key->release();
@@ -52,8 +52,8 @@ Datei::~Datei()
     if (pfad) pfad->release();
 }
 
-// nicht constant
-void Datei::setDatei(const char* pfad) // setzt die Datei
+// non-constant
+void Datei::setDatei(const char* pfad) // sets the file
 {
     if (istOffen()) close();
     if (!this->pfad) this->pfad = new Text();
@@ -71,7 +71,7 @@ void Datei::setDatei(Text* pfad)
 }
 
 bool Datei::umbenennen(
-    const char* pfad) // benennt die Datei um und verschiebt sie eventuell
+const char* pfad) // renames and possibly moves the file
 {
     if (!pfad) return 0;
     if (DateiUmbenennen(this->pfad->getText(), pfad))
@@ -99,19 +99,19 @@ bool Datei::umbenennen(Text* pfad)
     return 0;
 }
 
-bool Datei::remove() // löscht die Datei
+bool Datei::remove() // deletes the file
 {
     if (!pfad) return 0;
     return DateiRemove(dynamic_cast<Text*>(pfad->getThis()));
 }
 
-bool Datei::erstellen() // erstellt die Datei
+bool Datei::erstellen() // creates the file
 {
     if (!pfad) return 0;
     return DateiPfadErstellen(dynamic_cast<Text*>(pfad->getThis()));
 }
 
-bool Datei::open(int style) // öffnet die Datei
+bool Datei::open(int style) // opens the file
 {
     if (!pfad) return 0;
     if (stream) delete stream;
@@ -137,7 +137,7 @@ bool Datei::open(int style) // öffnet die Datei
     return 1;
 }
 
-void Datei::setLPosition(__int64 pos, bool ende) // setzt die Leseposition
+void Datei::setLPosition(__int64 pos, bool ende) // sets the read position
 {
     if (!pfad) return;
     if (stream)
@@ -150,7 +150,7 @@ void Datei::setLPosition(__int64 pos, bool ende) // setzt die Leseposition
     tmpLBPos = 7;
 }
 
-void Datei::setSPosition(__int64 pos, bool ende) // setzt die Schreibeposition
+void Datei::setSPosition(__int64 pos, bool ende) // sets the write position
 {
     if (!pfad) return;
     if (stream)
@@ -163,7 +163,7 @@ void Datei::setSPosition(__int64 pos, bool ende) // setzt die Schreibeposition
     tmpSBPos = -1;
 }
 
-void Datei::schreibe(const char* bytes, int len) // schreibt bytes in datei
+void Datei::schreibe(const char* bytes, int len) // writes bytes to file
 {
     if (!pfad || !stream) return;
     if (tmpSBPos >= 0)
@@ -190,7 +190,7 @@ void Framework::Datei::flush()
     stream->flush();
 }
 
-void Datei::lese(char* bytes, int len) // ließt bytes aus datei
+void Datei::lese(char* bytes, int len) // reads bytes from file
 {
     if (!pfad) return;
     if (stream)
@@ -209,7 +209,7 @@ void Datei::lese(char* bytes, int len) // ließt bytes aus datei
     tmpSBPos = -1;
 }
 
-Text* Datei::leseZeile() // ließt eine zeile
+Text* Datei::leseZeile() // reads a line
 {
     if (!pfad || !stream) return 0;
     if (istEnde()) return 0;
@@ -233,7 +233,7 @@ Text* Datei::leseZeile() // ließt eine zeile
     return ret;
 }
 
-void Datei::close() // schließt die Datei
+void Datei::close() // closes the file
 {
     if (!pfad || !stream) return;
     if (tmpSBPos >= 0)
@@ -255,7 +255,7 @@ void Datei::close() // schließt die Datei
 }
 
 #ifdef WIN32
-bool Datei::setLetzteÄnderung(Zeit* zeit) // setzt das änderungsdatum der Datei
+bool Datei::setLetzteÄnderung(Zeit* zeit) // sets the modification date of the file
 {
     if (!pfad)
     {
@@ -310,7 +310,7 @@ bool Datei::setLetzteÄnderung(Zeit* zeit) // setzt das änderungsdatum der Date
 }
 #endif
 
-bool Datei::getNextBit(bool& bit) // Datei Bitweise auslesen
+bool Datei::getNextBit(bool& bit) // read file bit by bit
 {
     if (!pfad || !stream) return 0;
     if (tmpLBPos == 7)
@@ -331,7 +331,7 @@ bool Datei::getNextBit(bool& bit) // Datei Bitweise auslesen
     return 1;
 }
 
-bool Datei::setNextBit(bool bit) // Datei Bitweise speichern
+bool Datei::setNextBit(bool bit) // write file bit by bit
 {
     if (!pfad || !stream) return 0;
     tmpSBPos++;
@@ -354,7 +354,7 @@ bool Datei::setNextBit(bool bit) // Datei Bitweise speichern
     return 1;
 }
 
-// Setzt den Schlüssel für die Datei
+// Sets the encryption key for the file
 void Datei::setKey(char* s, int l)
 {
     if (l == 0)
@@ -369,20 +369,20 @@ void Datei::setKey(char* s, int l)
 }
 
 // constant
-bool Datei::istOrdner() const // prüft, ob die Datei ein Ordner ist
+bool Datei::istOrdner() const // checks if the file is a directory
 {
     if (!pfad) return 0;
     return DateiIstVerzeichnis(dynamic_cast<Text*>(pfad->getThis()));
 }
 
-bool Datei::istOffen() const // prüft, ob die Datei geöffnet ist
+bool Datei::istOffen() const // checks if the file is open
 {
     if (!pfad) return 0;
     if (stream) return stream->is_open() && stream->good();
     return 0;
 }
 
-int Datei::getUnterdateiAnzahl() const // gibt die Anzahl der unterdateien an
+int Datei::getUnterdateiAnzahl() const // returns the number of sub-files
 {
 #ifdef WIN32
     if (!pfad) return 0;
@@ -422,7 +422,7 @@ int Datei::getUnterdateiAnzahl() const // gibt die Anzahl der unterdateien an
 }
 
 RCArray<Text>*
-Datei::getDateiListe() const // gibt eine Liste mit unterdateien zurück
+Datei::getDateiListe() const // returns a list of sub-files
 {
 #ifdef WIN32
     if (!pfad) return 0;
@@ -475,7 +475,7 @@ Datei::getDateiListe() const // gibt eine Liste mit unterdateien zurück
 #endif
 }
 
-__int64 Datei::getSize() const // gibt die Größe der Datei zurück
+__int64 Datei::getSize() const // returns the size of the file
 {
     if (!pfad) return 0;
     if (gr) return gr;
@@ -502,7 +502,7 @@ __int64 Datei::getSize() const // gibt die Größe der Datei zurück
     return ret;
 }
 
-Zeit* Datei::getLastChange() const // gibt das Datum der letzten Änderung
+Zeit* Datei::getLastChange() const // returns the date of the last modification
 {
     if (!pfad) return 0;
 #ifdef WIN32
@@ -547,32 +547,32 @@ Zeit* Datei::getLastChange() const // gibt das Datum der letzten Änderung
 #endif
 }
 
-bool Datei::existiert() const // prüft, ob die Datei existiert
+bool Datei::existiert() const // checks if the file exists
 {
     if (!pfad) return 0;
     return DateiExistiert(dynamic_cast<Text*>(pfad->getThis()));
 }
 
-__int64 Datei::getLPosition() const // gibt die Leseposition zurück
+__int64 Datei::getLPosition() const // returns the read position
 {
     if (!stream) return 0;
     return stream->tellg();
 }
 
-__int64 Datei::getSPosition() const // gibt die Schreibeposition zurück
+__int64 Datei::getSPosition() const // returns the write position
 {
     if (!stream) return 0;
     return stream->tellp();
 }
 
-bool Datei::istEnde() const // prüft, ob die Datei zu ende ist
+bool Datei::istEnde() const // checks if the end of file is reached
 {
     if (!stream || stream->tellg() < 0) return 1;
     __int64 i = getSize();
     return stream->tellg() >= i;
 }
 
-Text* Datei::getPfad() const // gibt den Dateipfad zurück
+Text* Datei::getPfad() const // returns the file path
 {
     return pfad ? dynamic_cast<Text*>(pfad->getThis()) : 0;
 }
@@ -582,8 +582,8 @@ Text* Datei::zPfad() const
     return pfad;
 }
 
-// Datei Funktionen
-void Framework::GetFreePfad(Text* zPfad) // Sucht einen unbenutzten Dateinamen
+// File Functions
+void Framework::GetFreePfad(Text* zPfad) // Searches for an unused filename
 {
     Text txt = zPfad->getText();
     for (int i = 0; DateiExistiert(txt); i++)
@@ -595,14 +595,14 @@ void Framework::GetFreePfad(Text* zPfad) // Sucht einen unbenutzten Dateinamen
 }
 
 bool Framework::DateiPfadErstellen(
-    Text* pfad) // Erstellt eine Datei in dem Pfad
+Text* pfad) // Creates a file in the path
 {
     bool ret = DateiPfadErstellen(pfad->getText());
     pfad->release();
     return ret;
 }
 
-bool Framework::DateiRemove(Text* pfad) // Löscht die angegebene Datei
+bool Framework::DateiRemove(Text* pfad) // Deletes the specified file
 {
     bool ret = DateiRemove(pfad->getText());
     pfad->release();
@@ -610,7 +610,7 @@ bool Framework::DateiRemove(Text* pfad) // Löscht die angegebene Datei
 }
 
 bool Framework::DateiUmbenennen(
-    Text* pfad_alt, Text* pfad_neu) // Benennt die Datei um
+Text* pfad_alt, Text* pfad_neu) // Renames the file
 {
     bool ret = DateiUmbenennen(pfad_alt->getText(), pfad_neu->getText());
     pfad_alt->release();
@@ -618,7 +618,7 @@ bool Framework::DateiUmbenennen(
     return ret;
 }
 
-bool Framework::DateiExistiert(Text* pfad) // Prüft, ob Datei existiert
+bool Framework::DateiExistiert(Text* pfad) // Checks if the file exists
 {
     bool ret = DateiExistiert(pfad->getText());
     pfad->release();
@@ -626,7 +626,7 @@ bool Framework::DateiExistiert(Text* pfad) // Prüft, ob Datei existiert
 }
 
 bool Framework::DateiIstVerzeichnis(
-    Text* pfad) // prüft, ob pfad ein Verzeichnis ist
+Text* pfad) // checks if the path is a directory
 {
     bool ret = DateiIstVerzeichnis(pfad->getText());
     pfad->release();
@@ -634,15 +634,15 @@ bool Framework::DateiIstVerzeichnis(
 }
 
 bool Framework::DateiPfadErstellen(
-    const char* pfad) // Erstellt eine Datei in dem Pfad
+const char* pfad) // Creates a file in the path
 {
     Text pf = pfad;
     bool erst = 1;
 #ifdef WIN32
-    pf.ersetzen("//", "\\"); // Pfadangaben korrigieren
+    pf.ersetzen("//", "\\"); // Correct path separators
     pf.ersetzen("/", "\\");
     for (int i = 0; i < pf.anzahlVon("\\");
-        ++i) // Jeden ordner erstellen wenn er nicht existiert
+        ++i) // Create each directory if it does not exist
     {
         Text* t = pf.getTeilText(0, pf.positionVon("\\", i));
         if (!t || !t->getLength())
@@ -657,9 +657,9 @@ bool Framework::DateiPfadErstellen(
         if (pf.positionVon("\\", i) == pf.getLength() - 1) erst = 0;
     }
 #else
-    pf.ersetzen("\\", "/"); // Pfadangaben korrigieren
+    pf.ersetzen("\\", "/"); // Correct path separators
     for (int i = 0; i < pf.anzahlVon("/");
-        ++i) // Jeden ordner erstellen wenn er nicht existiert
+        ++i) // Create each directory if it does not exist
     {
         Text* t = pf.getTeilText(0, pf.positionVon("/", i));
         if (!t || !t->getLength())
@@ -675,21 +675,21 @@ bool Framework::DateiPfadErstellen(
 #endif
     if (erst)
     {
-        std::ofstream f(pf, std::ios::binary); // Datei erstellen
+        std::ofstream f(pf, std::ios::binary); // Create file
         f.close();
     }
     return DateiExistiert(pf);
 }
 
-bool Framework::DateiRemove(const char* pfad) // Löscht die angegebene Datei
+bool Framework::DateiRemove(const char* pfad) // Deletes the specified file
 {
     Text pfa = pfad;
 #ifdef WIN32
     pfa.ersetzen('\\', '/');
     bool ret = 0;
-    // prüfen ob Datei existiert
+    // check if file exists
     if (!DateiIstVerzeichnis(dynamic_cast<Text*>(pfa.getThis())))
-        ret = DeleteFile(pfa.getText()) == 1; // Datei löschen
+        ret = DeleteFile(pfa.getText()) == 1; // delete file
     else
     {
         ret = 1;
@@ -718,9 +718,9 @@ bool Framework::DateiRemove(const char* pfad) // Löscht die angegebene Datei
 #else
     pfa.ersetzen('\\', '/');
     bool ret = 0;
-    // pruefen ob Datei existiert
+    // check if file exists
     if (!DateiIstVerzeichnis(dynamic_cast<Text*>(pfa.getThis())))
-        ret = std::remove(pfa.getText()) == 0; // Datei loeschen
+        ret = std::remove(pfa.getText()) == 0; // delete file
     else
     {
         ret = 1;
@@ -750,7 +750,7 @@ bool Framework::DateiRemove(const char* pfad) // Löscht die angegebene Datei
 }
 
 bool Framework::DateiUmbenennen(
-    const char* pfad_alt, const char* pfad_neu) // Benennt die Datei um
+const char* pfad_alt, const char* pfad_neu) // Renames the file
 {
 #ifdef WIN32
     if (pfad_alt && pfad_neu && DateiExistiert(pfad_alt))
@@ -785,7 +785,7 @@ bool Framework::DateiUmbenennen(
         {
             if (DateiExistiert(pfad_neu)) return 0;
         }
-        ret |= MoveFile(pfad_alt, pfad_neu) == 1; // Datei umbenennen
+        ret |= MoveFile(pfad_alt, pfad_neu) == 1; // rename file
         return ret;
     }
     return 0;
@@ -822,14 +822,14 @@ bool Framework::DateiUmbenennen(
         {
             if (DateiExistiert(pfad_neu)) return 0;
         }
-        ret |= rename(pfad_alt, pfad_neu) == 1; // Datei umbenennen
+        ret |= rename(pfad_alt, pfad_neu) == 1; // rename file
         return ret;
     }
     return 0;
 #endif
 }
 
-bool Framework::DateiExistiert(const char* pfad) // Prüft, ob Datei existiert
+bool Framework::DateiExistiert(const char* pfad) // Checks if the file exists
 {
 #ifdef WIN32
     bool ret = PathFileExists(pfad) != 0;
@@ -842,7 +842,7 @@ bool Framework::DateiExistiert(const char* pfad) // Prüft, ob Datei existiert
 }
 
 bool Framework::DateiIstVerzeichnis(
-    const char* pfad) // prüft, ob pfad ein Verzeichnis ist
+const char* pfad) // checks if the path is a directory
 {
 #ifdef WIN32
     WIN32_FIND_DATA wfd;

+ 1 - 1
Datei.h

@@ -1,4 +1,4 @@
-#ifndef Datei_H
+#ifndef Datei_H
 #define Datei_H
 
 #include <fstream>

+ 19 - 19
DateiSystem.cpp

@@ -1,4 +1,4 @@
-//---Include---
+//---Include---
 #include "DateiSystem.h"
 
 #include <iostream>
@@ -16,9 +16,9 @@
 
 using namespace Framework;
 
-// LTDB Dateivormat
-// Inhalt der LTDBPixel Klasse aus Dateisystem.h
-// Konstruktor
+// LTDB File format
+// Content of the LTDBPixel class from DateiSystem.h
+// Constructor
 LTDBPixel::LTDBPixel(LTDBPixel* davor)
     : ReferenceCounter(),
       davor(davor),
@@ -44,43 +44,43 @@ LTDBPixel::LTDBPixel(LTDBPixel* davor)
       A(0)
 {}
 
-// Destruktor
+// Destructor
 LTDBPixel::~LTDBPixel()
 {
     if (davor) davor->release();
 }
 
-// nicht constant
+// non-constant
 bool LTDBPixel::addBitZuFarbe(
-    unsigned char bit) // Fügt den Farbwerten ein Bit hinzu
+    unsigned char bit) // Adds a bit to the color values
 {
-    if (changeR && iR != miR) // Das Bit gehört zu Rot
+    if (changeR && iR != miR) // The bit belongs to Red
     {
         R = (unsigned char)(R | ((bit & 0x1) << (7 - komp - iR)));
         ++iR;
     }
-    else if (changeG && iG != miG) // Das Bit gehört zu Grün
+    else if (changeG && iG != miG) // The bit belongs to Green
     {
         G = (unsigned char)(G | ((bit & 0x1) << (7 - komp - iG)));
         ++iG;
     }
-    else if (changeB && iB != miB) // Das Bit gehört zu Blau
+    else if (changeB && iB != miB) // The bit belongs to Blue
     {
         B = (unsigned char)(B | ((bit & 0x1) << (7 - komp - iB)));
         ++iB;
     }
-    else if (changeA && iA != miA) // Das Bit gehört zu Alpha
+    else if (changeA && iA != miA) // The bit belongs to Alpha
     {
         A = (unsigned char)(A | ((bit & 0x1) << (7 - komp - iA)));
         ++iA;
     }
-    else // Das Bit gehört zum nächsten Pixel
+    else // The bit belongs to the next pixel
         return false;
     return true;
 }
 
 char LTDBPixel::addByte(
-    char byte, char begin) // gibt ende des Pixels zurück, -1 wenn nicht zu ende
+char byte, char begin) // returns end of pixel, -1 if not finished
 {
     if (begin >= 8 || begin < 0) return -1;
     for (int i = begin; i < 8; ++i)
@@ -88,14 +88,14 @@ char LTDBPixel::addByte(
         switch (index)
         {
         case 0:
-            // Das erste Bit eines Pixels speichert, ob sich an der
-            // Komprimierung etwas änderte
+            // The first bit of a pixel stores whether the
+            // compression changed
             change = (bool)((byte >> (7 - i)) & 0x1);
-            if (!change) // Ändert sich nichts an der Komprimierung, so werden
-                         // die Werte vom vorherigen Pixel übernommen
+            if (!change) // If compression doesn't change, the values
+                         // from the previous pixel are inherited
             {
-                if (!davor) // Die Datei ist beschädigt ( Der erste Pixel kann
-                            // nicht von dem davor Übernemen )
+                if (!davor) // The file is corrupted (the first pixel cannot
+                            // inherit from the previous one)
                 {
 #ifdef WIN32
                     MessageBox(NULL,

+ 97 - 105
DateiSystem.h

@@ -1,4 +1,4 @@
-#ifndef DateiSystem_H
+#ifndef DateiSystem_H
 #define DateiSystem_H
 
 #include <fstream>
@@ -16,100 +16,94 @@ namespace Framework
     class Alphabet;  //! Schrift.h
     class Schrift;   //! Schrift.h
 #endif
-    class LTDBPixel; //! aus dieser Datei
-    class LTDBKopf;  //! aus dieser Datei
-    class LTDBBody;  //! aus dieser Datei
-    class LTDBDatei; //! aus dieser Datei
-    class LTDSPixel; //! aus dieser Datei
+    class LTDBPixel; //! from this file
+    class LTDBKopf;  //! from this file
+    class LTDBBody;  //! from this file
+    class LTDBDatei; //! from this file
+    class LTDSPixel; //! from this file
 #ifdef WIN32
-    class LTDSDateiKopf;        //! aus dieser Datei
-    class LTDSSchriftKopf;      //! aus dieser Datei
-    class LTDSBuchstabenKopf;   //! aus dieser Datei
-    class LTDSBuchstabenKörper; //! aus dieser Datei
-    class LTDSDatei;            //! aus dieser Datei
+    class LTDSDateiKopf;        //! from this file
+    class LTDSSchriftKopf;      //! from this file
+    class LTDSBuchstabenKopf;   //! from this file
+    class LTDSBuchstabenKörper; //! from this file
+    class LTDSDatei;            //! from this file
 #endif
 
-    //! LTDB Dateivormat --- Dient zum speichern von mehreren Bildern in einer
-    //! Datei.
+    //! LTDB File format --- Used for storing multiple images in one file.
 
-    //! Dient zum Speichern und Laden eines einzelnen Pixels aus einem Bild im
-    //! LTDB Dateiformat
-    class LTDBPixel : public virtual ReferenceCounter //! Pixel einer LTDB Datei
+    //! Used for storing and loading a single pixel from an image in the
+    //! LTDB file format
+    class LTDBPixel : public virtual ReferenceCounter //! Pixel of an LTDB file
     {
     private:
-        LTDBPixel* davor; //! Letzter Pixel
-        char index;       //! Bitlänge des Pixels
+        LTDBPixel* davor; //! Previous pixel
+        char index;       //! Bit length of the pixel
         char iR, iG, iB, iA;
         char miR, miG, miB, miA;
-        char maxIndex;    //! Länge des Pixels
-        bool change  : 1; //! Verändert sich etwas an den volgenden 5 Variablen
-        bool changeR : 1; //! Ändert sich Rot
-        bool changeG : 1; //! Ändert sich Grün
-        bool changeB : 1; //! Ändert sich Blau
-        bool changeA : 1; //! Ändert sich Alpha
-        unsigned char komp : 3; //! Komprimierung der Farbwerte
-        unsigned char R;        //! Rot
-        unsigned char G;        //! Grün
-        unsigned char B;        //! Blau
+        char maxIndex;    //! Length of the pixel
+        bool change  : 1; //! Whether something changes in the following 5 variables
+        bool changeR : 1; //! Whether Red changes
+        bool changeG : 1; //! Whether Green changes
+        bool changeB : 1; //! Whether Blue changes
+        bool changeA : 1; //! Whether Alpha changes
+        unsigned char komp : 3; //! Compression of color values
+        unsigned char R;        //! Red
+        unsigned char G;        //! Green
+        unsigned char B;        //! Blue
         unsigned char A;        //! Alpha
         bool addBitZuFarbe(
-            unsigned char bit); //! Fügt den Farbwerten ein Bit hinzu
+            unsigned char bit); //! Adds a bit to the color values
         bool getNextFarbeBit(
-            char& byte, int i); //! Speichert das nächste Farbbit in byte
+            char& byte, int i); //! Stores the next color bit in byte
 
     public:
-        //! Konstruktor
-        //! \param davor Der Pixel, der Vorher geladen wurde. 0, falls dieß der
-        //! Erste Pixel ist
+        //! Constructor
+        //! \param davor The pixel that was loaded before. 0 if this is the
+        //! first pixel
         DLLEXPORT LTDBPixel(LTDBPixel* davor);
-        //! Destruktor
+        //! Destructor
         DLLEXPORT ~LTDBPixel();
-        //! zum Laden gedacht. Fügt dem Pixel einiege bits hinzu
-        //! \param byte Das zuletzt aus der Datei gelesene Byte
-        //! \param begin Der Index des ersten Bits im byte, wo der Pixel beginnt
-        //! \return Der Index des Bits im Byte, wo der Pixel aufgehöhrt hat. -1,
-        //! falls der Pixel am ende Des Bytes noch nicht zuende ist
+        //! For loading. Adds some bits to the pixel
+        //! \param byte The last byte read from the file
+        //! \param begin The index of the first bit in byte where the pixel begins
+        //! \return The index of the bit in byte where the pixel ended. -1 if
+        //! the pixel is not finished at the end of the byte
         DLLEXPORT char addByte(char byte, char begin);
-        //! zum speichern gedacht. Setzt die Farbe, die im Pixel gespeichert
-        //! werden soll \param f Die zu speichernde Farbe
+        //! For saving. Sets the color to be stored in the pixel
+        //! \param f The color to store
         DLLEXPORT void setFarbe(int f);
-        //! Komprimiert den Pixel. Muss vor dem Speichern aufgerufen werden.
+        //! Compresses the pixel. Must be called before saving.
         DLLEXPORT void komprimieren();
-        //! Gibt ein Teil der Bits zurück, die den Pixel representieren
-        //! \param byte Eine Referens auf das Byte, dass als nächstes
-        //! gespeichert werden soll \param begin Der Index des ersten Bits im zu
-        //! speichernden Byte, wo der Pixel gespeichert werden soll \return Der
-        //! Index des Bits im zu speichernden Byte, wo der Pixel aufhöhrt. -1,
-        //! falls der Pixel im nächsten Byte fortgesetzt werden muss
+        //! Returns a part of the bits that represent the pixel
+        //! \param byte A reference to the byte to be saved next
+        //! \param begin The index of the first bit in the byte where the pixel
+        //! should be stored \return The index of the bit where the pixel ends.
+        //! -1 if the pixel must continue in the next byte
         DLLEXPORT char getNextByte(char& byte, int begin);
-        //! Gibt den Farbwert des Pixels zurück
+        //! Returns the color value of the pixel
         DLLEXPORT int zuFarbe() const;
-        //! Gibt zurück, ob sich der Anteil an Rot in der Farbe im Vergleich zum
-        //! Pixel davor geändert hat
+        //! Returns whether the red component changed compared to the previous pixel
         DLLEXPORT bool getChangeR() const;
-        //! Gibt zurück, ob sich der Anteil an Grün in der Farbe im Vergleich
-        //! zum Pixel davor geändert hat
+        //! Returns whether the green component changed compared to the previous pixel
         DLLEXPORT bool getChangeG() const;
-        //! Gibt zurück, ob sich der Anteil an Blau in der Farbe im Vergleich
-        //! zum Pixel davor geändert hat
+        //! Returns whether the blue component changed compared to the previous pixel
         DLLEXPORT bool getChangeB() const;
-        //! Gibt zurück, ob sich der Anteil an Alpha in der Farbe im Vergleich
-        //! zum Pixel davor geändert hat
+        //! Returns whether the alpha component changed compared to the previous pixel
         DLLEXPORT bool getChangeA() const;
-        //! Gibt die Komprimierung des Pixels zurück
+        //! Returns the compression of the pixel
         DLLEXPORT unsigned char getKomp() const;
-        //! Gibt den Anteil an Rot in der Farbe des Pixels zurück
+        //! Returns the red component of the pixel's color
         DLLEXPORT unsigned char getR() const;
-        //! Gibt den Anteil an Grün in der Farbe des Pixels zurück
+        //! Returns the green component of the pixel's color
         DLLEXPORT unsigned char getG() const;
-        //! Gibt den Anteil an Blau in der Farbe des Pixels zurück
+        //! Returns the blue component of the pixel's color
         DLLEXPORT unsigned char getB() const;
-        //! Gibt den Anteil an Alpha in der Farbe des Pixels zurück
+        //! Returns the alpha component of the pixel's color
         DLLEXPORT unsigned char getA() const;
     };
 
-    //! Der Kopf des LTDB Dateiformates. Hier werden informationen über alle
-    //! Abgespeicherten Bilder verwaltet
+    //! The header of the LTDB file format. Stores information about all
+    //! saved images
     class LTDBDateiKopf : public virtual ReferenceCounter
     {
     private:
@@ -118,62 +112,60 @@ namespace Framework
         int bAnzahl;
 
     public:
-        //! konstructor
+        //! Constructor
         DLLEXPORT LTDBDateiKopf();
-        //! destructor
+        //! Destructor
         DLLEXPORT ~LTDBDateiKopf();
-        //! Entfernt ein Bild aus dem Dateikopf
-        //! \param i Der Index des Bildes, welches entfernt werden soll
+        //! Removes an image from the file header
+        //! \param i The index of the image to remove
         DLLEXPORT void removeBild(int i);
-        //! Entfernt ein Bild aus dem Dateikopf
-        //! \param txt Der Name des Bildes, welches entfernt werden soll
+        //! Removes an image from the file header
+        //! \param txt The name of the image to remove
         DLLEXPORT void removeBild(Text* txt);
-        //! Fügt dem Dateikopf ein Bild hinzu
-        //! \param txt Der Name des Bildes.
+        //! Adds an image to the file header
+        //! \param txt The name of the image
         DLLEXPORT void addBild(Text* txt);
-        //! Legt den Index des Bytes aus der Datei fest, wo das Bild anfängt
-        //! \param i Der index Des Bildes
-        //! \param pos Die Position des Bildes in der Datei
+        //! Sets the byte index in the file where the image begins
+        //! \param i The index of the image
+        //! \param pos The position of the image in the file
         DLLEXPORT void setBildPos(int i, __int64 pos);
-        //! Legt den Index des Bytes aus der Datei fest, wo das Bild anfängt
-        //! \param txt Der Name Des Bildes
-        //! \param pos Die Position des Bildes in der Datei
+        //! Sets the byte index in the file where the image begins
+        //! \param txt The name of the image
+        //! \param pos The position of the image in the file
         DLLEXPORT void setBildPos(Text* txt, __int64 pos);
-        //! Lädt den Dateikopf einer LTDB Datei
-        //! \param f Ein Zeiger auf einen Fortschrittsbalken, der zum Laden
-        //! verwendet werden soll. Kann 0 sein. \param inF Der geöffnete
-        //! ifstream der LTDB Datei, bei dem die Leseposition bereits auf das
-        //! erste Byte des Dateiopfes zeigt.
+        //! Loads the file header of an LTDB file
+        //! \param f A pointer to a progress bar to use for loading. Can be 0.
+        //! \param inF The opened ifstream of the LTDB file with the read
+        //! position already pointing to the first byte of the file header.
         DLLEXPORT void laden(FBalken* f, std::ifstream* inF);
-        //! Speichert den Dateikopf in einer LTDB Datei
-        //! \param outF Der geöffnete ofstream der LTDB Datei, bei dem die
-        //! Schreibposition bereits auf das erste Byte des Dateikopfes zeigt.
+        //! Saves the file header to an LTDB file
+        //! \param outF The opened ofstream of the LTDB file with the write
+        //! position already pointing to the first byte of the file header.
         DLLEXPORT void speichern(std::ofstream* outF) const;
-        //! Gibt den Namen eines bestimmten Bildes zurück
-        //! \param i Der Index des Bildes, dessen Namen zurückgegeben werden
-        //! soll \return Der Name des bildes
+        //! Returns the name of a specific image
+        //! \param i The index of the image whose name should be returned
+        //! \return The name of the image
         DLLEXPORT Text* getBild(int i) const;
-        //! Gibt den Namen eines bestimmten Bildes zurück
-        //! \param i Der Index des Bildes, dessen Namen zurückgegeben werden
-        //! soll \return Der Name des bildes ohne erhöhten Reference Counter
+        //! Returns the name of a specific image
+        //! \param i The index of the image whose name should be returned
+        //! \return The name of the image without increased reference counter
         DLLEXPORT Text* zBild(int i) const;
-        //! Gibt den Index des Ersten Bytes eines Bildes in der Datei zurück
-        //! \param txt Der Name des Bildes, dessen Beginn gefunden werden soll
-        //! \return -1, falls das Bild nicht gefunden wurde.
+        //! Returns the index of the first byte of an image in the file
+        //! \param txt The name of the image whose start should be found
+        //! \return -1 if the image was not found.
         DLLEXPORT __int64 getBildPosition(Text* txt) const;
-        //! Gibt den Index des Ersten Bytes eines Bildes in der Datei zurück
-        //! Fals der Index nicht existiert wird die Exception std::out_of_range
-        //! geworfen. \param indes Der Indes des Bildes, dessen Beginn gefunden
-        //! werden soll
+        //! Returns the index of the first byte of an image in the file.
+        //! If the index does not exist, std::out_of_range is thrown.
+        //! \param index The index of the image whose start should be found
         DLLEXPORT __int64 getBildPosition(int index) const;
-        //! Gibt den Index eines Bestimmten Bildes zurück
-        //! \param txt Der Name des Bildes
-        //! \return -1, falls das Bild nicht gefunden wurde
+        //! Returns the index of a specific image
+        //! \param txt The name of the image
+        //! \return -1 if the image was not found
         DLLEXPORT int getBildIndex(Text* txt) const;
-        //! Gibt die Anzahl der Bilder in der Datei zurück
+        //! Returns the number of images in the file
         DLLEXPORT int getbAnzahl() const;
-        //! Gibt eine Liste mit Bildern in der Datei ohne erhöhten Reference
-        //! Counter zurück. Die Liste sollte nicht verändert werden
+        //! Returns a list of images in the file without increased reference
+        //! counter. The list should not be modified
         DLLEXPORT RCArray<Text>* zBildListe() const;
     };
 

+ 95 - 107
Fenster.h

@@ -1,4 +1,4 @@
-#ifndef Fenster_H
+#ifndef Fenster_H
 #define Fenster_H
 
 #include "Array.h"
@@ -15,42 +15,40 @@ namespace Framework
     class Schrift;       //! Schrift.h
     class Text;          //! Text.h
     class Bild;          //! Bild.h
-    class WFenster;      //! aus dieser Datei
-    class WFensterArray; //! aus dieser Datei
-    class Fenster;       //! aus dieser Datei
+    class WFenster;      //! from this file
+    class WFensterArray; //! from this file
+    class Fenster;       //! from this file
 #ifdef WIN32
-    //! Erzeugt eine normale Fensterklasse der Windows API
-    //! \param hInst Die HINSTANCE des Programms (Wird vom Framework an die
-    //! Start funktion in der Startparam Struktur übergeben)
+    //! Creates a normal window class of the Windows API
+    //! \param hInst The HINSTANCE of the program (passed by the Framework to
+    //! the start function in the Startparam structure)
     DLLEXPORT WNDCLASS F_Normal(HINSTANCE hInst);
-    //! Erzeugt eine normale Fensterklasse der Windows API
-    //! \param hInst Die HINSTANCE des Programms (Wird vom Framework an die
-    //! Start funktion in der Startparam Struktur übergeben)
+    //! Creates a normal window class of the Windows API
+    //! \param hInst The HINSTANCE of the program (passed by the Framework to
+    //! the start function in the Startparam structure)
     DLLEXPORT WNDCLASSEX F_NormalEx(HINSTANCE hInst);
-    //! Funktion des Frameworks, die alle Nachichten von Windows oder anderen
-    //! Prozessen verarbeitet
+    //! Framework function that processes all messages from Windows or other
+    //! processes
     DLLEXPORT LRESULT CALLBACK WindowProc(
         HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam);
-    //! Startet eine Schleife, die die Benutzereingaben verarbeitet. Die
-    //! Schleife läuft, bis irgendwo im Programm StopNachrichtenSchleife
-    //! aufgerufen wird
+    //! Starts a loop that processes user input. The loop runs until
+    //! StopNachrichtenSchleife is called somewhere in the program
     DLLEXPORT void StartNachrichtenSchleife();
-    //! Stoppt die Ausführung der Nachrichten Schleife des Frameworks.
-    //! \param hwnd Ein Handle auf ein beliebiges Fenster des Frameworks, das
-    //! Nachrichten empfangen kann. Wird benötigt, um eine Nachricht zu senden,
-    //! damit die funktion StartNachrichtenSchleife nicht mehr wartet und sofort
-    //! beendet wird
+    //! Stops the execution of the framework's message loop.
+    //! \param hwnd A handle to any framework window that can receive
+    //! messages. Required to send a message so that StartNachrichtenSchleife
+    //! stops waiting and exits immediately
     DLLEXPORT void StopNachrichtenSchleife(HWND hwnd);
-    //! Übersetzt einen Keycode, der von Windows gesendet wurde in den
-    //! Buchstaben der gedrückten Taste
+    //! Translates a keycode sent by Windows into the character of the
+    //! pressed key
     DLLEXPORT void CalculateEnteredString(
         int virtualKeyCode, int scanCode, TastaturEreignis& te);
 
-    //! Klasse für ein Fenster der Windows API
+    //! Class for a Windows API window
     class WFenster : public virtual ReferenceCounter
     {
     private:
-        HWND hWnd; //! Handel zum Fenster
+        HWND hWnd; //! Handle to the window
         int style;
         void* makParam;
         void* sakParam;
@@ -67,116 +65,106 @@ namespace Framework
         HDC hdc;
 
     public:
-        //--Konstruktor--
+        //--Constructor--
         DLLEXPORT WFenster();
-        //--Konstruktor--
-        //! \param hwnd Ein Handle zum Fenster, das von dieser Klasse verwaltet
-        //! werden soll
+        //--Constructor--
+        //! \param hwnd A handle to the window that should be managed by this
+        //! class
         DLLEXPORT WFenster(HWND hWnd);
-        //--Destruktor--
+        //--Destructor--
         DLLEXPORT ~WFenster();
-        //! erstellt das Fenster
-        //! \param style Der Style des Fensters. Beispiel: WS_OVERLAPPEDWINDOW
-        //! (Für ein normales Fenster wie man es kennt) \param wc Die
-        //! Fensterklasse der Windows API, von der ein Fenster erstellt werden
-        //! soll. Kann mit der Funktion F_Normal erstellt werden. Es muss
-        //! lpszClassName gesetzt worden sein.
+        //! Creates the window
+        //! \param style The style of the window. Example: WS_OVERLAPPEDWINDOW
+        //! (for a normal window) \param wc The Windows API window class from
+        //! which a window should be created. Can be created with the F_Normal
+        //! function. lpszClassName must have been set.
         DLLEXPORT void erstellen(int style, WNDCLASS wc);
-        //! erstellt das Fenster
-        //! \param exStyle Der EX Style des Fensters. Beispiel:
-        //! WS_EX_OVERLAPPEDWINDOW (Für ein normales Fenster wie man es kennt)
-        //! \param style Der Style des Fensters. Beispiel: WS_OVERLAPPEDWINDOW
-        //! (Für ein normales Fenster wie man es kennt) \param wc Die
-        //! Fensterklasse der Windows API, von der ein Fenster erstellt werden
-        //! soll. Kann mit der Funktion F_Normal erstellt werden. Es muss
-        //! lpszClassName gesetzt worden sein.
+        //! Creates the window
+        //! \param exStyle The EX style of the window. Example:
+        //! WS_EX_OVERLAPPEDWINDOW (for a normal window)
+        //! \param style The style of the window. Example: WS_OVERLAPPEDWINDOW
+        //! (for a normal window) \param wc The Windows API window class from
+        //! which a window should be created. Can be created with the F_Normal
+        //! function. lpszClassName must have been set.
         DLLEXPORT void erstellenEx(int exStyle, int style, WNDCLASSEX wc);
-        //! Setzt den Anzeigemodus des Fensters
-        //! \param mod Der Modus. Beispiel: SW_SHOWNORMAL, um das Fenster
-        //! anzuzeigen und SW_HIDE um es einzuklappen
+        //! Sets the display mode of the window
+        //! \param mod The mode. Example: SW_SHOWNORMAL to show the window
+        //! and SW_HIDE to minimize it
         DLLEXPORT void setAnzeigeModus(int mod);
-        //! Setzt den Fokus auf das Fenster, so dass Tastatureingaben empfangen
-        //! werden
+        //! Sets the focus to the window so that keyboard input is received
         DLLEXPORT bool setFokus();
-        //! Setzt die Position des fensters auf dem Bildschirm
-        //! \param pos Die Position in Pixeln
+        //! Sets the position of the window on the screen
+        //! \param pos The position in pixels
         DLLEXPORT void setPosition(const Punkt& pos);
-        //! Setzt die Position des fensters auf dem Bildschirm
-        //! \param x Die X Position in Pixeln
-        //! \param y Die Y Position in Pixeln
+        //! Sets the position of the window on the screen
+        //! \param x The X position in pixels
+        //! \param y The Y position in pixels
         DLLEXPORT void setPosition(int x, int y);
-        //! Setzt die Größe des Fensters auf dem Bildschirm
-        //! \param größe Die Größe in Pixeln
+        //! Sets the size of the window on the screen
+        //! \param gr\u00f6\u00dfe The size in pixels
         DLLEXPORT void setSize(Punkt& größe);
-        //! Setzt die Größe des Fensters auf dem Bildschirm
-        //! \param breite Die Breite in Pixeln
-        //! \param höhe Die Höhe in Pixeln
+        //! Sets the size of the window on the screen
+        //! \param breite The width in pixels
+        //! \param h\u00f6he The height in pixels
         DLLEXPORT void setSize(int breite, int höhe);
-        //! Setzt die Position und die Größe des Fensters
-        //! \param pos Die Position in Pixeln
-        //! \param größe Die Größe in Pixeln
+        //! Sets the position and size of the window
+        //! \param pos The position in pixels
+        //! \param gr\u00f6\u00dfe The size in pixels
         DLLEXPORT void setBounds(const Punkt& pos, const Punkt& größe);
-        //! Setzt das Verwendete Bildschirm Objekt, um Tastatur und Maus
-        //! Eingaben an die Objekte des Frameworks weiterzugeben. Muss vor dem
-        //! Zerstören des Fensters mit 0 aufgerufen werden. \param screen Das
-        //! Bildschirm Objekt
+        //! Sets the screen object used to forward keyboard and mouse input
+        //! to the framework's objects. Must be called with 0 before the
+        //! window is destroyed. \param screen The screen object
         DLLEXPORT void setBildschirm(Bildschirm* screen);
-        //! Zerstört das Fenster
+        //! Destroys the window
         DLLEXPORT void zerstören();
-        //! Verarbeitet Maus Nachrichten. Ruft MausAktion auf und gibt die
-        //! Ereignisse an den Bildschirm mit den Objekten weiter, wenn
-        //! MausAktion 1 zurückgibt \param me Das Ereignis, was durch die
-        //! Mauseingabe ausgelößt wurde
+        //! Processes mouse messages. Calls MausAktion and forwards events
+        //! to the screen with objects if MausAktion returns 1
+        //! \param me The event triggered by the mouse input
         DLLEXPORT void doMausAktion(MausEreignis& me);
-        //! Ruft die VSchließAktion Rückruffunktion auf
+        //! Calls the pre-close callback function
         DLLEXPORT void doVSchließAktion();
-        //! Ruft die NSchließAktion Rückruffunktion auf
+        //! Calls the post-close callback function
         DLLEXPORT void doNSchließAktion();
-        //! Verarbeitet Tastatur Nachrichten. Ruft TastaturAktion auf und gibt
-        //! die Ereignisse an den Bildschirm mit den Objekten weiter, wenn
-        //! TastaturAktion 1 zurückgibt \param me Das Ereignis, was durch die
-        //! Tastatureingabe ausgelößt wurde
+        //! Processes keyboard messages. Calls TastaturAktion and forwards
+        //! events to the screen with objects if TastaturAktion returns 1
+        //! \param me The event triggered by the keyboard input
         DLLEXPORT void doTastaturAktion(TastaturEreignis& et);
-        //! Macht den Rahmen des Fensters sichtbar, fals ladeRahmenFenster
-        //! aufgerufen wurde
+        //! Makes the window frame visible if ladeRahmenFenster was called
         DLLEXPORT void doRestoreMessage();
-        //! setzt den Parameter, der bei einem Maus Ereignis an die
-        //! Rückruffunktion übergeben wird \param p Der Parameter
+        //! Sets the parameter passed to the callback function on a mouse event
+        //! \param p The parameter
         DLLEXPORT void setMausEreignisParameter(void* p);
-        //! setzt den Parameter, der beim Schließen an die Rückruffunktion
-        //! übergeben wird \param p Der Parameter
+        //! Sets the parameter passed to the callback function on close
+        //! \param p The parameter
         DLLEXPORT void setSchließEreignisParameter(void* p);
-        //! Setzt den Parameter, der bei einem Tastatur Ereignis an die
-        //! Rückruffunktion übergeben wird \param p Der Parameter
+        //! Sets the parameter passed to the callback function on a keyboard
+        //! event
+        //! \param p The parameter
         DLLEXPORT void setTastaturEreignisParameter(void* p);
-        //! Setzt die Rückruffunktion, die bei einem Maus Ereignis aufgerufen
-        //! werden soll. 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 \param ak Ein
-        //! Zeiger auf die Rückruffunktion
+        //! Sets the callback function to be called on a mouse event.
+        //! If the callback returns 0 or was not set, the mouse event is not
+        //! further processed by the window. The standard function __ret1ME
+        //! can be used, defined in MausEreignis.h and always returns 1
+        //! \param ak A pointer to the callback function
         DLLEXPORT void setMausAktion(MausAktion ak);
-        //! Setzt die Rückruffunktion, die bei vor dem Schließen aufgerufen
-        //! werden soll. \param ak Ein Zeiger auf die Rückruffunktion
+        //! Sets the callback function to be called before closing.
+        //! \param ak A pointer to the callback function
         DLLEXPORT void setVSchließAktion(std::function<void(void*, void*)> ak);
-        //! Setzt die Rückruffunktion, die bei nach dem Schließen aufgerufen
-        //! werden soll. \param ak Ein Zeiger auf die Rückruffunktion
+        //! Sets the callback function to be called after closing.
+        //! \param ak A pointer to the callback function
         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 \param ak Ein Zeiger auf
-        //! die Rückruffunktion
+        //! Sets the callback function to be called on a keyboard event.
+        //! If the callback returns 0 or was not set, the keyboard event is not
+        //! further processed. The standard function __ret1TE can be used,
+        //! defined in TastaturEreignis.h and always returns 1. Other standard
+        //! functions are _nurNummernTE and _nurHexTE also from
+        //! TastaturEreignis.h \param ak A pointer to the callback function
         DLLEXPORT void setTastaturAktion(TastaturAktion ak);
-        //! Setzt das Handle zum Fenster, das von dieser Klasse verwaltet werden
-        //! soll
-        //! \param hwnd Das Handle
+        //! Sets the handle to the window that should be managed by this class
+        //! \param hwnd The handle
         DLLEXPORT void setFensterHandle(HWND hWnd);
-        //! legt fest, ob das Fenster durch ziehen mit Maus verschoben werden
-        //! kann \param verschiebbar 1, wenn das Fenster verschoben werden darf
+        //! Specifies whether the window can be moved by dragging with the mouse
+        //! \param verschiebbar 1 if the window may be moved
         DLLEXPORT void setVerschiebbar(bool verschiebbar);
         //! Setzt einen Transparenten Rahmen um das Fenster
         //! \param zBild Ein Bild, was den Rahmen enthält

+ 24 - 27
InMemoryBuffer.cpp

@@ -1,4 +1,4 @@
-#include "InMemoryBuffer.h"
+#include "InMemoryBuffer.h"
 
 #include "Either.h"
 #include "Text.h"
@@ -23,9 +23,9 @@ InMemoryBuffer::~InMemoryBuffer()
     delete[] buffer;
 }
 
-//! Ließt aus der Datei
-//! \param bytes Ein Array, der mit Bytes aus der Resource gefüllt werden soll
-//! \param len Wie viele Bytes aus der Resource gelesen werden sollen
+//! Reads from the resource
+//! \param bytes An array to be filled with bytes from the resource
+//! \param len How many bytes should be read from the resource
 void InMemoryBuffer::lese(char* bytes, int len)
 {
     if (readPos < writePos)
@@ -44,10 +44,9 @@ void InMemoryBuffer::lese(char* bytes, int len)
     }
 }
 
-//! Schreibt in die Resource
-//! \param bytes Ein Array, der die Bytes enthält, welche in die Resource
-//! geschrieben werden soll \param len Wie viele Bytes in die Resource
-//! geschrieben werden sollen
+//! Writes to the resource
+//! \param bytes An array containing the bytes to be written to the resource
+//! \param len How many bytes should be written to the resource
 void InMemoryBuffer::schreibe(const char* bytes, int len)
 {
     if (numBuffers * 256 < writePos + len)
@@ -75,8 +74,8 @@ void InMemoryBuffer::schreibe(const char* bytes, int len)
     maxWritePos = MAX(maxWritePos, writePos);
 }
 
-//! Ließt die nächste zeile der Resource ein
-//! \return Die gelesene Zeile als Text mit zeilenumbruch
+//! Reads the next line of the resource
+//! \return The read line as Text with line break
 Text* InMemoryBuffer::leseZeile()
 {
     if (istEnde()) return 0;
@@ -89,17 +88,17 @@ Text* InMemoryBuffer::leseZeile()
     return ret;
 }
 
-//! Prüft, ob die Resource vollständig gelesen wurde
-//!  return 1, wenn die Resource vollständig gelesen wurde. 0, sonst
+//! Checks whether the resource has been fully read
+//!  return 1 if the resource has been fully read. 0 otherwise
 bool InMemoryBuffer::istEnde() const
 {
     return readPos < writePos;
 }
 
-//! Setzt die Position des Bytes, das als nächstes gelesen werden soll
-//! \param pos Der Index des Bytes
-//! \param ende 1, wenn der Index vom ende der Resource zählt. 0, wenn der Index
-//! vom Beginn der Resource zählt
+//! Sets the position of the byte to be read next
+//! \param pos The index of the byte
+//! \param ende 1 if the index counts from the end of the resource. 0 if the index
+//! counts from the beginning of the resource
 void InMemoryBuffer::setLPosition(__int64 pos, bool ende)
 {
     if (ende)
@@ -108,10 +107,10 @@ void InMemoryBuffer::setLPosition(__int64 pos, bool ende)
         readPos = MIN(maxWritePos, (int)pos);
 }
 
-//! Setzt die Position des Bytes, das als nächstes geschrieben werden soll
-//! \param pos Der Index des Bytes
-//! \param ende 1, wenn der Index vom ende der Resource zählt. 0, wenn der Index
-//! vom Beginn der Resource zählt
+//! Sets the position of the byte to be written next
+//! \param pos The index of the byte
+//! \param ende 1 if the index counts from the end of the resource. 0 if the index
+//! counts from the beginning of the resource
 void InMemoryBuffer::setSPosition(__int64 pos, bool ende)
 {
     if (ende)
@@ -120,23 +119,21 @@ void InMemoryBuffer::setSPosition(__int64 pos, bool ende)
         writePos = MIN(maxWritePos, (int)pos);
 }
 
-//! Gibt den Index des Bytes aus der Resource zurück, welches als nächstes
-//! gelesen werden würde return -1, falls ein Fehler aufgetreten ist. Sonst die
-//! Position des Lesezeigers
+//! Returns the index of the byte from the resource that would be read next
+//! return -1 if an error occurred. Otherwise the position of the read pointer
 __int64 InMemoryBuffer::getLPosition() const
 {
     return readPos;
 }
 
-//! Gibt den Index des Bytes aus der Resource zurück, welches als nächstes
-//! geschrieben werden würde return -1, falls ein Fehler aufgetreten ist. Sonst
-//! die Position des Schreibzeigers
+//! Returns the index of the byte from the resource that would be written next
+//! return -1 if an error occurred. Otherwise the position of the write pointer
 __int64 InMemoryBuffer::getSPosition() const
 {
     return writePos;
 }
 
-//! Gibt die Anzahl der zu lesenden Bytes zurück
+//! Returns the number of bytes to be read
 __int64 InMemoryBuffer::getSize() const
 {
     return maxWritePos;

+ 71 - 81
Knopf.h

@@ -1,4 +1,4 @@
-#ifndef Knopf_H
+#ifndef Knopf_H
 #define Knopf_H
 
 #include "TextFeld.h"
@@ -11,36 +11,33 @@ namespace Framework
     class Schrift;       //! Schrift.h
     class Rahmen;        //! Rahmen.h
     class LTDBDatei;     //! Dateisystem.h
-    class Knopf;         //! aus dieser Datei
-    class KontrollKnopf; //! aus dieser Datei
+    class Knopf;         //! from this file
+    class KontrollKnopf; //! from this file
     class TextRenderer;
 
-    //! Eine Zeichnung des 2D GUI Frameworks, die einen Knopf zeichnet, den der
-    //! Benutzer drücken kann
+    //! A 2D GUI Framework drawing that renders a button that the user can press
     class Knopf : public TextFeld
     {
     public:
         class Style : public ZeichnungHintergrund::Style
         {
         public:
-            //! Legt fest, ob der Text des Knopfes mehrere
-            //! Farben haben darf
+            //! Specifies whether the button text may have multiple colors
             static const __int64 MehrfarbigText = 0x0010000;
-            //! Legt fest, ob der Knopf während er gedrückt
-            //! wird eine Hintergrund Farbe hat
+            //! Specifies whether the button has a background color
+            //! while being pressed
             static const __int64 KlickFarbe = 0x0020000;
-            //! Legt fest, ob der Knopf während er gedrückt
-            //! wird ein Bild als Hintergrund hat
+            //! Specifies whether the button has a background image
+            //! while being pressed
             static const __int64 KlickBild = 0x0040000;
-            //! Legt fest, ob der Knopf während er gedrückt
-            //! wird für das Zeichnen des Hintergrundes alpha
-            //! blending verwendet
+            //! Specifies whether the button uses alpha blending
+            //! for the background while being pressed
             static const __int64 KlickAlpha = 0x0080000;
-            //! Legt fest, ob der Knopf während er gedrückt
-            //! wird einen Farbübergang besitzt
+            //! Specifies whether the button has a color gradient
+            //! while being pressed
             static const __int64 KlickBuffer = 0x0100000;
 
-            //! Vereint di Flags Sichtbar, Erlaubt, Rahmen,
+            //! Combines flags Sichtbar, Erlaubt, Rahmen,
             //! Buffered, MehrfarbigText, KlickBuffer
             static const __int64 Normal = Sichtbar | Erlaubt | Rahmen | Buffered
                                         | MehrfarbigText | KlickBuffer;
@@ -51,116 +48,109 @@ namespace Framework
         Bild* klickBild;
         AlphaFeld* klickBuffer;
         int klickIndex;
-        //! Verarbeitet Maus Nachrichten
-        //! \param me Das Ereignis, was durch die Mauseingabe ausgelößt wurde
+        //! Processes mouse messages
+        //! \param me The event triggered by the mouse input
         DLLEXPORT void doMausEreignis(MausEreignis& me, bool userRet) override;
 
     public:
-        //! Konstruktor
+        //! Constructor
         DLLEXPORT Knopf();
-        //! Destruktor
+        //! Destructor
         DLLEXPORT virtual ~Knopf();
-        //! Setzt die Farbe, die als Hintergrund verwendet wird, wenn der Knopf
-        //! gedrückt wird \param fc Die Farbe im A8R8G8B8 Format
+        //! Sets the color used as background when the button is pressed
+        //! \param fc The color in A8R8G8B8 format
         DLLEXPORT void setKlickFarbe(int fc);
-        //! Setzt das Hintergrund Bild durch kopieren, das verwendet wird, wenn
-        //! der Knopf gedrückt wird \param bild Das Bild, das kopiert werden
-        //! soll
+        //! Sets the background image by copying, used when the button is pressed
+        //! \param bild The image to copy
         DLLEXPORT void setKlickBild(Bild* bild);
-        //! Setzt einen Zeiger auf das Hintergrund Bild, das verwendet wird,
-        //! wenn der Knopf gedrückt wird \param bild Das neue Bild
+        //! Sets a pointer to the background image used when the button is pressed
+        //! \param bild The new image
         DLLEXPORT void setKlickBildZ(Bild* bild);
-        //! Setzt einen Zeiger auf den Farbübergang, der verwendet wird, wenn
-        //! der Knopf gedrückt wird \param af Der neue Farbübergang
+        //! Sets a pointer to the color gradient used when the button is pressed
+        //! \param af The new color gradient
         DLLEXPORT void setKBZ(AlphaFeld* af);
-        //! Setzt die Stärke des Farbübergangs, der verwendet wird, wenn der
-        //! Knopf gedrückt wird \param st Die Stärke
+        //! Sets the strength of the color gradient used when the button is pressed
+        //! \param st The strength
         DLLEXPORT void setKBStrength(int st);
-        //! Setzt die Farbe des Farbübergangs, der verwendet wird, wenn der
-        //! Knopf gedrückt wird \param fc Die Farbe im A8R8G8B8 Format
+        //! Sets the color of the color gradient used when the button is pressed
+        //! \param fc The color in A8R8G8B8 format
         DLLEXPORT void setKBFarbe(int fc);
         //! Verarbeitet Maus Nachrichten
         //! \param te Das Ereignis, was durch die Tastatur Eingabe ausgelößt
         //! wurde
         DLLEXPORT void doTastaturEreignis(TastaturEreignis& te) override;
-        //! Zeichnet das Objekt nach zRObj, falls es sichtbar ist
-        //! \param zRObj Das Bild, in welches gezeichnet werden soll
+        //! Draws the object to zRObj if it is visible
+        //! \param zRObj The image to draw into
         DLLEXPORT void render(Bild& zRObj) override;
-        //! Gibt die Hintergrund Farbe im A8R8G8B8 Format zurück, die verwendet
-        //! wird, wenn der Knopf gedrückt wird
+        //! Returns the background color in A8R8G8B8 format used when
+        //! the button is pressed
         DLLEXPORT int getKlickFarbe() const;
-        //! Gibt das Hintergrund Bild zurück, das verwendet wird, wenn der Knopf
-        //! gedrückt wird
+        //! Returns the background image used when the button is pressed
         DLLEXPORT Bild* getKlickBild() const;
-        //! Gibt das Hintergrund Bild ohne erhöhten Reference Counter zurück,
-        //! das verwendet wird, wenn der Knopf gedrückt wird
+        //! Returns the background image without increased reference counter
+        //! used when the button is pressed
         DLLEXPORT Bild* zKlickBild() const;
-        //! Gibt den Farbübergang zurück, der verwendet wird, wenn der Knopf
-        //! gedrückt wird
+        //! Returns the color gradient used when the button is pressed
         DLLEXPORT AlphaFeld* getKB() const;
-        //! Gibt den Farbübergang ohne erhöhten Reference Counter zurück, der
-        //! verwendet wird, wenn der Knopf gedrückt wird
+        //! Returns the color gradient without increased reference counter
+        //! used when the button is pressed
         DLLEXPORT AlphaFeld* zKB() const;
-        //! Gibt die Farbe des Farbübergangs im A8R8G8B8 Format zurück, der
-        //! verwendet wird, wenn der Knopf gedrückt wird
+        //! Returns the color of the color gradient in A8R8G8B8 format
+        //! used when the button is pressed
         DLLEXPORT int getKBFarbe() const;
-        //! Gibt die Stärke des Farbübergangs zurück, der verwendet wird, wenn
-        //! der Knopf gedrückt wird
+        //! Returns the strength of the color gradient used when the button
+        //! is pressed
         DLLEXPORT int getKBStrength() const;
-        //! Kopiert den Knopf, so das er ohne auswirkungen auf das Original
-        //! verändert werden kann
+        //! Copies the button so it can be modified without affecting the original
         DLLEXPORT Zeichnung* dublizieren() const override;
     };
 
-    //! Eine Zeichnung des 2D GUI Frameworks, die einen Auswählbares Kästchen
-    //! mit beschriftung zeichnet
+    //! A 2D GUI Framework drawing that renders a selectable checkbox
+    //! with label
     class KontrollKnopf : public ZeichnungHintergrund
     {
     public:
         class Style : public ZeichnungHintergrund::Style
         {
         public:
-            //! Legt fest, ob das Kästchen ausgewählt ist
+            //! Specifies whether the checkbox is selected
             static const __int64 Selected = 0x1000000;
-            //! Legt Fest, ob der Beschriftungs Text mehrfarbig
-            //! sein kann
+            //! Specifies whether the label text can be multicolored
             static const __int64 MehrfarbigText = 0x001000;
-            //! Legt fest, ob das Kästchen während ed gedrückt
-            //! wird eine Hintergrund Farbe hat
+            //! Specifies whether the checkbox has a background color
+            //! while being pressed
             static const __int64 KlickFarbe = 0x002000;
-            //! Legt fest, ob das Kästchen beim Klicken ein
-            //! Hintergrund Bild hat
+            //! Specifies whether the checkbox has a background image
+            //! when clicked
             static const __int64 KlickBild = 0x004000;
-            //! Legt fest, ob für den Hintergrund des Kästchens
-            //! beim Klicken alpha blending verwendet wird
+            //! Specifies whether alpha blending is used for the
+            //! checkbox background when clicked
             static const __int64 KlickAlpha = 0x008000;
-            //! Legt fest, ob das Kästchen beim Klicken einen
-            //! Farbübergang hat
+            //! Specifies whether the checkbox has a color gradient
+            //! when clicked
             static const __int64 KlickBuffer = 0x010000;
-            //! Legt fest, ob das Kästchen wärhend es ausgewählt
-            //! ist eine Hintergrund Farbe hat
+            //! Specifies whether the checkbox has a background color
+            //! while selected
             static const __int64 SelectFarbe = 0x020000;
-            //! Legt fest, ob das Kästchen wärhend es ausgewählt
-            //! ist ein Hintergrund Bild hat
+            //! Specifies whether the checkbox has a background image
+            //! while selected
             static const __int64 SelectBild = 0x040000;
-            //! Legt fest, ob das Kästchen wärhend es ausgewählt
-            //! ist für den Hintergrund alpha blending verwendet
+            //! Specifies whether alpha blending is used for the
+            //! checkbox background while selected
             static const __int64 SelectAlpha = 0x080000;
-            //! Legt fest, ob das Kästchen wärhend es ausgewählt
-            //! ist einen Farbübergang hat
+            //! Specifies whether the checkbox has a color gradient
+            //! while selected
             static const __int64 SelectBuffer = 0x100000;
-            //! Legt fest, ob das Kästchen wärhend es ausgewählt
-            //! ist eine andere Beschriftung hat
+            //! Specifies whether the checkbox has a different label
+            //! while selected
             static const __int64 SelectText = 0x200000;
-            //! Legt fest, ob das Kästchen eine Mehrzeilige
-            //! Beschriftung haben kann
+            //! Specifies whether the checkbox can have a multi-line label
             static const __int64 MehrzeiligText = 0x400000;
-            //! Legt fest, ob gerade mit der Maus auf das
-            //! Kästchen geklickt wird. (Wird vom Kästchen
-            //! selbst verwaltet)
+            //! Specifies whether the checkbox is currently being clicked
+            //! with the mouse. (Managed by the checkbox itself)
             static const __int64 MausKlick = 0x800000;
 
-            //! Vereint die Flags Sichtbar, Erlaubt, Rahmen,
+            //! Combines the flags Sichtbar, Erlaubt, Rahmen,
             //! KlickBuffer
             static const __int64 Normal
                 = Sichtbar | Erlaubt | Rahmen | KlickBuffer;

+ 34 - 35
M3Datei.h

@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "Array.h"
 #include "ReferenceCounter.h"
@@ -36,51 +36,50 @@ namespace Framework
         //! Sets the path to the file
         //! \param pfad Path to the file
         DLLEXPORT void setPfad(const char* pfad);
-        //! Ließt grundlegende Informationen aus der Datei, die für ihre
-        //! Verwendung benötigt werden
+        //! Reads basic information from the file needed for its usage
         DLLEXPORT void leseDaten();
-        //! Speichert 3D Modell Daten in der Datei
-        //! \param zMdr Ein Zeiger auf die zu speichernden Daten ohne erhöhtem
-        //! Reference Counter \param name Der Name, unter dem die Daten in der
-        //! Datei gespeichert werden sollen \return 1, falls das Modell
-        //! gespeichert wurde. 0, falls ein fehler beim speichern auftrat
+        //! Saves 3D model data to the file
+        //! \param zMdr A pointer to the data to be saved without increased
+        //! reference counter \param name The name under which the data should be
+        //! stored in the file \return 1 if the model was saved. 0 if an error
+        //! occurred during saving
         DLLEXPORT bool saveModel(Model3DData* zMdr, Text* name);
-        //! Speichert 3D Modell Daten in der Datei
-        //! \param zMdr Ein Zeiger auf die zu speichernden Daten ohne erhöhtem
-        //! Reference Counter \param name Der Name, unter dem die Daten in der
-        //! Datei gespeichert werden sollen \return 1, falls das Modell
-        //! gespeichert wurde. 0, falls ein fehler beim speichern auftrat
+        //! Saves 3D model data to the file
+        //! \param zMdr A pointer to the data to be saved without increased
+        //! reference counter \param name The name under which the data should be
+        //! stored in the file \return 1 if the model was saved. 0 if an error
+        //! occurred during saving
         DLLEXPORT bool saveModel(Model3DData* zMdr, const char* name);
-        //! Löscht ein 3D Modell aus der Datei
-        //! \param name Der Name des Modells
-        //! \return 1, wenn das Modell gelöscht wurde. 0, wenn das Modell nicht
-        //! gefunden wurde, oder ein fehler beim speichern auftrat
+        //! Deletes a 3D model from the file
+        //! \param name The name of the model
+        //! \return 1 if the model was deleted. 0 if the model was not
+        //! found, or an error occurred during saving
         DLLEXPORT bool removeModel(Text* name);
-        //! Löscht ein 3D Modell aus der Datei
-        //! \param name Der Name des Modells
-        //! \return 1, wenn das Modell gelöscht wurde. 0, wenn das Modell nicht
-        //! gefunden wurde, oder ein fehler beim speichern auftrat
+        //! Deletes a 3D model from the file
+        //! \param name The name of the model
+        //! \return 1 if the model was deleted. 0 if the model was not
+        //! found, or an error occurred during saving
         DLLEXPORT bool removeModel(const char* name);
-        //! Lähd ein 3D Modell aus der Datei
-        //! \param name Der name des zu ladenden Modells
-        //! \return Die geladenen Daten
+        //! Loads a 3D model from the file
+        //! \param name The name of the model to load
+        //! \return The loaded data
         DLLEXPORT Model3DData* ladeModel(
             Text* name, GraphicsApi* zApi, Text* uniqueName) const;
-        //! Lähd ein 3D Modell aus der Datei
-        //! \param name Der name des zu ladenden Modells
-        //! \return Die geladenen Daten
+        //! Loads a 3D model from the file
+        //! \param name The name of the model to load
+        //! \return The loaded data
         DLLEXPORT Model3DData* ladeModel(
             const char* name, GraphicsApi* zApi, const char* uniqueName) const;
-        //! überprft, ob ein bestimmtes 3D Modell in der Datei existiert
-        //! \param name Der Name des zu suchenden 3D Modells
-        //! \return 1, wenn das Modell gefunden wurde. 0 sonst
+        //! Checks whether a specific 3D model exists in the file
+        //! \param name The name of the 3D model to search for
+        //! \return 1 if the model was found. 0 otherwise
         DLLEXPORT bool hatModel(const char* name) const;
-        //! ügibt die Anzahl der gespeicherten Modelle zurück
+        //! Returns the number of stored models
         DLLEXPORT int getModelAnzahl() const;
-        //! Gibt den Namen eines Bestimmten Modells zurück
-        //! \param i Der Index des Modells
-        //! \return Ein Zeiger aud den Namen des Modells ohne erhöhten Reference
-        //! Counter
+        //! Returns the name of a specific model
+        //! \param i The index of the model
+        //! \return A pointer to the name of the model without increased reference
+        //! counter
         DLLEXPORT Text* zModelName(int i) const;
     };
 } // namespace Framework

+ 19 - 20
Reader.cpp

@@ -1,13 +1,13 @@
-#include "Reader.h"
+#include "Reader.h"
 
 #include "Text.h"
 
 using namespace Framework;
 
-//! \param buffer der Buffer der gelesen werden soll
-//! \param length Die länge des buffers
-//! \param deleteBuffer true, wenn der buffer automatisch mit delete[] gelöscht
-//! werden soll
+//! \param buffer The buffer to be read
+//! \param length The length of the buffer
+//! \param deleteBuffer true if the buffer should be automatically deleted
+//! with delete[]
 ByteArrayReader::ByteArrayReader(
     const char* buffer, int length, bool deleteBuffer)
     : ReferenceCounter(),
@@ -22,9 +22,9 @@ ByteArrayReader::~ByteArrayReader()
     if (deleteBuffer) delete[] buffer;
 }
 
-//! Ließt aus der Datei
-//! \param bytes Ein Array, der mit Bytes aus der Resource gefüllt werden soll
-//! \param len Wie viele Bytes aus der Resource gelesen werden sollen
+//! Reads from the resource
+//! \param bytes An array to be filled with bytes from the resource
+//! \param len How many bytes should be read from the resource
 void ByteArrayReader::lese(char* bytes, int len)
 {
     if (position < length)
@@ -32,8 +32,8 @@ void ByteArrayReader::lese(char* bytes, int len)
     position = min(position + len, length);
 }
 
-//! Ließt die nächste zeile der Resource ein
-//! \return Die gelesene Zeile als Text mit zeilenumbruch
+//! Reads the next line of the resource
+//! \return The read line as Text with line break
 Text* ByteArrayReader::leseZeile()
 {
     if (position >= length) return 0;
@@ -46,31 +46,30 @@ Text* ByteArrayReader::leseZeile()
     return ret;
 }
 
-//! Prüft, ob die Resource vollständig gelesen wurde
-//!  return 1, wenn die Resource vollständig gelesen wurde. 0, sonst
+//! Checks whether the resource has been fully read
+//!  return 1 if the resource has been fully read. 0 otherwise
 bool ByteArrayReader::istEnde() const
 {
     return position >= length;
 }
 
-//! Setzt die Position des Bytes, das als nächstes gelesen werden soll
-//! \param pos Der Index des Bytes
-//! \param ende 1, wenn der Index vom ende der Resource zählt. 0, wenn der Index
-//! vom Beginn der Resource zählt
+//! Sets the position of the byte to be read next
+//! \param pos The index of the byte
+//! \param ende 1 if the index counts from the end of the resource. 0 if the index
+//! counts from the beginning of the resource
 void ByteArrayReader::setLPosition(__int64 pos, bool ende)
 {
     position = ende ? max(length - (int)pos, 0) : min((int)pos, length);
 }
 
-//! Gibt den Index des Bytes aus der Resource zurück, welches als nächstes
-//! gelesen werden würde return -1, falls ein Fehler aufgetreten ist. Sonst die
-//! Position des Lesezeigers
+//! Returns the index of the byte from the resource that would be read next
+//! return -1 if an error occurred. Otherwise the position of the read pointer
 __int64 ByteArrayReader::getLPosition() const
 {
     return position;
 }
 
-//! Gibt die Anzahl der zu lesenden Bytes zurück
+//! Returns the number of bytes to be read
 __int64 ByteArrayReader::getSize() const
 {
     return length;

+ 40 - 47
Thread.h

@@ -1,4 +1,4 @@
-#ifndef Thread_H
+#ifndef Thread_H
 #define Thread_H
 
 #include <condition_variable>
@@ -11,7 +11,7 @@ namespace Framework
     class Thread;
     class Critical;
 
-    //! Ein neuer Thread wie die Thread Klasse aus Java
+    //! A new thread similar to the Thread class from Java
     class Thread : public virtual ReferenceCounter
     {
     private:
@@ -25,40 +25,37 @@ namespace Framework
         bool run;
 
     public:
-        //! Konstruktor
+        //! Constructor
         DLLEXPORT Thread();
-        //! Destruktor
+        //! Destructor
         DLLEXPORT virtual ~Thread();
-        //! Startet den neuen Thread
+        //! Starts the new thread
         DLLEXPORT void start();
 #ifdef WIN32
-        //! Pausiert den Thread (Nur für Windows)
+        //! Pauses the thread (Windows only)
         DLLEXPORT void pause();
-        //! Setzt den Thread Fort (Nur für Windows)
+        //! Resumes the thread (Windows only)
         DLLEXPORT void fortsetzen();
 #endif
-        //! Beendet den Thread
+        //! Terminates the thread
         DLLEXPORT void ende();
-        //! Diese Funktion wird von dem neuen Thread ausgeführt.
+        //! This function is executed by the new thread
         DLLEXPORT virtual void thread();
-        //! Diese Funktion wird eufgerufen, nachdem die thread Funktion zuende
-        //! ist
+        //! This function is called after the thread function has finished
         DLLEXPORT virtual void threadEnd();
-        //! prüft, ob der Thrad aktiv ist
-        //! return: true, falls der Thread läuft.
-        //!         false, wenn der Thread beendet, pausiert oder noch nicht
-        //!         gestartet wurde.
+        //! Checks whether the thread is active
+        //! return: true if the thread is running.
+        //!         false if the thread is terminated, paused or not yet
+        //!         started.
         DLLEXPORT bool isRunning() const;
-        //! wartet zeit lang auf den Thread
-        //! \param zeit Die Zeit, die auf den Thread gewartet werden soll. 1000
-        //! = 1 Sekunde
+        //! Waits for the thread for the specified time
+        //! \param zeit The time to wait for the thread. 1000 = 1 second
         DLLEXPORT int warteAufThread(int zeit);
-        //! Legt einen Frameworkpointer auf ein Threadhandle fest, der auf 0
-        //! gesetzt wird, falls die Ressourcen des Threads bereits follstänfig
-        //! aufgeräumt wurden \param ths Ein Zeiger auf ein Threadhandle, das
-        //! verändert werden soll
+        //! Sets a framework pointer to a thread handle that will be set to 0
+        //! if the thread resources have already been fully cleaned up
+        //! \param ths A pointer to a thread handle to be modified
         DLLEXPORT void setSystemHandlePointer(pthread_t* ths);
-        //! Gibt ein Handle auf den Thread zurück
+        //! Returns a handle to the thread
         DLLEXPORT pthread_t getThreadHandle() const;
         //! set the name of the thread
         DLLEXPORT void setName(const char* name);
@@ -73,16 +70,14 @@ namespace Framework
     };
 
 #ifdef WIN32
-    //! Diese Funktion wird fon der Thread Klasse benutzt um einen thread zu
-    //! starten
+    //! This function is used by the Thread class to start a thread
     DLLEXPORT unsigned long __stdcall threadStart(void* param);
 #else
-    //! Diese Funktion wird fon der Thread Klasse benutzt um einen thread zu
-    //! starten
-    void* threadStart(void* param); //! startet thread
+    //! This function is used by the Thread class to start a thread
+    void* threadStart(void* param); //! starts thread
 #endif
 
-    //! Eine Klasse, die alle aktuell laufenden Thread Objekte speichert
+    //! A class that stores all currently running Thread objects
     class ThreadRegister
     {
     private:
@@ -91,33 +86,31 @@ namespace Framework
         Array<pthread_t> closedThreads;
 
     public:
-        //! Konstruktor
+        //! Constructor
         ThreadRegister();
-        //! Destruktor
+        //! Destructor
         ~ThreadRegister();
-        //! Fügt einen neuen Thread hinzu
-        //! \param t Der Thread, der hinzugefügt werden soll
+        //! Adds a new thread
+        //! \param t The thread to be added
         void add(Thread* t);
-        //! Entfernt einen neuen Thread
-        //! \param t Der Thread, der entfernt werden soll
+        //! Removes a thread
+        //! \param t The thread to be removed
         void remove(Thread* t);
-        //! Überprüft, ob ein Zeiger auf ein gültiges Thread Objekt zeigt, oder
-        //! ob es schon gelöscht wurde \param t Der Zeiger, der geprüft werden
-        //! soll
+        //! Checks whether a pointer points to a valid Thread object, or
+        //! whether it has already been deleted \param t The pointer to be checked
         bool isThread(Thread* t);
-        //! Sucht nach einem bestimmten Thread und gibt das zugehörige Objekt
-        //! zurück handle: Ein handle zu dem gesuchten Thread
+        //! Searches for a specific thread and returns the corresponding object
+        //! handle: A handle to the sought thread
         Thread* zThread(pthread_t handle);
-        //! Setzt Wird automatisch aufgerufen, wenn ein Thread beendet wird. Die
-        //! Reccourcen werden daraufhin in cleanUpClosedThreads freigegeben.
-        //! \param handle Das Handle des Threads
+        //! Called automatically when a thread is terminated. The
+        //! resources are then released in cleanUpClosedThreads.
+        //! \param handle The handle of the thread
         void addClosedThread(pthread_t handle);
-        //! sperrt das register
+        //! Locks the register
         void lock();
-        //! entsperrt das register
+        //! Unlocks the register
         void unlock();
-        //! Löscht die bereits beendetetn Threads und gibt ihre Reccourcen
-        //! wieder frei
+        //! Deletes the already terminated threads and releases their resources
         DLLEXPORT void cleanUpClosedThreads();
     };
 } // namespace Framework

+ 44 - 54
UIMLView.h

@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include "Array.h"
 #include "Trie.h"
@@ -144,20 +144,18 @@ namespace Framework
     public:
         DLLEXPORT UIMLElement();
         DLLEXPORT virtual ~UIMLElement();
-        //! prüft, ob dieses UIML Element für ein bestimmtes xml Element
-        //! zuständig ist
+        //! Checks whether this UIML element is responsible for a specific xml element
         virtual bool isApplicableFor(XML::Element& element) = 0;
-        //! erstellt eine neue Zeichnung zu einem gegebenen xml Element
+        //! Creates a new Zeichnung for a given xml element
         virtual Zeichnung* parseElement(
             XML::Element& element, UIMLContainer& generalFactory)
             = 0;
-        //! aktualisiert eine Zeichnung mit den Daten eines xml Elements. Gibt
-        //! false zurück, wenn die Zeichnung nicht aktualisiert werden konnte
-        //! und neu erstellt werden muss
+        //! Updates a Zeichnung with the data of an xml element. Returns
+        //! false if the Zeichnung could not be updated and needs to be recreated
         virtual bool updateElement(
             XML::Element& element, Zeichnung& z, UIMLContainer& generalFactory)
             = 0;
-        //! wendet die layout parameter zu einer Zeichnung an
+        //! Applies the layout parameters to a Zeichnung
         DLLEXPORT virtual void layout(XML::Element& element,
             Zeichnung& z,
             int pWidth,
@@ -490,17 +488,13 @@ namespace Framework
     public:
         //! Creates a UIML View
         DLLEXPORT UIMLView();
-        //! Erstellt eine UIML View zu einem UIML Text
-        //! \param uiml Ein xml element gemät des KSG UIML standarts
-        //! \param screen Ein zeiger für den Belschirm auf dem die tooltips
-        //! angezeigt werden sollen \param schrift Die schrift mit der der Text
-        //! gezeichnet werden soll
+        //! Creates a UIML View from a UIML text
+        //! \param uiml An xml element according to the KSG UIML standard
+        //! \param init The UI initialization settings
         DLLEXPORT UIMLView(XML::Element* uiml, UIInit& init);
-        //! Erstellt eine UIML View zu einem UIML Text
-        //! \param uiml Ein xml text gemät des KSG UIML standarts
-        //! \param screen Ein zeiger für den Belschirm auf dem die tooltips
-        //! angezeigt werden sollen \param schrift Die schrift mit der der Text
-        //! gezeichnet werden soll
+        //! Creates a UIML View from a UIML text
+        //! \param uiml An xml text according to the KSG UIML standard
+        //! \param init The UI initialization settings
         DLLEXPORT UIMLView(Text uiml, UIInit& init);
         DLLEXPORT ~UIMLView();
         /// <summary>
@@ -523,62 +517,58 @@ namespace Framework
         DLLEXPORT void setOnMemberKeyboardEvent(std::function<bool(
                 XML::Element& element, Zeichnung& member, TastaturEreignis te)>
                 onEventAction);
-        //! entfernt alle bekannten elemente, die im uiml verwendet werden
-        //! können
+        //! Removes all known elements that can be used in uiml
         DLLEXPORT void removeAllKnownElements();
-        //! fügt ein neues bekanntes element hinzu, dass danach im uiml
-        //! verwendet werden kann.
+        //! Adds a new known element that can then be used in uiml
         DLLEXPORT void addKnownElement(UIMLElement* element);
-        //! prüft, ob ein xml Element ein bekanntes uiml Element ist;
+        //! Checks whether an xml element is a known uiml element
         DLLEXPORT bool isKnownElement(XML::Element* zElement);
-        //! setzt den inhalt der view
-        //! \param uiml Ein xml element gemät des KSG UIML standarts
+        //! Sets the content of the view
+        //! \param uiml An xml element according to the KSG UIML standard
         DLLEXPORT void setUIML(XML::Element* uiml);
-        //! setzt den inhalt der view
-        //! \param uiml Ein xml text gemät des KSG UIML standarts
+        //! Sets the content of the view
+        //! \param uiml An xml text according to the KSG UIML standard
         DLLEXPORT void setUIML(Text uiml);
-        //! aktualisiert alles zeichnungen gemäß den spezifikationen in UIML.
-        //! Zeichnungen von entfernten elementen werden entfernt und neue
-        //! Zeichnungen für neue Elemente werden erstellt
+        //! Updates all drawings according to the specifications in UIML.
+        //! Drawings of removed elements are removed and new drawings
+        //! for new elements are created
         DLLEXPORT void update();
-        //! aktualisiert größe und position aller Zeichnungen gemäß den
-        //! spezifikationen in UIML
+        //! Updates size and position of all drawings according to the
+        //! specifications in UIML
         DLLEXPORT void layout();
-        //! fügt ein element hinzu
-        //! \param uiml Ein xml text gemät des KSG UIML standarts, welcher das
-        //! neue Objekt darstellt \return id des neuen Elements
+        //! Adds an element
+        //! \param uiml An xml text according to the KSG UIML standard representing
+        //! the new object \return id of the new element
         DLLEXPORT Text addMember(Text uiml);
-        //! fügt ein element zu einem Elternelement hinzu (funktioniert momentan
-        //! nur mit frame Objekten) \param uiml Ein xml text gemät des KSG UIML
-        //! standarts, welcher das neue Objekt darstellt \return id des neuen
-        //! Elements
+        //! Adds an element to a parent element (currently only works
+        //! with frame objects) \param uiml An xml text according to the KSG UIML
+        //! standard representing the new object \return id of the new element
         DLLEXPORT Text addMember(Text uiml, Text parentId);
         //! Removes an element
         //! \param id The id of the element
         DLLEXPORT void removeMember(Text id);
-        //! Gibt eine zeichnung zurück, welche in uiml eine bestimmte id hat
-        //! \param id die id der Zeichnung
+        //! Returns a drawing that has a specific id in uiml
+        //! \param id The id of the drawing
         DLLEXPORT Zeichnung* zZeichnungById(const char* id) override;
-        //! Gibt eine zeichnung zurück, welche in uiml eine bestimmte id hat
-        //! \param id die id der Zeichnung
+        //! Returns a drawing that has a specific id in uiml
+        //! \param id The id of the drawing
         DLLEXPORT Zeichnung* getZeichnungById(const char* id) override;
         //! Processes a keyboard event. Called automatically by the framework
         //! \param te The event
         DLLEXPORT virtual void doTastaturEreignis(TastaturEreignis& te);
-        //! Updated den Zeichenhintergrund
-        //! \param tickVal Die vergangene Zeit in Sekunden, die seit dem Letzten
-        //! Aufruf dieser Funktion verstrichen ist \return 1, wenn das Bild neu
-        //! gezeichnet werden muss. 0 sonnst
+        //! Updates the drawing background
+        //! \param tickVal The elapsed time in seconds since the last call
+        //! of this function \return 1 if the image needs to be redrawn. 0 otherwise
         DLLEXPORT bool tick(double tickVal) override;
-        //! Zeichnet den Hintergrund eines Zeichnunges nach rObj
+        //! Renders the background of a drawing to rObj
         DLLEXPORT void render(Bild& rObj) override;
-        //! Gibt den Dom Tree ohne erhöhten reference counter zurück
-        //! Änderungen am Dom Tree sollten vermieden werden (nur änderungen von
-        //! attributen einzelner elemente sind erlaubt)
+        //! Returns the DOM tree without increased reference counter
+        //! Changes to the DOM tree should be avoided (only changes to
+        //! attributes of individual elements are allowed)
         DLLEXPORT XML::Element* zDom() const;
-        //! Gibt den Dom Tree zurück
-        //! Änderungen am Dom Tree sollten vermieden werden (nur änderungen von
-        //! attributen einzelner elemente sind erlaubt)
+        //! Returns the DOM tree
+        //! Changes to the DOM tree should be avoided (only changes to
+        //! attributes of individual elements are allowed)
         DLLEXPORT XML::Element* getDom() const;
         DLLEXPORT bool isApplicableFor(XML::Element& element) override;
         DLLEXPORT Zeichnung* parseElement(

+ 73 - 76
XML.cpp

@@ -1,4 +1,4 @@
-#include "XML.h"
+#include "XML.h"
 
 using namespace Framework;
 using namespace XML;
@@ -19,10 +19,10 @@ Element::Element(Text string)
     : Element(string, 0)
 {}
 
-// Erstellt ein XML Element
-//  string: entweder der name des Elements oder ein XML Text der geparsed werden
-//  soll zParent: Ein Zeiger auf das eltern element (ohne erhöhten reference
-//  Counter)
+// Creates an XML Element
+//  string: either the name of the element or an XML text to be parsed
+//  zParent: A pointer to the parent element (without increased reference
+//  counter)
 Element::Element(Text string, Element* zParent)
     : Element()
 {
@@ -256,9 +256,9 @@ Element::~Element()
     name->release();
 }
 
-// ändert ein attribut oder fügt eines hinzu
-//  attribut: Der Name des Attributes
-//  value: Der Wert des Attributes
+// Changes an attribute or adds a new one
+//  attribut: The name of the attribute
+//  value: The value of the attribute
 void Element::setAttribute(Text attribut, Text value)
 {
     for (auto i = attributes->begin(), j = attributeValues->begin(); i && j;
@@ -274,8 +274,8 @@ void Element::setAttribute(Text attribut, Text value)
     attributeValues->add(new Text(value));
 }
 
-// entfernt ein attribut
-//  attribut: Der Name des Attributes
+// Removes an attribute
+//  attribut: The name of the attribute
 void Element::removeAttribute(Text attribut)
 {
     for (int i = 0; i < attributes->getEintragAnzahl(); i++)
@@ -289,24 +289,24 @@ void Element::removeAttribute(Text attribut)
     }
 }
 
-// fügt ein child hinzu
-//  child: Das neue Child Element
+// Adds a child
+//  child: The new child element
 void Element::addChild(Element* child)
 {
     child->parent = this;
     children->add(child);
 }
 
-// fügt ein child hinzu
-//  child: Das neue Child Element
+// Adds a child at the front
+//  child: The new child element
 void Element::addChildAtFront(Element* child)
 {
     child->parent = this;
     children->add(child, 0);
 }
 
-// entfernt ein child
-//  zChild: das zu entfernende Child
+// Removes a child
+//  zChild: The child to remove
 void Element::removeChild(Element* child)
 {
     for (int i = 0; i < children->getEintragAnzahl(); i++)
@@ -320,21 +320,21 @@ void Element::removeChild(Element* child)
     child->release();
 }
 
-// entfernt das i-te child
-//  i: der Index des childs (bei 0 beginnend)
+// Removes the i-th child
+//  i: The index of the child (starting at 0)
 void Element::removeChild(int i)
 {
     children->remove(i);
 }
 
-// entfernt alle childs
+// Removes all children
 void Element::removeAllChilds()
 {
     children->leeren();
 }
 
-// entfernt eine Liste mit childs
-//  childs: alle Childs die entfernt werden sollen
+// Removes a list of children
+//  childs: All children to be removed
 void Element::removeChilds(RCArray<Element>* childs)
 {
     for (auto i : *childs)
@@ -342,26 +342,26 @@ void Element::removeChilds(RCArray<Element>* childs)
     childs->release();
 }
 
-// entfernt dieses Element vom Eltern element
+// Removes this element from the parent element
 void Element::remove()
 {
     if (parent) parent->removeChild(dynamic_cast<XML::Element*>(getThis()));
 }
 
-// setzt den Text in dem Element falls es keine childs gibt
-//  text: dert Text
+// Sets the text in the element if it has no children
+//  text: The text
 void Element::setText(Text text)
 {
     this->text->setText(text);
 }
 
-// gibt den Text im Element zurück
+// Returns the text in the element
 Text Element::getText() const
 {
     return text->getText();
 }
 
-// gibt die Anzahl der Childs zurück
+// Returns the number of children
 int Element::getChildCount() const
 {
     return children->getEintragAnzahl();
@@ -372,37 +372,37 @@ int Framework::XML::Element::getChildIndex(Element* zChild) const
     return children->indexOf(zChild);
 }
 
-// gibt das i-te child zurück
+// Returns the i-th child
 Element* Element::getChild(int i) const
 {
     return children->get(i);
 }
 
-// gibt das i-te child zurück (ohne erhöhten reference Counter)
+// Returns the i-th child (without increased reference counter)
 Element* Element::zChild(int i) const
 {
     return children->z(i);
 }
 
-// gibt das parent element zurück
+// Returns the parent element
 Element* Element::getParent() const
 {
     return parent ? dynamic_cast<Element*>(parent->getThis()) : 0;
 }
 
-// gibt das parent element zurück (ohne erhöhten reference Counter)
+// Returns the parent element (without increased reference counter)
 Element* Element::zParent() const
 {
     return parent;
 }
 
-// gibt einen iterator zurück mit dem durch alle childs iteriert werden kann
+// Returns an iterator to iterate through all children
 ArrayIterator<Element*> Element::getChilds() const
 {
     return children->begin();
 }
 
-//! gibt einen Editor für dieses Element zurück
+//! Returns an editor for this element
 Editor Element::select()
 {
     RCArray<Element>* tmp = new RCArray<Element>();
@@ -410,14 +410,14 @@ Editor Element::select()
     return Editor(tmp);
 }
 
-// gibt einen selector zurück der alle childs beinhaltet
+// Returns a selector containing all children
 Editor Element::selectChildren() const
 {
     return Editor(dynamic_cast<RCArray<XML::Element>*>(children->getThis()));
 }
 
-// gibt eine Liste mit childs zurück, die einen bestimmten Namen haben
-//  name: der name der Childs
+// Returns a list of children that have a specific name
+//  name: The name of the children
 Editor Element::selectChildsByName(Text name) const
 {
     RCArray<Element>* tmp = new RCArray<Element>();
@@ -429,8 +429,8 @@ Editor Element::selectChildsByName(Text name) const
     return Editor(tmp);
 }
 
-// gibt eine Liste mit childs zurück, die ein bestimmtes Attribut haben
-//  attribute: der name des Attributes
+// Returns a list of children that have a specific attribute
+//  attribute: The name of the attribute
 Editor Element::selectChildsByAttribute(Text attribute) const
 {
     RCArray<Element>* tmp = new RCArray<Element>();
@@ -442,10 +442,10 @@ Editor Element::selectChildsByAttribute(Text attribute) const
     return Editor(tmp);
 }
 
-// gibt eine Liste mit childs zurück, die ein bestimmtes Attribut mit einem
-// bestimmten wert haben
-//  attribute: der name des Attributes
-//  value: der Wert des Attributes
+// Returns a list of children that have a specific attribute with a
+// specific value
+//  attribute: The name of the attribute
+//  value: The value of the attribute
 Editor Element::selectChildsByAttribute(Text attribute, Text value) const
 {
     RCArray<Element>* tmp = new RCArray<Element>();
@@ -458,7 +458,7 @@ Editor Element::selectChildsByAttribute(Text attribute, Text value) const
     return Editor(tmp);
 }
 
-// gibt 1 zurück, falls ein Attribut Name existiert, 0 sonnst
+// Returns 1 if an attribute name exists, 0 otherwise
 bool Element::hasAttribute(Text name) const
 {
     for (auto i : *attributes)
@@ -468,26 +468,26 @@ bool Element::hasAttribute(Text name) const
     return 0;
 }
 
-// gibt die Anzahl der Attribute zurück
+// Returns the number of attributes
 int Element::getAttributeCount() const
 {
     return attributes->getEintragAnzahl();
 }
 
-// gibt den Namen des i-ten Attributes zurück
+// Returns the name of the i-th attribute
 Text Element::getAttributeName(int i) const
 {
     return attributes->z(i)->getText();
 }
 
-// gibt den Wert des i-ten Attributes zurück
+// Returns the value of the i-th attribute
 Text Element::getAttributeValue(int i) const
 {
     return attributeValues->z(i)->getText();
 }
 
-// gibt den Wert eines Attributes zurück
-//  attribut: Der Name des Attributes
+// Returns the value of an attribute
+//  attribut: The name of the attribute
 const Text& Element::getAttributeValue(const Text& attribut) const
 {
     for (auto i = attributes->begin(), j = attributeValues->begin(); i && j;
@@ -498,15 +498,13 @@ const Text& Element::getAttributeValue(const Text& attribut) const
     return Text::EMPTY;
 }
 
-// gibt einen iterator zurück mit dem durch alle Attribut Namen iteriert werden
-// kann
+// Returns an iterator to iterate through all attribute names
 ArrayIterator<Text*> Element::getAttributeNames() const
 {
     return attributes->begin();
 }
 
-// gibt einen iterator zurück mit dem durch alle Attribut Werte iteriert werden
-// kann
+// Returns an iterator to iterate through all attribute values
 ArrayIterator<Text*> Element::getAttributeValues() const
 {
     return attributeValues->begin();
@@ -517,13 +515,13 @@ void Framework::XML::Element::setName(Text name)
     this->name->setText(name);
 }
 
-// gibt den Namen des Elementes zurück zurück
+// Returns the name of the element
 Text Element::getName() const
 {
     return name->getText();
 }
 
-// erzeugt einen XML Text der dieses Element und alle childs beinhaltet
+// Generates an XML text containing this element and all children
 Text Element::toString() const
 {
     Text ret = "<";
@@ -570,14 +568,13 @@ Text Element::toString() const
     return ret;
 }
 
-// Erzeugt eine Kopie ohne referenzen auf dieses objekt
+// Creates a copy without references to this object
 Element* Element::dublicate() const
 {
     return new Element(toString());
 }
 
-// Erzeugt einen neuen XML Editor mit einer Liste von Objekten die editiert
-// werden sollen
+// Creates a new XML Editor with a list of objects to be edited
 Editor::Editor(RCArray<Element>* elements)
     : ReferenceCounter()
 {
@@ -603,25 +600,25 @@ Maybe<RCPointer<Element>> Framework::XML::Editor::getFirstElement() const
     return Maybe<RCPointer<Element>>::empty();
 }
 
-// ändert ein attribut oder fügt eines hinzu (auf allen elementen in der Liste)
-//  attribut: Der Name des Attributes
-//  value: Der Wert des Attributes
+// Changes an attribute or adds a new one (on all elements in the list)
+//  attribut: The name of the attribute
+//  value: The value of the attribute
 void Editor::setAttribute(Text attribut, Text value)
 {
     for (auto i : *elements)
         i->setAttribute(attribut, value);
 }
 
-// entfernt ein attribut (auf allen elementen in der Liste)
-//  attribut: Der Name des Attributes
+// Removes an attribute (on all elements in the list)
+//  attribut: The name of the attribute
 void Editor::removeAttribute(Text attribut)
 {
     for (auto i : *elements)
         i->removeAttribute(attribut);
 }
 
-// fügt ein child hinzu (auf allen elementen in der Liste)
-//  child: Das neue Child Element
+// Adds a child (on all elements in the list)
+//  child: The new child element
 void Editor::addChild(Element* child)
 {
     for (auto i : *elements)
@@ -629,8 +626,8 @@ void Editor::addChild(Element* child)
     child->release();
 }
 
-// entfernt ein child (auf allen elementen in der Liste)
-//  zChild: das zu entfernende Child
+// Removes a child (on all elements in the list)
+//  zChild: The child to remove
 void Editor::removeChild(Element* child)
 {
     for (auto i : *elements)
@@ -638,23 +635,23 @@ void Editor::removeChild(Element* child)
     child->release();
 }
 
-// entfernt das i-te child (auf allen elementen in der Liste)
-//  i: der Index des childs (bei 0 beginnend)
+// Removes the i-th child (on all elements in the list)
+//  i: The index of the child (starting at 0)
 void Editor::removeChild(int i)
 {
     for (auto j : *elements)
         j->removeChild(i);
 }
 
-// entfernt alle childs (auf allen elementen in der Liste)
+// Removes all children (on all elements in the list)
 void Editor::removeAllChilds()
 {
     for (auto i : *elements)
         i->removeAllChilds();
 }
 
-// entfernt eine Liste mit childs (auf allen elementen in der Liste)
-//  childs: alle Childs die entfernt werden sollen
+// Removes a list of children (on all elements in the list)
+//  childs: All children to be removed
 void Editor::removeChilds(RCArray<Element>* childs)
 {
     for (auto i : *elements)
@@ -663,29 +660,29 @@ void Editor::removeChilds(RCArray<Element>* childs)
     childs->release();
 }
 
-// entfernt dieses Element vom Eltern element (auf allen elementen in der Liste)
+// Removes this element from the parent element (on all elements in the list)
 void Editor::remove()
 {
     for (auto i : *elements)
         i->remove();
 }
 
-// setzt den Text in dem Element falls es keine childs gibt (auf allen elementen
-// in der Liste)
-//  text: dert Text
+// Sets the text in the element if it has no children (on all elements
+// in the list)
+//  text: The text
 void Editor::setText(Text text)
 {
     for (auto i : *elements)
         i->setText(text);
 }
 
-// Gibt ein Iterator durch alle Elemente zurück
+// Returns an iterator through all elements
 ArrayIterator<Element*> Editor::begin()
 {
     return elements->begin();
 }
 
-//! Gibt das ende des iterators zurück
+//! Returns the end of the iterator
 ArrayIterator<Element*> Editor::end()
 {
     return elements->end();

+ 106 - 112
XML.h

@@ -1,4 +1,4 @@
-#pragma once
+#pragma once
 
 #include <functional>
 
@@ -15,8 +15,8 @@ namespace Framework
     {
         class Editor;
 
-        //! Ein XML element der Form \code <name attribut1
-        //! attribut2="value">text oder childs</name> \endcode
+        //! An XML element of the form \code <name attribut1
+        //! attribut2="value">text or children</name> \endcode
         class Element : public virtual ReferenceCounter
         {
         private:
@@ -28,50 +28,50 @@ namespace Framework
             Element* parent;
 
         public:
-            //! Erstellt ein leeres XML Element
+            //! Creates an empty XML element
             DLLEXPORT Element();
-            //! Erstellt ein XML Element
-            //! \param string entweder der name des Elements oder ein XML Text
-            //! der geparsed werden soll
+            //! Creates an XML element
+            //! \param string Either the name of the element or an XML text
+            //! to be parsed
             DLLEXPORT Element(Text string);
-            //! Erstellt ein XML Element
-            //! \param string entweder der name des Elements oder ein XML Text
-            //! der geparsed werden soll \param zParent Ein Zeiger auf das
-            //! eltern element (ohne erhöhten reference Counter)
+            //! Creates an XML element
+            //! \param string Either the name of the element or an XML text
+            //! to be parsed \param zParent A pointer to the parent element
+            //! (without increased reference counter)
             DLLEXPORT Element(Text string, Element* zParent);
             DLLEXPORT ~Element();
-            //! ändert ein attribut oder fügt eines hinzu
-            //! \param attribut Der Name des Attributes
-            //! \param value Der Wert des Attributes
+            //! Changes an attribute or adds a new one
+            //! \param attribut The name of the attribute
+            //! \param value The value of the attribute
             DLLEXPORT void setAttribute(Text attribut, Text value);
-            //! entfernt ein attribut
-            //! \param attribut Der Name des Attributes
+            //! Removes an attribute
+            //! \param attribut The name of the attribute
             DLLEXPORT void removeAttribute(Text attribut);
-            //! fügt ein child hinzu
-            //! \param child Das neue Child Element
+            //! Adds a child
+            //! \param child The new child element
             DLLEXPORT void addChild(Element* child);
-            //! fügt ein child hinzu
-            //! \param child Das neue Child Element
+            //! Adds a child at the front
+            //! \param child The new child element
             DLLEXPORT void addChildAtFront(Element* child);
-            //! entfernt ein child
-            //! \param zChild das zu entfernende Child
+            //! Removes a child
+            //! \param zChild The child to remove
             DLLEXPORT void removeChild(Element* child);
-            //! entfernt das i-te child
-            //! \param i der Index des childs (bei 0 beginnend)
+            //! Removes the i-th child
+            //! \param i The index of the child (starting at 0)
             DLLEXPORT void removeChild(int i);
-            //! entfernt alle childs
+            //! Removes all children
             DLLEXPORT void removeAllChilds();
-            //! entfernt eine Liste mit childs
-            //! \param childs alle Childs die entfernt werden sollen
+            //! Removes a list of children
+            //! \param childs All children to be removed
             DLLEXPORT void removeChilds(RCArray<Element>* childs);
-            //! entfernt dieses Element vom Eltern element
+            //! Removes this element from the parent element
             DLLEXPORT void remove();
-            //! setzt den Text in dem Element falls es keine childs gibt
-            //! \param text dert Text
+            //! Sets the text in the element if it has no children
+            //! \param text The text
             DLLEXPORT void setText(Text text);
-            //! gibt den Text im Element zurück
+            //! Returns the text in the element
             DLLEXPORT Text getText() const;
-            //! gibt die Anzahl der Childs zurück
+            //! Returns the number of children
             DLLEXPORT int getChildCount() const;
             /// <summary>
             /// returns the index of the zChild in the list of children or -1 if
@@ -81,71 +81,66 @@ namespace Framework
             /// <returns>the index of zChild in the list of children or -1 if
             /// zChild is not a child of this element</returns>
             DLLEXPORT int getChildIndex(Element* zChild) const;
-            //! gibt das i-te child zurück
+            //! Returns the i-th child
             DLLEXPORT Element* getChild(int i) const;
-            //! gibt das i-te child zurück (ohne erhöhten reference Counter)
+            //! Returns the i-th child (without increased reference counter)
             DLLEXPORT Element* zChild(int i) const;
-            //! gibt das parent element zurück
+            //! Returns the parent element
             DLLEXPORT Element* getParent() const;
-            //! gibt das parent element zurück (ohne erhöhten reference Counter)
+            //! Returns the parent element (without increased reference counter)
             DLLEXPORT Element* zParent() const;
-            //! gibt einen iterator zurück mit dem durch alle childs iteriert
-            //! werden kann
+            //! Returns an iterator to iterate through all children
             DLLEXPORT ArrayIterator<Element*> getChilds() const;
-            //! gibt einen Editor für dieses Element zurück
+            //! Returns an editor for this element
             DLLEXPORT Editor select();
-            //! gibt einen selector zurück der alle childs beinhaltet
+            //! Returns a selector containing all children
             DLLEXPORT Editor selectChildren() const;
-            //! gibt eine Liste mit childs zurück, die einen bestimmten Namen
-            //! haben \param name der name der Childs
+            //! Returns a list of children that have a specific name
+            //! \param name The name of the children
             DLLEXPORT Editor selectChildsByName(Text name) const;
-            //! gibt eine Liste mit childs zurück, die ein bestimmtes Attribut
-            //! haben \param attribute der name des Attributes
+            //! Returns a list of children that have a specific attribute
+            //! \param attribute The name of the attribute
             DLLEXPORT Editor selectChildsByAttribute(Text attribute) const;
-            //! gibt eine Liste mit childs zurück, die ein bestimmtes Attribut
-            //! mit einem bestimmten wert haben \param attribute der name des
-            //! Attributes \param value der Wert des Attributes
+            //! Returns a list of children that have a specific attribute
+            //! with a specific value \param attribute The name of the
+            //! attribute \param value The value of the attribute
             DLLEXPORT Editor selectChildsByAttribute(
                 Text attribute, Text value) const;
-            //! gibt 1 zurück, falls ein Attribut Name existiert, 0 sonnst
+            //! Returns 1 if an attribute name exists, 0 otherwise
             DLLEXPORT bool hasAttribute(Text name) const;
-            //! gibt die Anzahl der Attribute zurück
+            //! Returns the number of attributes
             DLLEXPORT int getAttributeCount() const;
-            //! gibt den Namen des i-ten Attributes zurück
+            //! Returns the name of the i-th attribute
             DLLEXPORT Text getAttributeName(int i) const;
-            //! gibt den Wert des i-ten Attributes zurück
+            //! Returns the value of the i-th attribute
             DLLEXPORT Text getAttributeValue(int i) const;
-            //! gibt den Wert eines Attributes zurück
-            //! \param attribut Der Name des Attributes
+            //! Returns the value of an attribute
+            //! \param attribut The name of the attribute
             DLLEXPORT const Text& getAttributeValue(const Text& attribut) const;
-            //! gibt einen iterator zurück mit dem durch alle Attribut Namen
-            //! iteriert werden kann
+            //! Returns an iterator to iterate through all attribute names
             DLLEXPORT ArrayIterator<Text*> getAttributeNames() const;
-            //! gibt einen iterator zurück mit dem durch alle Attribut Werte
-            //! iteriert werden kann
+            //! Returns an iterator to iterate through all attribute values
             DLLEXPORT ArrayIterator<Text*> getAttributeValues() const;
-            //! setzt den Namen des Elementes
+            //! Sets the name of the element
             DLLEXPORT void setName(Text name);
-            //! gibt den Namen des Elementes zurück zurück
+            //! Returns the name of the element
             DLLEXPORT Text getName() const;
-            //! erzeugt einen XML Text der dieses Element und alle childs
-            //! beinhaltet
+            //! Generates an XML text containing this element and all children
             DLLEXPORT Text toString() const;
-            //! Erzeugt eine Kopie ohne referenzen auf dieses objekt
+            //! Creates a copy without references to this object
             DLLEXPORT Element* dublicate() const;
 
             friend Editor;
         };
 
-        //! Ein XML Editor der immer gleich mehrere Elemente editieren kann
+        //! An XML Editor that can edit multiple elements at once
         class Editor : public virtual ReferenceCounter
         {
         private:
             RCArray<Element>* elements;
 
         public:
-            //! Erzeugt einen neuen XML Editor mit einer Liste von Objekten die
-            //! editiert werden sollen
+            //! Creates a new XML Editor with a list of objects to be edited
             DLLEXPORT Editor(RCArray<Element>* elements);
             DLLEXPORT Editor(const Editor& e);
             DLLEXPORT ~Editor();
@@ -155,84 +150,83 @@ namespace Framework
             /// <returns> the first element of a list or an empty object if no
             /// elements are present</returns>
             DLLEXPORT Maybe<RCPointer<Element>> getFirstElement() const;
-            //! ändert ein attribut oder fügt eines hinzu (auf allen elementen
-            //! in der Liste) \param attribut Der Name des Attributes \param
-            //! value Der Wert des Attributes
+            //! Changes an attribute or adds a new one (on all elements
+            //! in the list) \param attribut The name of the attribute \param
+            //! value The value of the attribute
             DLLEXPORT void setAttribute(Text attribut, Text value);
-            //! entfernt ein attribut (auf allen elementen in der Liste)
-            //! \param attribut Der Name des Attributes
+            //! Removes an attribute (on all elements in the list)
+            //! \param attribut The name of the attribute
             DLLEXPORT void removeAttribute(Text attribut);
-            //! fügt ein child hinzu (auf allen elementen in der Liste)
-            //! \param child Das neue Child Element
+            //! Adds a child (on all elements in the list)
+            //! \param child The new child element
             DLLEXPORT void addChild(Element* child);
-            //! entfernt ein child (auf allen elementen in der Liste)
-            //! \param zChild das zu entfernende Child
+            //! Removes a child (on all elements in the list)
+            //! \param zChild The child to remove
             DLLEXPORT void removeChild(Element* child);
-            //! entfernt das i-te child (auf allen elementen in der Liste)
-            //! \param i der Index des childs (bei 0 beginnend)
+            //! Removes the i-th child (on all elements in the list)
+            //! \param i The index of the child (starting at 0)
             DLLEXPORT void removeChild(int i);
-            //! entfernt alle childs (auf allen elementen in der Liste)
+            //! Removes all children (on all elements in the list)
             DLLEXPORT void removeAllChilds();
-            //! entfernt eine Liste mit childs (auf allen elementen in der
-            //! Liste) \param childs alle Childs die entfernt werden sollen
+            //! Removes a list of children (on all elements in the list)
+            //! \param childs All children to be removed
             DLLEXPORT void removeChilds(RCArray<Element>* childs);
-            //! entfernt dieses Element vom Eltern element (auf allen elementen
-            //! in der Liste)
+            //! Removes this element from the parent element (on all elements
+            //! in the list)
             DLLEXPORT void remove();
-            //! setzt den Text in dem Element falls es keine childs gibt (auf
-            //! allen elementen in der Liste) \param text dert Text
+            //! Sets the text in the element if it has no children (on all
+            //! elements in the list) \param text The text
             DLLEXPORT void setText(Text text);
-            //! Gibt ein Iterator durch alle Elemente zurück
+            //! Returns an iterator through all elements
             DLLEXPORT ArrayIterator<Element*> begin();
-            //! Gibt das ende des iterators zurück
+            //! Returns the end of the iterator
             DLLEXPORT ArrayIterator<Element*> end();
 
         private:
             DLLEXPORT void selectAllElements(RCArray<Element>* zResult);
 
         public:
-            //! Gibt einen selector zurück der alle elemente beinhaltet die in
-            //! diesem selector vorkommen und rekursiv alle Kinder der elemente
-            //! Enthält
+            //! Returns a selector containing all elements in this selector
+            //! and recursively all children of the elements
             DLLEXPORT Editor selectAllElements();
-            //! gibt einen selector zurück der alle childs beinhaltet
+            //! Returns a selector containing all children
             DLLEXPORT Editor selectChildren() const;
-            //! gibt einen selector zurück der alle parents beinhaltet
+            //! Returns a selector containing all parents
             DLLEXPORT Editor selectParents() const;
-            //! gibt eine Liste mit elementen zurück, die einen bestimmten Namen
-            //! haben \param name der name der Childs
+            //! Returns a list of elements that have a specific name
+            //! \param name The name of the children
             DLLEXPORT Editor whereNameEquals(Text name) const;
-            //! gibt eine Liste mit elementen zurück, die ein bestimmtes child
-            //! haben \param name der name des childs
+            //! Returns a list of elements that have a specific child
+            //! \param name The name of the child
             DLLEXPORT Editor whereChildWithNameExists(Text name) const;
-            //! gibt eine Liste mit elementen zurück, die ein bestimmtes child
-            //! haben \param attribute der name des attributes
+            //! Returns a list of elements that have a specific child
+            //! \param attribute The name of the attribute
             DLLEXPORT Editor whereChildWithAttributeExists(
                 Text attribute) const;
-            //! gibt eine Liste mit elementen zurück, die ein bestimmtes child
-            //! haben \param attribute der name des attributes \param value der
-            //! Wert des Attributes
+            //! Returns a list of elements that have a specific child
+            //! \param attribute The name of the attribute \param value The
+            //! value of the attribute
             DLLEXPORT Editor whereChildWithAttributeExists(
                 Text attribute, Text value) const;
-            //! gibt eine Liste mit elementen zurück, die ein bestimmtes
-            //! Attribut haben \param attribute der name des Attributes
+            //! Returns a list of elements that have a specific attribute
+            //! \param attribute The name of the attribute
             DLLEXPORT Editor whereAttributeExists(Text attribute) const;
-            //! gibt eine Liste mit elementen zurück, die ein bestimmtes
-            //! Attribut mit einem bestimmten wert haben \param attribute der
-            //! name des Attributes \param value der Wert des Attributes
+            //! Returns a list of elements that have a specific attribute
+            //! with a specific value \param attribute The name of the
+            //! attribute \param value The value of the attribute
             DLLEXPORT Editor whereAttributeEquals(
                 Text attribute, Text value) const;
-            //! Gibt einen Editor zurück welcher nurnoch die Elemente enthält
-            //! die nicht in e sind \param e Ein Editor mit elementen die nicht
-            //! enthalten sein sollen
+            //! Returns an Editor containing only the elements that are
+            //! not in e \param e An Editor with elements that should not
+            //! be included
             DLLEXPORT Editor without(Editor e) const;
-            //! Ruft eine funktion für jedes Element auf (nimmt als argument ein
-            //! Element objekt ohne erhöhten reference Counter) \param f die
-            //! funktion
+            //! Calls a function for each element (takes an Element object
+            //! without increased reference counter as argument) \param f The
+            //! function
             DLLEXPORT void forEach(std::function<void(Element*)> f) const;
-            //! gibt 1 zurück, wenn mindestens ein Element gefunden wurde
+            //! Returns 1 if at least one element was found
             DLLEXPORT bool exists() const;
-            //! gibt die anzahl der ausgewählten elemente zurück
+            //! Returns the number of selected elements
             DLLEXPORT int getSize() const;
             //! assignment operator
             DLLEXPORT Editor& operator=(const Editor& e);

+ 217 - 250
Zeichnung.h

@@ -1,4 +1,4 @@
-#ifndef Zeichnung_H
+#ifndef Zeichnung_H
 #define Zeichnung_H
 
 #include <functional>
@@ -14,8 +14,8 @@ namespace Framework
     struct MausEreignis;     //! MausEreignis.h
     struct TastaturEreignis; //! TastaturEreignis.h
     class Bild;              //! Bild.h
-    class Zeichnung;         //! Aus dieser Datei
-    class ToolTip;           //! ToopTip.h
+    class Zeichnung;         //! From this file
+    class ToolTip;           //! ToolTip.h
     class Bildschirm;        //! Bildschirm.h
     class Rahmen;            //! Rahmen.h
     class AlphaFeld;         //! AlphaFeld.h
@@ -23,38 +23,33 @@ namespace Framework
     class HScrollBar;        //! Scroll.h
     class Schrift;
 
-    //! Eine Zeichnung für das 2D GUI Framework
+    //! A drawing element for the 2D GUI Framework
     class Zeichnung : public virtual ReferenceCounter
     {
     public:
         class Style
         {
         public:
-            //! Wenn dieser Style gesetzt ist, wird die Zeichnung beim Zeichnen
-            //! angezeigt
+            //! If this style is set, the drawing is displayed when rendered
             static const __int64 Sichtbar = 0x00001;
-            //! Wenn dieser Style gesetzt ist, kann der Benutzer mit der
-            //! Zeichnung interagieren
+            //! If this style is set, the user can interact with the drawing
             static const __int64 Erlaubt = 0x00002;
-            //! Wenn dieser Style gesetzt ist, wird ein TastaturEreignis von der
-            //! Zeichnung verarbeitet
+            //! If this style is set, keyboard events are processed by the drawing
             static const __int64 Fokus = 0x00004;
-            //! Wenn dieser Style gesetzt ist, wird ein MausEreignis auch
-            //! verarbeitet, wenn das Objekt nicht sichtbar ist
+            //! If this style is set, mouse events are processed even when
+            //! the object is not visible
             static const __int64 MEIgnoreSichtbar = 0x0800000000000000;
-            //! Wenn dieser Style gesetzt ist, lockt der Thread das Objekt
-            //! während das MausEreignis verarbeitet wird
+            //! If this style is set, the thread locks the object while
+            //! the mouse event is being processed
             static const __int64 MELockZeichnung = 0x1000000000000000;
-            //! Wenn dieser Style gesetzt ist, wird ein MausEreignis auch
-            //! verarbeitet, wenn es außerhalb der Zeichnung liegt
+            //! If this style is set, mouse events are processed even when
+            //! they are outside the drawing
             static const __int64 MEIgnoreInside = 0x2000000000000000;
-            //! Wenn dieser Style gesetzt ist, wird ein MausEreignis auch
-            //! verarbeitet, wenn es bereits von einer anderen Zeichnung
-            //! verarbeitet wurde
+            //! If this style is set, mouse events are processed even when
+            //! they have already been processed by another drawing
             static const __int64 MEIgnoreVerarbeitet = 0x4000000000000000;
-            //! Wenn dieser Style gesetzt ist, wird ein MausEreignis auch
-            //! verarbeitet, wenn es sich außerhalb der Zeichnung befindet, zu
-            //! der diese Zeichnung gehört
+            //! If this style is set, mouse events are processed even when
+            //! they are outside the drawing to which this drawing belongs
             static const __int64 MEIgnoreParentInside = 0x8000000000000000;
         };
 
@@ -77,46 +72,43 @@ namespace Framework
         std::function<bool(Zeichnung*, Punkt localPos)> onNeedToolTip;
         bool toolTipRequested;
 
-        //! Verarbeitet ein Maus Ereignis. Wird vom Framework automatisch
-        //! aufgerufen. \param me Das MausEreignis \param userRet true wenn
-        //! MausEreignis::verarbeitet auf true gesetzt werden soll
+        //! Processes a mouse event. Called automatically by the framework.
+        //! \param me The mouse event \param userRet true if
+        //! MausEreignis::verarbeitet should be set to true
         DLLEXPORT virtual void doMausEreignis(MausEreignis& me, bool userRet);
 
     public:
-        //! Konstruktor
+        //! Constructor
         DLLEXPORT Zeichnung();
-        //! Destruktor
+        //! Destructor
         DLLEXPORT virtual ~Zeichnung();
-        //! Legt fest, ob sich die Zeichnung seit des letzten Bildes verändert
-        //! hat und neu gezeichnet werden muss
+        //! Specifies whether the drawing has changed since the last frame
+        //! and needs to be redrawn
         DLLEXPORT void setRender();
-        //! Setzt den Text, der erscheint, wenn der Benutzer für längere Zeit
-        //! mit der Maus in der Zeichnung verweilt \param txt Der Text, der
-        //! angezeigt werden soll \param zScreen Ein Zeiger auf das Verwendete
-        //! Bildschirm Objekt ohne erhöhten Reference Counter \param zSchrift
-        //! Ein Zeiger auf die Schrift, die verwendet werden soll ohne erhöhten
-        //! Reference Counter
+        //! Sets the text that appears when the user hovers the mouse over
+        //! the drawing for a longer time \param txt The text to display
+        //! \param zScreen A pointer to the screen object without increased
+        //! reference counter \param zSchrift A pointer to the font to use
+        //! without increased reference counter
         DLLEXPORT void setToolTipText(
             const char* txt, Bildschirm* zScreen, Schrift* zSchrift);
-        //! setzt eine Funktion, die aufgerufen wird, falls ein Tooltip benötigt
-        //! wird und noch keiner gesetzt wurde \param initToolTip die Funktion
+        //! Sets a function called when a tooltip is needed and none has
+        //! been set yet \param initToolTip The function
         DLLEXPORT void setNeedToolTipEvent(
             std::function<bool(Zeichnung*, Punkt localPos)> onNeedTooltip);
-        //! legt den tooltip fest
-        //! \param tt der tooltip
+        //! Sets the tooltip
+        //! \param tt The tooltip
         DLLEXPORT void setToolTipZ(ToolTip* tt);
-        //! Dies ist notwendig, falls mehrere Threads gleichzeitig die Zeichnung
-        //! benutzen. Wenn lockZeichnung() von zwei threads aufgerufen wird,
-        //! wartet der letzte so lange, bis der erste unlockZeichnung()
-        //! aufgerufen hat.
+        //! This is necessary if multiple threads use the drawing simultaneously.
+        //! If lockZeichnung() is called by two threads, the last one waits
+        //! until the first has called unlockZeichnung().
         DLLEXPORT void lockZeichnung();
-        //! Dies ist notwendig, falls mehrere Threads gleichzeitig die Zeichnung
-        //! benutzen. Wenn lockZeichnung() von zwei threads aufgerufen wird,
-        //! wartet der letzte so lange, bis der erste unlockZeichnung()
-        //! aufgerufen hat.
+        //! This is necessary if multiple threads use the drawing simultaneously.
+        //! If lockZeichnung() is called by two threads, the last one waits
+        //! until the first has called unlockZeichnung().
         DLLEXPORT void unlockZeichnung();
-        //! setzt den Parameter, der bei einem Maus Ereignis an die
-        //! Rückruffunktion übergeben wird \param p Der Parameter
+        //! Sets the parameter passed to the callback function on a mouse event
+        //! \param p The parameter
         DLLEXPORT void setMausEreignisParameter(void* p);
         //! Setzt den Parameter, der bei einem Tastatur Ereignis an die
         //! Rückruffunktion übergeben wird \param p Der Parameter
@@ -125,89 +117,82 @@ namespace Framework
         //! werden soll. 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 \param ak Ein
-        //! Zeiger auf die Rückruffunktion
+        //! in MausEreignis.h and always returns 1 \param ak A pointer to
+        //! the callback function
         DLLEXPORT void setMausEreignis(MausAktion ak);
-        //! Fügt eine Rückruffunktion hinzu, die bei einem Maus Ereignis aufgerufen
-        //! werden soll. Wenn eine der Rückruffunktionen 0 zurückgiebt, oder keine
-        //! 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 \param ak Ein
-        //! Zeiger auf die Rückruffunktion
+        //! Adds a callback function to be called on a mouse event.
+        //! If any callback returns 0, or none was set, the mouse event
+        //! is not further processed by the drawing. The standard function
+        //! __ret1ME can be used, which is defined in MausEreignis.h and always
+        //! returns 1 \param ak A pointer to the callback function
         DLLEXPORT void addMausEreignis(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 \param ak Ein Zeiger auf
-        //! die Rückruffunktion
+        //! Sets the callback function to be called on a keyboard event.
+        //! If the callback returns 0, or was not set, the keyboard event
+        //! is not further processed by the drawing. The standard function
+        //! __ret1TE can be used, which is defined in TastaturEreignis.h and
+        //! always returns 1. Other standard functions are _nurNummernTE and
+        //! _nurHexTE also from TastaturEreignis.h \param ak A pointer to
+        //! the callback function
         DLLEXPORT void setTastaturEreignis(TastaturAktion ak);
-        //! Fügt eine Rückruffunktion hinzu, die bei einem Tastatur Ereignis
-        //! aufgerufen werdne soll. Wenn eine der Rückruffunktionen 0 zurückgiebt, oder
-        //! keine 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 \param ak Ein Zeiger auf
-        //! die Rückruffunktion
+        //! Adds a callback function to be called on a keyboard event.
+        //! If any callback returns 0, or none was set, the keyboard event
+        //! is not further processed by the drawing. The standard function
+        //! __ret1TE can be used, which is defined in TastaturEreignis.h and
+        //! always returns 1. Other standard functions are _nurNummernTE and
+        //! _nurHexTE also from TastaturEreignis.h \param ak A pointer to
+        //! the callback function
         DLLEXPORT void addTastaturEreignis(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 \param p Der Parameter
+        //! Sets the parameter passed to the callback function on a mouse event
+        //! that is called after the event was processed by the drawing
+        //! \param p The parameter
         DLLEXPORT void setNMausEreignisParameter(void* p);
-        //! Setzt den Parameter, der bei einem Tastatur Ereignis an die
-        //! Rückruffunktion übergeben wird, die aufgerufen wird, fals das
-        //! Ereignis von der Zeichnung verarbeitet wurde \param p Der Parameter
+        //! Sets the parameter passed to the callback function on a keyboard
+        //! event that is called after the event was processed by the drawing
+        //! \param p The parameter
         DLLEXPORT void setNTastaturEreignisParameter(void* p);
-        //! Setzt die Rückruffunktion, die bei einem Maus Ereignis aufgerufen
-        //! werden soll, nachdem das Ereignis bereits von der Zeichnung
-        //! verarbeitet wurde 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 \param ak Ein
-        //! Zeiger auf die Rückruffunktion
+        //! Sets the callback function to be called on a mouse event after
+        //! the event has already been processed by the drawing. If the callback
+        //! returns 1, or was not set, the mouse event will not be processed
+        //! by any other drawing, such as ones behind this drawing. The standard
+        //! function __ret1ME can be used, which is defined in MausEreignis.h
+        //! and always returns 1 \param ak A pointer to the callback function
         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 \param ak Ein Zeiger auf
-        //! die Rückruffunktion
+        //! Sets the callback function to be called on a keyboard event after
+        //! the event has already been processed by the drawing. If the callback
+        //! returns 1, or was not set, the keyboard event will not be processed
+        //! by any other drawing. The standard function __ret1TE can be used,
+        //! which is defined in TastaturEreignis.h and always returns 1. Other
+        //! standard functions are _nurNummernTE and _nurHexTE also from
+        //! TastaturEreignis.h \param ak A pointer to the callback function
         DLLEXPORT void setNTastaturEreignis(TastaturAktion ak);
-        //! Verarbeitet ein Maus Ereignis. Wird vom Framework automatisch
-        //! aufgerufen. \param me Das Ereignis
+        //! Processes a mouse event. Called automatically by the framework.
+        //! \param me The event
         DLLEXPORT virtual void doPublicMausEreignis(MausEreignis& me);
-        //! Verarbeitet ein Tastatur Ereignis. Wird vom Framework automatisch
-        //! aufgerufen \param te Das Ereignis
+        //! Processes a keyboard event. Called automatically by the framework
+        //! \param te The event
         DLLEXPORT virtual void doTastaturEreignis(TastaturEreignis& te);
-        //! Verarbeitet die Zeit, die seit dem letzten aufruf dieser Funktion
-        //! vergangen ist \param tickVal Die vergangene Zeit in Sekunden
+        //! Processes the time elapsed since the last call of this function
+        //! \param tickVal The elapsed time in seconds
         DLLEXPORT virtual bool tick(double tickval);
-        //! Setzt die Position der Zeichnung
-        //! \param pos Die Position in Pixeln
+        //! Sets the position of the drawing
+        //! \param pos The position in pixels
         DLLEXPORT void setPosition(const Punkt& pos);
-        //! Setzt die X Position der Zeichnung
-        //! \param xPos Die Position in Pixeln
+        //! Sets the X position of the drawing
+        //! \param xPos The position in pixels
         DLLEXPORT void setX(int xPos);
-        //! Setzt die Y Position der Zeichnung
-        //! \param yPos Die Position in Pixeln
+        //! Sets the Y position of the drawing
+        //! \param yPos The position in pixels
         DLLEXPORT void setY(int yPos);
-        //! Setzt die Größe der Zeichnung
-        //! \param gr Ein Punkt mit x als Breite und y als Höhe in Pixeln
+        //! Sets the size of the drawing
+        //! \param gr A point with x as width and y as height in pixels
         DLLEXPORT void setSize(const Punkt& gr);
-        //! Setzt die Position der Zeichnung
-        //! \param x Die X Position in Pixeln
-        //! \param y Die Y Position in Pixeln
+        //! Sets the position of the drawing
+        //! \param x The X position in pixels
+        //! \param y The Y position in pixels
         DLLEXPORT void setPosition(int x, int y);
-        //! Setzt die Größe der Zeichnung
-        //! \param br Die Breite in Pixeln
-        //! \param height Die Höhe in Pixeln
+        //! Sets the size of the drawing
+        //! \param br The width in pixels
+        //! \param height The height in pixels
         DLLEXPORT void setSize(int br, int height);
         //! Set the width in pixel
         //! \param width the width
@@ -215,46 +200,44 @@ namespace Framework
         //! Set the height in pixel
         //! \param width the height
         DLLEXPORT void setHeight(int height);
-        //! Setzt den Style der Zeichnung
-        //! \param style Der neue Style bestehend aus den Flags aus der
-        //! zugehörigen Style Klasse
+        //! Sets the style of the drawing
+        //! \param style The new style consisting of flags from the
+        //! corresponding Style class
         DLLEXPORT void setStyle(__int64 style);
-        //! Setzt den Style der Zeichnung
-        //! \param style Alle Style Flags, die verändert werden sollen
-        //! \param add_remove 1, falls der Style hinzugefügt werden soll. 0,
-        //! falls der Style entfernt weden soll
+        //! Sets the style of the drawing
+        //! \param style All style flags to be modified
+        //! \param add_remove 1 if the style should be added. 0 if the style
+        //! should be removed
         DLLEXPORT void setStyle(__int64 style, bool add_remove);
-        //! Fügt Style Flags hinzu
-        //! \param style Der Style, der hinzugefügt werden soll
+        //! Adds style flags
+        //! \param style The style to add
         DLLEXPORT void addStyle(__int64 style);
-        //! Entfernt Style Flags
-        //! \param style Der Style, der entfernt werden soll
+        //! Removes style flags
+        //! \param style The style to remove
         DLLEXPORT void removeStyle(__int64 style);
-        //! Zeichnet die Zeihnung in ein bestimmtes Bild
-        //! \param zRObj Das Bild, in das gezeichnet werden soll
+        //! Renders the drawing into a specific image
+        //! \param zRObj The image to draw into
         DLLEXPORT virtual void render(Bild& zRObj);
-        //! Gibt zurück, ob eine Rückruffunktion für Maus Ereignisse gesetzt
-        //! wurde
+        //! Returns whether a callback function for mouse events was set
         DLLEXPORT bool hatMausEreignis() const;
-        //! Gibt zurück, ob eine Rückruffunktion für Tastatur Ereignisse gesetzt
-        //! wurde
+        //! Returns whether a callback function for keyboard events was set
         DLLEXPORT bool hatTastaturEreignis() const;
-        //! Gibt die Position der Zeichnung in Pixeln zurück
+        //! Returns the position of the drawing in pixels
         DLLEXPORT const Punkt& getPosition() const;
-        //! Gibt die Größe der Zeichnung in Pixeln zurück. x für Breite und y
-        //! für Höhe
+        //! Returns the size of the drawing in pixels. x for width and y
+        //! for height
         DLLEXPORT const Punkt& getSize() const;
-        //! Gibt die Breite der Zeichnung in Pixeln zurück
+        //! Returns the width of the drawing in pixels
         DLLEXPORT int getBreite() const;
-        //! Gibt die Höhe der Zeichnung in Pixeln zurück
+        //! Returns the height of the drawing in pixels
         DLLEXPORT int getHeight() const;
-        //! Gibt die Breite des Innenraumes in der Zeichnung in Pixeln zurück
+        //! Returns the inner width of the drawing in pixels
         DLLEXPORT virtual int getInnenBreite() const;
-        //! Gibt die Höhe des Innenraumes in der Zeichnung in Pixeln zurück
+        //! Returns the inner height of the drawing in pixels
         DLLEXPORT virtual int getInnenHeight() const;
-        //! Gibt die X Position der Zeichnung in Pixeln zurück
+        //! Returns the X position of the drawing in pixels
         DLLEXPORT int getX() const;
-        //! Gibt die Y Position der Zeichnung in Pixeln zurück
+        //! Returns the Y position of the drawing in pixels
         DLLEXPORT int getY() const;
         //! Prüft, ob ein Punkt in diesem Objekt liegt
         //! \param p der Punkt
@@ -265,56 +248,51 @@ namespace Framework
         //! \param y die y koordinate des punktes
         //! \return 1, wenn der punkt innen ist, 0 sonst
         DLLEXPORT virtual bool istPunktInnen(int x, int y) const;
-        //! Gibt einen Zeiger auf das Tooltip Objekt zurück, walls es verwendet
-        //! wird
+        //! Returns a pointer to the tooltip object, if it is used
         DLLEXPORT ToolTip* getToolTip() const;
-        //! Gibt einen Zeiger auf das Tooltip Objekt ohne erhöhten Reference
-        //! Counter zurück, walls es verwendet wird
+        //! Returns a pointer to the tooltip object without increased
+        //! reference counter, if it is used
         DLLEXPORT ToolTip* zToolTip() const;
-        //! Gibt zurück, ob bestimmte Styles gesetzt wurden
-        //! \param style Die Styles, die überprüft werden sollen
-        //! \return 1, falls alle Styles in style gesetzt wurden
+        //! Returns whether specific styles are set
+        //! \param style The styles to check
+        //! \return 1 if all styles in style are set
         DLLEXPORT bool hatStyle(__int64 style) const;
-        //! Gibt zurück, ob bestimmte Styles nicht gesetzt wurden
-        //! \param style Die Styles, die geprüft werden sollen
-        //! \return 1, falls alle Styles in style nicht gesetzt wurden
+        //! Returns whether specific styles are not set
+        //! \param style The styles to check
+        //! \return 1 if all styles in style are not set
         DLLEXPORT bool hatStyleNicht(__int64 style) const;
         //! returns all currently active styles
         DLLEXPORT __int64 getStyles() const;
-        //! Kopiert die Komplette Zeichnung, so dass sie ohne Effekt auf das
-        //! Original verändert werden kann
+        //! Copies the complete drawing so it can be modified without
+        //! affecting the original
         DLLEXPORT virtual Zeichnung* dublizieren() const;
     };
 
-    //! Eine Zeichnung für das 2D GUI Framework mit Hintergrund, Rahmen und
-    //! Scroll Balken
+    //! A drawing element for the 2D GUI Framework with background, border
+    //! and scroll bars
     class ZeichnungHintergrund : public Zeichnung
     {
     public:
         class Style : public Zeichnung::Style
         {
         public:
-            //! Wenn dieser Flag gesetzt wird, bekommt die Zeichnugn einen Rahmen
+            //! If this flag is set, the drawing gets a border
             static const __int64 Rahmen = 0x00010;
-            //! Wenn dieser Flag gesetzt wird, bekommt die Zeichnung einen
-            //! Hintergrund
+            //! If this flag is set, the drawing gets a background
             static const __int64 Hintergrund = 0x00020;
-            //! Wenn dieser Flag gesetzt wird, wird der Hintergrund durchsichtig.
-            //! Benötigt Flag Hintergrund
+            //! If this flag is set, the background is transparent.
+            //! Requires flag Hintergrund
             static const __int64 HAlpha = 0x00040;
-            //! Wenn dieser Flag gesetzt wird, wird ein Bild als hintergrund
-            //! verwendet. Benötigt Flag Hintergrund
+            //! If this flag is set, an image is used as background.
+            //! Requires flag Hintergrund
             static const __int64 HBild = 0x00080;
-            //! Wenn dieser Flag gesetzt wird, Erscheint ein Farbübergang als
-            //! Rahmen
+            //! If this flag is set, a color gradient appears as border
             static const __int64 Buffered = 0x00100;
-            //! Wenn dieser Flag gesetzt wird, erscheint eine Scrollbar am
-            //! rechten Rand
+            //! If this flag is set, a scrollbar appears at the right edge
             static const __int64 VScroll = 0x00200;
-            //! Wenn dieser Flag gesetzt wird, erscheint eine Scrollbar am
-            //! unteren Rand
+            //! If this flag is set, a scrollbar appears at the bottom edge
             static const __int64 HScroll = 0x00400;
-            //! Wenn dieser Flag gesetzt wird, wird das Bild skaliert
+            //! If this flag is set, the image is scaled
             static const __int64 HBildScale = 0x00800;
         };
 
@@ -329,30 +307,27 @@ namespace Framework
         Punkt innenSize;
 
     protected:
-        //! Verarbeitet Maus Nachrichten
-        //! \param me Das Ereignis, was durch die Mauseingabe ausgelößt wurde
+        //! Processes mouse messages
+        //! \param me The event triggered by the mouse input
         DLLEXPORT void doMausEreignis(MausEreignis& me, bool userRet) override;
 
     public:
-        //! Konstruktor
+        //! Constructor
         DLLEXPORT ZeichnungHintergrund();
-        //! Destruktor
+        //! Destructor
         DLLEXPORT virtual ~ZeichnungHintergrund();
-        //! Setzt das Hintergrund Bild (benötigt Flag zum Zeichnen:
-        //! Style::Hintergrund, HBild) \param bild Das Bild wird kopiert und als
-        //! Hintergrundbild verwendet
+        //! Sets the background image (requires drawing flag:
+        //! Style::Hintergrund, HBild) \param bild The image is copied and used
+        //! as background image
         DLLEXPORT void setHintergrundBild(Bild* bild);
-        //! Setzt einen Zeiger auf das Hintergrund Bild (benötigt Flag zum
-        //! Zeichnen: Style::Hintergrund) \param bild Das Bild wid ohne es zu
-        //! kopieren verwendet
+        //! Sets a pointer to the background image (requires drawing flag:
+        //! Style::Hintergrund) \param bild The image is used without copying
         DLLEXPORT void setHintergrundBildZ(Bild* bild);
-        //! Setzt die Hintergrund Farbe (benötigt Flag zum Zeichnen:
-        //! Style::Hintergrund) \param fc Die Hintergrundfarbe im A8R8G8B8
-        //! Format
+        //! Sets the background color (requires drawing flag:
+        //! Style::Hintergrund) \param fc The background color in A8R8G8B8 format
         DLLEXPORT void setHintergrundFarbe(int fc);
-        //! Setzt einen Zeiger auf das AlphaFeld (benötigt Flag zum Zeichnen:
-        //! Style::Buffered) \param buff Das AlphaFeld, das über den Hintergrund
-        //! gezeichnet werden soll
+        //! Sets a pointer to the AlphaFeld (requires drawing flag:
+        //! Style::Buffered) \param buff The AlphaFeld to draw over the background
         DLLEXPORT void setAlphaFeldZ(AlphaFeld* buff);
         //! Setzt die Stärke des AlphaFeldes (benötigt Flag zum Zeichnen:
         //! Style::Buffered) \param st Die Stärke des AlphaFeldes, welches über
@@ -362,103 +337,95 @@ namespace Framework
         //! Style::Buffered) \param fc Die Farbe des AlphaFeldes, welches über
         //! dem Hintergrund gezeichnet werden soll
         DLLEXPORT void setAlphaFeldFarbe(int fc);
-        //! Setzt einen Zeiger zu dem Linien Rahmen, der um das TextFeld
-        //! gezeichnet werden soll (benötigt Flag zum Zeichnen: Style::Rahmen)
-        //! \param ram Der Rahmen
+        //! Sets a pointer to the line border drawn around the text field
+        //! (requires drawing flag: Style::Rahmen)
+        //! \param ram The border
         DLLEXPORT void setRahmenZ(Rahmen* ram);
-        //! Setzt die Breite des Linien Rahmens (benötigt Flag zum Zeichnen:
-        //! Style::Rahmen) \param br Die Breite in Pixeln
+        //! Sets the width of the line border (requires drawing flag:
+        //! Style::Rahmen) \param br The width in pixels
         DLLEXPORT void setRahmenBreite(int br);
-        //! Setzt die Farbe des Linien Rahmens (benötigt Flag zum Zeichnen:
-        //! Style::Rahmen) \param fc Die Farbe im A8R8G8B8 Format
+        //! Sets the color of the line border (requires drawing flag:
+        //! Style::Rahmen) \param fc The color in A8R8G8B8 format
         DLLEXPORT void setRahmenFarbe(int fc);
-        //! Setzt die Scrollgeschwindigkeit der vertikalen ScrollBar (benötigt
-        //! Flag zum Zeichnen: Style::VScroll) \param ks Die
-        //! Scrollgeschwindigkeit in Pixeln für jeden Maus Klick
+        //! Sets the scroll speed of the vertical scroll bar (requires drawing
+        //! flag: Style::VScroll) \param ks The scroll speed in pixels per mouse click
         DLLEXPORT void setVertikalKlickScroll(int ks);
-        //! Scrollt an eine Bestimmte Stelle bei der vertikalen ScrollBar
-        //! (benötigt Flag zum Zeichnen: Style::VScroll) \param pos Das Scroll
-        //! Offset in Pixeln.
+        //! Scrolls to a specific position on the vertical scroll bar
+        //! (requires drawing flag: Style::VScroll) \param pos The scroll offset in pixels
         DLLEXPORT void setVertikalScrollPos(int pos);
-        //! Setzt die Farbe der vertikalen ScrollBar (benötigt Flag zum
-        //! Zeichnen: Style::VScroll) \param f Die Fordergrundfarbe der
-        //! ScrollBar im A8R8G8B8 Format \param bgF Die Hintergrundfarbe der
-        //! ScrollBar im A8R8G8B8 Format
+        //! Sets the color of the vertical scroll bar (requires drawing flag:
+        //! Style::VScroll) \param f The foreground color in A8R8G8B8 format
+        //! \param bgF The background color in A8R8G8B8 format
         DLLEXPORT void setVertikalScrollFarbe(int f, int bgF);
-        //! Setzt die Scrollgeschwindigkeit der horizontalen ScrollBar (benötigt
-        //! Flag zum Zeichnen: Style::HScroll) \param ks Die
-        //! Scrollgeschwindigkeit in Pixeln für jeden Maus Klick
+        //! Sets the scroll speed of the horizontal scroll bar (requires drawing
+        //! flag: Style::HScroll) \param ks The scroll speed in pixels per mouse click
         DLLEXPORT void setHorizontalKlickScroll(int ks);
-        //! Scrollt an eine Bestimmte Stelle bei der horizontalen ScrollBar
-        //! (benötigt Flag zum Zeichnen: Style::HScroll) \param pos Das Scroll
-        //! Offset in Pixeln.
+        //! Scrolls to a specific position on the horizontal scroll bar
+        //! (requires drawing flag: Style::HScroll) \param pos The scroll offset in pixels
         DLLEXPORT void setHorizontalScrollPos(int pos);
-        //! Setzt die Farbe der horizontalen ScrollBar (benötigt Flag zum
-        //! Zeichnen: Style::HScroll) \param f Die Fordergrundfarbe der
-        //! ScrollBar im A8R8G8B8 Format \param bgF Die Hintergrundfarbe der
-        //! ScrollBar im A8R8G8B8 Format
+        //! Sets the color of the horizontal scroll bar (requires drawing flag:
+        //! Style::HScroll) \param f The foreground color in A8R8G8B8 format
+        //! \param bgF The background color in A8R8G8B8 format
         DLLEXPORT void setHorizontalScrollFarbe(int f, int bgF);
-        //! Updated den Zeichenhintergrund
-        //! \param tickVal Die vergangene Zeit in Sekunden, die seit dem Letzten
-        //! Aufruf dieser Funktion verstrichen ist \return 1, wenn das Bild neu
-        //! gezeichnet werden muss. 0 sonnst
+        //! Updates the drawing background
+        //! \param tickVal The elapsed time in seconds since the last call
+        //! of this function \return 1 if the image needs to be redrawn. 0 otherwise
         DLLEXPORT bool tick(double tickVal) override;
-        //! Zeichnet den Hintergrund eines Zeichnunges nach rObj
+        //! Renders the background of a drawing to rObj
         DLLEXPORT void render(Bild& rObj) override;
 
-        //! Gibt die Breite des Innenraumes in der Zeichnung in Pixeln zurück
+        //! Returns the inner width of the drawing in pixels
         DLLEXPORT virtual int getInnenBreite() const override;
-        //! Gibt die Höhe des Innenraumes in der Zeichnung in Pixeln zurück
+        //! Returns the inner height of the drawing in pixels
         DLLEXPORT virtual int getInnenHeight() const override;
-        //! Gibt das Hintergrundbild zurück.
-        //! \return 0, falls kein Hintergrundbild verwendet wird
+        //! Returns the background image.
+        //! \return 0 if no background image is used
         DLLEXPORT Bild* getHintergrundBild() const;
-        //! Gibt das Hintergrundbild ohne erhöhten reference Counter zurück.
-        //! \return 0, falls kein Hintergrundbild verwendet wird
+        //! Returns the background image without increased reference counter.
+        //! \return 0 if no background image is used
         DLLEXPORT Bild* zHintergrundBild() const;
-        //! Gibt die Hintergrundfarbe im A8R8G8B8 Format zurück
+        //! Returns the background color in A8R8G8B8 format
         DLLEXPORT int getHintergrundFarbe() const;
-        //! Gibt das AlphaFeld zurück, das über den Hintergrund gezeichnet wird.
-        //! \return 0, falls das AlphaFeld nicht definiert wurde
+        //! Returns the AlphaFeld drawn over the background.
+        //! \return 0 if the AlphaFeld was not defined
         DLLEXPORT AlphaFeld* getAlphaFeld() const;
-        //! Gibt das AlphaFeld ohne erhöhten Reference Counter zurück, das über
-        //! den Hintergrund gezeichnet wird. \return 0, falls das AlphaFeld
-        //! nicht definiert wurde
+        //! Returns the AlphaFeld without increased reference counter drawn
+        //! over the background. \return 0 if the AlphaFeld was not defined
         DLLEXPORT AlphaFeld* zAlphaFeld() const;
-        //! Git die Stärke des Alphafeldes zurück
+        //! Returns the strength of the AlphaFeld
         DLLEXPORT int getAlphaFeldStrength() const;
-        //! Gibt die Farbe des Alphafedes im A8R8G8B8 Format zurück
+        //! Returns the color of the AlphaFeld in A8R8G8B8 format
         DLLEXPORT int getAlphaFeldFarbe() const;
-        //! Gibt den Rahmen zurück
-        //! \return 0, falls kein Rahmen definiert wurde
+        //! Returns the border
+        //! \return 0 if no border was defined
         DLLEXPORT Rahmen* getRahmen() const;
-        //! Gibt den Rahmen ohne erhöhten Reference Counter zurück
-        //! \return 0, falls kein Rahmen definiert wurde
+        //! Returns the border without increased reference counter
+        //! \return 0 if no border was defined
         DLLEXPORT Rahmen* zRahmen() const;
-        //! Gibt die Breite des Rahmens in Pixeln zurück
+        //! Returns the width of the border in pixels
         DLLEXPORT int getRahmenBreite() const;
-        //! Gibt die Farbe des Rahmens im A8R8G8B8 Format zurück
+        //! Returns the color of the border in A8R8G8B8 format
         DLLEXPORT int getRahmenFarbe() const;
-        //! Gibt die Scroll geschwindigkeit der vertikalen Scroll Bar zurück
+        //! Returns the scroll speed of the vertical scroll bar
         DLLEXPORT int getVertikalKlickScroll() const;
-        //! Gibt die Scroll Position der vertikalen Scroll Bar zurück
+        //! Returns the scroll position of the vertical scroll bar
         DLLEXPORT int getVertikalScrollPos() const;
-        //! Gibt die Farbe der vertikalen Scroll Bar im A8R8G8B8 Format zurück
+        //! Returns the color of the vertical scroll bar in A8R8G8B8 format
         DLLEXPORT int getVertikalScrollFarbe() const;
-        //! Gibt die Hintergrundfarbe der vertikalen Scroll Bar im A8R8G8B8
-        //! Format zurück
+        //! Returns the background color of the vertical scroll bar in A8R8G8B8
+        //! format
         DLLEXPORT int getVertikalScrollHintergrund() const;
-        //! Gibt die Scroll geschwindigkeit der horizontalen Scroll Bar zurück
+        //! Returns the scroll speed of the horizontal scroll bar
         DLLEXPORT int getHorizontalKlickScroll() const;
-        //! Gibt die Scroll Position der horizontalen Scroll Bar zurück
+        //! Returns the scroll position of the horizontal scroll bar
         DLLEXPORT int getHorizontalScrollPos() const;
-        //! Gibt die Farbe der horizontalen Scroll Bar im A8R8G8B8 Format zurück
+        //! Returns the color of the horizontal scroll bar in A8R8G8B8 format
         DLLEXPORT int getHorizontalScrollFarbe() const;
-        //! Gibt die Hintergrundfarbe der horizontalen Scroll Bar im A8R8G8B8
-        //! Format zurück
+        //! Returns the background color of the horizontal scroll bar in A8R8G8B8
+        //! format
         DLLEXPORT int getHorizontalScrollHintergrund() const;
-        //! Erzeugt eine Kopie der Zeichnung, die ohne Auswirkungen auf das
-        //! Original verändert werden kann
+        //! Creates a copy of the drawing that can be modified without
+        //! affecting the original
         DLLEXPORT virtual Zeichnung* dublizieren() const;
     };
 } // namespace Framework