@Returns:
-<!-- ##### FUNCTION gtk_init_add ##### -->
-<para>
-Registers a function to be called when the mainloop is started.
-</para>
-
-@function: Function to invoke when gtk_main() is called next.
-@data: Data to pass to that function.
-@Deprecated: This function is going to be removed in GTK+ 3.0
-
-
<!-- ##### FUNCTION gtk_quit_add_destroy ##### -->
<para>
Trigger destruction of @object in case the mainloop at level @main_level
/* Private type definitions
*/
-typedef struct _GtkInitFunction GtkInitFunction;
typedef struct _GtkQuitFunction GtkQuitFunction;
typedef struct _GtkKeySnooperData GtkKeySnooperData;
-struct _GtkInitFunction
-{
- GtkFunction function;
- gpointer data;
-};
-
struct _GtkQuitFunction
{
guint id;
static GSList *main_loops = NULL; /* stack of currently executing main loops */
-static GList *init_functions = NULL; /* A list of init functions.
- */
static GList *quit_functions = NULL; /* A list of quit functions.
*/
static GSList *key_snoopers = NULL;
gtk_main (void)
{
GList *tmp_list;
- GList *functions;
- GtkInitFunction *init;
GMainLoop *loop;
gtk_main_loop_level++;
loop = g_main_loop_new (NULL, TRUE);
main_loops = g_slist_prepend (main_loops, loop);
- tmp_list = functions = init_functions;
- init_functions = NULL;
-
- while (tmp_list)
- {
- init = tmp_list->data;
- tmp_list = tmp_list->next;
-
- (* init->function) (init->data);
- g_free (init);
- }
- g_list_free (functions);
-
if (g_main_loop_is_running (main_loops->data))
{
GDK_THREADS_LEAVE ();
gtk_grab_notify (group, device, widget, new_grab_widget, FALSE);
}
-void
-gtk_init_add (GtkFunction function,
- gpointer data)
-{
- GtkInitFunction *init;
-
- init = g_new (GtkInitFunction, 1);
- init->function = function;
- init->data = data;
-
- init_functions = g_list_prepend (init_functions, init);
-}
-
guint
gtk_key_snooper_install (GtkKeySnoopFunc snooper,
gpointer func_data)
GdkDevice *device);
#if !defined (GTK_DISABLE_DEPRECATED) || defined (GTK_COMPILATION)
-void gtk_init_add (GtkFunction function,
- gpointer data);
void gtk_quit_add_destroy (guint main_level,
GtkWidget *object);
guint gtk_quit_add (guint main_level,