Add docs for GtkStack
This commit is contained in:
@ -7564,3 +7564,23 @@ GTK_HEADER_BAR_GET_CLASS
|
|||||||
<SUBSECTION Private>
|
<SUBSECTION Private>
|
||||||
gtk_header_bar_get_type
|
gtk_header_bar_get_type
|
||||||
</SECTION>
|
</SECTION>
|
||||||
|
|
||||||
|
<SECTION>
|
||||||
|
<FILE>gtkstack</FILE>
|
||||||
|
<TITLE>GtkStack</TITLE>
|
||||||
|
GtkStack
|
||||||
|
gtk_stack_new
|
||||||
|
gtk_stack_add_named
|
||||||
|
gtk_stack_add_titled
|
||||||
|
gtk_stack_set_visible_child
|
||||||
|
gtk_stack_get_visible_child
|
||||||
|
gtk_stack_set_visible_child_name
|
||||||
|
gtk_stack_get_visible_child_name
|
||||||
|
gtk_stack_set_homogeneous
|
||||||
|
gtk_stack_get_homogeneous
|
||||||
|
gtk_stack_set_transition_duration
|
||||||
|
gtk_stack_get_transition_duration
|
||||||
|
GtkStackTransitionType
|
||||||
|
gtk_stack_set_transition_type
|
||||||
|
gtk_stack_get_transition_type
|
||||||
|
</SECTION>
|
||||||
|
197
gtk/gtkstack.c
197
gtk/gtkstack.c
@ -28,6 +28,37 @@
|
|||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SECTION:gtkstack
|
||||||
|
* @Short_description: A stacking container
|
||||||
|
* @Title: GtkStack
|
||||||
|
* @See_also: #GtkNotebook, #GtkStackSwitcher
|
||||||
|
*
|
||||||
|
* The GtkStack widget is a container which only shows
|
||||||
|
* one of its children at a time. In contrast to GtkNotebook,
|
||||||
|
* GtkStack does not provide a visible means for users
|
||||||
|
* to change the visible child. Instead, the #GtkStackSwitcher
|
||||||
|
* widget can be used with GtkStack to provide this functionality.
|
||||||
|
*
|
||||||
|
* Transitions between pages can be animated as slides or
|
||||||
|
* fades. This can be controlled with gtk_stack_set_transition_type().
|
||||||
|
* These animations respect the #GtkSettings::gtk-enable-animations
|
||||||
|
* setting.
|
||||||
|
*
|
||||||
|
* The GtkStack widget was added in GTK+ 3.10.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GtkStackTransitionType:
|
||||||
|
* @GTK_STACK_TRANSITION_TYPE_NONE: No transition
|
||||||
|
* @GTK_STACK_TRANSITION_TYPE_CROSSFADE: A cross-fade
|
||||||
|
* @GTK_STACK_TRANSITION_TYPE_SLIDE_RIGHT: Slight from left to right
|
||||||
|
* @GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT: Sligth from right to left
|
||||||
|
*
|
||||||
|
* These enumeration values describe the possible transitions
|
||||||
|
* between pages in a #GtkStack widget.
|
||||||
|
*/
|
||||||
|
|
||||||
/* TODO:
|
/* TODO:
|
||||||
* more transition types (slides)
|
* more transition types (slides)
|
||||||
* filter events out events to the last_child widget during transitions
|
* filter events out events to the last_child widget during transitions
|
||||||
@ -77,7 +108,6 @@ struct _GtkStackPrivate {
|
|||||||
cairo_surface_t *last_visible_surface;
|
cairo_surface_t *last_visible_surface;
|
||||||
GtkAllocation last_visible_surface_allocation;
|
GtkAllocation last_visible_surface_allocation;
|
||||||
gdouble transition_pos;
|
gdouble transition_pos;
|
||||||
|
|
||||||
guint tick_id;
|
guint tick_id;
|
||||||
gint64 start_time;
|
gint64 start_time;
|
||||||
gint64 end_time;
|
gint64 end_time;
|
||||||
@ -386,7 +416,15 @@ gtk_stack_class_init (GtkStackClass *klass)
|
|||||||
g_type_class_add_private (klass, sizeof (GtkStackPrivate));
|
g_type_class_add_private (klass, sizeof (GtkStackPrivate));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_stack_new:
|
||||||
|
*
|
||||||
|
* Creates a new #GtkStack container.
|
||||||
|
*
|
||||||
|
* Returns: a new #GtkStack
|
||||||
|
*
|
||||||
|
* Since: 3.10
|
||||||
|
*/
|
||||||
GtkWidget *
|
GtkWidget *
|
||||||
gtk_stack_new (void)
|
gtk_stack_new (void)
|
||||||
{
|
{
|
||||||
@ -808,6 +846,20 @@ stack_child_visibility_notify_cb (GObject *obj,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_stack_add_titled:
|
||||||
|
* @stack: a #GtkStack
|
||||||
|
* @child: the widget to add
|
||||||
|
* @name: the name for @child
|
||||||
|
* @title: a human-readable title for @child
|
||||||
|
*
|
||||||
|
* Adds a child to @stack.
|
||||||
|
* The child is identified by the @name. The @title
|
||||||
|
* will be used by #GtkStackSwitcher to represent
|
||||||
|
* @child in a tab bar, so it should be short.
|
||||||
|
*
|
||||||
|
* Since: 3.10
|
||||||
|
*/
|
||||||
void
|
void
|
||||||
gtk_stack_add_titled (GtkStack *stack,
|
gtk_stack_add_titled (GtkStack *stack,
|
||||||
GtkWidget *child,
|
GtkWidget *child,
|
||||||
@ -824,6 +876,17 @@ gtk_stack_add_titled (GtkStack *stack,
|
|||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_stack_add_named:
|
||||||
|
* @stack: a #GtkStack
|
||||||
|
* @child: the widget to add
|
||||||
|
* @name: the name for @child
|
||||||
|
*
|
||||||
|
* Adds a child to @stack.
|
||||||
|
* The child is identified by the @name.
|
||||||
|
*
|
||||||
|
* Since: 3.10
|
||||||
|
*/
|
||||||
void
|
void
|
||||||
gtk_stack_add_named (GtkStack *stack,
|
gtk_stack_add_named (GtkStack *stack,
|
||||||
GtkWidget *child,
|
GtkWidget *child,
|
||||||
@ -914,6 +977,18 @@ gtk_stack_remove (GtkContainer *container,
|
|||||||
gtk_widget_queue_resize (GTK_WIDGET (stack));
|
gtk_widget_queue_resize (GTK_WIDGET (stack));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_stack_set_homogeneous:
|
||||||
|
* @stack: a #GtkStack
|
||||||
|
* @homogeneous: %TRUE to make @stack homogeneous
|
||||||
|
*
|
||||||
|
* Sets the #GtkStack to be homogeneous or not. If it
|
||||||
|
* is homogeneous, the #GtkStack will request the same
|
||||||
|
* size for all its children. If it isn't, the stack
|
||||||
|
* may change size when a different child becomes visible.
|
||||||
|
*
|
||||||
|
* Since: 3.10
|
||||||
|
*/
|
||||||
void
|
void
|
||||||
gtk_stack_set_homogeneous (GtkStack *stack,
|
gtk_stack_set_homogeneous (GtkStack *stack,
|
||||||
gboolean homogeneous)
|
gboolean homogeneous)
|
||||||
@ -937,6 +1012,17 @@ gtk_stack_set_homogeneous (GtkStack *stack,
|
|||||||
g_object_notify (G_OBJECT (stack), "homogeneous");
|
g_object_notify (G_OBJECT (stack), "homogeneous");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_stack_get_homogeneous:
|
||||||
|
* @stack: a #GtkStack
|
||||||
|
*
|
||||||
|
* Gets whether @stack is homogeneous.
|
||||||
|
* See gtk_stack_set_homogeneous().
|
||||||
|
*
|
||||||
|
* Return value: whether @stack is homogeneous.
|
||||||
|
*
|
||||||
|
* Since: 3.10
|
||||||
|
*/
|
||||||
gboolean
|
gboolean
|
||||||
gtk_stack_get_homogeneous (GtkStack *stack)
|
gtk_stack_get_homogeneous (GtkStack *stack)
|
||||||
{
|
{
|
||||||
@ -945,6 +1031,17 @@ gtk_stack_get_homogeneous (GtkStack *stack)
|
|||||||
return stack->priv->homogeneous;
|
return stack->priv->homogeneous;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_stack_get_transition_duration:
|
||||||
|
* @stack: a #GtkStack
|
||||||
|
*
|
||||||
|
* Returns the amount of time (in milliseconds that
|
||||||
|
* transitions between pages in @stack will take.
|
||||||
|
*
|
||||||
|
* Returns: the transition duration
|
||||||
|
*
|
||||||
|
* Since: 3.10
|
||||||
|
*/
|
||||||
gint
|
gint
|
||||||
gtk_stack_get_transition_duration (GtkStack *stack)
|
gtk_stack_get_transition_duration (GtkStack *stack)
|
||||||
{
|
{
|
||||||
@ -953,16 +1050,39 @@ gtk_stack_get_transition_duration (GtkStack *stack)
|
|||||||
return stack->priv->transition_duration;
|
return stack->priv->transition_duration;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_stack_set_transition_duration:
|
||||||
|
* @stack: a #GtkStack
|
||||||
|
* @transition_duration: the new duration, in milliseconds
|
||||||
|
*
|
||||||
|
* Sets the duration that transitions between pages in @stack
|
||||||
|
* will take.
|
||||||
|
*
|
||||||
|
* Returns: the transition duration
|
||||||
|
*
|
||||||
|
* Since: 3.10
|
||||||
|
*/
|
||||||
void
|
void
|
||||||
gtk_stack_set_transition_duration (GtkStack *stack,
|
gtk_stack_set_transition_duration (GtkStack *stack,
|
||||||
gint value)
|
gint transition_duration)
|
||||||
{
|
{
|
||||||
g_return_if_fail (GTK_IS_STACK (stack));
|
g_return_if_fail (GTK_IS_STACK (stack));
|
||||||
|
|
||||||
stack->priv->transition_duration = value;
|
stack->priv->transition_duration = transition_duration;
|
||||||
g_object_notify (G_OBJECT (stack), "transition-duration");
|
g_object_notify (G_OBJECT (stack), "transition-duration");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_stack_get_transition_type:
|
||||||
|
* @stack: a #GtkStack
|
||||||
|
*
|
||||||
|
* Gets the type of animation that will be used
|
||||||
|
* for transitions between pages in @stack.
|
||||||
|
*
|
||||||
|
* Return value: the current transition type of @stack
|
||||||
|
*
|
||||||
|
* Since: 3.10
|
||||||
|
*/
|
||||||
GtkStackTransitionType
|
GtkStackTransitionType
|
||||||
gtk_stack_get_transition_type (GtkStack *stack)
|
gtk_stack_get_transition_type (GtkStack *stack)
|
||||||
{
|
{
|
||||||
@ -971,13 +1091,28 @@ gtk_stack_get_transition_type (GtkStack *stack)
|
|||||||
return stack->priv->transition_type;
|
return stack->priv->transition_type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_stack_set_transition_type:
|
||||||
|
* @stack: a #GtkStack
|
||||||
|
* @transition_type: the new transition type
|
||||||
|
*
|
||||||
|
* Sets the type of animation that will be used for
|
||||||
|
* transitions between pages in @stack. Available
|
||||||
|
* types include various kinds of fades and slides.
|
||||||
|
*
|
||||||
|
* The transition type can be changed without problems
|
||||||
|
* at runtime, so it is possible to change the animation
|
||||||
|
* based on the page that is about to become current.
|
||||||
|
*
|
||||||
|
* Since: 3.10
|
||||||
|
*/
|
||||||
void
|
void
|
||||||
gtk_stack_set_transition_type (GtkStack *stack,
|
gtk_stack_set_transition_type (GtkStack *stack,
|
||||||
GtkStackTransitionType value)
|
GtkStackTransitionType transition_type)
|
||||||
{
|
{
|
||||||
g_return_if_fail (GTK_IS_STACK (stack));
|
g_return_if_fail (GTK_IS_STACK (stack));
|
||||||
|
|
||||||
stack->priv->transition_type = value;
|
stack->priv->transition_type = transition_type;
|
||||||
g_object_notify (G_OBJECT (stack), "transition-type");
|
g_object_notify (G_OBJECT (stack), "transition-type");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -985,12 +1120,13 @@ gtk_stack_set_transition_type (GtkStack *stack,
|
|||||||
* gtk_stack_get_visible_child:
|
* gtk_stack_get_visible_child:
|
||||||
* @stack: a #GtkStack
|
* @stack: a #GtkStack
|
||||||
*
|
*
|
||||||
* Gets the currently visible child of the #GtkStack, or %NULL if the
|
* Gets the currently visible child of @stack, or %NULL if
|
||||||
* there are no visible children. The returned widget does not have a reference
|
* there are no visible children.
|
||||||
* added, so you do not need to unref it.
|
|
||||||
*
|
*
|
||||||
* Return value: (transfer none): pointer to child of the #GtkStack
|
* Return value: (transfer none): the visible child of the #GtkStack
|
||||||
**/
|
*
|
||||||
|
* Since: 3.10
|
||||||
|
*/
|
||||||
GtkWidget *
|
GtkWidget *
|
||||||
gtk_stack_get_visible_child (GtkStack *stack)
|
gtk_stack_get_visible_child (GtkStack *stack)
|
||||||
{
|
{
|
||||||
@ -999,6 +1135,17 @@ gtk_stack_get_visible_child (GtkStack *stack)
|
|||||||
return stack->priv->visible_child ? stack->priv->visible_child->widget : NULL;
|
return stack->priv->visible_child ? stack->priv->visible_child->widget : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_stack_get_visible_child_name:
|
||||||
|
* @stack: a #GtkStack
|
||||||
|
*
|
||||||
|
* Returns the name of the currently visible child of @stack, or
|
||||||
|
* %NULL if there is no visible child.
|
||||||
|
*
|
||||||
|
* Return value: (transfer none): the name of the visible child of the #GtkStack
|
||||||
|
*
|
||||||
|
* Since: 3.10
|
||||||
|
*/
|
||||||
const gchar *
|
const gchar *
|
||||||
gtk_stack_get_visible_child_name (GtkStack *stack)
|
gtk_stack_get_visible_child_name (GtkStack *stack)
|
||||||
{
|
{
|
||||||
@ -1010,6 +1157,20 @@ gtk_stack_get_visible_child_name (GtkStack *stack)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_stack_set_visible_child:
|
||||||
|
* @stack: a #GtkStack
|
||||||
|
* @child: a child of @stack
|
||||||
|
*
|
||||||
|
* Makes @child the visible child of @stack.
|
||||||
|
*
|
||||||
|
* If @child is different from the currently
|
||||||
|
* visible child, the transition between the
|
||||||
|
* two will be animated with the current
|
||||||
|
* transition type of @stack.
|
||||||
|
*
|
||||||
|
* Since: 3.10
|
||||||
|
*/
|
||||||
void
|
void
|
||||||
gtk_stack_set_visible_child (GtkStack *stack,
|
gtk_stack_set_visible_child (GtkStack *stack,
|
||||||
GtkWidget *child)
|
GtkWidget *child)
|
||||||
@ -1027,6 +1188,20 @@ gtk_stack_set_visible_child (GtkStack *stack,
|
|||||||
set_visible_child (stack, child_info);
|
set_visible_child (stack, child_info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* gtk_stack_set_visible_child_name:
|
||||||
|
* @stack: a #GtkStack
|
||||||
|
* @name: the name of the child to make visible
|
||||||
|
*
|
||||||
|
* Makes the child with the given name visible.
|
||||||
|
*
|
||||||
|
* If @child is different from the currently
|
||||||
|
* visible child, the transition between the
|
||||||
|
* two will be animated with the current
|
||||||
|
* transition type of @stack.
|
||||||
|
*
|
||||||
|
* Since: 3.10
|
||||||
|
*/
|
||||||
void
|
void
|
||||||
gtk_stack_set_visible_child_name (GtkStack *stack,
|
gtk_stack_set_visible_child_name (GtkStack *stack,
|
||||||
const gchar *name)
|
const gchar *name)
|
||||||
|
@ -77,7 +77,7 @@ void gtk_stack_set_transition_duration (GtkStack
|
|||||||
gint transition_duration);
|
gint transition_duration);
|
||||||
gint gtk_stack_get_transition_duration (GtkStack *stack);
|
gint gtk_stack_get_transition_duration (GtkStack *stack);
|
||||||
void gtk_stack_set_transition_type (GtkStack *stack,
|
void gtk_stack_set_transition_type (GtkStack *stack,
|
||||||
GtkStackTransitionType type);
|
GtkStackTransitionType transition_type);
|
||||||
GtkStackTransitionType gtk_stack_get_transition_type (GtkStack *stack);
|
GtkStackTransitionType gtk_stack_get_transition_type (GtkStack *stack);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
Reference in New Issue
Block a user