⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 todo.cpp

📁 funambol windows mobile plugin source code, the source code is taken from the funambol site
💻 CPP
📖 第 1 页 / 共 3 页
字号:
        insertProperty(getVPropertyFromiCalProperty(TEXT("COMMENT"), (iCalProperty*)list[i]));
    }
}
void ToDo::setContact(ArrayList& list) {
    if (contact) {
        contact->clear();
    } else {
        contact = new ArrayList();
    }
    removeAllProperies(TEXT("CONTACT"));
    int s = list.size();
    for (int i=0; i<s; ++i) {
        contact->add(*list[i]);
        insertProperty(getVPropertyFromiCalProperty(TEXT("CONTACT"), (iCalProperty*)list[i]));
    }
}
void ToDo::setExDate(ArrayList& list) {
    if (exDate) {
        exDate->clear();
    } else {
        exDate = new ArrayList();
    }
    removeAllProperies(TEXT("EXDATE"));
    int s = list.size();
    for (int i=0; i<s; ++i) {
        exDate->add(*list[i]);
        insertProperty(getVPropertyFromiCalProperty(TEXT("EXDATE"), (iCalProperty*)list[i]));
    }
}
void ToDo::setExRule(ArrayList& list) {
    if (exRule) {
        exRule->clear();
    } else {
        exRule = new ArrayList();
    }
    removeAllProperies(TEXT("EXRULE"));
    int s = list.size();
    for (int i=0; i<s; ++i) {
        exRule->add(*list[i]);
        insertProperty(getVPropertyFromiCalProperty(TEXT("EXRULE"), (iCalProperty*)list[i]));
    }
}
void ToDo::setRStatus(ArrayList& list) {
    if (rStatus) {
        rStatus->clear();
    } else {
        rStatus = new ArrayList();
    }
    removeAllProperies(TEXT("REQUEST-STATUS"));
    int s = list.size();
    for (int i=0; i<s; ++i) {
        rStatus->add(*list[i]);
        insertProperty(getVPropertyFromiCalProperty(TEXT("REQUEST-STATUS"), (iCalProperty*)list[i]));
    }
}
void ToDo::setRelated(ArrayList& list) {
    if (related) {
        related->clear();
    } else {
        related = new ArrayList();
    }
    removeAllProperies(TEXT("RELATED"));
    int s = list.size();
    for (int i=0; i<s; ++i) {
        related->add(*list[i]);
        insertProperty(getVPropertyFromiCalProperty(TEXT("RELATED"), (iCalProperty*)list[i]));
    }
}
void ToDo::setResources(ArrayList& list) {
    if (resources) {
        resources->clear();
    } else {
        resources = new ArrayList();
    }
    removeAllProperies(TEXT("RESOURCES"));
    int s = list.size();
    for (int i=0; i<s; ++i) {
        resources->add(*list[i]);
        insertProperty(getVPropertyFromiCalProperty(TEXT("RESOURCES"), (iCalProperty*)list[i]));
    }
}
void ToDo::setRDate(ArrayList& list) {
    if (rDate) {
        rDate->clear();
    } else {
        rDate = new ArrayList();
    }
    removeAllProperies(TEXT("RDATE"));
    int s = list.size();
    for (int i=0; i<s; ++i) {
        rDate->add(*list[i]);
        insertProperty(getVPropertyFromiCalProperty(TEXT("RDATE"), (iCalProperty*)list[i]));
    }
}
void ToDo::setRRule(ArrayList& list) {
    if (rRule) {
        rRule->clear();
    } else {
        rRule = new ArrayList();
    }
    removeAllProperies(TEXT("RRULE"));
    int s = list.size();
    for (int i=0; i<s; ++i) {
        rRule->add(*list[i]);
        insertProperty(getVPropertyFromiCalProperty(TEXT("RRULE"), (iCalProperty*)list[i]));
    }
}
void ToDo::setXProp(ArrayList& list) {
    if (xProp) {
        xProp->clear();
    } else {
        xProp = new ArrayList();
    }
    for(int i = 0, m = propertiesCount(); i < m ; i++)
        if(wcsstr(getProperty(i)->getName(),TEXT("X-")) == getProperty(i)->getName()) {
            removeProperty(i);
            --i;
            --m;
        }
        int s = list.size();
        for (int j=0; j<s; ++j) {
            xProp->add(*list[j]);
            insertProperty(new VProperty(
                                    ((WKeyValuePair*)list[j])->getKey(),
                                    ((WKeyValuePair*)list[j])->getValue()));
        }
}

ArrayElement* ToDo::clone() {
    ToDo* ret = new ToDo();
    if (getClass()) ret->setClass(*classEvent);
    if (getCompleted()) ret->setCompleted(*completed);
    if (getCreated()) ret->setCreated(*created);
    if (getDescription()) ret->setDescription(*description);
    if (getDtStamp()) ret->setDtStamp(*dtStamp);
    if (getDtStart()) ret->setDtStart(*dtStart);
    if (getGeo()) ret->setGeo(*geo);
    if (getLastMod()) ret->setLastMod(*lastMod);
    if (getLocation()) ret->setLocation(*location);
    if (getOrganizer()) ret->setOrganizer(*organizer);
    if (getPercent()) ret->setPercent(*percent);
    if (getPriority()) ret->setPriority(*priority);
    if (getRecurID()) ret->setRecurID(*recurID);
    if (getSequence()) ret->setSequence(*seq);
    if (getStatus()) ret->setStatus(*status);
    if (getSummary()) ret->setSummary(*summary);
    if (getUid()) ret->setUid(*uid);
    if (getUrl()) ret->setUrl(*url);
    if (getDue()) ret->setDue(*due);
    if (getDuration()) ret->setDuration(*duration);
    if (getAttach()) ret->setAttach(*attach);
    if (getAttendee()) ret->setAttendee(*attendee);
    if (getCategories()) ret->setCategories(*categories);
    if (getComment()) ret->setComment(*comment);
    if (getContact()) ret->setContact(*contact);
    if (getExDate()) ret->setExDate(*exDate);
    if (getExRule()) ret->setExRule(*exRule);
    if (getRStatus()) ret->setRStatus(*rStatus);
    if (getRelated()) ret->setRelated(*related);
    if (getResources()) ret->setResources(*resources);
    if (getRDate()) ret->setRDate(*rDate);
    if (getRRule()) ret->setRRule(*rRule);
    if (getXProp()) ret->setXProp(*xProp);

    return ret;
}
WCHAR* ToDo::toString() {
    if(propertiesCount()<1 ||
        wcscmp(getProperty(0)->getName(),TEXT("BEGIN")) ||
        wcscmp(getProperty(0)->getValue(),TEXT("VTODO")) ||
        wcscmp(getProperty(propertiesCount()-1)->getName(),TEXT("END")) ||
        wcscmp(getProperty(propertiesCount()-1)->getValue(),TEXT("VTODO"))) {

            addFirstProperty(new VProperty(TEXT("BEGIN"), TEXT("VTODO")));
            addProperty(new VProperty(TEXT("END"), TEXT("VTODO")));
        }

        return ((VObject*)this)->toString();
}

iCalProperty* ToDo::getiCalPropertyFromVProperty(VProperty* vp) {
    if (vp) {
        iCalProperty *prop = new iCalProperty(vp->getValue());
        if(vp->getParameterValue(TEXT("ALTREP")))
            prop->setAltre(vp->getParameterValue(TEXT("ALTREP")));
        if(vp->getParameterValue(TEXT("CN")))
            prop->setCn(vp->getParameterValue(TEXT("CN")));
        if(vp->getParameterValue(TEXT("CUTYPE")))
            prop->setAltre(vp->getParameterValue(TEXT("CUTYPE")));
        if(vp->getParameterValue(TEXT("DELEGATED-FROM")))
            prop->setDelegatedFrom(vp->getParameterValue(TEXT("DELEGATED-FROM")));
        if(vp->getParameterValue(TEXT("DELEGATED-TO")))
            prop->setDelegatedTo(vp->getParameterValue(TEXT("DELEGATED-TO")));
        if(vp->getParameterValue(TEXT("DIR")))
            prop->setDir(vp->getParameterValue(TEXT("DIR")));
        if(vp->getParameterValue(TEXT("ENCODING")))
            prop->setEncoding(vp->getParameterValue(TEXT("ENCODING")));
        if(vp->getParameterValue(TEXT("FMTTYPE")))
            prop->setFormatType(vp->getParameterValue(TEXT("FMTTYPE")));
        if(vp->getParameterValue(TEXT("FBTYPE")))
            prop->setFbType(vp->getParameterValue(TEXT("FBTYPE")));
        if(vp->getParameterValue(TEXT("LANGUAGE")))
            prop->setLanguage(vp->getParameterValue(TEXT("LANGUAGE")));
        if(vp->getParameterValue(TEXT("MEMBER")))
            prop->setMember(vp->getParameterValue(TEXT("MEMBER")));
        if(vp->getParameterValue(TEXT("PARTSTAT")))
            prop->setPartStat(vp->getParameterValue(TEXT("PARTSTAT")));
        if(vp->getParameterValue(TEXT("RANGE")))
            prop->setRange(vp->getParameterValue(TEXT("RANGE")));
        if(vp->getParameterValue(TEXT("RELATED")))
            prop->setTrigRel(vp->getParameterValue(TEXT("RELATED")));
        if(vp->getParameterValue(TEXT("RELTYPE")))
            prop->setRelated(vp->getParameterValue(TEXT("RELTYPE")));
        if(vp->getParameterValue(TEXT("ROLE")))
            prop->setRole(vp->getParameterValue(TEXT("ROLE")));
        if(vp->getParameterValue(TEXT("RSVP")))
            prop->setRsvp(vp->getParameterValue(TEXT("RSVP")));
        if(vp->getParameterValue(TEXT("SENT-BY")))
            prop->setSentBy(vp->getParameterValue(TEXT("SENT-BY")));
        if(vp->getParameterValue(TEXT("TZID")))
            prop->setTzID(vp->getParameterValue(TEXT("TZID")));
        if(vp->getParameterValue(TEXT("VALUE")))
            prop->setValueType(vp->getParameterValue(TEXT("VALUE")));

        ArrayList* xParamList = NULL;
        WKeyValuePair* xTagParam = NULL;
        WCHAR* xParamName = NULL;
        for(int i = 0; i < vp->parameterCount(); i++) {
            if(wcsstr(vp->getParameter(i),TEXT("X-")) == vp->getParameter(i)) {
                xParamName = new WCHAR[wcslen(vp->getParameter(i)) + 1];
                wcscpy(xParamName, vp->getParameter(i));

                xTagParam = new WKeyValuePair();
                xTagParam->setKey(xParamName);
                if(vp->getParameterValue(xParamName))
                    xTagParam->setValue(vp->getParameterValue(xParamName));
                if(!xParamList)
                    xParamList = new ArrayList();
                xParamList->add((ArrayElement&) *xTagParam);
                delete [] xParamName; xParamName = NULL;
                delete xTagParam; xTagParam = NULL;
            }
        }
        if(xParamList)
            prop->setXParam(*xParamList);
        delete xParamList; xParamList = NULL;

        return prop;
    }
    else
        return NULL;

}
VProperty* ToDo::getVPropertyFromiCalProperty(WCHAR* name, iCalProperty* prop) {
    if(name && prop) {
        VProperty *vprop = new VProperty(name, prop->getValue());

        if(prop->getAltre())
            vprop->addParameter(TEXT("ALTREP"), prop->getAltre());
        if(prop->getCn())
            vprop->addParameter(TEXT("CN"), prop->getCn());
        if(prop->getCutype())
            vprop->addParameter(TEXT("CUTYPE"), prop->getCutype());
        if(prop->getDelegatedFrom())
            vprop->addParameter(TEXT("DELEGATED-FROM"), prop->getDelegatedFrom());
        if(prop->getDelegatedTo())
            vprop->addParameter(TEXT("DELEGATED-TO"), prop->getDelegatedTo());
        if(prop->getDir())
            vprop->addParameter(TEXT("DIR"), prop->getDir());
        if(prop->getEncoding())
            vprop->addParameter(TEXT("ENCODING"), prop->getEncoding());
        if(prop->getFormatType())
            vprop->addParameter(TEXT("FMTTYPE"), prop->getFormatType());
        if(prop->getFbType())
            vprop->addParameter(TEXT("FBTYPE"), prop->getFbType());
        if(prop->getLanguage())
            vprop->addParameter(TEXT("LANGUAGE"), prop->getLanguage());
        if(prop->getMember())
            vprop->addParameter(TEXT("MEMBER"), prop->getMember());
        if(prop->getPartStat())
            vprop->addParameter(TEXT("PARTSTAT"), prop->getPartStat());
        if(prop->getRange())
            vprop->addParameter(TEXT("RANGE"), prop->getRange());
        if(prop->getTrigRel())
            vprop->addParameter(TEXT("RELATED"), prop->getTrigRel());
        if(prop->getRelated())
            vprop->addParameter(TEXT("RELTYPE"), prop->getRelated());
        if(prop->getRole())
            vprop->addParameter(TEXT("ROLE"), prop->getRole());
        if(prop->getRsvp())
            vprop->addParameter(TEXT("RSVP"), prop->getRsvp());
        if(prop->getSentBy())
            vprop->addParameter(TEXT("SENT-BY"), prop->getSentBy());
        if(prop->getTzID())
            vprop->addParameter(TEXT("TZID"), prop->getTzID());
        if(prop->getValueType())
            vprop->addParameter(TEXT("VALUE"), prop->getValueType());
        if(prop->getXParam()) {
            ArrayList* xParamList = new ArrayList();
            xParamList = prop->getXParam();
            for(int i = 0; i<xParamList->size(); i++) {
                WKeyValuePair* xParam = (WKeyValuePair*)xParamList->get(i);
                if(xParam->getKey())
                    if(xParam->getValue())
                        vprop->addParameter(xParam->getKey(), xParam->getValue());
                    else
                        vprop->addParameter(xParam->getKey(), NULL);
            }
            delete xParamList; xParamList = NULL;
        }

        return vprop;
    }
    else
        return NULL;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -