Copyright 2020 The River Developers
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
This protocol allows clients to access a typed key-value store of
options. These options are identified by string keys and are scoped
either globally or per-output. This protocol does not define any
semantic meaning of the options, that is left up to compositors.
Compositors are free to set options themselves at any time, though
the type of any given option is immutable once set.
Options may never be unset once set.
This request indicates that the client will not use the manager object
any more. Objects that have been created through this instance are
not affected.
If the output argument is non-null, the option is local to the given
output. Otherwise it is considered global.
On binding this object, one of the events will immediately be sent by
the server to inform the client of the current state of the option. New
events will be sent as the state changes.
This request indicates that the client will not use the
zriver_option_handle_v1 any more and that it may be safely destroyed.
The option with this key has never been set, so the first set_*_value
request received from any client will determine its type.
This can only ever be sent as the first event after binding this
interface as options cannot be unset once set.
This indicates to the client that the option is of type int as well
as the current value of the option. Once set the type of the option
can never change.
This indicates to the client that the option is of type uint as well
as the current value of the option. Once set the type of the option
can never change.
This indicates to the client that the option is of type fixed as
well as the current value of the option. Once set the type of the option
can never change.
This indicates to the client that the option is of type string as
well as the current value of the option. Once set the type of the option
can never change.
If the option is either unset or set to a value of type int, this
request asks the compositor to set the value of the option as well
as the type if previously unset. The compositor is not required to
honor this request.
If the option is already set and is not of type int, this request does nothing.
If the option is either unset or set to a value of type uint, this
request asks the compositor to set the value of the option as well
as the type if previously unset. The compositor is not required to
honor this request.
If the option is already set and is not of type uint, this request
does nothing.
If the option is either unset or set to a value of type fixed, this
request asks the compositor to set the value of the option as well
as the type if previously unset. The compositor is not required to
honor this request.
If the option is already set and is not of type fixed, this request
does nothing.
If the option is either unset or set to a value of type string,
this request asks the compositor to set the value of the option as
well as the type if previously unset. The compositor is not required
to honor this request.
If the option is already set and is not of type string, this request
does nothing.