def list_menu_multi(self, options, title="<STR_LIT>", message="<STR_LIT>",<EOL>defaults: list=None, **kwargs):
if defaults is None:<EOL><INDENT>defaults = []<EOL><DEDENT>choices = []<EOL>for option in options:<EOL><INDENT>if option in defaults:<EOL><INDENT>choices.append("<STR_LIT>")<EOL><DEDENT>else:<EOL><INDENT>choices.append("<STR_LIT>")<EOL><DEDENT>choices.append(option)<EOL><DEDENT>return_code, output = self._run_zenity(<EOL>title,<EOL>["<STR_LIT>", "<STR_LIT>", "<STR_LIT>", message, "<STR_LIT>", "<STR_LIT:U+0020>", "<STR_LIT>", "<STR_LIT>"] + choices,<EOL>kwargs)<EOL>results = output.split('<STR_LIT:|>')<EOL>return DialogData(return_code, results)<EOL>
Show a multiple-selection list menu

Usage: C{dialog.list_menu_multi(options, title="Choose one or more values", message="Choose one or more values", defaults=[], **kwargs)}

@param options: list of options (strings) for the dialog
@param title: window title for the dialog
@param message: message displayed above the list
@param defaults: list of default values to be selected
@return: a tuple containing the exit code and user choice
@rtype: C{DialogData(int, List[str])}