gtk+ r20919 - in trunk: . gdk



Author: matthiasc
Date: Thu Jul 31 22:11:44 2008
New Revision: 20919
URL: http://svn.gnome.org/viewvc/gtk+?rev=20919&view=rev

Log:
Add gdk_threads_add_timeout_seconds{_full}


Modified:
   trunk/ChangeLog
   trunk/gdk/gdk.c
   trunk/gdk/gdk.h

Modified: trunk/gdk/gdk.c
==============================================================================
--- trunk/gdk/gdk.c	(original)
+++ trunk/gdk/gdk.c	Thu Jul 31 22:11:44 2008
@@ -691,6 +691,71 @@
 }
 
 
+/**
+ * gdk_threads_add_timeout_seconds_full:
+ * @priority: the priority of the timeout source. Typically this will be in the
+ *            range between #G_PRIORITY_DEFAULT_IDLE and #G_PRIORITY_HIGH_IDLE.
+ * @interval: the time between calls to the function, in seconds
+ * @function: function to call
+ * @data:     data to pass to @function
+ * @notify:   function to call when the timeout is removed, or %NULL
+ *
+ * A variant of gdk_threads_add_timout_full() with second-granularity.
+ * See g_timeout_add_seconds_full() for a discussion of why it is
+ * a good idea to use this function if you don't need finer granularity.
+ *
+ *  Return value: the ID (greater than 0) of the event source.
+ * 
+ * Since: 2.14
+ */
+guint
+gdk_threads_add_timeout_seconds_full (gint           priority,
+                                      guint          interval,
+                                      GSourceFunc    function,
+                                      gpointer       data,
+                                      GDestroyNotify notify)
+{
+  GdkThreadsDispatch *dispatch;
+
+  g_return_val_if_fail (function != NULL, 0);
+
+  dispatch = g_slice_new (GdkThreadsDispatch);
+  dispatch->func = function;
+  dispatch->data = data;
+  dispatch->destroy = notify;
+
+  return g_timeout_add_seconds_full (priority, 
+                                     interval,
+                                     gdk_threads_dispatch, 
+                                     dispatch, 
+                                     gdk_threads_dispatch_free);
+}
+
+/**
+ * gdk_threads_add_timeout_seconds:
+ * @interval: the time between calls to the function, in seconds
+ * @function: function to call
+ * @data:     data to pass to @function
+ *
+ * A wrapper for the common usage of gdk_threads_add_timeout_seconds_full() 
+ * assigning the default priority, #G_PRIORITY_DEFAULT.
+ *
+ * For details, see gdk_threads_add_timeout_full().
+ * 
+ * Return value: the ID (greater than 0) of the event source.
+ *
+ * Since: 2.14
+ */
+guint
+gdk_threads_add_timeout_seconds (guint       interval,
+                                 GSourceFunc function,
+                                 gpointer    data)
+{
+  return gdk_threads_add_timeout_seconds_full (G_PRIORITY_DEFAULT,
+                                               interval, function, data, NULL);
+}
+
+
 G_CONST_RETURN char *
 gdk_get_program_class (void)
 {

Modified: trunk/gdk/gdk.h
==============================================================================
--- trunk/gdk/gdk.h	(original)
+++ trunk/gdk/gdk.h	Thu Jul 31 22:11:44 2008
@@ -195,26 +195,34 @@
 GDKVAR GCallback gdk_threads_lock;
 GDKVAR GCallback gdk_threads_unlock;
 
-void     gdk_threads_enter                (void);
-void     gdk_threads_leave                (void);
-void     gdk_threads_init                 (void);
-void     gdk_threads_set_lock_functions   (GCallback enter_fn,
-					   GCallback leave_fn);
-
-guint    gdk_threads_add_idle_full        (gint           priority,
-		                           GSourceFunc    function,
-		                           gpointer       data,
-		                           GDestroyNotify notify);
-guint    gdk_threads_add_idle             (GSourceFunc    function,
-		                           gpointer       data);
-guint    gdk_threads_add_timeout_full     (gint           priority,
-                                           guint          interval,
-                                           GSourceFunc    function,
-                                           gpointer       data,
-                                           GDestroyNotify notify);
-guint    gdk_threads_add_timeout          (guint          interval,
-                                           GSourceFunc    function,
-                                           gpointer       data);
+void     gdk_threads_enter                    (void);
+void     gdk_threads_leave                    (void);
+void     gdk_threads_init                     (void);
+void     gdk_threads_set_lock_functions       (GCallback enter_fn,
+					       GCallback leave_fn);
+
+guint    gdk_threads_add_idle_full            (gint           priority,
+		                               GSourceFunc    function,
+		                               gpointer       data,
+		                               GDestroyNotify notify);
+guint    gdk_threads_add_idle                 (GSourceFunc    function,
+		                               gpointer       data);
+guint    gdk_threads_add_timeout_full         (gint           priority,
+                                               guint          interval,
+                                               GSourceFunc    function,
+                                               gpointer       data,
+                                               GDestroyNotify notify);
+guint    gdk_threads_add_timeout              (guint          interval,
+                                               GSourceFunc    function,
+                                               gpointer       data);
+guint    gdk_threads_add_timeout_seconds_full (gint           priority,
+                                               guint          interval,
+                                               GSourceFunc    function,
+                                               gpointer       data,
+                                               GDestroyNotify notify);
+guint    gdk_threads_add_timeout_seconds      (guint          interval,
+                                               GSourceFunc    function,
+                                               gpointer       data);
 
 #ifdef	G_THREADS_ENABLED
 #  define GDK_THREADS_ENTER()	G_STMT_START {	\



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]