亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? calendar.cpp

?? funambol windows mobile plugin source code, the source code is taken from the funambol site
?? CPP
字號(hào):
/*
 * Copyright (C) 2003-2007 Funambol, Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY, TITLE, NONINFRINGEMENT or FITNESS FOR A PARTICULAR
 * PURPOSE.  See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 * 02111-1307  USA
 */


#include "vocl/iCalendar/Calendar.h"

Calendar::Calendar() {
    prodID = NULL;
    version = NULL;
    calScale = NULL;
    method = NULL;
    xTags = NULL;
    events = NULL;
    todos = NULL;
}

Calendar::~Calendar() {
    if(prodID) {
        delete prodID; prodID = NULL;
    }
    if(version) {
        delete version; version = NULL;
    }
    if(calScale) {
        delete calScale; calScale = NULL;
    }
    if(method) {
        delete method; method = NULL;
    }
    if(xTags) {
        delete xTags; xTags = NULL;
    }
    if(events) {
        delete events; events = NULL;
    }
    if(todos) {
        delete todos; todos = NULL;
    }
}

void Calendar::set(iCalProperty** oldProperty, iCalProperty& newProperty) {
    if (*oldProperty) delete *oldProperty;

    *oldProperty = (iCalProperty*)newProperty.clone();
}

void Calendar::setProdID(iCalProperty& p) {
    set(&prodID, p);
}
void Calendar::setVersion(iCalProperty& p) {
    set(&version, p);
}
void Calendar::setCalScale(iCalProperty& p) {
    set(&calScale, p);
}
void Calendar::setMethod(iCalProperty& p) {
    set(&method, p);
}
void Calendar::setXTags(ArrayList& list) {
    if (xTags) {
        xTags->clear();
    } else {
        xTags = new ArrayList();
    }

    int s = list.size();
    for (int i=0; i<s; ++i) {
        xTags->add(*list[i]);
    }
}
void Calendar::setEvents(ArrayList& list) {
    if (events) {
        events->clear();
    } else {
        events = new ArrayList();
    }

    int s = list.size();
    for (int i=0; i<s; ++i) {
        events->add(*list[i]);
    }
}
void Calendar::setToDos(ArrayList& list) {
    if (todos) {
        todos->clear();
    } else {
        todos = new ArrayList();
    }

    int s = list.size();
    for (int i=0; i<s; ++i) {
        todos->add(*list[i]);
    }
}
iCalProperty* Calendar::getProdID() {
    return prodID;
}
iCalProperty* Calendar::getVersion() {
    return version;
}
iCalProperty* Calendar::getCalScale() {
    return calScale;
}
iCalProperty* Calendar::getMethod() {
    return method;
}
ArrayList* Calendar::getXTags() {
    return xTags;
}
ArrayList* Calendar::getEvents() {
    return events;
}
ArrayList* Calendar::getToDos() {
    return todos;
}
WCHAR* Calendar::toString() {

    WCHAR eol[] = TEXT("\r\n");
    WCHAR* ret = new WCHAR[ICALENDAR_BUFFER];
    wcscpy(ret, TEXT("BEGIN:VCALENDAR\r\n"));
    if(version) {
        wcscat(ret, TEXT("VERSION:"));
        wcscat(ret, version->getValue());
        wcscat(ret, eol);
    }
    if(prodID) {
        wcscat(ret, TEXT("PRODID:"));
        wcscat(ret, prodID->getValue());
        wcscat(ret, eol);
    }
    if(calScale) {
        wcscat(ret, TEXT("CALSCALE:"));
        wcscat(ret, calScale->getValue());
        wcscat(ret, eol);
    }
    if(method) {
        wcscat(ret, TEXT("METHOD:"));
        wcscat(ret, method->getValue());
        wcscat(ret, eol);
    }
    if(events)
        for(int i=0; i < events->size(); i++) {
            Event* ev = (Event*)events->get(i);
            wcscat(ret, ev->toString());
        }
    if(todos)
        for(int i=0; i < todos->size(); i++) {
            ToDo* task = (ToDo*)todos->get(i);
            wcscat(ret, task->toString());
        }
    wcscat(ret, TEXT("END:VCALENDAR\r\n"));

    return ret;
}

ArrayElement* Calendar::clone() {
    Calendar* ret = new Calendar();
    if(prodID)
        ret->setProdID(*prodID);
    if(version)
        ret->setVersion(*version);
    if(calScale)
        ret->setCalScale(*calScale);
    if(method)
        ret->setMethod(*method);
    if(xTags)
        ret->setXTags(*xTags);
    if(events)
        ret->setEvents(*events);
    if(todos)
        ret->setToDos(*todos);

    return (ArrayElement*)ret;
}

iCalProperty* Calendar::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* Calendar::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;
}
void Calendar::addEvent(Event* ev) {
    if(ev) {
        if(!events)
            events = new ArrayList();
        events->add((ArrayElement&)*ev);
    }
}
void Calendar::addToDo(ToDo* task) {
    if(task) {
        if(!todos)
            todos = new ArrayList();
        todos->add((ArrayElement&)*task);
    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本色综合中文字幕| 丰满亚洲少妇av| 91在线porny国产在线看| 欧美一区二区三区思思人 | 久久婷婷久久一区二区三区| 亚洲一区视频在线| 99久久久久久| 亚洲人123区| 懂色一区二区三区免费观看| 久久精品视频在线看| 99精品欧美一区二区蜜桃免费| 一区二区三区四区不卡在线| 欧美亚洲综合另类| 国产精品一区二区三区99| 国产精品女主播在线观看| 色欧美乱欧美15图片| 午夜精品久久久久久| 国产女主播视频一区二区| 99热精品一区二区| 日韩中文欧美在线| 国产精品卡一卡二卡三| 69精品人人人人| 国产精品中文字幕一区二区三区| 亚洲色图丝袜美腿| 欧美精品一区二区在线播放| 国产99精品国产| 日产国产欧美视频一区精品| 国产精品天干天干在线综合| 欧美精品久久99| 99这里只有精品| 国产精品一品二品| 天天操天天干天天综合网| 国产精品成人网| 久久精品视频一区| 久久久久成人黄色影片| 日韩网站在线看片你懂的| 色吧成人激情小说| 成人妖精视频yjsp地址| 欧美a级理论片| 精品一区二区三区在线播放视频 | 欧美激情一区二区三区全黄| 欧美日韩你懂的| 欧美日韩不卡在线| 欧美日韩极品在线观看一区| 一本到一区二区三区| 成人小视频在线| 成人激情图片网| 9i看片成人免费高清| 色婷婷激情综合| 色94色欧美sute亚洲线路一ni| 99久久精品99国产精品| 99久久99久久综合| 91福利社在线观看| 91麻豆精品国产91| 精品国产乱码久久久久久图片| 日韩欧美国产系列| 日韩精品在线网站| 精品国产乱码久久久久久久| 欧美mv日韩mv| 欧美精品三级日韩久久| 欧美日韩视频专区在线播放| 精品粉嫩超白一线天av| 亚洲国产成人自拍| 成人免费在线观看入口| 亚洲高清在线视频| 国模无码大尺度一区二区三区| 北岛玲一区二区三区四区 | 丰满放荡岳乱妇91ww| 91高清在线观看| 国产日产精品1区| 日韩综合小视频| 91色porny在线视频| 久久久综合精品| 亚洲福利电影网| 99在线视频精品| 久久久久青草大香线综合精品| 一区二区三区色| 成人午夜短视频| 国产三级精品在线| 日日欢夜夜爽一区| 91高清在线观看| 亚洲欧洲成人自拍| 精品一区二区三区免费观看| 欧美人动与zoxxxx乱| 亚洲午夜激情av| 91传媒视频在线播放| 综合激情成人伊人| 99热99精品| 综合分类小说区另类春色亚洲小说欧美| 蜜臀a∨国产成人精品| 日韩一区二区三区精品视频| 婷婷成人激情在线网| 欧美日本视频在线| 奇米精品一区二区三区四区 | 日日夜夜免费精品| 欧美日韩一级二级三级| 日本特黄久久久高潮| 欧美午夜精品一区二区蜜桃| ...xxx性欧美| 在线观看日韩毛片| 日韩电影在线观看电影| 欧美精品电影在线播放| 韩国女主播成人在线观看| 久久男人中文字幕资源站| av欧美精品.com| 亚洲成人三级小说| 久久久美女毛片| 91小宝寻花一区二区三区| 日本午夜一区二区| 国产精品污www在线观看| 欧美主播一区二区三区美女| 国内精品久久久久影院色| 亚洲欧洲日韩av| 日韩精品一区二区在线| youjizz久久| 美腿丝袜在线亚洲一区| 综合久久一区二区三区| 精品国产不卡一区二区三区| 色88888久久久久久影院按摩| 韩国av一区二区三区| 一区二区免费看| 国产精品网站在线观看| 精品99一区二区| 91精品免费在线观看| 欧美亚洲尤物久久| 91在线播放网址| 成人做爰69片免费看网站| 蜜桃av噜噜一区| 日韩av电影一区| 亚洲成人av资源| 一区二区在线免费观看| 欧美国产禁国产网站cc| 国产偷v国产偷v亚洲高清| 欧美一区二区免费| 91精品国产综合久久久久久久久久 | 九九精品一区二区| 日韩高清在线电影| 三级在线观看一区二区| 亚洲国产精品麻豆| 亚洲国产日韩在线一区模特| 日韩美女视频一区二区 | 国产亚洲欧美一级| 欧美美女网站色| 欧美日韩中文国产| 欧美日韩视频专区在线播放| 欧美伦理视频网站| 日韩欧美高清dvd碟片| 久久久亚洲精华液精华液精华液| 日韩欧美中文字幕公布| 欧美成va人片在线观看| 欧美精品一区二区三区很污很色的 | 国产91精品在线观看| 成人精品gif动图一区| 91啦中文在线观看| 91精品国产综合久久香蕉麻豆| 精品国产乱码久久久久久夜甘婷婷 | 亚洲美女电影在线| 亚洲成av人片在线观看无码| 国内精品在线播放| 91影视在线播放| 欧美va亚洲va在线观看蝴蝶网| 国产女同性恋一区二区| 午夜亚洲国产au精品一区二区| 狠狠色丁香久久婷婷综| 日本高清不卡一区| 久久婷婷国产综合国色天香| 亚洲精品videosex极品| 国产综合色精品一区二区三区| 99精品久久久久久| 久久嫩草精品久久久精品一| 亚洲成av人片在线观看无码| k8久久久一区二区三区| 精品国产乱码久久久久久牛牛| 一区二区三区中文在线| 国产精品中文欧美| 精品国产一区a| 日韩精品一卡二卡三卡四卡无卡| 成人av电影在线播放| 久久婷婷一区二区三区| 理论电影国产精品| 在线不卡的av| 日产欧产美韩系列久久99| 欧美日韩一区二区三区视频| 亚洲视频一区在线| 成人免费高清在线观看| 国产农村妇女精品| 国产精品538一区二区在线| www一区二区| 一区二区在线观看视频在线观看| 国产精品影音先锋| 日韩女优电影在线观看| 日韩二区在线观看| 欧美一区二区成人6969| 日韩不卡手机在线v区| 欧美卡1卡2卡| 强制捆绑调教一区二区| 欧美精品一区二区三区视频| 国产99一区视频免费| 中文字幕一区免费在线观看| 成人高清视频免费观看|