static bool parseSettingValue()

in skiko/src/awtMain/cpp/linux/theme.cc [194:210]


    static bool parseSettingValue(DBusMessage *message, int type, void *value)
    {
        DBusMessageIter messageIter[3];

        if(!dbus_message_iter_init_dynamic(message, &messageIter[0])) return false;
        if (dbus_message_iter_get_arg_type_dynamic(&messageIter[0]) != DBUS_TYPE_VARIANT) return false;

        if(!dbus_message_iter_recurse_dynamic(&messageIter[0], &messageIter[1])) return false;
        if (dbus_message_iter_get_arg_type_dynamic(&messageIter[1]) != DBUS_TYPE_VARIANT) return false;

        if(!dbus_message_iter_recurse_dynamic(&messageIter[1], &messageIter[2])) return false;
        if (dbus_message_iter_get_arg_type_dynamic(&messageIter[2]) != type) return false;

        if(!dbus_message_iter_get_basic_dynamic(&messageIter[2], value)) return false;

        return true;
    }