def _build_menu(category):
        """
        Builds menu options for a category

        May return None if errors occured
        """
        is_positions = category == FilterSprite.POS

        selections = FilterSprite._sprite_map.get(category, None)
        if selections is None:
            return None

        sorted_keys = sorted(selections.keys())

        menu = []

        # now the items
        for code in sorted_keys:
            name = selections[code]
            if is_positions and type(name) is not str:
                menu.append((StaticSprite.lean_tostring(name), code))

            else:
                menu.append((name, code))

        return menu
    def _status(self, useheader, headerstring, shownose, showemote):
        """
        Builds string representation of this Filter according to given
        status props
        :param useheader: True will use the block header from menutils,
            False will not
        :param headerstring: the string to use in the header
        :param shownose: True will show the nose part of the filter, False
            will not
        :param showemote: True will show the emote part of the filter, False
            will not
        """
        # setup initial strings
        if useheader:
            msg = [menutils.header(headerstring)]
        else:
            msg = [self._tab + headerstring]

        # lean and position check
        if self.position is None:
            position = None
            is_lean = None
        elif self.is_lean:
            position = StaticSprite.lean_tostring(self.position)
            is_lean = True
        else:
            position = self.position
            is_lean = self.is_lean

        # now add each filter piece
        self.__fmt_flt(msg, "Position:", position)
        self.__fmt_flt(msg, "Is Lean:", is_lean)
        self.__fmt_flt(msg, "Eyes:", self.eyes)
        self.__fmt_flt(msg, "Eyebrows:", self.eyebrows)
        if shownose:
            self.__fmt_flt(msg, "Nose:", self.nose)
        self.__fmt_flt(msg, "Blush:", self.blush)
        self.__fmt_flt(msg, "Tears:", self.tears)
        self.__fmt_flt(msg, "Sweatdrop:", self.sweatdrop)
        if showemote:
            self.__fmt_flt(msg, "Emote:", self.emote)
        self.__fmt_flt(msg, "Mouth:", self.mouth)

        return "".join(msg)