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

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

?? cssstyleselector.cpp

?? It is WEB browser core module with source code. Very good!
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
            case CSSSelector::PseudoSelection:
                dynamicPseudo = RenderStyle::SELECTION;
                return true;
            case CSSSelector::PseudoBefore:
                dynamicPseudo = RenderStyle::BEFORE;
                return true;
            case CSSSelector::PseudoAfter:
                dynamicPseudo = RenderStyle::AFTER;
                return true;

            case CSSSelector::PseudoNotParsed:
                assert(false);
                break;
            case CSSSelector::PseudoLang:
                /* not supported for now */
            case CSSSelector::PseudoOther:
                break;
        }
    return false;
    }
    // ### add the rest of the checks...
    return true;
}

// -----------------------------------------------------------------

CSSRuleSet::CSSRuleSet()
{
    m_idRules.setAutoDelete(true);
    m_classRules.setAutoDelete(true);
    m_tagRules.setAutoDelete(true);
    m_universalRules = 0;
    m_ruleCount = 0;
}

void CSSRuleSet::addToRuleSet(void* hash, QPtrDict<CSSRuleDataList>& dict,
                              CSSStyleRuleImpl* rule, CSSSelector* sel)
{
    if (!hash) return;
    CSSRuleDataList* rules = dict.find(hash);
    if (!rules) {
        rules = new CSSRuleDataList(m_ruleCount++, rule, sel);
        dict.insert(hash, rules);
    }
    else
        rules->append(m_ruleCount++, rule, sel);
}

void CSSRuleSet::addRule(CSSStyleRuleImpl* rule, CSSSelector* sel)
{
    if (sel->match == CSSSelector::Id) {
        addToRuleSet(sel->value.implementation(), m_idRules, rule, sel);
        return;
    }
    if (sel->match == CSSSelector::Class) {
        addToRuleSet(sel->value.implementation(), m_classRules, rule, sel);
        return;
    }

    Q_UINT16 localName = localNamePart(sel->tag);
    if (localName != anyLocalName) {
        addToRuleSet((void*)(int)localName, m_tagRules, rule, sel);
        return;
    }

    // Just put it in the universal rule set.
    if (!m_universalRules)
        m_universalRules = new CSSRuleDataList(m_ruleCount++, rule, sel);
    else
        m_universalRules->append(m_ruleCount++, rule, sel);
}

void CSSRuleSet::addRulesFromSheet(CSSStyleSheetImpl *sheet, const DOMString &medium)
{
    if (!sheet || !sheet->isCSSStyleSheet()) return;

    // No media implies "all", but if a media list exists it must
    // contain our current medium
    if (sheet->media() && !sheet->media()->contains(medium))
        return; // the style sheet doesn't apply

    int len = sheet->length();

    for (int i = 0; i < len; i++) {
        StyleBaseImpl *item = sheet->item(i);
        if (item->isStyleRule()) {
            CSSStyleRuleImpl* rule = static_cast<CSSStyleRuleImpl*>(item);
            for (CSSSelector* s = rule->selector(); s; s = s->next())
                addRule(rule, s);
        }
        else if(item->isImportRule()) {
            CSSImportRuleImpl *import = static_cast<CSSImportRuleImpl *>(item);

            //kdDebug( 6080 ) << "@import: Media: "
            //                << import->media()->mediaText().string() << endl;

            if (!import->media() || import->media()->contains(medium))
                addRulesFromSheet(import->styleSheet(), medium);
        }
        else if(item->isMediaRule()) {
            CSSMediaRuleImpl *r = static_cast<CSSMediaRuleImpl*>(item);
            CSSRuleListImpl *rules = r->cssRules();

            //DOMString mediaText = media->mediaText();
            //kdDebug( 6080 ) << "@media: Media: "
            //                << r->media()->mediaText().string() << endl;

            if ((!r->media() || r->media()->contains(medium)) && rules) {
                // Traverse child elements of the @media rule.
                for (unsigned j = 0; j < rules->length(); j++) {
                    //kdDebug( 6080 ) << "*** Rule #" << j << endl;

                    CSSRuleImpl *childItem = rules->item(j);
                    if (childItem->isStyleRule()) {
                        // It is a StyleRule, so append it to our list
                        CSSStyleRuleImpl* rule = static_cast<CSSStyleRuleImpl*>(childItem);
                        for (CSSSelector* s = rule->selector(); s; s = s->next())
                            addRule(rule, s);

                    }
                    else
                    {
                        //kdDebug( 6080 ) << "Ignoring child rule of "
                        //    "ImportRule: rule is not a StyleRule!" << endl;
                    }
                }   // for rules
            }   // if rules
            else
            {
                //kdDebug( 6080 ) << "CSSMediaRule not rendered: "
                //                << "rule empty or wrong medium!" << endl;
            }
        }
        // ### include other rules
    }
}

// -------------------------------------------------------------------------------------
// this is mostly boring stuff on how to apply a certain rule to the renderstyle...

static Length convertToLength( CSSPrimitiveValueImpl *primitiveValue, RenderStyle *style, QPaintDeviceMetrics *paintDeviceMetrics, bool *ok = 0 )
{
    Length l;
    if ( !primitiveValue ) {
    if ( ok )
        *ok = false;
    } else {
    int type = primitiveValue->primitiveType();
    if(type > CSSPrimitiveValue::CSS_PERCENTAGE && type < CSSPrimitiveValue::CSS_DEG)
        l = Length(primitiveValue->computeLength(style, paintDeviceMetrics), Fixed);
    else if(type == CSSPrimitiveValue::CSS_PERCENTAGE)
        l = Length(int(primitiveValue->getFloatValue(CSSPrimitiveValue::CSS_PERCENTAGE)), Percent);
    else if(type == CSSPrimitiveValue::CSS_NUMBER)
        l = Length(int(primitiveValue->getFloatValue(CSSPrimitiveValue::CSS_NUMBER)*100), Percent);
        else if (type == CSSPrimitiveValue::CSS_HTML_RELATIVE)
            l = Length(int(primitiveValue->getFloatValue(CSSPrimitiveValue::CSS_HTML_RELATIVE)), Relative);
    else if ( ok )
        *ok = false;
    }
    return l;
}


// color mapping code
struct colorMap {
    int css_value;
    QRgb color;
};

static const colorMap cmap[] = {
    { CSS_VAL_AQUA, 0xFF00FFFF },
    { CSS_VAL_BLACK, 0xFF000000 },
    { CSS_VAL_BLUE, 0xFF0000FF },
    { CSS_VAL_FUCHSIA, 0xFFFF00FF },
    { CSS_VAL_GRAY, 0xFF808080 },
    { CSS_VAL_GREEN, 0xFF008000  },
    { CSS_VAL_LIME, 0xFF00FF00 },
    { CSS_VAL_MAROON, 0xFF800000 },
    { CSS_VAL_NAVY, 0xFF000080 },
    { CSS_VAL_OLIVE, 0xFF808000  },
    { CSS_VAL_ORANGE, 0xFFFFA500 },
    { CSS_VAL_PURPLE, 0xFF800080 },
    { CSS_VAL_RED, 0xFFFF0000 },
    { CSS_VAL_SILVER, 0xFFC0C0C0 },
    { CSS_VAL_TEAL, 0xFF008080  },
    { CSS_VAL_WHITE, 0xFFFFFFFF },
    { CSS_VAL_YELLOW, 0xFFFFFF00 },
#if !APPLE_CHANGES
    { CSS_VAL_INVERT, invertedColor },
#endif
    { CSS_VAL_TRANSPARENT, transparentColor },
    { CSS_VAL_GREY, 0xFF808080 },
#if APPLE_CHANGES
    { CSS_VAL_ACTIVEBORDER, 0xFFE0E0E0 },
    { CSS_VAL_ACTIVECAPTION, 0xFF000000 },
    { CSS_VAL_APPWORKSPACE, 0xFF000000 },
    { CSS_VAL_BUTTONFACE, 0xFFC0C0C0 },
    { CSS_VAL_BUTTONHIGHLIGHT, 0xFFE0E0E0 },
    { CSS_VAL_BUTTONSHADOW, 0xFFFFFFFF },
    { CSS_VAL_BUTTONTEXT, 0xFF000000 },
    { CSS_VAL_CAPTIONTEXT, 0xFF000000 },
    { CSS_VAL_GRAYTEXT, 0xFF000000 },
    { CSS_VAL_HIGHLIGHT, 0xFFFFFFFF },
    { CSS_VAL_HIGHLIGHTTEXT, 0xFFFFFFFF },
    { CSS_VAL_INACTIVEBORDER, 0xFFFFFFFF },
    { CSS_VAL_INACTIVECAPTION, 0xFFFFFFFF },
    { CSS_VAL_INACTIVECAPTIONTEXT, 0xFF000000 },
    { CSS_VAL_INFOBACKGROUND, 0xFF000000 },
    { CSS_VAL_INFOTEXT, 0xFF000000 },
    { CSS_VAL_MENU, 0xFFFFFFFF },
    { CSS_VAL_MENUTEXT, 0xFFFFFFFF },
    { CSS_VAL_SCROLLBAR, 0xFFFFFFFF },
    { CSS_VAL_TEXT, 0xFF000000 },
    { CSS_VAL_THREEDDARKSHADOW, 0xFF404040 },
    { CSS_VAL_THREEDFACE, 0xFFC0C0C0 },
    { CSS_VAL_THREEDHIGHLIGHT, 0xFFE0E0E0 },
    { CSS_VAL_THREEDLIGHTSHADOW, 0xFFC0C0C0 },
    { CSS_VAL_THREEDSHADOW, 0xFFFFFFFF },
    { CSS_VAL_WINDOW, 0xFFFFFFFF },
    { CSS_VAL_WINDOWFRAME, 0xFFFFFFFF },
    { CSS_VAL_WINDOWTEXT, 0xFF000000 },
#endif
    { 0, 0 }
};

#if !APPLE_CHANGES

struct uiColors {
    int css_value;
    const char * configGroup;
    const char * configEntry;
QPalette::ColorGroup group;
QColorGroup::ColorRole role;
};

const char * const wmgroup = "WM";
const char * const generalgroup = "General";

/* Mapping system settings to CSS 2
* Tried hard to get an appropriate mapping - schlpbch
*/
static const uiColors uimap[] = {
    // Active window border.
    { CSS_VAL_ACTIVEBORDER, wmgroup, "background", QPalette::Active, QColorGroup::Light },
    // Active window caption.
    { CSS_VAL_ACTIVECAPTION, wmgroup, "background", QPalette::Active, QColorGroup::Text },
    // Text in caption, size box, and scrollbar arrow box.
    { CSS_VAL_CAPTIONTEXT, wmgroup, "activeForeground", QPalette::Active, QColorGroup::Text },
    // Face color for three-dimensional display elements.
    { CSS_VAL_BUTTONFACE, wmgroup, 0, QPalette::Inactive, QColorGroup::Button },
    // Dark shadow for three-dimensional display elements (for edges facing away from the light source).
    { CSS_VAL_BUTTONHIGHLIGHT, wmgroup, 0, QPalette::Inactive, QColorGroup::Light },
    // Shadow color for three-dimensional display elements.
    { CSS_VAL_BUTTONSHADOW, wmgroup, 0, QPalette::Inactive, QColorGroup::Shadow },
    // Text on push buttons.
    { CSS_VAL_BUTTONTEXT, wmgroup, "buttonForeground", QPalette::Inactive, QColorGroup::ButtonText },
    // Dark shadow for three-dimensional display elements.
    { CSS_VAL_THREEDDARKSHADOW, wmgroup, 0, QPalette::Inactive, QColorGroup::Dark },
    // Face color for three-dimensional display elements.
    { CSS_VAL_THREEDFACE, wmgroup, 0, QPalette::Inactive, QColorGroup::Button },
    // Highlight color for three-dimensional display elements.
    { CSS_VAL_THREEDHIGHLIGHT, wmgroup, 0, QPalette::Inactive, QColorGroup::Light },
    // Light color for three-dimensional display elements (for edges facing the light source).
    { CSS_VAL_THREEDLIGHTSHADOW, wmgroup, 0, QPalette::Inactive, QColorGroup::Midlight },
    // Dark shadow for three-dimensional display elements.
    { CSS_VAL_THREEDSHADOW, wmgroup, 0, QPalette::Inactive, QColorGroup::Shadow },

    // Inactive window border.
    { CSS_VAL_INACTIVEBORDER, wmgroup, "background", QPalette::Disabled, QColorGroup::Background },
    // Inactive window caption.
    { CSS_VAL_INACTIVECAPTION, wmgroup, "inactiveBackground", QPalette::Disabled, QColorGroup::Background },
    // Color of text in an inactive caption.
    { CSS_VAL_INACTIVECAPTIONTEXT, wmgroup, "inactiveForeground", QPalette::Disabled, QColorGroup::Text },
    { CSS_VAL_GRAYTEXT, wmgroup, 0, QPalette::Disabled, QColorGroup::Text },

    // Menu background
    { CSS_VAL_MENU, generalgroup, "background", QPalette::Inactive, QColorGroup::Background },
    // Text in menus
    { CSS_VAL_MENUTEXT, generalgroup, "foreground", QPalette::Inactive, QColorGroup::Background },

    // Text of item(s) selected in a control.
    { CSS_VAL_HIGHLIGHT, generalgroup, "selectBackground", QPalette::Inactive, QColorGroup::Background },

    // Text of item(s) selected in a control.
    { CSS_VAL_HIGHLIGHTTEXT, generalgroup, "selectForeground", QPalette::Inactive, QColorGroup::Background },

    // Background color of multiple document interface.
    { CSS_VAL_APPWORKSPACE, generalgroup, "background", QPalette::Inactive, QColorGroup::Text },

    // Scroll bar gray area.
    { CSS_VAL_SCROLLBAR, generalgroup, "background", QPalette::Inactive, QColorGroup::Background },

    // Window background.
    { CSS_VAL_WINDOW, generalgroup, "windowBackground", QPalette::Inactive, QColorGroup::Background },
    // Window frame.
    { CSS_VAL_WINDOWFRAME, generalgroup, "windowBackground", QPalette::Inactive, QColorGroup::Background },
    // WindowText
    { CSS_VAL_WINDOWTEXT, generalgroup, "windowForeground", QPalette::Inactive, QColorGroup::Text },
    { CSS_VAL_TEXT, generalgroup, 0, QPalette::Inactive, QColorGroup::Text },
    { 0, 0, 0, QPalette::NColorGroups, QColorGroup::NColorRoles }
};

#endif // !APPLE_CHANGES

static QColor colorForCSSValue( int css_value )
{
    // try the regular ones first
    const colorMap *col = cmap;
    while ( col->css_value && col->css_value != css_value )
        ++col;
    if ( col->css_value )
        return col->color;

#if APPLE_CHANGES
    return QColor();
#else
    const uiColors *uicol = uimap;
    while ( uicol->css_value && uicol->css_value != css_value )
        ++uicol;
    if ( !uicol->css_value ) {
        if ( css_value == CSS_VAL_INFOBACKGROUND )
            return QToolTip::palette().inactive().background();
        else if ( css_value == CSS_VAL_INFOTEXT )
            return QToolTip::palette().inactive().foreground();
        else if ( css_value == CSS_VAL_BACKGROUND ) {
            KConfig bckgrConfig("kdesktoprc", true, false); // No multi-screen support
            bckgrConfig.setGroup("Desktop0");
            // Desktop background.
            return bckgrConfig.readColorEntry("Color1", &qApp->palette().disabled().background());
        }
        return khtml::invalidColor;
    }

    const QPalette &pal = qApp->palette();
    QColor c = pal.color( uicol->group, uicol->role );
    if ( uicol->configEntry ) {
        KConfig *globalConfig = KGlobal::config();
        globalConfig->setGroup( uicol->configGroup );

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩西西人体444www| 国产亚洲精品超碰| 国产精品二三区| 国产一区二区在线视频| 欧美日本一区二区三区| 国产精品久久久久久久久久久免费看| 亚洲精品日日夜夜| 成人免费毛片aaaaa**| 精品视频123区在线观看| 欧美高清在线一区| 国产精品一区在线| 久久这里只有精品首页| 久久超碰97中文字幕| 911精品国产一区二区在线| 一区二区三区欧美日韩| 一本色道久久综合狠狠躁的推荐| 亚洲动漫第一页| 91浏览器在线视频| 免费的国产精品| 亚洲精品乱码久久久久久黑人| 欧美日韩高清一区二区三区| 国模套图日韩精品一区二区| 亚洲人成小说网站色在线| 欧美精选一区二区| www.久久精品| 国产最新精品精品你懂的| 亚洲一区免费在线观看| 国产精品久久三区| 日韩午夜精品视频| 成年人国产精品| 精品一区二区三区免费毛片爱| 亚洲黄色av一区| 国产日韩亚洲欧美综合| 精品久久久久久亚洲综合网| 在线亚洲一区二区| 风间由美中文字幕在线看视频国产欧美| 一二三区精品视频| 亚洲精品一区二区三区精华液| 欧美网站一区二区| 欧美视频日韩视频| 色综合久久中文字幕| 国产久卡久卡久卡久卡视频精品| 热久久一区二区| 日韩精品乱码av一区二区| 亚洲美女少妇撒尿| 亚洲精品中文在线影院| 国产精品国产a| 亚洲天堂成人网| 亚洲福利视频一区| 亚洲成人一区二区| 日韩精品一区第一页| 日本不卡1234视频| 免费观看一级欧美片| 国产成人h网站| 成人免费观看视频| av成人动漫在线观看| www.成人在线| 国产成人av一区二区三区在线| 韩国精品免费视频| 色婷婷激情久久| 精品va天堂亚洲国产| 日韩午夜电影在线观看| 精品国产百合女同互慰| 国产精品美女www爽爽爽| 亚洲日韩欧美一区二区在线| 亚洲精品ww久久久久久p站| 亚洲人成网站色在线观看| 亚洲一级不卡视频| 高清成人在线观看| 欧美一区二区三区视频在线观看| 国产精品视频免费| 国内精品国产三级国产a久久| 成人网在线免费视频| 日本精品裸体写真集在线观看| 欧美精品一二三| 国产精品午夜免费| 美国精品在线观看| 99久久综合99久久综合网站| 欧美二区三区91| 亚洲欧美另类图片小说| 国内精品不卡在线| 91精品国产91久久久久久最新毛片| 国产人久久人人人人爽| 精品在线视频一区| 91精品久久久久久蜜臀| 亚洲国产精品一区二区www在线| 蜜臀91精品一区二区三区| 国产aⅴ综合色| 久久精品人人爽人人爽| 日本欧美韩国一区三区| 欧美日韩一区二区三区在线| 椎名由奈av一区二区三区| 麻豆精品一区二区三区| 91精选在线观看| 亚洲成va人在线观看| 97精品久久久午夜一区二区三区 | 97精品久久久午夜一区二区三区| 久久免费的精品国产v∧| 日韩美女视频一区二区在线观看| 亚洲国产精品二十页| 亚洲自拍偷拍图区| 欧美在线不卡视频| 国产精品亚洲专一区二区三区| 欧美韩日一区二区三区四区| 欧美日韩亚洲丝袜制服| 国产成人精品免费在线| 久久精品国产**网站演员| 日韩美女视频在线| 日本在线不卡一区| 欧美一区二区三区小说| va亚洲va日韩不卡在线观看| 久久成人免费日本黄色| 一级中文字幕一区二区| 久久免费精品国产久精品久久久久| 99精品国产99久久久久久白柏| 亚洲成人免费观看| 亚洲国产经典视频| 欧美精三区欧美精三区| 成人av影视在线观看| 免费欧美在线视频| 亚洲123区在线观看| 亚洲综合色婷婷| 久久久国际精品| 欧美mv和日韩mv的网站| 欧美男人的天堂一二区| 99精品久久久久久| 国产一区二区在线视频| 日韩不卡一区二区| 亚洲精品成人悠悠色影视| 久久久久久免费毛片精品| 欧美日韩国产小视频在线观看| 99精品在线免费| 成人免费高清视频在线观看| 国产精品456露脸| 国产一区二区剧情av在线| 国产一区91精品张津瑜| 大白屁股一区二区视频| 99久久精品费精品国产一区二区| 丁香激情综合国产| 美国精品在线观看| 激情深爱一区二区| 国产精品中文字幕欧美| 精品在线视频一区| 国产中文字幕一区| 精品伊人久久久久7777人| 精品一区二区三区在线播放视频| 五月综合激情婷婷六月色窝| 视频在线观看一区| 日精品一区二区三区| 麻豆成人综合网| 成人午夜在线免费| 色综合激情五月| 欧美福利电影网| 久久久影视传媒| 国产精品狼人久久影院观看方式| 国产精品美女一区二区在线观看| 国产精品久久777777| 视频一区在线视频| 久久99精品国产麻豆婷婷洗澡| 国产乱子伦视频一区二区三区 | 国产亚洲欧美色| 久久精品人人爽人人爽| 麻豆国产一区二区| 波多野结衣精品在线| 欧美人狂配大交3d怪物一区 | 欧美日韩久久久久久| 日韩精品影音先锋| √…a在线天堂一区| 视频一区二区不卡| 成人理论电影网| 91精品国产入口| 亚洲久本草在线中文字幕| 韩国av一区二区三区四区| 色婷婷综合久久久中文字幕| 精品精品国产高清一毛片一天堂| 最新热久久免费视频| 国内成+人亚洲+欧美+综合在线| 99r国产精品| 国产三级一区二区三区| 麻豆成人综合网| 欧美精品1区2区3区| 亚洲最大的成人av| 国产成人啪免费观看软件| 精品国产一区二区三区不卡| 亚洲国产精品麻豆| 一本到一区二区三区| 国产精品福利一区| 成人a级免费电影| 日本一区二区不卡视频| 国产iv一区二区三区| 久久久精品免费免费| 国内精品在线播放| 久久亚洲一区二区三区明星换脸| 日韩成人免费在线| 欧美裸体bbwbbwbbw| 天涯成人国产亚洲精品一区av| 色哟哟精品一区| 亚洲伊人伊色伊影伊综合网| 欧美日韩亚州综合| 五月激情丁香一区二区三区|