/// <summary>
            /// set monitoed elem + invoke 1st mouse press event
            /// </summary>
            /// <param name="ui"></param>
            public void SetMonitoredElement(IUIEventListener ui)
            {
#if DEBUG
                if (ui == null)
                {
                    System.Diagnostics.Debugger.Break();
                }
#endif

                _currentMonitoredElem = ui;
                _mousePressCount      = 0;
                _mousePressEventArgs.CurrentContextElement = ui;
                _currentMonitoredElem.ListenMousePress(_mousePressEventArgs);
            }
            public MousePressMonitorHelper(int intervalMs)
            {
                _intervalMs           = intervalMs;
                _mousePressCount      = 0;
                _currentMonitoredElem = null;
                _mousePressEventArgs  = new UIMousePressEventArgs();

                _mousePressMonitor = new UITimerTask(t =>
                {
                    if (_currentMonitoredElem != null)
                    {
                        //invoke mouse press event
                        if (_mousePressCount > 0)
                        {
                            _currentMonitoredElem.ListenMousePress(_mousePressEventArgs);
                        }
                        _mousePressCount++;
                    }
                });
                _mousePressMonitor.Enabled  = true;
                _mousePressMonitor.Interval = intervalMs; //interval for mouse press monitor
                UIPlatform.RegisterTimerTask(_mousePressMonitor);
            }