示例#1
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;
        }
示例#2
0
        public void Value_from_IEnumerable()
        {
            var list = new List <int> {
                1, 2, 3
            };
            var actual = SciterValue.FromList(list);

            Assert.IsTrue(actual.IsArray);
            Assert.AreEqual(list, actual.AsEnumerable().Select(s => s.AsInt32()));
        }
示例#3
0
        public SciterValue ToSV()
        {
            SciterValue sv = new SciterValue();

            sv["kind"]     = new SciterValue((int)kind);
            sv["hash"]     = new SciterValue(hash);
            sv["arr_tags"] = SciterValue.FromList(arr_tags);
            sv["source"]   = source;
            if (kind == EIconKind.COLLECTION)
            {
                sv["path"] = new SciterValue(path);
            }
            return(sv);
        }
示例#4
0
        public static List <SciterElement> TreeNavigateTo(SciterElement origin_el, bool tree_nav)
        {
            Debug.Assert(origin_el != null);

            List <SciterElement> elstack  = new List <SciterElement>();
            List <uint>          uidstack = new List <uint>();
            List <string>        tagnames = new List <string>();

            SciterElement el_it = origin_el;

            do
            {
                elstack.Add(el_it);
                tagnames.Add(el_it.TagName());
                uidstack.Add(el_it.UID);

                var el_parent = el_it.Parent;
                if (el_parent == null)
                {
                    return(null);
                }

                el_it = el_parent;
            } while(el_it._he != State.g_el_frameroot._he);

            uidstack.Reverse();
            tagnames.Reverse();

            SciterValue sv_uid      = new SciterValue(origin_el.UID);
            SciterValue sv_uidstack = SciterValue.FromList(uidstack);
            SciterValue sv_tagnames = SciterValue.FromList(tagnames);

            if (tree_nav)
            {
                dbg_on_navigate = true;
                el_tree.CallMethod("NavigateToPath", sv_uid, sv_uidstack);                // does not generate Event.SELECT_SELECTION_CHANGED
                dbg_on_navigate = false;
            }

            WidgetTreePath.Instance.RecreateTagPath(origin_el.UID, uidstack, tagnames);

            SciterValue sv_details = Inspecting.ElemDetails();

            if (sv_details != null && !sv_details.IsUndefined)         // happens while waiting for CONTENT_CHANGED arriving
            {
                el_tree.CallMethod("RenderDetails", sv_details);
            }

            return(elstack);
        }