<?xml version="1.0" encoding="UTF-8" ?>
<class name="InputEventWithModifiers" inherits="InputEventFromWindow" api_type="core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		Abstract base class for input events affected by modifier keys like [kbd]Shift[/kbd] and [kbd]Alt[/kbd].
	</brief_description>
	<description>
		Stores information about mouse, keyboard, and touch gesture input events. This includes information about which modifier keys are pressed, such as [kbd]Shift[/kbd] or [kbd]Alt[/kbd]. See [method Node._input].
		[b]Note:[/b] Modifier keys are considered modifiers only when used in combination with another key. As a result, their corresponding member variables, such as [member ctrl_pressed], will return [code]false[/code] if the key is pressed on its own.
	</description>
	<tutorials>
		<link title="Using InputEvent">$DOCS_URL/tutorials/inputs/inputevent.html</link>
	</tutorials>
	<methods>
		<method name="get_modifiers_mask" qualifiers="const">
			<return type="int" enum="KeyModifierMask" is_bitfield="true" />
			<description>
				Returns the keycode combination of modifier keys.
			</description>
		</method>
		<method name="is_command_or_control_pressed" qualifiers="const">
			<return type="bool" />
			<description>
				On macOS, returns [code]true[/code] if [kbd]Meta[/kbd] ([kbd]Cmd[/kbd]) is pressed.
				On other platforms, returns [code]true[/code] if [kbd]Ctrl[/kbd] is pressed.
			</description>
		</method>
	</methods>
	<members>
		<member name="alt_pressed" type="bool" setter="set_alt_pressed" getter="is_alt_pressed" default="false">
			State of the [kbd]Alt[/kbd] modifier.
		</member>
		<member name="command_or_control_autoremap" type="bool" setter="set_command_or_control_autoremap" getter="is_command_or_control_autoremap" default="false">
			Automatically use [kbd]Meta[/kbd] ([kbd]Cmd[/kbd]) on macOS and [kbd]Ctrl[/kbd] on other platforms. If [code]true[/code], [member ctrl_pressed] and [member meta_pressed] cannot be set.
		</member>
		<member name="ctrl_pressed" type="bool" setter="set_ctrl_pressed" getter="is_ctrl_pressed" default="false">
			State of the [kbd]Ctrl[/kbd] modifier.
		</member>
		<member name="device" type="int" setter="set_device" getter="get_device" overrides="InputEvent" default="16" />
		<member name="meta_pressed" type="bool" setter="set_meta_pressed" getter="is_meta_pressed" default="false">
			State of the [kbd]Meta[/kbd] modifier. On Windows and Linux, this represents the Windows key (sometimes called "meta" or "super" on Linux). On macOS, this represents the Command key.
		</member>
		<member name="shift_pressed" type="bool" setter="set_shift_pressed" getter="is_shift_pressed" default="false">
			State of the [kbd]Shift[/kbd] modifier.
		</member>
	</members>
</class>
