コード例 #1
0
        public void Initialize(Lua.lua_State L)
        {
#if WINDOWS_PHONE
            String drawableDirectoriesString = "";
            Lua.lua_getglobal(L, "WP7DrawableDirectories");
            if (Lua.lua_isstring(L, -1) != 0)
            {
                drawableDirectoriesString = Lua.lua_tostring(L, -1).toString();
            }
            Lua.lua_pop(L, 1);

            String[] drawableDirectories = drawableDirectoriesString.Split(new char[] { ',' });
#else
            String[] drawableDirectories = LuaResource.GetResourceDirectories(LuaEngine.LUA_DRAWABLE_FOLDER);
#endif
            directoryList = new List <DynamicResource>();
            LGParser.Instance.Tester(drawableDirectories, LuaEngine.LUA_DRAWABLE_FOLDER, ref directoryList);
            directoryList.Sort(new Comparison <DynamicResource>((a, b) =>
            {
                String aData = (String)a.data;
                String bData = (String)b.data;
                if (aData == bData)
                {
                    return(0);
                }
                else if (aData.Length > bData.Length)
                {
                    return(-1);
                }
                else
                {
                    return(1);
                }
            }));
        }
コード例 #2
0
        public LuaMapImage AddImage(LuaPoint geoPoint, String path, String icon, float width)
        {
            MapImage mi = null;

            if (icon != null)
            {
                LuaStream ls = LuaResource.GetResource(path, icon);
                if (ls != null && ls.GetStream() != null)
                {
                    BitmapImage bi = new BitmapImage();
                    bi.SetSource(
#if NETFX_CORE
                        new MemoryRandomAccessStream((Stream)ls.GetStream())
#else
                        (Stream)ls.GetStream()
#endif
                        );
                    mi = new MapImage(bi);
                    mi.setDimensions(width);
                    mi.setPosition(geoPoint.ToPoint());
                }
            }
            else
            {
                Log.e("LGMapView", "Image is needed for LuaMapImage");
            }

            if (mi != null)
            {
                LuaMapImage lmi = new LuaMapImage(mi);
                return(lmi);
            }
            return(null);
        }
コード例 #3
0
        public void ParseXML(String filename)
        {
            Stream sr = (Stream)LuaResource.GetResource(LuaEngine.Instance.GetUIRoot(), filename).GetStream();

            if (sr != null)
            {
                XDocument doc = XDocument.Load(sr);
            }
        }
コード例 #4
0
        public LGDrawableReturn ParseDrawable(String drawable)
        {
            String[]    arr    = drawable.Split('/');
            ImageSource retVal = null;

            if (arr[0].Contains("drawable"))
            {
                if (arr.Length > 1)
                {
                    String name = arr[1];
                    foreach (DynamicResource dr in directoryList)
                    {
                        String path = System.IO.Path.Combine(LuaEngine.LUA_RESOURCE_FOLDER, LuaEngine.Instance.GetUIRoot(), (String)dr.data);
                        Stream str  = (Stream)LuaResource.GetResource(path, name + ".png").GetStream();
                        if (str == null)
                        {
                            str = (Stream)LuaResource.GetResource(path, name + ".jpg").GetStream();
                            if (str == null)
                            {
                                str = (Stream)LuaResource.GetResource(path, name + ".gif").GetStream();
                                if (retVal == null)
                                {
                                    retVal = ParseXML(name).img;
                                }
                            }
                        }
                        if (str != null)
                        {
                            retVal = new BitmapImage();
                            ((BitmapImage)retVal).SetSource(str
#if NETFX_CORE
                                                            .AsRandomAccessStream()
#endif
                                                            );
                            break;
                        }
                    }
                }
            }
            LGDrawableReturn ldr = new LGDrawableReturn();
            ldr.img = retVal;
            return(ldr);
        }
コード例 #5
0
        LGDrawableReturn ParseXML(String filename)
        {
            LuaStream dat = LuaResource.GetResource(LuaEngine.LUA_DRAWABLE_FOLDER, filename + ".xml");
            XDocument parse;

            try {
                parse = XDocument.Load((Stream)dat.GetStream());
                String name = parse.Root.Name.LocalName;

                XElement root = parse.Root;
                if (name == "bitmap" ||
                    name == "nine-patch")
                {
                    return(ParseBitmap(root));
                }
                else if (name == "layer-list")
                {
                    return(ParseLayer(root));
                }
                else if (name == "selector")
                {
                    return(ParseStateList(root));
                }
                else if (name == "shape")
                {
                    return(ParseShape(root));
                }
            }
            catch (Exception ex)
            {
                LGDrawableReturn ret = new LGDrawableReturn();
                return(ret);
            }

            return(null);
        }
コード例 #6
0
        private void ParseValues(Lua.lua_State L)
        {
#if WINDOWS_PHONE
            String valueDirectoriesString = "";
            Lua.lua_getglobal(L, "WP7ValueDirectories");
            if (Lua.lua_isstring(L, -1) != 0)
            {
                valueDirectoriesString = Lua.lua_tostring(L, -1).toString();
            }
            Lua.lua_pop(L, 1);

            String[] valueDirectories = valueDirectoriesString.Split(new char[] { ',' });
#else
            String[] valueDirectories = LuaResource.GetResourceDirectories(LuaEngine.LUA_VALUES_FOLDER);
#endif

            List <DynamicResource> clearedDirectoryList = new List <DynamicResource>();
            //Eliminate non version type values
            Tester(valueDirectories, LuaEngine.LUA_VALUES_FOLDER, ref clearedDirectoryList);

#if WINDOWS_PHONE
            String valueFilesString = "";
            Lua.lua_getglobal(L, "WP7ValueFiles");
            if (Lua.lua_isstring(L, -1) != 0)
            {
                valueFilesString = Lua.lua_tostring(L, -1).toString();
            }
            Lua.lua_pop(L, 1);

            String[] valueFiles = valueFilesString.Split(new char[] { ',' });

            //System.Threading.Thread.CurrentThread.CurrentCulture
            //((PhoneApplicationFrame)Application.Current.RootVisual).Orientation

            foreach (String valueFile in valueFiles)
            {
                String[] fileArr     = valueFile.Split(new char[] { '|' });
                String   directory   = valueDirectories[Convert.ToInt32(fileArr[0])];
                bool     found       = false;
                int      orientation = 0;
                foreach (DynamicResource dr in clearedDirectoryList)
                {
                    if (((String)dr.data) == directory)
                    {
                        found       = true;
                        orientation = dr.orientation;
                        break;
                    }
                }
                if (!found)
                {
                    continue;
                }
                LuaStream dat = LuaResource.GetResource(LuaEngine.LUA_RESOURCE_FOLDER + "/" + LuaEngine.Instance.GetUIRoot() + "/" + directory + "/", fileArr[1]);
                if (dat.GetStream() != null)
                {
                    XDocument parse;
                    try
                    {
                        parse = XDocument.Load((Stream)dat.GetStream());
                        String name = parse.Root.Name.LocalName;
                        if (name == "resources")
                        {
                            foreach (XElement child in parse.Root.Elements())
                            {
                                String childName = child.Name.LocalName;
                                if (childName == "color")
                                {
                                    ColorParser.ParseXML(orientation, child);
                                }
                                else if (childName == "dimen")
                                {
                                    DimensionParser.ParseXML(orientation, child);
                                }
                                else if (childName == "string")
                                {
                                    StringParser.ParseXML(orientation, child);
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                }
            }
#else
            foreach (DynamicResource dr in clearedDirectoryList)
            {
                String[] filesOfClearFolder = LuaResource.GetResourceFiles((String)dr.data);
                foreach (String file in filesOfClearFolder)
                {
                    LuaStream dat = LuaResource.GetResource(LuaEngine.LUA_RESOURCE_FOLDER + "/" + LuaEngine.Instance.GetUIRoot() + "/" + dr.data + "/", file);
                    if (dat.GetStream() != null)
                    {
                        XDocument parse;
                        try
                        {
                            parse = XDocument.Load((Stream)dat.GetStream());
                            String name = parse.Root.Name.LocalName;
                            if (name == "resources")
                            {
                                foreach (XElement child in parse.Root.Elements())
                                {
                                    String childName = child.Name.LocalName;
                                    if (childName == "color")
                                    {
                                        ColorParser.ParseXML(dr.orientation, child);
                                    }
                                    else if (childName == "dimen")
                                    {
                                        DimensionParser.ParseXML(dr.orientation, child);
                                    }
                                    else if (childName == "string")
                                    {
                                        StringParser.ParseXML(dr.orientation, child);
                                    }
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                        }
                    }
                }
            }
#endif
        }