Add gtk_cell_renderer_get_state()
This is a helper function to help retrieve a GtkStateFlags from a GtkCellRendererState, also given the cell renderer and widget sensitivities.
This commit is contained in:
@ -4557,6 +4557,7 @@ gtk_cell_renderer_get_alignment
|
|||||||
gtk_cell_renderer_set_alignment
|
gtk_cell_renderer_set_alignment
|
||||||
gtk_cell_renderer_get_padding
|
gtk_cell_renderer_get_padding
|
||||||
gtk_cell_renderer_set_padding
|
gtk_cell_renderer_set_padding
|
||||||
|
gtk_cell_renderer_get_state
|
||||||
gtk_cell_renderer_is_activatable
|
gtk_cell_renderer_is_activatable
|
||||||
|
|
||||||
<SUBSECTION Width-for-height>
|
<SUBSECTION Width-for-height>
|
||||||
|
|||||||
@ -463,6 +463,7 @@ gtk_cell_renderer_get_preferred_width_for_height
|
|||||||
gtk_cell_renderer_get_request_mode
|
gtk_cell_renderer_get_request_mode
|
||||||
gtk_cell_renderer_get_sensitive
|
gtk_cell_renderer_get_sensitive
|
||||||
gtk_cell_renderer_get_size
|
gtk_cell_renderer_get_size
|
||||||
|
gtk_cell_renderer_get_state
|
||||||
gtk_cell_renderer_get_type G_GNUC_CONST
|
gtk_cell_renderer_get_type G_GNUC_CONST
|
||||||
gtk_cell_renderer_get_visible
|
gtk_cell_renderer_get_visible
|
||||||
gtk_cell_renderer_is_activatable
|
gtk_cell_renderer_is_activatable
|
||||||
|
|||||||
@ -1663,3 +1663,48 @@ gtk_cell_renderer_get_aligned_area (GtkCellRenderer *cell,
|
|||||||
g_assert ((aligned_area->x - cell_area->x) + aligned_area->width <= cell_area->width);
|
g_assert ((aligned_area->x - cell_area->x) + aligned_area->width <= cell_area->width);
|
||||||
g_assert ((aligned_area->y - cell_area->y) + aligned_area->height <= cell_area->height);
|
g_assert ((aligned_area->y - cell_area->y) + aligned_area->height <= cell_area->height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_cell_renderer_get_state:
|
||||||
|
* @cell: a #GtkCellRenderer, or %NULL
|
||||||
|
* @widget: a #GtkWidget, or %NULL
|
||||||
|
* @cell_state: cell renderer state
|
||||||
|
*
|
||||||
|
* Translates the cell renderer state to a #GtkStateFlags,
|
||||||
|
* based on the cell renderer and widget sensitivity, and
|
||||||
|
* the given #GtkCellRendererState
|
||||||
|
*
|
||||||
|
* Returns: the widget state flags applying to @cell
|
||||||
|
*
|
||||||
|
* Since: 3.0
|
||||||
|
**/
|
||||||
|
GtkStateFlags
|
||||||
|
gtk_cell_renderer_get_state (GtkCellRenderer *cell,
|
||||||
|
GtkWidget *widget,
|
||||||
|
GtkCellRendererState cell_state)
|
||||||
|
{
|
||||||
|
GtkStateFlags state = 0;
|
||||||
|
|
||||||
|
g_return_val_if_fail (!cell || GTK_IS_CELL_RENDERER (cell), 0);
|
||||||
|
g_return_val_if_fail (!widget || GTK_IS_WIDGET (widget), 0);
|
||||||
|
|
||||||
|
if ((widget && !gtk_widget_get_sensitive (widget)) ||
|
||||||
|
(cell && !gtk_cell_renderer_get_sensitive (cell)))
|
||||||
|
state |= GTK_STATE_FLAG_INSENSITIVE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ((cell_state & GTK_CELL_RENDERER_SELECTED) != 0)
|
||||||
|
{
|
||||||
|
state |= GTK_STATE_FLAG_SELECTED;
|
||||||
|
|
||||||
|
if ((widget && gtk_widget_has_focus (widget)) &&
|
||||||
|
(cell_state & GTK_CELL_RENDERER_FOCUSED) != 0)
|
||||||
|
state |= GTK_STATE_FLAG_FOCUSED;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((cell_state & GTK_CELL_RENDERER_PRELIT) != 0)
|
||||||
|
state |= GTK_STATE_FLAG_PRELIGHT;
|
||||||
|
}
|
||||||
|
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|||||||
@ -262,6 +262,10 @@ void _gtk_cell_renderer_calc_offset (GtkCellRenderer *cell,
|
|||||||
gint *x_offset,
|
gint *x_offset,
|
||||||
gint *y_offset);
|
gint *y_offset);
|
||||||
|
|
||||||
|
GtkStateFlags gtk_cell_renderer_get_state (GtkCellRenderer *cell,
|
||||||
|
GtkWidget *widget,
|
||||||
|
GtkCellRendererState cell_state);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __GTK_CELL_RENDERER_H__ */
|
#endif /* __GTK_CELL_RENDERER_H__ */
|
||||||
|
|||||||
Reference in New Issue
Block a user