Member variable XbpBrowse():drawMode Foundation

Specifies the drawing mode of the browse object.

Attribute: EXPORTED
Data type: Numeric (XBP_DRAW_NORMAL)

The :drawMode instance variable specifies the mode used to display the XbpBrowse on the screen. In the default draw mode (XBP_DRAW_NORMAL), the operating system takes full control over the drawing process. In this mode, a browser object is displayed using default imagery and the object's appearance cannot be controlled by the application. However, this default behaviour can be overriden. If the value XBP_DRAW_OWNER or XBP_DRAW_OWNERADVANCED is assigned to the :drawMode instance variable, no drawing is performed by the operating system. Instead, the Xbase++ runtime system uses xbeP_CustomDrawCell()events to notify the application whenever cells of the XbpBrowse need to be redrawn. The application is responsible for processing this event, and for creating the cell on-screen visualization. For this, the Graphics Engine commands can be used.

This protocol is called owner-drawing because it is the responsibility of the browser's owner to display the browse. Using owner-drawing, an application can customize the visualization and the behaviour of an XbpBrowse object.

Possible values for instance variable :drawMode
Value Effect
XBP_DRAW_NORMAL *) Cells of the browse object are drawn by the system
XBP_DRAW_OWNER Caption or image within the cells of the object may be drawn by the application.
XBP_DRAW_OWNERADVANCED All elements of the browse object may be drawn by the application.
  1. Default value

The drawing mode must be assigned to :drawMode before the method :create() is executed.

An XbpBrowse uses XbpColumn objects to maintain column data. Changing the drawing mode of an XbpBrowse object also affects the way its columns are being drawn. Enabling owner-drawing for an XbpBrowse object implicitly makes all columns owner-drawn. If this behaviour is not desired, owner-drawing may be selectively enabled or disabled for each column by changing the XbpCellGroup:drawMode setting.


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.