1 /* ATK - Accessibility Toolkit
2 * Copyright 2007 Sun Microsystems Inc.
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, see <http://www.gnu.org/licenses/>.
22 * @Short_description: A set of ATK utility functions for thread locking
25 * A set of utility functions for thread locking. This interface and
26 * all his related methods are deprecated since 2.12.
29 static void atk_misc_class_init (AtkMiscClass *klass);
32 atk_misc_get_type (void)
34 static GType type = 0;
38 static const GTypeInfo typeInfo =
40 sizeof (AtkMiscClass),
42 (GBaseFinalizeFunc) NULL,
43 (GClassInitFunc) atk_misc_class_init,
44 (GClassFinalizeFunc) NULL,
48 (GInstanceInitFunc) NULL,
50 type = g_type_register_static (G_TYPE_OBJECT, "AtkMisc", &typeInfo, 0) ;
56 atk_misc_class_init (AtkMiscClass *klass)
58 klass->threads_enter = NULL;
59 klass->threads_leave = NULL;
63 * atk_misc_threads_enter:
64 * @misc: an AtkMisc instance for this application.
66 * Take the thread mutex for the GUI toolkit,
68 * (This method is implemented by the toolkit ATK implementation layer;
69 * for instance, for GTK+, GAIL implements this via GDK_THREADS_ENTER).
71 * Deprecated: Since 2.12.
77 atk_misc_threads_enter (AtkMisc *misc)
84 klass = ATK_MISC_GET_CLASS (misc);
86 if (klass->threads_enter)
88 klass->threads_enter (misc);
93 * atk_misc_threads_leave:
94 * @misc: an AtkMisc instance for this application.
96 * Release the thread mutex for the GUI toolkit,
97 * if one exists. This method, and atk_misc_threads_enter,
98 * are needed in some situations by threaded application code which
99 * services ATK requests, since fulfilling ATK requests often
100 * requires calling into the GUI toolkit. If a long-running or
101 * potentially blocking call takes place inside such a block, it should
102 * be bracketed by atk_misc_threads_leave/atk_misc_threads_enter calls.
103 * (This method is implemented by the toolkit ATK implementation layer;
104 * for instance, for GTK+, GAIL implements this via GDK_THREADS_LEAVE).
106 * Deprecated: Since 2.12.
112 atk_misc_threads_leave (AtkMisc *misc)
119 klass = ATK_MISC_GET_CLASS (misc);
121 if (klass->threads_leave)
123 klass->threads_leave (misc);
127 AtkMisc *atk_misc_instance = NULL;
130 * atk_misc_get_instance:
132 * Obtain the singleton instance of AtkMisc for this application.
136 * Deprecated: Since 2.12.
138 * Returns: The singleton instance of AtkMisc for this application.
142 atk_misc_get_instance (void)
144 return atk_misc_instance;