зеркало из https://github.com/mozilla/gecko-dev.git
added css atoms
This commit is contained in:
Родитель
11b7d1b081
Коммит
e54b306cf1
|
@ -0,0 +1,53 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "NPL"); you may not use this file except in
|
||||
* compliance with the NPL. You may obtain a copy of the NPL at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||||
* for the specific language governing rights and limitations under the
|
||||
* NPL.
|
||||
*
|
||||
* The Initial Developer of this code under the NPL is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
#ifndef nsCSSAtoms_h___
|
||||
#define nsCSSAtoms_h___
|
||||
|
||||
#include "nsIAtom.h"
|
||||
|
||||
/**
|
||||
* This class wraps up the creation (and destruction) of the standard
|
||||
* set of CSS atoms used during normal CSS handling. These objects
|
||||
* are created when the first CSS style sheet is created and they
|
||||
* are destroyed when the last CSS style sheet is destroyed.
|
||||
*/
|
||||
class nsCSSAtoms {
|
||||
public:
|
||||
|
||||
static void AddrefAtoms();
|
||||
static void ReleaseAtoms();
|
||||
|
||||
// Alphabetical list of html attribute atoms
|
||||
static nsIAtom* activePseudo;
|
||||
|
||||
static nsIAtom* firstChildPseudo;
|
||||
static nsIAtom* focusPseudo;
|
||||
|
||||
static nsIAtom* hoverPseudo;
|
||||
|
||||
static nsIAtom* langPseudo;
|
||||
static nsIAtom* linkPseudo;
|
||||
|
||||
static nsIAtom* outOfDatePseudo; // Netscape extension
|
||||
|
||||
static nsIAtom* universalSelector;
|
||||
|
||||
static nsIAtom* visitedPseudo;
|
||||
};
|
||||
|
||||
#endif /* nsCSSAtoms_h___ */
|
|
@ -0,0 +1,53 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "NPL"); you may not use this file except in
|
||||
* compliance with the NPL. You may obtain a copy of the NPL at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||||
* for the specific language governing rights and limitations under the
|
||||
* NPL.
|
||||
*
|
||||
* The Initial Developer of this code under the NPL is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
#ifndef nsCSSAtoms_h___
|
||||
#define nsCSSAtoms_h___
|
||||
|
||||
#include "nsIAtom.h"
|
||||
|
||||
/**
|
||||
* This class wraps up the creation (and destruction) of the standard
|
||||
* set of CSS atoms used during normal CSS handling. These objects
|
||||
* are created when the first CSS style sheet is created and they
|
||||
* are destroyed when the last CSS style sheet is destroyed.
|
||||
*/
|
||||
class nsCSSAtoms {
|
||||
public:
|
||||
|
||||
static void AddrefAtoms();
|
||||
static void ReleaseAtoms();
|
||||
|
||||
// Alphabetical list of html attribute atoms
|
||||
static nsIAtom* activePseudo;
|
||||
|
||||
static nsIAtom* firstChildPseudo;
|
||||
static nsIAtom* focusPseudo;
|
||||
|
||||
static nsIAtom* hoverPseudo;
|
||||
|
||||
static nsIAtom* langPseudo;
|
||||
static nsIAtom* linkPseudo;
|
||||
|
||||
static nsIAtom* outOfDatePseudo; // Netscape extension
|
||||
|
||||
static nsIAtom* universalSelector;
|
||||
|
||||
static nsIAtom* visitedPseudo;
|
||||
};
|
||||
|
||||
#endif /* nsCSSAtoms_h___ */
|
|
@ -0,0 +1,84 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "NPL"); you may not use this file except in
|
||||
* compliance with the NPL. You may obtain a copy of the NPL at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||||
* for the specific language governing rights and limitations under the
|
||||
* NPL.
|
||||
*
|
||||
* The Initial Developer of this code under the NPL is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
#include "nsCSSAtoms.h"
|
||||
|
||||
// XXX make this be autogenerated. doh!
|
||||
|
||||
nsIAtom* nsCSSAtoms::activePseudo;
|
||||
|
||||
nsIAtom* nsCSSAtoms::firstChildPseudo;
|
||||
nsIAtom* nsCSSAtoms::focusPseudo;
|
||||
|
||||
nsIAtom* nsCSSAtoms::hoverPseudo;
|
||||
|
||||
nsIAtom* nsCSSAtoms::langPseudo;
|
||||
nsIAtom* nsCSSAtoms::linkPseudo;
|
||||
|
||||
nsIAtom* nsCSSAtoms::outOfDatePseudo;
|
||||
|
||||
nsIAtom* nsCSSAtoms::universalSelector;
|
||||
|
||||
nsIAtom* nsCSSAtoms::visitedPseudo;
|
||||
|
||||
|
||||
static nsrefcnt gRefCnt;
|
||||
|
||||
void nsCSSAtoms::AddrefAtoms()
|
||||
{
|
||||
if (0 == gRefCnt) {
|
||||
activePseudo = NS_NewAtom(":ACTIVE");
|
||||
|
||||
firstChildPseudo = NS_NewAtom(":FIRST-CHILD");
|
||||
focusPseudo = NS_NewAtom(":FOCUS");
|
||||
|
||||
hoverPseudo = NS_NewAtom(":HOVER");
|
||||
|
||||
langPseudo = NS_NewAtom(":LANG");
|
||||
linkPseudo = NS_NewAtom(":LINK");
|
||||
|
||||
outOfDatePseudo = NS_NewAtom(":OUT-OF-DATE");
|
||||
|
||||
universalSelector = NS_NewAtom("*");
|
||||
|
||||
visitedPseudo = NS_NewAtom(":VISITED");
|
||||
}
|
||||
++gRefCnt;
|
||||
}
|
||||
|
||||
void nsCSSAtoms::ReleaseAtoms()
|
||||
{
|
||||
NS_PRECONDITION(gRefCnt != 0, "bad release atoms");
|
||||
if (--gRefCnt == 0) {
|
||||
NS_RELEASE(activePseudo);
|
||||
|
||||
NS_RELEASE(firstChildPseudo);
|
||||
NS_RELEASE(focusPseudo);
|
||||
|
||||
NS_RELEASE(hoverPseudo);
|
||||
|
||||
NS_RELEASE(langPseudo);
|
||||
NS_RELEASE(linkPseudo);
|
||||
|
||||
NS_RELEASE(outOfDatePseudo);
|
||||
|
||||
NS_RELEASE(universalSelector);
|
||||
|
||||
NS_RELEASE(visitedPseudo);
|
||||
}
|
||||
}
|
||||
|
|
@ -2,6 +2,7 @@
|
|||
# This is a list of local files which get copied to the mozilla:dist:layout directory
|
||||
#
|
||||
|
||||
nsCSSAtoms.h
|
||||
nsICSSParser.h
|
||||
nsICSSStyleSheet.h
|
||||
nsStyleUtil.h
|
||||
|
|
|
@ -25,6 +25,7 @@ include $(DEPTH)/config/autoconf.mk
|
|||
MODULE = raptor
|
||||
|
||||
EXPORTS = \
|
||||
nsCSSAtoms.h \
|
||||
nsICSSParser.h \
|
||||
nsICSSStyleSheet.h \
|
||||
nsStyleUtil.h \
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
DEPTH=..\..\..\..
|
||||
|
||||
EXPORTS=nsICSSParser.h nsICSSStyleSheet.h nsStyleUtil.h
|
||||
EXPORTS=nsCSSAtoms.h nsICSSParser.h nsICSSStyleSheet.h nsStyleUtil.h
|
||||
MODULE=raptor
|
||||
|
||||
include <$(DEPTH)\layout\config\rules.mak>
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "NPL"); you may not use this file except in
|
||||
* compliance with the NPL. You may obtain a copy of the NPL at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||||
* for the specific language governing rights and limitations under the
|
||||
* NPL.
|
||||
*
|
||||
* The Initial Developer of this code under the NPL is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
#ifndef nsCSSAtoms_h___
|
||||
#define nsCSSAtoms_h___
|
||||
|
||||
#include "nsIAtom.h"
|
||||
|
||||
/**
|
||||
* This class wraps up the creation (and destruction) of the standard
|
||||
* set of CSS atoms used during normal CSS handling. These objects
|
||||
* are created when the first CSS style sheet is created and they
|
||||
* are destroyed when the last CSS style sheet is destroyed.
|
||||
*/
|
||||
class nsCSSAtoms {
|
||||
public:
|
||||
|
||||
static void AddrefAtoms();
|
||||
static void ReleaseAtoms();
|
||||
|
||||
// Alphabetical list of html attribute atoms
|
||||
static nsIAtom* activePseudo;
|
||||
|
||||
static nsIAtom* firstChildPseudo;
|
||||
static nsIAtom* focusPseudo;
|
||||
|
||||
static nsIAtom* hoverPseudo;
|
||||
|
||||
static nsIAtom* langPseudo;
|
||||
static nsIAtom* linkPseudo;
|
||||
|
||||
static nsIAtom* outOfDatePseudo; // Netscape extension
|
||||
|
||||
static nsIAtom* universalSelector;
|
||||
|
||||
static nsIAtom* visitedPseudo;
|
||||
};
|
||||
|
||||
#endif /* nsCSSAtoms_h___ */
|
|
@ -30,6 +30,7 @@ DEFINES += -D_IMPL_NS_HTML
|
|||
|
||||
# Note the sophisticated alphabetical ordering :-|
|
||||
CPPSRCS = \
|
||||
nsCSSAtoms.cpp \
|
||||
nsCSSKeywords.cpp \
|
||||
nsCSSDeclaration.cpp \
|
||||
nsCSSParser.cpp \
|
||||
|
|
|
@ -36,6 +36,7 @@ EXPORTS = \
|
|||
$(NULL)
|
||||
|
||||
CPPSRCS= \
|
||||
nsCSSAtoms.cpp \
|
||||
nsCSSKeywords.cpp \
|
||||
nsCSSDeclaration.cpp \
|
||||
nsCSSParser.cpp \
|
||||
|
@ -55,6 +56,7 @@ CPPSRCS= \
|
|||
$(NULL)
|
||||
|
||||
CPP_OBJS = \
|
||||
.\$(OBJDIR)\nsCSSAtoms.obj \
|
||||
.\$(OBJDIR)\nsCSSKeywords.obj \
|
||||
.\$(OBJDIR)\nsCSSDeclaration.obj \
|
||||
.\$(OBJDIR)\nsCSSParser.obj \
|
||||
|
|
|
@ -0,0 +1,84 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* The contents of this file are subject to the Netscape Public License
|
||||
* Version 1.0 (the "NPL"); you may not use this file except in
|
||||
* compliance with the NPL. You may obtain a copy of the NPL at
|
||||
* http://www.mozilla.org/NPL/
|
||||
*
|
||||
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
||||
* for the specific language governing rights and limitations under the
|
||||
* NPL.
|
||||
*
|
||||
* The Initial Developer of this code under the NPL is Netscape
|
||||
* Communications Corporation. Portions created by Netscape are
|
||||
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
||||
* Reserved.
|
||||
*/
|
||||
#include "nsCSSAtoms.h"
|
||||
|
||||
// XXX make this be autogenerated. doh!
|
||||
|
||||
nsIAtom* nsCSSAtoms::activePseudo;
|
||||
|
||||
nsIAtom* nsCSSAtoms::firstChildPseudo;
|
||||
nsIAtom* nsCSSAtoms::focusPseudo;
|
||||
|
||||
nsIAtom* nsCSSAtoms::hoverPseudo;
|
||||
|
||||
nsIAtom* nsCSSAtoms::langPseudo;
|
||||
nsIAtom* nsCSSAtoms::linkPseudo;
|
||||
|
||||
nsIAtom* nsCSSAtoms::outOfDatePseudo;
|
||||
|
||||
nsIAtom* nsCSSAtoms::universalSelector;
|
||||
|
||||
nsIAtom* nsCSSAtoms::visitedPseudo;
|
||||
|
||||
|
||||
static nsrefcnt gRefCnt;
|
||||
|
||||
void nsCSSAtoms::AddrefAtoms()
|
||||
{
|
||||
if (0 == gRefCnt) {
|
||||
activePseudo = NS_NewAtom(":ACTIVE");
|
||||
|
||||
firstChildPseudo = NS_NewAtom(":FIRST-CHILD");
|
||||
focusPseudo = NS_NewAtom(":FOCUS");
|
||||
|
||||
hoverPseudo = NS_NewAtom(":HOVER");
|
||||
|
||||
langPseudo = NS_NewAtom(":LANG");
|
||||
linkPseudo = NS_NewAtom(":LINK");
|
||||
|
||||
outOfDatePseudo = NS_NewAtom(":OUT-OF-DATE");
|
||||
|
||||
universalSelector = NS_NewAtom("*");
|
||||
|
||||
visitedPseudo = NS_NewAtom(":VISITED");
|
||||
}
|
||||
++gRefCnt;
|
||||
}
|
||||
|
||||
void nsCSSAtoms::ReleaseAtoms()
|
||||
{
|
||||
NS_PRECONDITION(gRefCnt != 0, "bad release atoms");
|
||||
if (--gRefCnt == 0) {
|
||||
NS_RELEASE(activePseudo);
|
||||
|
||||
NS_RELEASE(firstChildPseudo);
|
||||
NS_RELEASE(focusPseudo);
|
||||
|
||||
NS_RELEASE(hoverPseudo);
|
||||
|
||||
NS_RELEASE(langPseudo);
|
||||
NS_RELEASE(linkPseudo);
|
||||
|
||||
NS_RELEASE(outOfDatePseudo);
|
||||
|
||||
NS_RELEASE(universalSelector);
|
||||
|
||||
NS_RELEASE(visitedPseudo);
|
||||
}
|
||||
}
|
||||
|
Загрузка…
Ссылка в новой задаче