Browse Source

uiml view erlaubt jetzt zugriff auf dom tree von außen

Kolja Strohm 5 years ago
parent
commit
b0191e2f59
2 changed files with 27 additions and 3 deletions
  1. 21 3
      UIMLView.cpp
  2. 6 0
      UIMLView.h

+ 21 - 3
UIMLView.cpp

@@ -155,11 +155,11 @@ Zeichnung *UIMLView::parseElement( XML::Element *e )
         {
             TextFeld *t = init.createTextFeld( init.initParam );
             if( e->getName().istGleich( "textfield" ) )
-                t->setStyle( TextFeld::Style::TextFeld );
+                t->addStyle( TextFeld::Style::TextFeld );
             if( e->getName().istGleich( "text" ) )
-                t->setStyle( TextFeld::Style::Text );
+                t->addStyle( TextFeld::Style::Text );
             if( e->getName().istGleich( "textarea" ) )
-                t->setStyle( TextFeld::Style::TextGebiet );
+                t->addStyle( TextFeld::Style::TextGebiet );
             t->setText( e->getText() );
             if( e->hasAttribute( "font-size" ) )
                 t->setSchriftSize( (unsigned char)(int)e->getAttributeValue( "font-size" ) );
@@ -362,6 +362,10 @@ void UIMLView::layout( XML::Element *e, int pWidth, int pHeight )
                 y = (int)( ( pHeight / 100.0 ) * y );
         }
         z->setPosition( x, y );
+        if( e->getName().istGleich( "textarea" ) )
+        {
+            ( (TextFeld*)z )->zTextRenderer()->textFormatieren( ( (TextFeld*)z )->zText(), z->getInnenBreite() );
+        }
     }
     if( z )
     {
@@ -536,4 +540,18 @@ void UIMLView::render( Bild &rObj )
                 z->render( rObj );
         }
     }
+}
+
+// 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)
+XML::Element *UIMLView::zDom() const
+{
+    return dom;
+}
+
+// Gibt den Dom Tree zurück
+// Änderungen am Dom Tree sollten vermieden werden (nur änderungen von attributen einzelner elemente sind erlaubt)
+XML::Element *UIMLView::getDom() const
+{
+    return dom ? dom->getThis() : 0;
 }

+ 6 - 0
UIMLView.h

@@ -127,5 +127,11 @@ namespace Framework
         __declspec( dllexport ) bool tick( double tickVal ) override;
         // Zeichnet den Hintergrund eines Zeichnunges nach rObj
         __declspec( 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)
+        __declspec( 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)
+        __declspec( dllexport ) XML::Element *getDom() const;
     };
 }