Browse Source

Slider Objekt hinzugefügt

Kolja Strohm 4 years ago
parent
commit
48052926c6
4 changed files with 89 additions and 0 deletions
  1. 2 0
      Framework.vcxproj
  2. 6 0
      Framework.vcxproj.filters
  3. 57 0
      Slider.cpp
  4. 24 0
      Slider.h

+ 2 - 0
Framework.vcxproj

@@ -238,6 +238,7 @@ copy "x64\Release\Framework.dll" "..\..\Spiele Platform\SMP\Fertig\x64\framework
     <ClInclude Include="Mat4.h" />
     <ClInclude Include="Maus.h" />
     <ClInclude Include="MausEreignis.h" />
+    <ClInclude Include="Slider.h" />
     <ClInclude Include="UIDialog.h" />
     <ClInclude Include="Model2D.h" />
     <ClInclude Include="M2DVorschau.h" />
@@ -323,6 +324,7 @@ copy "x64\Release\Framework.dll" "..\..\Spiele Platform\SMP\Fertig\x64\framework
     <ClCompile Include="Model3DList.cpp" />
     <ClCompile Include="Random.cpp" />
     <ClCompile Include="Shader.cpp" />
+    <ClCompile Include="Slider.cpp" />
     <ClCompile Include="Textur.cpp" />
     <ClCompile Include="Textur2D.cpp" />
     <ClCompile Include="TexturList.cpp" />

+ 6 - 0
Framework.vcxproj.filters

@@ -321,6 +321,9 @@
     <ClInclude Include="UIDialog.h">
       <Filter>Headerdateien\Framework\Objekte2D</Filter>
     </ClInclude>
+    <ClInclude Include="Slider.h">
+      <Filter>Headerdateien\Framework\Objekte2D</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="Maus.cpp">
@@ -524,6 +527,9 @@
     <ClCompile Include="UIDialog.cpp">
       <Filter>Quelldateien\Framework\Objekte2D</Filter>
     </ClCompile>
+    <ClCompile Include="Slider.cpp">
+      <Filter>Quelldateien\Framework\Objekte2D</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <FxCompile Include="DX12VertexShader.hlsl">

+ 57 - 0
Slider.cpp

@@ -0,0 +1,57 @@
+#include "Slider.h"
+#include "Bild.h"
+#include "Globals.h"
+
+using namespace Framework;
+
+Slider::Slider()
+    : ZeichnungHintergrund()
+{
+    value = 50;
+}
+
+Slider::~Slider()
+{}
+
+void Slider::setValue( float value )
+{
+    this->value = value;
+    rend |= 1;
+}
+
+float Slider::getValue() const
+{
+    return value;
+}
+
+// Verarbeitet ein Maus Ereignis. Wird vom Framework automatisch aufgerufen.
+//  me: Das Ereignis
+void Slider::doMausEreignis( MausEreignis &me, bool userRet )
+{
+    if( gr.x && ( me.id == ME_PLinks || ( me.id == ME_Bewegung && getMausStand( M_Links ) ) ) )
+    {
+        value = ( 1 - ( (gr.x - 10) - me.mx ) / (gr.x - 20.0) ) * 100;
+        if( value < 0 )
+            value = 0;
+        if( value > 100 )
+            value = 100;
+        rend |= 1;
+    }
+    ZeichnungHintergrund::doMausEreignis( me, userRet );
+}
+
+// Zeichnet die Zeihnung in ein bestimmtes Bild
+//  zRObj: Das Bild, in das gezeichnet werden soll
+void Slider::render( Bild &zRObj )
+{
+    if( hatStyle( Style::Sichtbar ) )
+    {
+        ZeichnungHintergrund::render( zRObj );
+        if( zRObj.setDrawOptions( pos, gr ) )
+        {
+            zRObj.drawLinieH( 10, gr.y / 2, gr.x - 20, 0xFFFFFFFF );
+            zRObj.fillRegion( (int)( gr.x / 100 * value - 10 ), 0, 20, gr.y, 0xFFFFFFFF );
+            zRObj.releaseDrawOptions();
+        }
+    }
+}

+ 24 - 0
Slider.h

@@ -0,0 +1,24 @@
+#pragma once
+
+#include "Zeichnung.h"
+
+namespace Framework
+{
+    class Slider : public ZeichnungHintergrund
+    {
+    private:
+        float value;
+
+    public:
+        __declspec( dllexport ) Slider();
+        __declspec( dllexport ) ~Slider();
+        __declspec( dllexport ) void setValue( float value );
+        __declspec( dllexport ) float getValue() const;
+        // Verarbeitet ein Maus Ereignis. Wird vom Framework automatisch aufgerufen.
+        //  me: Das Ereignis
+        __declspec( dllexport ) void doMausEreignis( MausEreignis &me, bool userRet ) override;
+        // Zeichnet die Zeihnung in ein bestimmtes Bild
+        //  zRObj: Das Bild, in das gezeichnet werden soll
+        __declspec( dllexport ) void render( Bild &zRObj ) override;
+    };
+}