|
|
@@ -1,104 +0,0 @@
|
|
|
-/*
|
|
|
- * This source file is part of RmlUi, the HTML/CSS Interface Middleware
|
|
|
- *
|
|
|
- * For the latest information, see http://github.com/mikke89/RmlUi
|
|
|
- *
|
|
|
- * Copyright (c) 2008-2010 CodePoint Ltd, Shift Technology Ltd
|
|
|
- * Copyright (c) 2019 The RmlUi Team, and contributors
|
|
|
- *
|
|
|
- * Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
- * of this software and associated documentation files (the "Software"), to deal
|
|
|
- * in the Software without restriction, including without limitation the rights
|
|
|
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
- * copies of the Software, and to permit persons to whom the Software is
|
|
|
- * furnished to do so, subject to the following conditions:
|
|
|
- *
|
|
|
- * The above copyright notice and this permission notice shall be included in
|
|
|
- * all copies or substantial portions of the Software.
|
|
|
- *
|
|
|
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
- * THE SOFTWARE.
|
|
|
- *
|
|
|
- */
|
|
|
-
|
|
|
-#ifndef RMLUICOREELEMENTREFERENCE_H
|
|
|
-#define RMLUICOREELEMENTREFERENCE_H
|
|
|
-
|
|
|
-#include "Header.h"
|
|
|
-
|
|
|
-namespace Rml {
|
|
|
-namespace Core {
|
|
|
-
|
|
|
-class Element;
|
|
|
-
|
|
|
-/**
|
|
|
- A smart pointer for elements.
|
|
|
-
|
|
|
- @author Peter Curry
|
|
|
- */
|
|
|
-
|
|
|
- // TODO: Remove class
|
|
|
-
|
|
|
-class RMLUICORE_API ElementReference
|
|
|
-{
|
|
|
-public:
|
|
|
- ElementReference(Element* element = NULL);
|
|
|
- ElementReference(const ElementReference& copy);
|
|
|
- ~ElementReference();
|
|
|
-
|
|
|
- /// Returns true if this reference is bound to an element.
|
|
|
- /// @return True if this reference points to a non-NULL element, false otherwise.
|
|
|
- operator bool() const;
|
|
|
-
|
|
|
- /// Assigns a new element for this reference to point to.
|
|
|
- /// @param element[in] The new element.
|
|
|
- /// @return This element reference.
|
|
|
- ElementReference& operator=(Element* element);
|
|
|
- /// Assigns a new element for this reference, from another reference.
|
|
|
- /// @param element_reference[in] The element reference to copy.
|
|
|
- /// @return This element reference.
|
|
|
- ElementReference& operator=(const ElementReference& element_reference);
|
|
|
-
|
|
|
- /// Returns a reference to the underlying element.
|
|
|
- /// @return The underlying element. This may be NULL.
|
|
|
- Element* operator*();
|
|
|
- /// Returns a reference to the underlying element.
|
|
|
- /// @return The underlying element. This may be NULL.
|
|
|
- Element* operator->();
|
|
|
-
|
|
|
- /// Equality operator for the reference. Used for STL containers.
|
|
|
- /// @param rhs[in] The other element to use in the comparison.
|
|
|
- /// @return True if the elements are equivalent, false otherwise.
|
|
|
- bool operator==(const ElementReference& rhs) const;
|
|
|
- /// Equality operator for the reference.
|
|
|
- /// @param rhs[in] The other element to use in the comparison.
|
|
|
- /// @return True if the elements are equivalent, false otherwise.
|
|
|
- bool operator==(const Element* rhs) const;
|
|
|
-
|
|
|
- /// Less-than operator for the reference. Used for STL containers.
|
|
|
- /// @param rhs[in] The other element to use in the comparison.
|
|
|
- /// @return True if this element is less than the other element, false otherwise.
|
|
|
- bool operator<(const ElementReference& rhs) const;
|
|
|
-
|
|
|
- /// Inequality operator for the reference.
|
|
|
- /// @param rhs[in] The other element to use in the comparison.
|
|
|
- /// @return False if the elements are equivalent, true otherwise.
|
|
|
- bool operator!=(const ElementReference& rhs) const;
|
|
|
- /// Inequality operator for the reference.
|
|
|
- /// @param rhs[in] A raw element to use in the comparison.
|
|
|
- /// @return False if the elements are equivalent, true otherwise.
|
|
|
- bool operator!=(const Element* rhs) const;
|
|
|
-
|
|
|
-private:
|
|
|
- Element* element;
|
|
|
-};
|
|
|
-
|
|
|
-}
|
|
|
-}
|
|
|
-
|
|
|
-#endif
|