
@c %start of fragment

@deffn Function atk-state-set-new  @result{}@tie{} (ret@tie{}@code{<atk-state-set>})
Creates a new empty state set.

@table @var
@item ret
a new @code{<atk-state-set>}

@end table

@end deffn

@deffn Function atk-state-set-is-empty  (self@tie{}@code{<atk-state-set>}) @result{}@tie{} (ret@tie{}@code{bool})
@deffnx Method is-empty
Checks whether the state set is empty, i.e. has no states set.

@table @var
@item set
an @code{<atk-state-type>}

@item ret
@samp{@code{#t}} if @var{set} has no states set, otherwise @samp{@code{#f}}

@end table

@end deffn

@deffn Function atk-state-set-add-state  (self@tie{}@code{<atk-state-set>}) (type@tie{}@code{<atk-state-type>}) @result{}@tie{} (ret@tie{}@code{bool})
@deffnx Method add-state
Add a new state for the specified type to the current state set if it is not
already present.

@table @var
@item set
an @code{<atk-state-set>}

@item type
an @code{<atk-state-type>}

@item ret
@samp{@code{#t}} if the state for @var{type} is not already in @var{set}.

@end table

@end deffn

@deffn Function atk-state-set-clear-states  (self@tie{}@code{<atk-state-set>})
@deffnx Method clear-states
Removes all states from the state set.

@table @var
@item set
an @code{<atk-state-set>}

@end table

@end deffn

@deffn Function atk-state-set-contains-state  (self@tie{}@code{<atk-state-set>}) (type@tie{}@code{<atk-state-type>}) @result{}@tie{} (ret@tie{}@code{bool})
@deffnx Method contains-state
Checks whether the state for the specified type is in the specified set.

@table @var
@item set
an @code{<atk-state-set>}

@item type
an @code{<atk-state-type>}

@item ret
@samp{@code{#t}} if @var{type} is the state type is in @var{set}.

@end table

@end deffn

@deffn Function atk-state-set-remove-state  (self@tie{}@code{<atk-state-set>}) (type@tie{}@code{<atk-state-type>}) @result{}@tie{} (ret@tie{}@code{bool})
@deffnx Method remove-state
Removes the state for the specified type from the state set.

@table @var
@item set
an @code{<atk-state-set>}

@item type
an @code{<atk-type>}

@item ret
@samp{@code{#t}} if @var{type} was the state type is in @var{set}.

@end table

@end deffn

@deffn Function atk-state-set-and-sets  (self@tie{}@code{<atk-state-set>}) (compare_set@tie{}@code{<atk-state-set>}) @result{}@tie{} (ret@tie{}@code{<atk-state-set>})
@deffnx Method and-sets
Constructs the intersection of the two sets, returning @samp{@code{#f}} if the
intersection is empty.

@table @var
@item set
an @code{<atk-state-set>}

@item compare-set
another @code{<atk-state-set>}

@item ret
a new @code{<atk-state-set>} which is the intersection of the two sets.

@end table

@end deffn

@deffn Function atk-state-set-or-sets  (self@tie{}@code{<atk-state-set>}) (compare_set@tie{}@code{<atk-state-set>}) @result{}@tie{} (ret@tie{}@code{<atk-state-set>})
@deffnx Method or-sets
Constructs the union of the two sets.

@table @var
@item set
an @code{<atk-state-set>}

@item compare-set
another @code{<atk-state-set>}

@item ret
a new @code{<atk-state-set>} which is the union of the two sets, returning
@samp{@code{#f}} is empty.

@end table

@end deffn

@deffn Function atk-state-set-xor-sets  (self@tie{}@code{<atk-state-set>}) (compare_set@tie{}@code{<atk-state-set>}) @result{}@tie{} (ret@tie{}@code{<atk-state-set>})
@deffnx Method xor-sets
Constructs the exclusive-or of the two sets, returning @samp{@code{#f}} is
empty. The set returned by this operation contains the states in exactly one of
the two sets.

@table @var
@item set
an @code{<atk-state-set>}

@item compare-set
another @code{<atk-state-set>}

@item ret
a new @code{<atk-state-set>} which contains the states which are in exactly one
of the two sets.

@end table

@end deffn


@c %end of fragment
