[gtk+] API: Add gtk_widget_is_visible()
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] API: Add gtk_widget_is_visible()
- Date: Sun, 4 Nov 2012 14:35:56 +0000 (UTC)
commit 48ff2fc7ed1f418002def55fc496a7f86f9e7ef7
Author: Benjamin Otte <otte redhat com>
Date: Fri Nov 2 00:42:45 2012 +0100
API: Add gtk_widget_is_visible()
This is a recursive gtk_widget_get_visible(): Returns TRUE if the widget
and all its parents are visible.
docs/reference/gtk/gtk3-sections.txt | 1 +
gtk/gtk.symbols | 1 +
gtk/gtkwidget.c | 41 +++++++++++++++++++++++++++++++--
gtk/gtkwidget.h | 1 +
4 files changed, 41 insertions(+), 3 deletions(-)
---
diff --git a/docs/reference/gtk/gtk3-sections.txt b/docs/reference/gtk/gtk3-sections.txt
index 9e159b1..0cdc991 100644
--- a/docs/reference/gtk/gtk3-sections.txt
+++ b/docs/reference/gtk/gtk3-sections.txt
@@ -5291,6 +5291,7 @@ gtk_widget_get_sensitive
gtk_widget_is_sensitive
gtk_widget_get_state
gtk_widget_get_visible
+gtk_widget_is_visible
gtk_widget_set_visible
gtk_widget_set_state_flags
gtk_widget_unset_state_flags
diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols
index 9a1a86b..0e4eee4 100644
--- a/gtk/gtk.symbols
+++ b/gtk/gtk.symbols
@@ -3708,6 +3708,7 @@ gtk_widget_is_composited
gtk_widget_is_drawable
gtk_widget_is_focus
gtk_widget_is_sensitive
+gtk_widget_is_visible
gtk_widget_is_toplevel
gtk_widget_keynav_failed
gtk_widget_list_accel_closures
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 58ad57a..2f4dc08 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -7484,9 +7484,11 @@ _gtk_widget_set_visible_flag (GtkWidget *widget,
* gtk_widget_get_visible:
* @widget: a #GtkWidget
*
- * Determines whether the widget is visible. Note that this doesn't
- * take into account whether the widget's parent is also visible
- * or the widget is obscured in any way.
+ * Determines whether the widget is visible. If you want to
+ * take into account whether the widget's parent is also marked as
+ * visible, use gtk_widget_is_visible() instead.
+ *
+ * This function does not check if the widget is obscured in any way.
*
* See gtk_widget_set_visible().
*
@@ -7503,6 +7505,39 @@ gtk_widget_get_visible (GtkWidget *widget)
}
/**
+ * gtk_widget_is_visible:
+ * @widget: a #GtkWidget
+ *
+ * Determines whether the widget and all its parents are marked as
+ * visible.
+ *
+ * This function does not check if the widget is obscured in any way.
+ *
+ * See also gtk_widget_get_visible() and gtk_widget_set_visible()
+ *
+ * Return value: %TRUE if the widget and all its parents are visible
+ *
+ * Since: 3.8
+ **/
+gboolean
+gtk_widget_is_visible (GtkWidget *widget)
+{
+ g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
+
+ while (widget)
+ {
+ GtkWidgetPrivate *priv = widget->priv;
+
+ if (!priv->visible)
+ return FALSE;
+
+ widget = priv->parent;
+ }
+
+ return TRUE;
+}
+
+/**
* gtk_widget_set_has_window:
* @widget: a #GtkWidget
* @has_window: whether or not @widget has a window.
diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h
index c178478..2cdc7f3 100644
--- a/gtk/gtkwidget.h
+++ b/gtk/gtkwidget.h
@@ -589,6 +589,7 @@ gboolean gtk_widget_is_sensitive (GtkWidget *widget);
void gtk_widget_set_visible (GtkWidget *widget,
gboolean visible);
gboolean gtk_widget_get_visible (GtkWidget *widget);
+gboolean gtk_widget_is_visible (GtkWidget *widget);
void gtk_widget_set_has_window (GtkWidget *widget,
gboolean has_window);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]