mirror of
				https://github.com/LadybirdBrowser/ladybird.git
				synced 2025-11-04 07:10:57 +00:00 
			
		
		
		
	The upcoming generated types will match those for pseudo-classes: A PseudoElementSelector type, that then holds a PseudoElement enum defining what it is. That enum will be at the top level in the Web::CSS namespace. In order to keep the diffs clearer, this commit renames and moves the types, and then a following one will replace the handwritten enum with a generated one.
		
			
				
	
	
		
			28 lines
		
	
	
	
		
			834 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
	
		
			834 B
		
	
	
	
		
			C++
		
	
	
	
	
	
/*
 | 
						|
 * Copyright (c) 2018-2024, Andreas Kling <andreas@ladybird.org>
 | 
						|
 *
 | 
						|
 * SPDX-License-Identifier: BSD-2-Clause
 | 
						|
 */
 | 
						|
 | 
						|
#pragma once
 | 
						|
 | 
						|
#include <LibWeb/CSS/Selector.h>
 | 
						|
#include <LibWeb/DOM/Element.h>
 | 
						|
 | 
						|
namespace Web::SelectorEngine {
 | 
						|
 | 
						|
enum class SelectorKind {
 | 
						|
    Normal,
 | 
						|
    Relative,
 | 
						|
};
 | 
						|
 | 
						|
struct MatchContext {
 | 
						|
    GC::Ptr<CSS::CSSStyleSheet const> style_sheet_for_rule {};
 | 
						|
    GC::Ptr<DOM::Element const> subject {};
 | 
						|
    bool collect_per_element_selector_involvement_metadata { false };
 | 
						|
    bool did_match_any_hover_rules { false };
 | 
						|
};
 | 
						|
 | 
						|
bool matches(CSS::Selector const&, DOM::Element const&, GC::Ptr<DOM::Element const> shadow_host, MatchContext& context, Optional<CSS::PseudoElement> = {}, GC::Ptr<DOM::ParentNode const> scope = {}, SelectorKind selector_kind = SelectorKind::Normal, GC::Ptr<DOM::Element const> anchor = nullptr);
 | 
						|
 | 
						|
}
 |