Struct egui::Context [−][src]
pub struct Context { /* fields omitted */ }
Expand description
This is the first thing you need when working with egui. Create using CtxRef
.
Contains the InputState
, Memory
, Output
, and more.
Your handle to Egui.
Almost all methods are marked &self
, Context
has interior mutability (protected by mutexes).
Multi-threaded access to a Context
is behind the feature flag multi_threaded
.
Normally you’d always do all ui work on one thread, or perhaps use multiple contexts,
but if you really want to access the same Context from multiple threads, it SHOULD be fine,
but you are likely the first person to try it.
Implementations
Use CtxRef::default() instead
How much space is still available after panels has been added. This is the “background” area, what egui doesn’t cover with panels (but may cover with windows). This is also the area to which windows are constrained.
Stores all the egui state. If you want to store/restore egui, serialize this.
What egui outputs each frame.
Call this if there is need to repaint the UI, i.e. if you are showing an animation. If this is called at least once in a frame, then there will be another frame right after this. Call as many times as you wish, only one repaint will be issued.
Not valid until first call to CtxRef::begin_frame()
.
That’s because since we don’t know the proper pixels_per_point
until then.
The egui texture, containing font characters etc.
Not valid until first call to CtxRef::begin_frame()
.
That’s because since we don’t know the proper pixels_per_point
until then.
Tell egui
which fonts to use.
The default egui
fonts only support latin and cyrillic alphabets,
but you can call this to install additional fonts that support e.g. korean characters.
The new fonts will become active at the start of the next frame.
The Style
used by all new windows, panels etc.
You can also use Ui::style_mut
to change the style of a single Ui
.
Example:
let mut style: egui::Style = (*ctx.style()).clone();
style.spacing.item_spacing = egui::vec2(10.0, 20.0);
ctx.set_style(style);
The Visuals
used by all subsequent windows, panels etc.
You can also use Ui::visuals_mut
to change the visuals of a single Ui
.
Example:
ctx.set_visuals(egui::Visuals::light()); // Switch to light mode
The number of physical pixels for each logical point.
Set the number of physical pixels for each logical point. Will become active at the start of the next frame.
Note that this may be overwritten by input from the integration via RawInput::pixels_per_point
.
For instance, when using egui_web
the browsers native zoom level will always be used.
Call at the end of each frame.
Returns what has happened this frame crate::Output
as well as what you need to paint.
You can transform the returned shapes into triangles with a call to Context::tessellate
.
Tessellate the given shapes into triangle meshes.
How much space is used by panels and windows. You can shrink your egui area to this size and still fit all egui components.
Is the pointer (mouse/touch) over any egui area?
True if egui is currently interested in the pointer (mouse or touch).
Could be the pointer is hovering over a Window
or the user is dragging a widget.
If false
, the pointer is outside of any egui area and so
you may be interested in what it is doing (e.g. controlling your game).
Returns false
if a drag started outside of egui and then moved over an egui area.
Is egui currently using the pointer position (e.g. dragging a slider).
NOTE: this will return false
if the pointer is just hovering over an egui area.
Renamed wants_pointer_input
Renamed is_using_pointer
If true
, egui is currently listening on text input (e.g. typing text in a TextEdit
).
Move all the graphics at the given layer. Can be used to implement drag-and-drop (see relevant demo).
Wether or not to debug widget layout on hover.
Turn on/off wether or not to debug widget layout on hover.
Returns a value in the range [0, 1], to indicate “how on” this thing is.
The first time called it will return if value { 1.0 } else { 0.0 }
Calling this with value = true
will always yield a number larger than zero, quickly going towards one.
Calling this with value = false
will always yield a number less than one, quickly going towards zero.
The function will call Self::request_repaint()
when appropriate.
Clear memory of any animations.
Trait Implementations
Auto Trait Implementations
impl !RefUnwindSafe for Context
impl !UnwindSafe for Context
Blanket Implementations
Mutably borrows from an owned value. Read more