added css atoms

This commit is contained in:
peterl%netscape.com 1998-12-11 02:51:05 +00:00
parent 11b7d1b081
commit e54b306cf1
10 changed files with 333 additions and 1 deletions

View File

@ -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___ */

View File

@ -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___ */

View File

@ -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);
}
}

View File

@ -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

View File

@ -25,6 +25,7 @@ include $(DEPTH)/config/autoconf.mk
MODULE = raptor
EXPORTS = \
nsCSSAtoms.h \
nsICSSParser.h \
nsICSSStyleSheet.h \
nsStyleUtil.h \

View File

@ -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>

View File

@ -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___ */

View File

@ -30,6 +30,7 @@ DEFINES += -D_IMPL_NS_HTML
# Note the sophisticated alphabetical ordering :-|
CPPSRCS = \
nsCSSAtoms.cpp \
nsCSSKeywords.cpp \
nsCSSDeclaration.cpp \
nsCSSParser.cpp \

View File

@ -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 \

View File

@ -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);
}
}