static int
SaveSubWindowAttributes_print(PyObject *v, FILE *fp, int flags)
{
    SaveSubWindowAttributesObject *obj = (SaveSubWindowAttributesObject *)v;
    fprintf(fp, "%s", PySaveSubWindowAttributes_ToString(obj->data, "").c_str());
    return 0;
}
std::string
PySaveSubWindowAttributes_GetLogString()
{
    std::string s("SaveSubWindowAtts = SaveSubWindowAttributes()\n");
    if(currentAtts != 0)
        s += PySaveSubWindowAttributes_ToString(currentAtts, "SaveSubWindowAtts.");
    return s;
}
static void
PySaveSubWindowAttributes_CallLogRoutine(Subject *subj, void *data)
{
    typedef void (*logCallback)(const std::string &);
    logCallback cb = (logCallback)data;

    if(cb != 0)
    {
        std::string s("SaveSubWindowAtts = SaveSubWindowAttributes()\n");
        s += PySaveSubWindowAttributes_ToString(currentAtts, "SaveSubWindowAtts.");
        cb(s);
    }
}
PyObject *
SaveSubWindowAttributes_str(PyObject *v)
{
    SaveSubWindowAttributesObject *obj = (SaveSubWindowAttributesObject *)v;
    return PyString_FromString(PySaveSubWindowAttributes_ToString(obj->data,"").c_str());
}
std::string
PySaveSubWindowsAttributes_ToString(const SaveSubWindowsAttributes *atts, const char *prefix)
{
    std::string str;
    char tmpStr[1000];

    // To squelch a warning
    (void)tmpStr;
    { // new scope
        std::string objPrefix(prefix);
        objPrefix += "win1.";
        str += PySaveSubWindowAttributes_ToString(&atts->GetWin1(), objPrefix.c_str());
    }
    { // new scope
        std::string objPrefix(prefix);
        objPrefix += "win2.";
        str += PySaveSubWindowAttributes_ToString(&atts->GetWin2(), objPrefix.c_str());
    }
    { // new scope
        std::string objPrefix(prefix);
        objPrefix += "win3.";
        str += PySaveSubWindowAttributes_ToString(&atts->GetWin3(), objPrefix.c_str());
    }
    { // new scope
        std::string objPrefix(prefix);
        objPrefix += "win4.";
        str += PySaveSubWindowAttributes_ToString(&atts->GetWin4(), objPrefix.c_str());
    }
    { // new scope
        std::string objPrefix(prefix);
        objPrefix += "win5.";
        str += PySaveSubWindowAttributes_ToString(&atts->GetWin5(), objPrefix.c_str());
    }
    { // new scope
        std::string objPrefix(prefix);
        objPrefix += "win6.";
        str += PySaveSubWindowAttributes_ToString(&atts->GetWin6(), objPrefix.c_str());
    }
    { // new scope
        std::string objPrefix(prefix);
        objPrefix += "win7.";
        str += PySaveSubWindowAttributes_ToString(&atts->GetWin7(), objPrefix.c_str());
    }
    { // new scope
        std::string objPrefix(prefix);
        objPrefix += "win8.";
        str += PySaveSubWindowAttributes_ToString(&atts->GetWin8(), objPrefix.c_str());
    }
    { // new scope
        std::string objPrefix(prefix);
        objPrefix += "win9.";
        str += PySaveSubWindowAttributes_ToString(&atts->GetWin9(), objPrefix.c_str());
    }
    { // new scope
        std::string objPrefix(prefix);
        objPrefix += "win10.";
        str += PySaveSubWindowAttributes_ToString(&atts->GetWin10(), objPrefix.c_str());
    }
    { // new scope
        std::string objPrefix(prefix);
        objPrefix += "win11.";
        str += PySaveSubWindowAttributes_ToString(&atts->GetWin11(), objPrefix.c_str());
    }
    { // new scope
        std::string objPrefix(prefix);
        objPrefix += "win12.";
        str += PySaveSubWindowAttributes_ToString(&atts->GetWin12(), objPrefix.c_str());
    }
    { // new scope
        std::string objPrefix(prefix);
        objPrefix += "win13.";
        str += PySaveSubWindowAttributes_ToString(&atts->GetWin13(), objPrefix.c_str());
    }
    { // new scope
        std::string objPrefix(prefix);
        objPrefix += "win14.";
        str += PySaveSubWindowAttributes_ToString(&atts->GetWin14(), objPrefix.c_str());
    }
    { // new scope
        std::string objPrefix(prefix);
        objPrefix += "win15.";
        str += PySaveSubWindowAttributes_ToString(&atts->GetWin15(), objPrefix.c_str());
    }
    { // new scope
        std::string objPrefix(prefix);
        objPrefix += "win16.";
        str += PySaveSubWindowAttributes_ToString(&atts->GetWin16(), objPrefix.c_str());
    }
    return str;
}