notify_state_change
Description:
public void notify_state_change (Window window, void* region_id, StateType state, bool state_value)
Warning: notify_state_change is deprecated since 3.6.
Notifies a state change on this, so if the current style makes use of transition animations, one will be
started so all rendered elements under region_id
are animated for state state
being set to value state_value
.
This function does nothing.
The window
parameter is used in order to invalidate the rendered area as the animation runs, so make sure it is the same window
that is being rendered on by the gtk_render_*() functions.
If region_id
is null, all rendered elements using this will be
affected by this state transition.
As a practical example, a Button notifying a state transition on the prelight state:
<!-- language="C" -->
gtk_style_context_notify_state_change (context,
gtk_widget_get_window (widget),
NULL,
GTK_STATE_PRELIGHT,
button->in_button);
Can be handled in the CSS file like this:
<!-- language="CSS" -->
button {
background-color: #f00
}
button:hover {
background-color: #fff;
transition: 200ms linear
}
This combination will animate the button background from red to white if a pointer enters the button, and back to red if the pointer leaves the button.
Note that state
is used when finding the transition parameters, which is why the style places the transition under the
GtkStyleContext:hover
pseudo-class.
Parameters:
this | |
window |
a Window |
region_id |
animatable region to notify on, or null. See push_animatable_region |
state |
state to trigger transition for |
state_value |
true if |