예제 #1
0
        /// <summary>
        /// Draw visible forms
        /// </summary>
        public void Draw()
        {
            #region Draw TopMenu

            //if (menu != null && !menu.IsDisposed && menu.Visible)
            //    menu.Draw();

            #endregion

            #region Draw Forms

            for (int i = _forms.Count - 1; i > -1; i--)
            {
                if (!_forms[i].IsDisposed && _forms[i].Visible && _forms[i] != _topMostForm &&
                    _forms[i].State != xWinFormsLib.Form.WindowState.Minimized)
                {
                    _forms[i].Draw();
                }
            }

            if (_topMostForm != null && !_topMostForm.IsDisposed && _topMostForm.Visible)
            {
                _topMostForm.Draw();
            }

            #endregion

            #region Draw Minimized Forms
            for (int i = _forms.Count - 1; i >= 0; i--)
            {
                if (_forms[i].State == xWinFormsLib.Form.WindowState.Minimized &&
                    !_forms[i].IsDisposed && _forms[i].Visible && _forms[i] != _topMostForm)
                {
                    _forms[i].Draw();
                }
            }
            #endregion

            #region Draw Context Menu
            if (ContextMenu != null && !ContextMenu.IsDisposed && ContextMenu.Visible && ContextMenu.State != SubMenu.MenuState.Closed)
            {
                _spriteBatch.Begin(SpriteSortMode.Texture, null);
                ContextMenu.Draw(_spriteBatch);
                _spriteBatch.End();
            }
            #endregion

            #region Draw Cursor
            if (_isCursorVisible)
            {
                _cursor.Draw();
            }
            #endregion
        }