示例#1
0
        public static void LoadStorePack(string id, SciterValue cbk)
        {
            Task.Run(() =>
            {
                List <Task> tasks = new List <Task>();
                var pack          = _store_packs.Single(p => p.id == id);
                foreach (var icn in pack.icons)
                {
                    if (!IsIconLoaded(icn))
                    {
                        tasks.Add(LoadIcon(icn));
                    }
                }

                bool success = true;
                try
                {
                    Task.WaitAll(tasks.ToArray());
                }
                catch (Exception)
                {
                    success = false;
                }
                cbk.Call(new SciterValue(success));
            });
        }
示例#2
0
        protected override bool OnScriptCall(SciterElement se, string name, SciterValue[] args, out SciterValue result)
        {
            result = null;
            switch (name)
            {
            case "Host_DownloadFont":
                string      savefolder = args[0].Get("");
                string      family     = args[1].Get("");
                SciterValue async_cbk  = args[2];
                string      str        = async_cbk.ToString();

                Task.Run(() =>
                {
                    bool res;
                    try
                    {
                        GAPI.DownloadFont(family, savefolder);
                        res = true;
                    }
                    catch (Exception)
                    {
                        res = false;
                    }

                    App.AppHost.InvokePost(() =>
                    {
                        async_cbk.Call(new SciterValue(res));
                    });
                });

                return(true);
            }
            return(false);
        }
示例#3
0
        private static void ScanTime(object state)
        {
            if (_scanning)
            {
                return;
            }
            _scanning = true;

            _collected_dirs.Clear();
            int count = 0;

            foreach (var subdir in Directory.EnumerateDirectories(_rootdir))
            {
                ScanDirectory(subdir);
                if (++count == 2)
                {
                    break;
                }
            }

            // call joiner
            Joiner.Join();

            var dirs   = _collected_dirs.Keys.ToList();
            var counts = _collected_dirs.Select(kv => kv.Value.Count).ToList();

            _cbk.Call(SciterValue.FromList(dirs), SciterValue.FromList(counts));

            _scanning = false;
        }
示例#4
0
文件: Host.cs 项目: IDLC1/sciter_c-
 public bool Host_getShowData(SciterValue props, SciterValue whenCreated)
 {
     whenCreated.Call(props);
     return(true);
 }