Beispiel #1
0
        static void TestDirectory(DirectoryInfo dir, FolderTreeEnumerator enumerator)
        {
            List <FileInfo> files = new List <FileInfo>(dir.GetFiles());

            files.Sort(CompareFileInfo);
            foreach (FileInfo file in files)
            {
                if (0 == (file.Attributes & (FileAttributes.Hidden | FileAttributes.System)) && (file.Extension.Equals(".jpg", StringComparison.OrdinalIgnoreCase) || file.Extension.Equals(".doc", StringComparison.OrdinalIgnoreCase)))
                {
                    Trace.WriteLine(enumerator.Current);
                    if (file.FullName != enumerator.Current)
                    {
                        Trace.Fail(string.Format("{0} != {1}", file.FullName, enumerator.Current));
                    }
                    enumerator.MoveNext();
                    enumerator.MovePrev();
                    if (file.FullName != enumerator.Current)
                    {
                        Trace.Fail(string.Format("{0} != {1} (fwd/bck)", file.FullName, enumerator.Current));
                    }
                    enumerator.MoveNext();
                }
            }

            foreach (DirectoryInfo subdir in dir.GetDirectories())
            {
                if (0 == (subdir.Attributes & (FileAttributes.Hidden | FileAttributes.System)))
                {
                    TestDirectory(subdir, enumerator);
                }
            }
        }
Beispiel #2
0
        public void Next()
        {
            Children.Remove(fFormerPanel);
            fFormerPanel.BeginAnimation(Panel.OpacityProperty, null); // Remove animation (not required but this assists the garbage collector)
            fFormerPanel.Done();                                      // Notify former panel that it is no longer in use.

            // Memory leak checking

            /*
             * GC.Collect();
             * GC.WaitForPendingFinalizers();
             * GC.Collect(5, GCCollectionMode.Forced);
             */

            // Rotate the panels down
            fFormerPanel = fActivePanel;
            fActivePanel = fNextPanel;
            fNextPanel   = null;

            // Stop the former panel
            fFormerPanel.Stop();

            // Animate the next panel in and play it
            if (fFadeTime >= cMinFadeTime)
            {
                DoubleAnimation animation = new DoubleAnimation(0.0, 1.0, fFadeTime);
                fActivePanel.BeginAnimation(Panel.OpacityProperty, animation, HandoffBehavior.SnapshotAndReplace);
            }
            else
            {
                fActivePanel.Opacity = 1.0;
            }
            fActivePanel.IsMuted = fMuted;
            fActivePanel.Play();

            if (!fDirectionIsForward)
            {
                fEnumerator.MoveNext();
                fEnumerator.MoveNext();
                fDirectionIsForward = true;
            }

            // Prep the next panel
            fEnumerator.MoveNext(AdvanceFlags.Wrap);
            string filename = fEnumerator.Current;

            if (string.IsNullOrEmpty(filename))
            {
                fNextPanel = new TextPanel(cNoImagesFound);
            }
            else
            {
                fNextPanel = SlidePanel.Load(new Uri(filename));
                fNextPanel.ShowMetadata = fShowMetadata;
            }
            fNextPanel.Opacity = 0.0;
            Children.Add(fNextPanel);
        }
Beispiel #3
0
        public static void Test()
        {
            FolderTreeEnumerator enumerator = new FolderTreeEnumerator();

            enumerator.IncludeExtensions = new string[] { ".jpg", ".doc" };
            enumerator.RootDirectories   = new string[]
            {
                "C:\\Documents and Settings"
                //@"C:\Documents and Settings\brandt.redd\My Documents\Geocaches\Archive\TB Winnie's Wagon_files"
            };

            Trace.Assert(enumerator.MoveNext());
            TestDirectory(new DirectoryInfo(enumerator.RootDirectories[0]), enumerator);
            Trace.Assert(!enumerator.MoveNext());

            enumerator.Reset();
            Trace.Assert(enumerator.MoveNext());
            TestDirectorySkip(new DirectoryInfo(enumerator.RootDirectories[0]), enumerator);
            Trace.Assert(!enumerator.MoveNext());
        }