/// <summary>
        /// Shows the menu popup centered at the given screen position.  If the
        /// popup is currently shown (see <see cref="IsPopupShown"/>), this
        /// method does nothing.
        /// </summary>
        /// <param name="screenPos">
        /// The screen position around which the popup menu should be centered.
        /// </param>
        public void Popup( Point screenPos )
        {
            if( m_currentPopup == null )
            {
                RaiseMenuShown( screenPos );

                CircularMenuWindow wnd =
                    new CircularMenuWindow( this, screenPos );

                m_currentPopup = wnd;
                wnd.Show();
            }
        }
        /// <summary>
        /// Indicates that a the popup window has been closed, and provides the
        /// selected option.
        /// </summary>
        internal void PopupComplete( MenuOption selectedOption )
        {
            m_currentPopup = null;

            if( selectedOption == null )
                RaiseMenuCanceled();
            else
                RaiseOptionSelected( selectedOption );

            RaiseMenuClosed( selectedOption );
        }
 /// <summary>
 /// Creates a new animator.
 /// </summary>
 public Animator( 
     CircularMenuWindow window,
     FrameCollection animation,
     bool closeOnDone
     )
 {
     m_window = window;
     m_animation = animation;
     m_closeOnDone = closeOnDone;
 }