= Views = == Basic Views == The basic framework object is a ''view''. Views (windows, menus, controls) are represented by CLOS objects, and are created using ''make-instance''. {{{view ()[class]}}} An abstract superclass of all views (windows, menus, controls). All views support the following initargs: '':view-nick-name'' -- initializes the view nick-name, see set-view-nick-name '':view-subviews'' -- initializes the view subviews, see add-container '':view-size'' -- initializes the view size, see set-view-size '':view-width'' -- initializes the view width (overrides :view-size) '':view-height'' -- initializes the view height (overrides :view-size) '':view-tooltip'' -- initializes the view tooltip, see set-view-tooltip '':view-font'' -- initializes the view font, see set-view-font. '':view-enabled-p'' -- (default true), initializes the enabled/disabled state, see enable-view/disable-view '':view-ref'' --specifies an existing native window system object to base the view on. '':view-command-id'' -- initializes the view command id, see set-view-command-id. {{{(view-p object) [function]}}} True if //object// is a view. {{{(set-view-nick-name view name) [method]}}} Give the view a nick-name //name//, which can be any object. {{{(view-nick-name view) [method]}}} Returns the view's nick-name. {{{(view-named name view) [method]}}} Finds a subview of //view// whose nick-name is ''eql'' to //name//. {{{(view-subviews view &key type) [method]}}} Returns all subviews of //view//, i.e. all views whose view-container is view, optionally restricted to those of type //type//. {{{(add-subviews view &rest subviews) [method]}}} Make //view// be the container for each of the subviews. {{{(remove-subviews view &rest subviews) [method]}}} Remove each of the subviews from //view//. {{{(set-view-width view new-width) [method]}}} Sets the width of //view// to new-width, which must be a non-negative real. {{{(view-width view) [method]}}} Returns the width of //view//. {{{(set-view-height view new-height) [method]}}} Sets the size of //view// to //new-height//, which must be a non-negative real. {{{(view-height view) [method]}}} Returns the height of //view//. {{{(set-view-size view new-size) [method]}}} Sets the size of //view// to //new-size//, which is the height and width encoded as a point. {{{(view-size view) [method]}}} Returns the size (height and width) of //view// as a point. {{{(set-view-tooltip view tooltip) [method]}}} Sets the tooltip of view to //tooltip//, which must be a string or ''nil'' to remove the view's tooltip. The tooltip is shown when the mouse hovers over the view. {{{(view-tooltip view) [method]}}} Returns the tooltip of //view//. {{{(set-view-font view font-spec) [method]}}} Sets the font of //view// to //font-%%spec%%//, overriding the view's default font. Once you have set a view's font with this function, you can cause the view to revert to its default font by passing ''nil'' as the font-%%spec%%. {{{(view-font view) [method]}}} Returns the font of //view//. {{{(enable-view view) [method]}}} Makes //view// enabled, so it will respond to user input when active. {{{(disable-view view) [method]}}} Makes //view// disabled, so it will be drawn grayed out and will not respond to user input. {{{(view-enabled-p view) [method]}}} returns true if view is enabled. {{{(view-active-p view) [method]}}} True if //view// is active (able to accept user input). {{{(invalidate-view view &optional rect) [method]}}} Indicates that the contents of the view has become invalid (typically as a result of changes in the data displayed in the view). The system will arrange for the view to be redrawn. Optionally a rectangle may be specified to indicate that only the portion of the view bound by the rectangle needs to be redrawn. {{{(view-ref view) [method]}}} Returns the native window system object represented by //view//, to allow you to use the native window system directly. ---- ---- // TODO: need non-carbon version of next two: // {{{(set-view-command-id view command-id) [method]}}} Sets the command id for the view. //command-id// may be an ostype or it may be a keyword defined by define-carbon-command-event, q.v. {{{(view-command-id view) [method]}}} Returns the command id of the view, if any, as an ostype, or ''nil'' if the view doesn't have a command id associated with it. //TODO: something for switching cursor based on what view it's in.// //TODO: resizing protocol (window-size-parts in MCL).//