Provided by: ivtools-dev_2.0.11d.a1-3build1_amd64 bug

NAME

       Subject - object with views

SYNOPSIS

       #include <InterViews/subject.h>

DESCRIPTION

       A  subject  is  an  object  that  has  one  or  more views that it wishes to notify when it changes.  The
       SubjectIteractor class can be used if it  is  necessary  to  iterate  through  the  views  of  a  subject
       explicitly.

       Because subjects are shared, Subject is a subclass of Resource.  To allow for the possibility of multiple
       inheritance, in which case only a single copy of resource information should be maintained, Resource is a
       virtual base class.

PUBLIC OPERATIONS

       enum UpdateHint {
           attaching, detaching, setting, changing
       }
              This  type  enumerates possible hints when a subject is notifying a view that it has changed.  The
              attaching hint indicates that a view has attached to the subject.  The detaching hint  means  that
              the subject is being deleted and the view should consider itself detached.  The setting hint means
              that the subject's value has been set, though possibly to the same value as it already  has.   The
              changing hint means that the value is set to something different than it was previously.

       virtual void attach(View*)
              Add a view to the subject's list.

       virtual void detach(View*)
              Remove a view from the subject's list.

       virtual void notify(UpdateHint = changing)
              Notify all the views of a subject that it has been updated.

       virtual boolean viewed_by(View*)
              Return whether a given view is on the subject's list of views.

       virtual void Attach(Interactor*)
              This  function is equivalent to attach and is provided solely for backward compatibility.  It will
              be removed in a future version.

       virtual void Detach(Interactor*)
              This function is equivalent to detach and is provided solely for backward compatibility.  It  will
              be removed in a future version.

       virtual void Notify()
              This function is equivalent to notify(changing) and is provided solely for backward compatibility.
              It will be removed in a future version.

       boolean IsView(Interactor*)
              This function is equivalent to viewed_by and is provided solely for  backward  compatibility.   It
              will be removed in a future version.

SUBJECTITERATOR OPERATIONS

       A subject iterator can be used to iterate through the views in a subject.

       SubjectIterator(Subject*)
              Create  a  subject  iterator  for  the  given  subject.  The iterator is only valid as long as the
              subject exists.

       virtual void init()
              Reset the iteration to start at the beginning of the  list.   This  operation  is  called  by  the
              constructor.

       virtual boolean more()
              Return whether there are more views in the list.

       virtual View* cur()
              Return the current view.

       virtual void remove()
              Remove the current view from the list.

       virtual void next()
              Move the iteration to the next view in the list.

SEE ALSO

       View(3I)