예제 #1
0
        // 修改字典文件
        static void ModifyDict(TjsDict dict, int sw, int sh, int dw, int dh)
        {
            double scaleX = (double)dw / sw;
            double scaleY = (double)dh / sh;

            TjsHelper.ScaleInteger(dict, "left", scaleX);
            TjsHelper.ScaleInteger(dict, "x", scaleX);
            TjsHelper.ScaleInteger(dict, "marginr", scaleX);
            TjsHelper.ScaleInteger(dict, "marginl", scaleX);

            TjsHelper.ScaleInteger(dict, "top", scaleY);
            TjsHelper.ScaleInteger(dict, "y", scaleY);
            TjsHelper.ScaleInteger(dict, "margint", scaleY);
            TjsHelper.ScaleInteger(dict, "marginb", scaleY);

            // 修改locate数组
            TjsHelper.ScalePosArray(dict, "locate", scaleX, scaleY);

            foreach (KeyValuePair <string, TjsValue> kv in dict.val)
            {
                TjsDict inner = kv.Value as TjsDict;
                if (inner != null)
                {
                    ModifyDict(inner, sw, sh, dw, dh);
                }
            }
        }
예제 #2
0
        // 修改UI布局文件
        static void ModifyLayout(string dataPath, int sw, int sh, int dh, int dw)
        {
            // 更新layout
            string[] layouts = Directory.GetFiles(dataPath, WizardConfig.UI_LAYOUT);
            foreach (string layout in layouts)
            {
                TjsDict setting = TjsValue.Load(layout) as TjsDict;

                if (setting != null)
                {
                    ModifyDict(setting, sw, sh, dw, dh);

                    // 对这个文件里的按钮作特殊处理
                    if (layout.ToLower().EndsWith("uislpos.tjs"))
                    {
                        double scaleX = (double)dw / sw;
                        double scaleY = (double)dh / sh;
                        TjsHelper.ScaleButton(setting, "back", scaleX, scaleY);
                        TjsHelper.ScaleButton(setting, "up", scaleX, scaleY);
                        TjsHelper.ScaleButton(setting, "down", scaleX, scaleY);
                    }
                }

                setting.Save(layout, Encoding.Unicode);
            }
        }