def _claim(self):
<EOL>if not self.__is_claim_stale:<EOL><INDENT>return False<EOL><DEDENT>for child in self.__children:<EOL><INDENT>child._claim()<EOL><DEDENT>previous_claim = self.__claimed_width, self.__claimed_height<EOL>min_width, min_height = self.do_claim()<EOL>self.__min_width = max(min_width, self.__width_hint)<EOL>self.__min_height = max(min_height, self.__height_hint)<EOL>self.__claimed_width = self.__min_width + self.total_horz_padding<EOL>self.__claimed_height = self.__min_height + self.total_vert_padding<EOL>return previous_claim != (self.__claimed_width, self.__claimed_height)<EOL>
Make sure the widget's claim is up-to-date.

More specifically, this methods updates ``self.__claimed_width`` and 
``self.__claimed_height`` to reflect the current state of the widget and 
its children, then returns whether or not the claim changed since the 
last time this method was called.  If this function is called more than 
once within a single repack (a common scenario because every widget 
depends on the claim of all its children and grandchildren), the first 
call will update the claim and any subsequent calls will simply return 
False without recalculating anything.

When the claim needs to be recalculated, the first step is the update 
the claims made by all the widget's children, since this widget's claim 
will depend on that information.  This is a recursive process that may 
descend all the way down the widget hierarchy.  The next step is to 
delegate the actual calculation of the minimum width and height needed 
*for the contents of the widget (i.e. excluding padding)* to 
`do_claim()`, which should be overridden in `Widget` subclasses.  
Finally, the claim is modified to account for padding and the 
corresponding private attributes are updated.

This method should not be called outside of a repack.  If you're using 
glooey to make a GUI, I can't think of a scenario where you should call 
or override this method.