[HemlockProgrammer Back to Table of Contents] [[PageOutline]] = 10. Controlling the Display = == 10.1. Views ==#Views A `hemlock-view` represents the GUI object(s) used to display the contents of a buffer. Conceptually it consists of a text buffer, a modeline for semi-permanent status info, an echo area for transient status info, and a text input area for reading prompted input. (Currently the last two are conflated, i.e. text input happens in the echo area). The API for working with hemlock-views is not fully defined yet. If you need to work with views beyond what's listed here, you will probably need to get in the sources and find some internal functions to call. == 10.2. The Current View ==#CurrentView `current-view` [Function] current-view returns the hemlock view which is the target of the currently executing command. This is usually the frontmost hemlock window in the current application. == 10.3. View Functions ==#ViewFunctions `hemlock-view-p` object [Function] This function returns t if object is a hemlock view, otherwise nil. `hemlock-view-buffer` view [Function] This function returns the buffer which is displayed in the view. == 10.4. Cursor Positions ==#CursorPositions `mark-column` mark [Function] This function returns the X position at which mark would be displayed, supposing its line was displayed on an infinitely wide screen. This takes into consideration strange characters such as tabs. `move-to-column` mark column &optional line [Function] This function is analogous to move-to-position (page 5), except that it moves mark to the position on line which corresponds to the specified column. If the line would not reach to the specified column, then nil is returned and mark is not modified. Note that since a character may be displayed on more than one column on the screen, several different values of column may cause mark to be moved to the same position. == 10.5. Redisplay ==#Redisplay The display of the buffer contents on the screen is updated at the end of each command. The following function can be used to control the scroll position of the buffer in the view. `set-scroll-position` how &optional what [Function] Normally, after a command that changes the contents of the buffer or the selection (i.e. the active region), the event handler repositions the view so that the selection is visible, scrolling the buffer as necessary. Calling this function tells the system to not do that, and instead to position the buffer in a particular way. `how` can be one of the following: :center-selection:: This causes the selection (or the point) to be centered in the visible area. `what` is ignored. :page-up:: This causes the previous page of the buffer to be shown `what` is ignored. :page-down:: This causes the next page of the buffer to be shown. `what` is ignored. :lines-up:: This causes `what` previous lines to be scrolled in at the top. `what` must be an integer. :lines-down:: This causes `what` next lines to be scrolled in at the bottom. `what` must be an integer. :line:: This causes the line containing `what` to be scrolled to the top of the view. `what` must be a mark. [HemlockProgrammer Back to Table of Contents]