Browse Source

Expose StyleEdit's AppendText as it is much faster than resetting all text

Josh Engebretson 10 years ago
parent
commit
87cce548f1

+ 1 - 1
Script/AtomicEditor/ui/ProjectFrame.ts

@@ -140,7 +140,7 @@ class ProjectFrame extends ScriptWidget {
             if (id == "menu create") {
             if (id == "menu create") {
 
 
                 var src = MenuItemSources.getMenuItemSource("project create items");
                 var src = MenuItemSources.getMenuItemSource("project create items");
-                var menu = new Atomic.UIMenuWindow(data.target, "asset context menu");
+                var menu = new Atomic.UIMenuWindow(data.target, "create popup");
                 menu.show(src);
                 menu.show(src);
                 return true;
                 return true;
 
 

+ 4 - 3
Script/AtomicEditor/ui/playmode/PlayerOutput.ts

@@ -37,10 +37,11 @@ class PlayerOutput extends Atomic.UIWindow {
     handlePlayerLog(ev: EditorEvents.PlayerLogEvent) {
     handlePlayerLog(ev: EditorEvents.PlayerLogEvent) {
 
 
         var text = this.output.text;
         var text = this.output.text;
+
         if (text.length > 32768)
         if (text.length > 32768)
-            text = "";
-        text += ev.message;
-        this.output.text = text + "\n";
+            this.output.text = "";
+
+        this.output.appendText(ev.message + "\n");
         this.output.scrollTo(0, 0xffffff);
         this.output.scrollTo(0, 0xffffff);
     }
     }
 
 

+ 1 - 0
Script/TypeScript/Atomic.d.ts

@@ -7048,6 +7048,7 @@ declare module Atomic {
 
 
       constructor(createWidget?: boolean);
       constructor(createWidget?: boolean);
 
 
+      appendText(text: string): void;
       setTextAlign(align: TEXT_ALIGN): void;
       setTextAlign(align: TEXT_ALIGN): void;
       setEditType(type: UI_EDIT_TYPE): void;
       setEditType(type: UI_EDIT_TYPE): void;
       setReadOnly(readonly: boolean): void;
       setReadOnly(readonly: boolean): void;

+ 12 - 0
Source/Atomic/UI/UIEditField.cpp

@@ -83,6 +83,18 @@ void UIEditField::ScrollTo(int x, int y)
 
 
 }
 }
 
 
+void UIEditField::AppendText(const String& text)
+{
+    if (!widget_)
+        return;
+
+    // safe cast?
+    TBEditField* w = (TBEditField*) widget_;
+
+    w->AppendText(text.CString());
+
+}
+
 void UIEditField::SetTextAlign(TEXT_ALIGN align)
 void UIEditField::SetTextAlign(TEXT_ALIGN align)
 {
 {
     if (!widget_)
     if (!widget_)

+ 2 - 0
Source/Atomic/UI/UIEditField.h

@@ -34,6 +34,8 @@ public:
     UIEditField(Context* context, bool createWidget = true);
     UIEditField(Context* context, bool createWidget = true);
     virtual ~UIEditField();
     virtual ~UIEditField();
 
 
+    void AppendText(const String& text);
+
     void SetTextAlign(TEXT_ALIGN align);
     void SetTextAlign(TEXT_ALIGN align);
 
 
     void SetEditType(UI_EDIT_TYPE type);
     void SetEditType(UI_EDIT_TYPE type);

+ 2 - 0
Source/ThirdParty/TurboBadger/tb_editfield.h

@@ -138,6 +138,8 @@ public:
 	void SetTextAlign(TB_TEXT_ALIGN align) { m_style_edit.SetAlign(align); }
 	void SetTextAlign(TB_TEXT_ALIGN align) { m_style_edit.SetAlign(align); }
 	TB_TEXT_ALIGN GetTextAlign() { return m_style_edit.align; }
 	TB_TEXT_ALIGN GetTextAlign() { return m_style_edit.align; }
 
 
+    void AppendText(const char *text, int32 len = TB_ALL_TO_TERMINATION, bool clear_undo_redo = false) { m_style_edit.AppendText(text, len, clear_undo_redo); }
+
 	virtual bool SetText(const char *text) { return m_style_edit.SetText(text, TB_CARET_POS_BEGINNING); }
 	virtual bool SetText(const char *text) { return m_style_edit.SetText(text, TB_CARET_POS_BEGINNING); }
 	virtual bool GetText(TBStr &text) { return m_style_edit.GetText(text); }
 	virtual bool GetText(TBStr &text) { return m_style_edit.GetText(text); }
 	using TBWidget::GetText; ///< Make all versions in base class available.
 	using TBWidget::GetText; ///< Make all versions in base class available.