浏览代码

minor fixes

dm 7 年之前
父节点
当前提交
4330ba961f
共有 2 个文件被更改,包括 17 次插入6 次删除
  1. 5 4
      oxygine/src/oxygine/Serialize.h
  2. 12 2
      oxygine/src/oxygine/actor/TextField.cpp

+ 5 - 4
oxygine/src/oxygine/Serialize.h

@@ -12,10 +12,11 @@ namespace oxygine
     {
     public:
         virtual spActor     create(const char* type) const;
-        virtual Resource*   getResource(const char* id) const {return 0;}
-        virtual ResAnim*    getResAnim(const char* id) const {return safeCast<ResAnim*>(getResource(id));}
-        virtual AnimationFrame getFrame(const char* id, int col, int row) const {ResAnim* rs = getResAnim(id);  if (rs) return rs->getFrame(col, row); return AnimationFrame();}
-        virtual ResFont*    getResFont(const char* id) const {return safeCast<ResFont*>(getResource(id));}
+        virtual const Resource*   getResource(const char* id) const {return 0;}
+        virtual const ResAnim*    getResAnim(const char* id) const {return safeCast<const ResAnim*>(getResource(id));}
+        virtual AnimationFrame getFrame(const char* id, int col, int row) const { const ResAnim* rs = getResAnim(id);  if (rs) return rs->getFrame(col, row); return AnimationFrame();}
+        virtual const ResFont*    getResFont(const char* id) const {return safeCast<const ResFont*>(getResource(id));}
+        virtual bool              getString(const char* id, std::string &result) const { return false; }
     };
 
     struct serializedata

+ 12 - 2
oxygine/src/oxygine/actor/TextField.cpp

@@ -466,12 +466,22 @@ namespace oxygine
         const char* fnt = node.attribute("font").as_string(0);
         if (fnt && *fnt)
         {
-            ResFont* font = data->factory->getResFont(fnt);
+            const ResFont* font = data->factory->getResFont(fnt);
             if (font)
                 _style.font = font;
         }
 
         needRebuild();
-        setText(node.attribute("text").as_string());
+
+        std::string txt;
+        const char *str = node.attribute("text").as_string();
+        if (data->factory->getString(str, txt))
+        {
+            setHtmlText(txt);
+        }        
+        else
+        {
+            setText(str);
+        }
     }
 }