2018-10-28 21:14:05 -05:00

73 lines
22 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `Environment` struct in crate `smithay_client_toolkit`."><meta name="keywords" content="rust, rustlang, rust-lang, Environment"><title>smithay_client_toolkit::Environment - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../dark.css"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><script src="../storage.js"></script></head><body class="rustdoc struct"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><p class='location'>Struct Environment</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#fields">Fields</a><div class="sidebar-links"><a href="#structfield.manager">manager</a><a href="#structfield.compositor">compositor</a><a href="#structfield.subcompositor">subcompositor</a><a href="#structfield.shell">shell</a><a href="#structfield.shm">shm</a><a href="#structfield.data_device_manager">data_device_manager</a><a href="#structfield.outputs">outputs</a><a href="#structfield.decorations_mgr">decorations_mgr</a></div><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.from_registry">from_registry</a><a href="#method.from_registry_with_cb">from_registry_with_cb</a><a href="#method.shm_formats">shm_formats</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a></div></div><p class='location'><a href='index.html'>smithay_client_toolkit</a></p><script>window.sidebarCurrent = {name: 'Environment', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><input class="search-input" name="search" autocomplete="off" placeholder="Click or press S to search, ? for more options…" type="search"><a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='in-band'>Struct <a href='index.html'>smithay_client_toolkit</a>::<wbr><a class="struct" href=''>Environment</a></span><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../src/smithay_client_toolkit/env.rs.html#47-69' title='goto source code'>[src]</a></span></h1><div class="docblock type-decl"><pre class='rust struct'>pub struct Environment {
pub manager: <a class="struct" href="../smithay_client_toolkit/reexports/client/struct.GlobalManager.html" title="struct smithay_client_toolkit::reexports::client::GlobalManager">GlobalManager</a>,
pub compositor: <a class="struct" href="../smithay_client_toolkit/reexports/client/struct.Proxy.html" title="struct smithay_client_toolkit::reexports::client::Proxy">Proxy</a>&lt;<a class="struct" href="../smithay_client_toolkit/reexports/client/protocol/wl_compositor/struct.WlCompositor.html" title="struct smithay_client_toolkit::reexports::client::protocol::wl_compositor::WlCompositor">WlCompositor</a>&gt;,
pub subcompositor: <a class="struct" href="../smithay_client_toolkit/reexports/client/struct.Proxy.html" title="struct smithay_client_toolkit::reexports::client::Proxy">Proxy</a>&lt;<a class="struct" href="../smithay_client_toolkit/reexports/client/protocol/wl_subcompositor/struct.WlSubcompositor.html" title="struct smithay_client_toolkit::reexports::client::protocol::wl_subcompositor::WlSubcompositor">WlSubcompositor</a>&gt;,
pub shell: <a class="enum" href="../smithay_client_toolkit/enum.Shell.html" title="enum smithay_client_toolkit::Shell">Shell</a>,
pub shm: <a class="struct" href="../smithay_client_toolkit/reexports/client/struct.Proxy.html" title="struct smithay_client_toolkit::reexports::client::Proxy">Proxy</a>&lt;<a class="struct" href="../smithay_client_toolkit/reexports/client/protocol/wl_shm/struct.WlShm.html" title="struct smithay_client_toolkit::reexports::client::protocol::wl_shm::WlShm">WlShm</a>&gt;,
pub data_device_manager: <a class="struct" href="../smithay_client_toolkit/reexports/client/struct.Proxy.html" title="struct smithay_client_toolkit::reexports::client::Proxy">Proxy</a>&lt;<a class="struct" href="../smithay_client_toolkit/reexports/client/protocol/wl_data_device_manager/struct.WlDataDeviceManager.html" title="struct smithay_client_toolkit::reexports::client::protocol::wl_data_device_manager::WlDataDeviceManager">WlDataDeviceManager</a>&gt;,
pub outputs: <a class="struct" href="../smithay_client_toolkit/output/struct.OutputMgr.html" title="struct smithay_client_toolkit::output::OutputMgr">OutputMgr</a>,
pub decorations_mgr: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../smithay_client_toolkit/reexports/client/struct.Proxy.html" title="struct smithay_client_toolkit::reexports::client::Proxy">Proxy</a>&lt;<a class="struct" href="../smithay_client_toolkit/reexports/protocols/unstable/xdg_decoration/v1/client/zxdg_decoration_manager_v1/struct.ZxdgDecorationManagerV1.html" title="struct smithay_client_toolkit::reexports::protocols::unstable::xdg_decoration::v1::client::zxdg_decoration_manager_v1::ZxdgDecorationManagerV1">ZxdgDecorationManagerV1</a>&gt;&gt;,
// some fields omitted
}</pre></div><div class='docblock'><p>A convenience for global management</p>
<p>This type provides convenience utilities for writing wayland
client apps, by auto-binding a large portion of the global
objects you'll likely need to write your app. This is mostly
provided as a mean to factor a consequent amount of dumb,
redundant code.</p>
</div><h2 id='fields' class='fields small-section-header'>
Fields<a href='#fields' class='anchor'></a></h2><span id="structfield.manager" class="structfield small-section-header">
<a href="#structfield.manager" class="anchor field"></a>
<span id="manager.v" class='invisible'>
<code>manager: <a class="struct" href="../smithay_client_toolkit/reexports/client/struct.GlobalManager.html" title="struct smithay_client_toolkit::reexports::client::GlobalManager">GlobalManager</a></code>
</span></span><div class='docblock'><p>The underlying GlobalManager wrapping your registry</p>
</div><span id="structfield.compositor" class="structfield small-section-header">
<a href="#structfield.compositor" class="anchor field"></a>
<span id="compositor.v" class='invisible'>
<code>compositor: <a class="struct" href="../smithay_client_toolkit/reexports/client/struct.Proxy.html" title="struct smithay_client_toolkit::reexports::client::Proxy">Proxy</a>&lt;<a class="struct" href="../smithay_client_toolkit/reexports/client/protocol/wl_compositor/struct.WlCompositor.html" title="struct smithay_client_toolkit::reexports::client::protocol::wl_compositor::WlCompositor">WlCompositor</a>&gt;</code>
</span></span><div class='docblock'><p>The compositor global, used to create surfaces</p>
</div><span id="structfield.subcompositor" class="structfield small-section-header">
<a href="#structfield.subcompositor" class="anchor field"></a>
<span id="subcompositor.v" class='invisible'>
<code>subcompositor: <a class="struct" href="../smithay_client_toolkit/reexports/client/struct.Proxy.html" title="struct smithay_client_toolkit::reexports::client::Proxy">Proxy</a>&lt;<a class="struct" href="../smithay_client_toolkit/reexports/client/protocol/wl_subcompositor/struct.WlSubcompositor.html" title="struct smithay_client_toolkit::reexports::client::protocol::wl_subcompositor::WlSubcompositor">WlSubcompositor</a>&gt;</code>
</span></span><div class='docblock'><p>The subcompositor global, used to create subsurfaces</p>
</div><span id="structfield.shell" class="structfield small-section-header">
<a href="#structfield.shell" class="anchor field"></a>
<span id="shell.v" class='invisible'>
<code>shell: <a class="enum" href="../smithay_client_toolkit/enum.Shell.html" title="enum smithay_client_toolkit::Shell">Shell</a></code>
</span></span><div class='docblock'><p>The shell global, used make your surfaces into windows</p>
<p>This tries to bind using the xdg_shell protocol, and fallbacks
to wl_shell if it fails</p>
</div><span id="structfield.shm" class="structfield small-section-header">
<a href="#structfield.shm" class="anchor field"></a>
<span id="shm.v" class='invisible'>
<code>shm: <a class="struct" href="../smithay_client_toolkit/reexports/client/struct.Proxy.html" title="struct smithay_client_toolkit::reexports::client::Proxy">Proxy</a>&lt;<a class="struct" href="../smithay_client_toolkit/reexports/client/protocol/wl_shm/struct.WlShm.html" title="struct smithay_client_toolkit::reexports::client::protocol::wl_shm::WlShm">WlShm</a>&gt;</code>
</span></span><div class='docblock'><p>The SHM global, to create shared memory buffers</p>
</div><span id="structfield.data_device_manager" class="structfield small-section-header">
<a href="#structfield.data_device_manager" class="anchor field"></a>
<span id="data_device_manager.v" class='invisible'>
<code>data_device_manager: <a class="struct" href="../smithay_client_toolkit/reexports/client/struct.Proxy.html" title="struct smithay_client_toolkit::reexports::client::Proxy">Proxy</a>&lt;<a class="struct" href="../smithay_client_toolkit/reexports/client/protocol/wl_data_device_manager/struct.WlDataDeviceManager.html" title="struct smithay_client_toolkit::reexports::client::protocol::wl_data_device_manager::WlDataDeviceManager">WlDataDeviceManager</a>&gt;</code>
</span></span><div class='docblock'><p>The data device manager, used to handle drag&amp;drop and selection
copy/paste</p>
</div><span id="structfield.outputs" class="structfield small-section-header">
<a href="#structfield.outputs" class="anchor field"></a>
<span id="outputs.v" class='invisible'>
<code>outputs: <a class="struct" href="../smithay_client_toolkit/output/struct.OutputMgr.html" title="struct smithay_client_toolkit::output::OutputMgr">OutputMgr</a></code>
</span></span><div class='docblock'><p>A manager for handling the advertized outputs</p>
</div><span id="structfield.decorations_mgr" class="structfield small-section-header">
<a href="#structfield.decorations_mgr" class="anchor field"></a>
<span id="decorations_mgr.v" class='invisible'>
<code>decorations_mgr: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../smithay_client_toolkit/reexports/client/struct.Proxy.html" title="struct smithay_client_toolkit::reexports::client::Proxy">Proxy</a>&lt;<a class="struct" href="../smithay_client_toolkit/reexports/protocols/unstable/xdg_decoration/v1/client/zxdg_decoration_manager_v1/struct.ZxdgDecorationManagerV1.html" title="struct smithay_client_toolkit::reexports::protocols::unstable::xdg_decoration::v1::client::zxdg_decoration_manager_v1::ZxdgDecorationManagerV1">ZxdgDecorationManagerV1</a>&gt;&gt;</code>
</span></span><div class='docblock'><p>The decoration manager, if the server supports server-side decorations</p>
</div><h2 id='methods' class='small-section-header'>Methods<a href='#methods' class='anchor'></a></h2><h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="struct" href="../smithay_client_toolkit/struct.Environment.html" title="struct smithay_client_toolkit::Environment">Environment</a></code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/smithay_client_toolkit/env.rs.html#71-206' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.from_registry' class="method"><span id='from_registry.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.from_registry' class='fnname'>from_registry</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;registry: <a class="struct" href="../smithay_client_toolkit/reexports/client/struct.NewProxy.html" title="struct smithay_client_toolkit::reexports::client::NewProxy">NewProxy</a>&lt;<a class="struct" href="../smithay_client_toolkit/reexports/client/protocol/wl_registry/struct.WlRegistry.html" title="struct smithay_client_toolkit::reexports::client::protocol::wl_registry::WlRegistry">WlRegistry</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;evq: &amp;mut <a class="struct" href="../smithay_client_toolkit/reexports/client/struct.EventQueue.html" title="struct smithay_client_toolkit::reexports::client::EventQueue">EventQueue</a><br>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="struct" href="../smithay_client_toolkit/struct.Environment.html" title="struct smithay_client_toolkit::Environment">Environment</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/smithay_client_toolkit/env.rs.html#80-85' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Create an environment wrapping a new registry</p>
<p>It requires you to provide the <code>EventQueue</code> as well because
the initialization process does a few roundtrip to the server
to initialize all the globals.</p>
<p>This may panic or fail if you do not provide the EventQueue hosting
the registry you provided.</p>
</div><h4 id='method.from_registry_with_cb' class="method"><span id='from_registry_with_cb.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.from_registry_with_cb' class='fnname'>from_registry_with_cb</a>&lt;Impl&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;registry: <a class="struct" href="../smithay_client_toolkit/reexports/client/struct.NewProxy.html" title="struct smithay_client_toolkit::reexports::client::NewProxy">NewProxy</a>&lt;<a class="struct" href="../smithay_client_toolkit/reexports/client/protocol/wl_registry/struct.WlRegistry.html" title="struct smithay_client_toolkit::reexports::client::protocol::wl_registry::WlRegistry">WlRegistry</a>&gt;, <br>&nbsp;&nbsp;&nbsp;&nbsp;evq: &amp;mut <a class="struct" href="../smithay_client_toolkit/reexports/client/struct.EventQueue.html" title="struct smithay_client_toolkit::reexports::client::EventQueue">EventQueue</a>, <br>&nbsp;&nbsp;&nbsp;&nbsp;cb: Impl<br>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="struct" href="../smithay_client_toolkit/struct.Environment.html" title="struct smithay_client_toolkit::Environment">Environment</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Impl: <a class="trait" href="../smithay_client_toolkit/reexports/client/commons/trait.Implementation.html" title="trait smithay_client_toolkit::reexports::client::commons::Implementation">Implementation</a>&lt;<a class="struct" href="../smithay_client_toolkit/reexports/client/struct.Proxy.html" title="struct smithay_client_toolkit::reexports::client::Proxy">Proxy</a>&lt;<a class="struct" href="../smithay_client_toolkit/reexports/client/protocol/wl_registry/struct.WlRegistry.html" title="struct smithay_client_toolkit::reexports::client::protocol::wl_registry::WlRegistry">WlRegistry</a>&gt;, <a class="enum" href="../smithay_client_toolkit/reexports/client/enum.GlobalEvent.html" title="enum smithay_client_toolkit::reexports::client::GlobalEvent">GlobalEvent</a>&gt; + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'static,&nbsp;</span></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/smithay_client_toolkit/env.rs.html#93-200' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Create an environment wrapping a new registry</p>
<p>Additionnaly to <code>from_registry</code>, this allows you to provide
a callback to be notified of global events, just like
<code>GlobalManager::new_with_cb</code>. Note that you will still
receive events even if they are processed by this <code>Environment</code>.</p>
</div><h4 id='method.shm_formats' class="method"><div class="important-traits"><div class='tooltip'><span class='tooltiptext'>Important traits for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;</span></div><div class="content hidden"><h3 class="important">Important traits for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;</h3><code class="content"><span class="where fmt-newline">impl <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Write.html" title="trait std::io::Write">Write</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;</span></code></div></div><span id='shm_formats.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.shm_formats' class='fnname'>shm_formats</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="enum" href="../smithay_client_toolkit/reexports/client/protocol/wl_shm/enum.Format.html" title="enum smithay_client_toolkit::reexports::client::protocol::wl_shm::Format">Format</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../src/smithay_client_toolkit/env.rs.html#203-205' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Retrive the accepted SHM formats of the server</p>
</div></div><h2 id='synthetic-implementations' class='small-section-header'>Auto Trait Implementations<a href='#synthetic-implementations' class='anchor'></a></h2><div id='synthetic-implementations-list'><h3 id='impl-Send' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="../smithay_client_toolkit/struct.Environment.html" title="struct smithay_client_toolkit::Environment">Environment</a></code><a href='#impl-Send' class='anchor'></a></span></td><td><span class='out-of-band'></span></td></tr></tbody></table></h3><div class='impl-items'></div><h3 id='impl-Sync' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="../smithay_client_toolkit/struct.Environment.html" title="struct smithay_client_toolkit::Environment">Environment</a></code><a href='#impl-Sync' class='anchor'></a></span></td><td><span class='out-of-band'></span></td></tr></tbody></table></h3><div class='impl-items'></div></div></section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g. <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g. <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g. <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../";window.currentCrate = "smithay_client_toolkit";</script><script src="../aliases.js"></script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>