/// <summary>
        /// Draws the splitter bar at the current location. Will automatically cleanup anyplace the splitter was drawn previously.
        /// </summary>
        void DrawSplitterRect(SplitBarDrawMode mode)
        {
            Trace.WriteLine("Split Draw: " + _currentHSplitterRect + ", " + _lastHSplitterRect + ", " + _currentVSplitterRect + ", " + _lastVSplitterRect);

            if (mode != SplitBarDrawMode.Start && this._currentSplitterHaveBeenDrawn)
            {
                DrawSplitterRectIntl(_lastHSplitterRect, _lastVSplitterRect);
                this._currentSplitterHaveBeenDrawn = false;
            }
            else if (mode != SplitBarDrawMode.Start && !this._currentSplitterHaveBeenDrawn)
            {
                return;
            }

            if (mode != SplitBarDrawMode.End)
            {
                DrawSplitterRectIntl(_currentHSplitterRect, _currentVSplitterRect);

                this._lastHSplitterRect            = _currentHSplitterRect;
                this._lastVSplitterRect            = _currentVSplitterRect;
                this._currentSplitterHaveBeenDrawn = true;
            }
            else
            {
                if (this._currentSplitterHaveBeenDrawn)
                {
                    DrawSplitterRectIntl(this._lastHSplitterRect, this._lastVSplitterRect);
                }

                this._currentSplitterHaveBeenDrawn = false;
            }
        }
		/// <summary>
		/// Draws the splitter bar at the current location. Will automatically cleanup anyplace the splitter was drawn previously.
		/// </summary>
		void DrawSplitterRect(SplitBarDrawMode mode)
		{
			Trace.WriteLine("Split Draw: " + _currentHSplitterRect + ", " + _lastHSplitterRect + ", " + _currentVSplitterRect + ", " + _lastVSplitterRect);

			if (mode != SplitBarDrawMode.Start && this._currentSplitterHaveBeenDrawn)
			{
				DrawSplitterRectIntl(_lastHSplitterRect, _lastVSplitterRect);
				this._currentSplitterHaveBeenDrawn = false;
			}
			else if (mode != SplitBarDrawMode.Start && !this._currentSplitterHaveBeenDrawn)
			{
				return;
			}

			if (mode != SplitBarDrawMode.End)
			{
				DrawSplitterRectIntl(_currentHSplitterRect, _currentVSplitterRect);

				this._lastHSplitterRect            = _currentHSplitterRect;
				this._lastVSplitterRect            = _currentVSplitterRect;
				this._currentSplitterHaveBeenDrawn = true;
			}
			else
			{
				if (this._currentSplitterHaveBeenDrawn)
				{
					DrawSplitterRectIntl(this._lastHSplitterRect, this._lastVSplitterRect);
				}

				this._currentSplitterHaveBeenDrawn = false;
			}
		}