Example #1
0
        public void RunFormsMode(System.Windows.Forms.Form frm)
        {
            this.Reset();
            this._formsMode = true;
            Spirograph spiro = new Spirograph(frm.Handle, Color.Black);

            frm.FormClosed += delegate
            {
                this.Stop();
            };
            //frm.ResizeEnd += delegate
            //{
            //    spiro.ResetDeviceContext();
            //};
            frm.SizeChanged += delegate
            {
                spiro.ResetDeviceContext();
            };
            frm.KeyPress += delegate
            {
                spiro.Reset();
            };
            frm.VisibleChanged += delegate
            {
                if (RainstormStudios.Unmanaged.Win32.IsWindowVisible(frm.Handle) && spiro.Paused)
                {
                    spiro.Resume();
                }
                else if (!RainstormStudios.Unmanaged.Win32.IsWindowVisible(frm.Handle) && !spiro.Paused)
                {
                    spiro.Pause();
                }
            };
            this._forms.Add(frm);
            this._screens.Add(spiro);
            this.StartScreens();
        }