コード例 #1
0
    virtual void Visit(const WCHAR *name, const WCHAR *url, int level) {
        PageDestination *dest;
        if (!url)
            dest = NULL;
        else if (IsExternalUrl(url))
            dest = new SimpleDest2(0, RectD(), str::Dup(url));
        else if (str::FindChar(url, '%')) {
            ScopedMem<WCHAR> decodedUrl(str::Dup(url));
            str::UrlDecodeInPlace(decodedUrl);
            dest = engine->GetNamedDest(decodedUrl);
        }
        else
            dest = engine->GetNamedDest(url);

        EbookTocItem *item = new EbookTocItem(str::Dup(name), dest);
        item->id = ++idCounter;
        item->open = level <= 2;
        if (isIndex) {
            item->pageNo = 0;
            item->open = level != 1;
            level++;
        }
        AppendTocItem(root, item, level);
    }