Example #1
0
def _ShowPromotionNotification(promotion: _Promotion) -> None:
    notificationArguments = {
        "text":
        lambda *args, **kwargs: Language.CreateLocalizationString(promotion.
                                                                  Text)
    }

    if promotion.Link is not None:
        if promotion.LinkButton is not None:
            linkResponseText = lambda *args, **kwargs: Language.CreateLocalizationString(
                promotion.LinkButton)
        else:
            linkResponseText = PromotionDefaultButton.GetCallableLocalizationString(
            )

        linkResponseCommand = collections.make_immutable_slots_class(
            ("command", "arguments"))

        linkResponseArguments = [
            collections.make_immutable_slots_class(("arg_value", "arg_type"))
        ]

        linkResponseArguments[0] = linkResponseArguments[0]({
            "arg_value":
            codecs.encode(bytearray(promotion.Link, "utf-8"),
                          "hex").decode("utf-8"),
            "arg_type":
            ui_dialog.CommandArgType.ARG_TYPE_STRING
        })

        linkResponseCommand = linkResponseCommand({
            "command":
            This.Mod.Namespace.lower() + ".distribution.show_url",
            "arguments":
            linkResponseArguments
        })

        linkResponse = ui_dialog.UiDialogResponse(
            text=linkResponseText,
            ui_request=ui_dialog.UiDialogResponse.UiDialogUiRequest.
            SEND_COMMAND,
            response_command=linkResponseCommand)

        notificationArguments["ui_responses"] = (linkResponse, )

    if promotion.Title is not None:
        notificationArguments[
            "title"] = lambda *args, **kwargs: Language.CreateLocalizationString(
                promotion.Title)
    else:
        notificationArguments[
            "title"] = PromotionDefaultTitle.GetCallableLocalizationString()

    Notifications.ShowNotification(queue=True, **notificationArguments)
Example #2
0
def BuildText(
    parts: typing.List[typing.Union[localization.LocalizedString, str, int,
                                    float]]
) -> localization.LocalizedString:
    """
	Create new The Sims 4 localized strings by combining any localized string, string, int, or float together.
	:param parts: Parts to combined together to create the new localized string.
	:type parts: typing.List[typing.Union[localization.LocalizedString, str, int, float]]
	"""

    if not isinstance(parts, list):
        raise Exceptions.IncorrectTypeException(parts, "parts", (list, ))

    for partIndex in range(len(parts)):  # type: int
        part = parts[
            partIndex]  # type: typing.Union[localization.LocalizedString, str, int, float]
        if not isinstance(part,
                          (localization.LocalizedString, str, int, float)):
            raise Exceptions.IncorrectTypeException(
                part, "parts[%s]" % partIndex,
                (localization.LocalizedString, str, int, float))

        if isinstance(part, (int, float)):
            parts[partIndex] = str(part)

    if len(parts) == 0:
        return Language.CreateLocalizationString("")

    lastString = None  # type: typing.Optional[localization.LocalizedString]

    for part in reversed(
            parts
    ):  # type: typing.Union[localization.LocalizedString, str, int, float]
        partString = _GetFormattingText()  # type: localization.LocalizedString
        partStringTokens = (part, )

        if lastString is not None:
            partStringTokens += (lastString, )

        Language.AddTokens(partString, *partStringTokens)
        lastString = partString

    return lastString
Example #3
0
	def _GetDescriptionSettingText (self, setting: UISettingsShared.SettingWrapper) -> localization.LocalizedString:
		return Language.CreateLocalizationString("**")
Example #4
0
	def GetValueText (cls, value: typing.Any) -> localization.LocalizedString:
		return Language.CreateLocalizationString("**")
Example #5
0
	def GetDefaultText (cls) -> localization.LocalizedString:
		return Language.CreateLocalizationString("**")
Example #6
0
	def _GetRowListPathDescriptionText (self, listPath: str) -> localization.LocalizedString:
		return Language.CreateLocalizationString("")
Example #7
0
	def _GetTitleListPathText (self, listPath: str) -> localization.LocalizedString:
		return Language.CreateLocalizationString(listPath.rsplit(self.ListPathSeparator, 1)[-1])