/// <summary>Initialize a new window message-based keyboard device</summary>
    /// <param name="messageSource">Source the window messages are obtained from</param>
    internal WindowMessageKeyboard(IKeyboardMessageSource messageSource) {
      this.bufferKeyPressDelegate = new KeyboardKeyEventDelegate(BufferKeyPress);
      this.bufferKeyReleaseDelegate = new KeyboardKeyEventDelegate(BufferKeyRelease);
      this.bufferCharacterEntryDelegate = new KeyboardCharacterEventDelegate(
        BufferCharacterEntry
      );

      this.messageSource = messageSource;
      this.messageSource.KeyPressed += this.bufferKeyPressDelegate;
      this.messageSource.KeyReleased += this.bufferKeyReleaseDelegate;
      this.messageSource.CharacterEntered += this.bufferCharacterEntryDelegate;
    }
Esempio n. 2
0
        /// <summary>Initialize a new window message-based keyboard device</summary>
        /// <param name="messageSource">Source the window messages are obtained from</param>
        internal WindowMessageKeyboard(IKeyboardMessageSource messageSource)
        {
            this.bufferKeyPressDelegate       = new KeyboardKeyEventDelegate(BufferKeyPress);
            this.bufferKeyReleaseDelegate     = new KeyboardKeyEventDelegate(BufferKeyRelease);
            this.bufferCharacterEntryDelegate = new KeyboardCharacterEventDelegate(
                BufferCharacterEntry
                );

            this.messageSource                   = messageSource;
            this.messageSource.KeyPressed       += this.bufferKeyPressDelegate;
            this.messageSource.KeyReleased      += this.bufferKeyReleaseDelegate;
            this.messageSource.CharacterEntered += this.bufferCharacterEntryDelegate;
        }
        /// <summary>Immediately releases all resources owned by the instance</summary>
        public void Dispose()
        {
            if (this.messageSource != null) {
            this.messageSource.CharacterEntered -= this.bufferCharacterEntryDelegate;
            this.messageSource.KeyReleased -= this.bufferKeyReleaseDelegate;
            this.messageSource.KeyPressed -= this.bufferKeyPressDelegate;

            this.messageSource = null;
              }
        }