Classes

Member variable XbpSLE():autoKeyboard Foundation

(De)Activates automatic processing of keyboard events.

Attribute: EXPORTED
Data type: Logical (.F.)
Description

By default, the instance variable :autoKeyboard contains .F. (false). This causes an XbpSLE object to process all keyboard input through the method :keyboard(). :keyboard() is responsible for updating the object's edit buffer. Unless a non-standard event loop is implemented in an Xbase++ application, each key pressed in an XbpSLE object is automatically routed to the method :keyboard(), and is subsequently added to the edit buffer.

If the behaviour of a certain key must be modified, the :keyboard()must be overloaded in a class derived from XbpSLE. For each key that should be entered into the edit buffer, the implementation of method :keyboard() in the base class (XbpSLE) must be invoked. This is illustrated in the following code:

CLASS MyXbpSLE FROM XbpSLE 
  EXPORTED: 
    INLINE METHOD keyboard( nKey ) 
      // Remove "left arrow" key-presses from 
      // the input stream. The cursor cannot 
      // moved to the left via the keyboard. 
     IF nKey == xbeK_LEFT 
        RETURN self 
     ENDIF 
  RETURN ::XbpSLE:Keyboard(nKey) 
ENDCLASS 

If the value .T. (true) is assigned to :autoKeyboard, each key is automically inserted into the edit buffer of an XbpSLE object. However, no default keyboard processing occurs in this mode. System keys such as the TAB key may behave unexpectantly or have no effect. Therefore, it is recommended to leave :autoKeyboard on its default setting.

Feedback

If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.