[PATCH 1/2] Clarify the enum argument type
Nils Chr. Brause
nilschrbrause at gmail.com
Thu Oct 1 08:09:53 PDT 2015
Hi,
I would recommend to also include the name of the interface, where the enum
is defined, in the enum attribute, e.g:
<arg name="format" type="uint" enum="wl_shm.format"/>
Also, I think you forgot some enum attributes, e.g. wl_shm_pool::
create_buffer::format is the wl_shm::format enum, but I can't find it in
your patch (I can't seem to find the e-mail with your second patch, though).
You might want to compare with my XML file:
https://github.com/NilsBrause/waylandpp/blob/master/scanner/wayland.xml
Apart from that, I like it for obvious reasons. :)
Cheers,
Nils
On 23 Apr 2015 04:41, "Bill Spitzak" <spitzak at gmail.com> wrote:
>
> This improvement to the protocol allows you to refer to the kind of enum
you are expecting.
> It also introduces a distinction between enums that are bitfields, ie
> that can be OR'ed together.
> ---
> protocol/wayland.dtd | 2 ++
> protocol/wayland.xml | 32 ++++++++++++++++----------------
> 2 files changed, 18 insertions(+), 16 deletions(-)
>
> diff --git a/protocol/wayland.dtd b/protocol/wayland.dtd
> index b8b1573..3b67ca8 100644
> --- a/protocol/wayland.dtd
> +++ b/protocol/wayland.dtd
> @@ -14,6 +14,7 @@
> <!ELEMENT enum (description?,entry*)>
> <!ATTLIST enum name CDATA #REQUIRED>
> <!ATTLIST enum since CDATA #IMPLIED>
> + <!ATTLIST enum bitfield CDATA #IMPLIED>
> <!ELEMENT entry (description?)>
> <!ATTLIST entry name CDATA #REQUIRED>
> <!ATTLIST entry value CDATA #REQUIRED>
> @@ -25,5 +26,6 @@
> <!ATTLIST arg summary CDATA #IMPLIED>
> <!ATTLIST arg interface CDATA #IMPLIED>
> <!ATTLIST arg allow-null CDATA #IMPLIED>
> + <!ATTLIST arg enum CDATA #IMPLIED>
> <!ELEMENT description (#PCDATA)>
> <!ATTLIST description summary CDATA #REQUIRED>
> diff --git a/protocol/wayland.xml b/protocol/wayland.xml
> index f52677f..2b9efa1 100644
> --- a/protocol/wayland.xml
> +++ b/protocol/wayland.xml
> @@ -367,7 +367,7 @@
> can be used for buffers. Known formats include
> argb8888 and xrgb8888.
> </description>
> - <arg name="format" type="uint"/>
> + <arg name="format" type="uint" enum="format"/>
> </event>
> </interface>
>
> @@ -774,7 +774,7 @@
> </description>
> <arg name="seat" type="object" interface="wl_seat" summary="the
wl_seat whose pointer is used"/>
> <arg name="serial" type="uint" summary="serial of the implicit
grab on the pointer"/>
> - <arg name="edges" type="uint" summary="which edge or corner is
being dragged"/>
> + <arg name="edges" type="uint" summary="which edge or corner is
being dragged" enum="resize"/>
> </request>
>
> <request name="set_toplevel">
> @@ -785,7 +785,7 @@
> </description>
> </request>
>
> - <enum name="transient">
> + <enum name="transient" bitfield="true">
> <description summary="details of transient behaviour">
> These flags specify details of the expected behaviour
> of transient surfaces. Used in the set_transient request.
> @@ -807,7 +807,7 @@
> <arg name="parent" type="object" interface="wl_surface"/>
> <arg name="x" type="int"/>
> <arg name="y" type="int"/>
> - <arg name="flags" type="uint"/>
> + <arg name="flags" type="uint" enum="transient"/>
> </request>
>
> <enum name="fullscreen_method">
> @@ -891,7 +891,7 @@
> <arg name="parent" type="object" interface="wl_surface"/>
> <arg name="x" type="int"/>
> <arg name="y" type="int"/>
> - <arg name="flags" type="uint"/>
> + <arg name="flags" type="uint" enum="transient"/>
> </request>
>
> <request name="set_maximized">
> @@ -972,7 +972,7 @@
> in surface local coordinates.
> </description>
>
> - <arg name="edges" type="uint"/>
> + <arg name="edges" type="uint" enum="resize"/>
> <arg name="width" type="int"/>
> <arg name="height" type="int"/>
> </event>
> @@ -1337,7 +1337,7 @@
> maintains a keyboard focus and a pointer focus.
> </description>
>
> - <enum name="capability">
> + <enum name="capability" bitfield="true">
> <description summary="seat capability bitmask">
> This is a bitmask of capabilities this seat has; if a member is
> set, then it is present on the seat.
> @@ -1353,7 +1353,7 @@
> keyboard or touch capabilities. The argument is a capability
> enum containing the complete set of capabilities this seat has.
> </description>
> - <arg name="capabilities" type="uint"/>
> + <arg name="capabilities" type="uint" enum="capability"/>
> </event>
>
> <request name="get_pointer">
> @@ -1521,7 +1521,7 @@
> <arg name="serial" type="uint"/>
> <arg name="time" type="uint" summary="timestamp with millisecond
granularity"/>
> <arg name="button" type="uint"/>
> - <arg name="state" type="uint"/>
> + <arg name="state" type="uint" enum="button_state"/>
> </event>
>
> <enum name="axis">
> @@ -1553,7 +1553,7 @@
> </description>
>
> <arg name="time" type="uint" summary="timestamp with millisecond
granularity"/>
> - <arg name="axis" type="uint"/>
> + <arg name="axis" type="uint" enum="axis"/>
> <arg name="value" type="fixed"/>
> </event>
>
> @@ -1593,7 +1593,7 @@
> This event provides a file descriptor to the client which can be
> memory-mapped to provide a keyboard mapping description.
> </description>
> - <arg name="format" type="uint"/>
> + <arg name="format" type="uint" enum="keymap_format"/>
> <arg name="fd" type="fd"/>
> <arg name="size" type="uint"/>
> </event>
> @@ -1638,7 +1638,7 @@
> <arg name="serial" type="uint"/>
> <arg name="time" type="uint" summary="timestamp with millisecond
granularity"/>
> <arg name="key" type="uint"/>
> - <arg name="state" type="uint"/>
> + <arg name="state" type="uint" enum="key_state"/>
> </event>
>
> <event name="modifiers">
> @@ -1819,17 +1819,17 @@
> summary="width in millimeters of the output"/>
> <arg name="physical_height" type="int"
> summary="height in millimeters of the output"/>
> - <arg name="subpixel" type="int"
> + <arg name="subpixel" type="int" enum="subpixel"
> summary="subpixel orientation of the output"/>
> <arg name="make" type="string"
> summary="textual description of the manufacturer"/>
> <arg name="model" type="string"
> summary="textual description of the model"/>
> - <arg name="transform" type="int"
> + <arg name="transform" type="int" enum="transform"
> summary="transform that maps framebuffer to output"/>
> </event>
>
> - <enum name="mode">
> + <enum name="mode" bitfield="true">
> <description summary="mode information">
> These flags describe properties of an output mode.
> They are used in the flags bitfield of the mode event.
> @@ -1856,7 +1856,7 @@
> the output may be scaled, as described in wl_output.scale,
> or transformed , as described in wl_output.transform.
> </description>
> - <arg name="flags" type="uint" summary="bitfield of mode flags"/>
> + <arg name="flags" type="uint" summary="bitfield of mode flags"
enum="mode"/>
> <arg name="width" type="int" summary="width of the mode in
hardware units"/>
> <arg name="height" type="int" summary="height of the mode in
hardware units"/>
> <arg name="refresh" type="int" summary="vertical refresh rate in
mHz"/>
> --
> 1.7.9.5
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20151001/3eeba5f9/attachment.html>
More information about the wayland-devel
mailing list