/// <summary>
        /// Inflates the custom view if one is supplied
        /// </summary>
        /// <param name="layout"></param>
        /// <param name="viewInflateListener"></param>
        private void InflateCustomView(int layout, OnViewInflateListener viewInflateListener)
        {
            View view = mActivity.LayoutInflater.Inflate(layout, this, false);

            this.AddView(view);
            if (viewInflateListener != null)
            {
                viewInflateListener.OnViewInflated(view);
            }
        }
        private ShowCaseView(Context mActivity, string mTitle, ISpanned mSpannedTitle, string mId, double mFocusCircleRadiusFactor, View mView, Color mBackgroundColor, Color mFocusBorderColor, int mTitleGravity, int mTitleStyle, int mTitleSize, int mTitleSizeUnit, int mCustomViewRes, int mFocusBorderSize, int mRoundRectRadius, OnViewInflateListener mViewInflateListener, Animation mEnterAnimation, Animation mExitAnimation, AnimationListener mAnimationListener, bool mCloseOnTouch, bool mEnableTouchOnFocusedView, bool mFitSystemWindows, FocusShape mFocusShape, DismissListener mDismissListener, long mDelay, int mFocusAnimationMaxValue, int mFocusAnimationStep, int mFocusPositionX, int mFocusPositionY, int mFocusCircleRadius, int mFocusRectangleWidth, int mFocusRectangleHeight, bool mFocusAnimationEnabled, int mAnimationDuration = 400, int mCenterX = 0, int mCenterY = 0, ViewGroup mRoot = null, ISharedPreferences mSharedPreferences = null, Calculator mCalculator = null, float[] mLastTouchDownXY = null) : base(mActivity)
        {
            this.mActivity                 = (mActivity as Activity);
            this.mTitle                    = mTitle;
            this.mSpannedTitle             = mSpannedTitle;
            this.mId                       = mId;
            this.mFocusCircleRadiusFactor  = mFocusCircleRadiusFactor;
            this.mView                     = mView;
            this.mBackgroundColor          = mBackgroundColor;
            this.mFocusBorderColor         = mFocusBorderColor;
            this.mTitleGravity             = mTitleGravity;
            this.mTitleStyle               = mTitleStyle;
            this.mTitleSize                = mTitleSize;
            this.mTitleSizeUnit            = mTitleSizeUnit;
            this.mCustomViewRes            = mCustomViewRes;
            this.mFocusBorderSize          = mFocusBorderSize;
            this.mRoundRectRadius          = mRoundRectRadius;
            this.mViewInflateListener      = mViewInflateListener;
            this.mEnterAnimation           = mEnterAnimation;
            this.mExitAnimation            = mExitAnimation;
            this.mAnimationListener        = mAnimationListener;
            this.mCloseOnTouch             = mCloseOnTouch;
            this.mEnableTouchOnFocusedView = mEnableTouchOnFocusedView;
            this.mFitSystemWindows         = mFitSystemWindows;
            this.mFocusShape               = mFocusShape;
            this.mDismissListener          = mDismissListener;
            this.mDelay                    = mDelay;
            this.mAnimationDuration        = mAnimationDuration;
            this.mFocusAnimationMaxValue   = mFocusAnimationMaxValue;
            this.mFocusAnimationStep       = mFocusAnimationStep;
            this.mCenterX                  = mCenterX;
            this.mCenterY                  = mCenterY;
            this.mRoot                     = mRoot;
            this.mSharedPreferences        = mSharedPreferences;
            this.mCalculator               = mCalculator;
            this.mFocusPositionX           = mFocusPositionX;
            this.mFocusPositionY           = mFocusPositionY;
            this.mFocusCircleRadius        = mFocusCircleRadius;
            this.mFocusRectangleWidth      = mFocusRectangleWidth;
            this.mFocusRectangleHeight     = mFocusRectangleHeight;
            this.mLastTouchDownXY          = mLastTouchDownXY;
            this.mFocusAnimationEnabled    = mFocusAnimationEnabled;

            InitializeParameters();
        }
 /// <summary>
 /// set the custom view layout resource
 /// </summary>
 /// <param name="layoutResource"></param>
 /// <param name="listener"></param>
 /// <returns></returns>
 public Builder CustomView(int layoutResource, OnViewInflateListener listener)
 {
     mCustomViewRes       = layoutResource;
     mViewInflateListener = listener;
     return(this);
 }