Browse Source

Allow dragdrop from a Text element to a LineEdit.

Lasse Öörni 13 years ago
parent
commit
337e86ab1c
1 changed files with 23 additions and 7 deletions
  1. 23 7
      Engine/UI/LineEdit.cpp

+ 23 - 7
Engine/UI/LineEdit.cpp

@@ -147,19 +147,35 @@ void LineEdit::OnDragMove(const IntVector2& position, const IntVector2& screenPo
 
 bool LineEdit::OnDragDropTest(UIElement* source)
 {
-    return (dynamic_cast<LineEdit*>(source) != 0);
+    if (source)
+    {
+        ShortStringHash sourceType = source->GetType();
+        return sourceType == LineEdit::GetTypeStatic() || sourceType == Text::GetTypeStatic();
+    }
+    
+    return false;
 }
 
 bool LineEdit::OnDragDropFinish(UIElement* source)
 {
-    LineEdit* sourceLineEdit = dynamic_cast<LineEdit*>(source);
-    if (sourceLineEdit)
+    if (source)
     {
-        SetText(sourceLineEdit->GetText());
-        return true;
+        ShortStringHash sourceType = source->GetType();
+        if (sourceType == LineEdit::GetTypeStatic())
+        {
+            LineEdit* sourceLineEdit = static_cast<LineEdit*>(source);
+            SetText(sourceLineEdit->GetText());
+            return true;
+        }
+        else if (sourceType == Text::GetTypeStatic())
+        {
+            Text* sourceText = static_cast<Text*>(source);
+            SetText(sourceText->GetText());
+            return true;
+        }
     }
-    else
-        return false;
+    
+    return false;
 }
 
 void LineEdit::OnKey(int key, int buttons, int qualifiers)