]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkmain.h
stylecontext: Do invalidation on first resize container
[~andy/gtk] / gtk / gtkmain.h
index c7afed29e56f8e1489954cc3d12d5cd54841b0ec..549989afb5a6c81dafbea1d321aa6183f5a71d78 100644 (file)
@@ -8,26 +8,28 @@
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
 /*
  * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
  * file for a list of people on the GTK+ Team.  See the ChangeLog
  * files for a list of changes.  These files are distributed with
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
+ * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
  */
 
 #ifndef __GTK_MAIN_H__
 #define __GTK_MAIN_H__
 
 
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
 #include <gdk/gdk.h>
 #include <gtk/gtkwidget.h>
 #ifdef G_PLATFORM_WIN32
 #include <gtk/gtkwindow.h>
 #endif
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
+G_BEGIN_DECLS
 
-/* Priorities for redrawing and resizing
+/**
+ * GTK_PRIORITY_RESIZE:
+ *
+ * Use this priority for functionality related to size allocation.
+ *
+ * It is used internally by GTK+ to compute the sizes of widgets.
+ * This priority is higher than %GDK_PRIORITY_REDRAW to avoid
+ * resizing a widget which was just redrawn.
  */
-#define GTK_PRIORITY_RESIZE     (G_PRIORITY_HIGH_IDLE + 10)
+#define GTK_PRIORITY_RESIZE (G_PRIORITY_HIGH_IDLE + 10)
 
-#ifndef GTK_DISABLE_DEPRECATED
-
-/* Use GDK_PRIORITY_REDRAW */
-#define GTK_PRIORITY_REDRAW     (G_PRIORITY_HIGH_IDLE + 20)
-
-/* Deprecated. Use G_PRIORITY #define's instead
+/**
+ * GtkKeySnoopFunc:
+ * @grab_widget: the widget to which the event will be delivered
+ * @event: the key event
+ * @func_data: data supplied to gtk_key_snooper_install()
+ *
+ * Key snooper functions are called before normal event delivery.
+ * They can be used to implement custom key event handling.
+ *
+ * Returns: %TRUE to stop further processing of @event, %FALSE to continue.
  */
-#define GTK_PRIORITY_HIGH       G_PRIORITY_HIGH
-#define GTK_PRIORITY_INTERNAL   GTK_PRIORITY_REDRAW
-#define GTK_PRIORITY_DEFAULT   G_PRIORITY_DEFAULT_IDLE
-#define GTK_PRIORITY_LOW       G_PRIORITY_LOW
-
-#endif /* GTK_DISABLE_DEPRECATED */
+typedef gint (*GtkKeySnoopFunc) (GtkWidget   *grab_widget,
+                                 GdkEventKey *event,
+                                 gpointer     func_data);
 
-typedef void   (*GtkModuleInitFunc)        (gint         *argc,
-                                            gchar      ***argv);
-typedef void   (*GtkModuleDisplayInitFunc) (GdkDisplay   *display);
-typedef gint   (*GtkKeySnoopFunc)          (GtkWidget    *grab_widget,
-                                            GdkEventKey  *event,
-                                            gpointer      func_data);
-
-/* Gtk version.
+/* GTK+ version
  */
-#ifdef G_PLATFORM_WIN32
-#ifdef GTK_COMPILATION
-#define GTKMAIN_C_VAR __declspec(dllexport)
-#else
-#define GTKMAIN_C_VAR extern __declspec(dllimport)
-#endif
-#else
-#define GTKMAIN_C_VAR extern
-#endif
+guint gtk_get_major_version (void) G_GNUC_CONST;
+guint gtk_get_minor_version (void) G_GNUC_CONST;
+guint gtk_get_micro_version (void) G_GNUC_CONST;
+guint gtk_get_binary_age    (void) G_GNUC_CONST;
+guint gtk_get_interface_age (void) G_GNUC_CONST;
+
+#define gtk_major_version gtk_get_major_version ()
+#define gtk_minor_version gtk_get_minor_version ()
+#define gtk_micro_version gtk_get_micro_version ()
+#define gtk_binary_age gtk_get_binary_age ()
+#define gtk_interface_age gtk_get_interface_age ()
 
-GTKMAIN_C_VAR const guint gtk_major_version;
-GTKMAIN_C_VAR const guint gtk_minor_version;
-GTKMAIN_C_VAR const guint gtk_micro_version;
-GTKMAIN_C_VAR const guint gtk_binary_age;
-GTKMAIN_C_VAR const guint gtk_interface_age;
-gchar* gtk_check_version (guint        required_major,
-                         guint required_minor,
-                         guint required_micro);
+const gchar* gtk_check_version (guint   required_major,
+                                guint   required_minor,
+                                guint   required_micro);
 
 
 /* Initialization, exit, mainloop and miscellaneous routines
  */
 
+gboolean gtk_parse_args           (int    *argc,
+                                   char ***argv);
+
 void     gtk_init                 (int    *argc,
                                    char ***argv);
 
 gboolean gtk_init_check           (int    *argc,
                                    char ***argv);
-#ifdef G_PLATFORM_WIN32
+
+gboolean gtk_init_with_args       (gint                 *argc,
+                                   gchar              ***argv,
+                                   const gchar          *parameter_string,
+                                   const GOptionEntry   *entries,
+                                   const gchar          *translation_domain,
+                                   GError              **error);
+
+GOptionGroup *gtk_get_option_group (gboolean open_default_display);
+
+#ifdef G_OS_WIN32
 
 /* Variants that are used to check for correct struct packing
  * when building GTK+-using code.
  */
-void    gtk_init_abi_check       (int    *argc,
-                                  char ***argv,
-                                  int     num_checks,
-                                  size_t  sizeof_GtkWindow,
-                                  size_t  sizeof_GtkBox);
-gboolean gtk_init_check_abi_check (int   *argc,
-                                  char ***argv,
-                                  int     num_checks,
-                                  size_t  sizeof_GtkWindow,
-                                  size_t  sizeof_GtkBox);
+void     gtk_init_abi_check       (int    *argc,
+                                   char ***argv,
+                                   int     num_checks,
+                                   size_t  sizeof_GtkWindow,
+                                   size_t  sizeof_GtkBox);
+gboolean gtk_init_check_abi_check (int    *argc,
+                                   char ***argv,
+                                   int     num_checks,
+                                   size_t  sizeof_GtkWindow,
+                                   size_t  sizeof_GtkBox);
 
 #define gtk_init(argc, argv) gtk_init_abi_check (argc, argv, 2, sizeof (GtkWindow), sizeof (GtkBox))
 #define gtk_init_check(argc, argv) gtk_init_check_abi_check (argc, argv, 2, sizeof (GtkWindow), sizeof (GtkBox))
 
 #endif
 
-#ifndef GTK_DISABLE_DEPRECATED
-void     gtk_exit                 (gint    error_code);
-#endif /* GTK_DISABLE_DEPRECATED */
-
 void           gtk_disable_setlocale    (void);
-gchar *        gtk_set_locale           (void);
 PangoLanguage *gtk_get_default_language (void);
-gint           gtk_events_pending       (void);
+gboolean       gtk_events_pending       (void);
 
-/* The following is the event func GTK+ registers with GDK
- * we expose it mainly to allow filtering of events between
- * GDK and GTK+.
- */
-void      gtk_main_do_event       (GdkEvent           *event);
-
-void      gtk_main                (void);
-guint     gtk_main_level          (void);
-void      gtk_main_quit           (void);
-gboolean   gtk_main_iteration     (void);
-/* gtk_main_iteration() calls gtk_main_iteration_do(TRUE) */
-gboolean   gtk_main_iteration_do   (gboolean blocking);
-
-gboolean   gtk_true               (void) G_GNUC_CONST;
-gboolean   gtk_false              (void) G_GNUC_CONST;
-
-void      gtk_grab_add            (GtkWidget          *widget);
-GtkWidget* gtk_grab_get_current           (void);
-void      gtk_grab_remove         (GtkWidget          *widget);
-
-void      gtk_init_add            (GtkFunction        function,
-                                   gpointer           data);
-void      gtk_quit_add_destroy    (guint              main_level,
-                                   GtkObject         *object);
-guint     gtk_quit_add            (guint              main_level,
-                                   GtkFunction        function,
-                                   gpointer           data);
-guint     gtk_quit_add_full       (guint              main_level,
-                                   GtkFunction        function,
-                                   GtkCallbackMarshal marshal,
-                                   gpointer           data,
-                                   GtkDestroyNotify   destroy);
-void      gtk_quit_remove         (guint              quit_handler_id);
-void      gtk_quit_remove_by_data (gpointer           data);
-#if !defined (GTK_DISABLE_DEPRECATED) || defined (GTK_COMPILATION)
-guint     gtk_timeout_add         (guint32            interval,
-                                   GtkFunction        function,
-                                   gpointer           data);
-guint     gtk_timeout_add_full    (guint32            interval,
-                                   GtkFunction        function,
-                                   GtkCallbackMarshal marshal,
-                                   gpointer           data,
-                                   GtkDestroyNotify   destroy);
-void      gtk_timeout_remove      (guint              timeout_handler_id);
-
-guint     gtk_idle_add            (GtkFunction        function,
-                                   gpointer           data);
-guint     gtk_idle_add_priority   (gint               priority,
-                                   GtkFunction        function,
-                                   gpointer           data);
-guint     gtk_idle_add_full       (gint               priority,
-                                   GtkFunction        function,
-                                   GtkCallbackMarshal marshal,
-                                   gpointer           data,
-                                   GtkDestroyNotify   destroy);
-void      gtk_idle_remove         (guint              idle_handler_id);
-void      gtk_idle_remove_by_data (gpointer           data);
-guint     gtk_input_add_full      (gint               source,
-                                   GdkInputCondition  condition,
-                                   GdkInputFunction   function,
-                                   GtkCallbackMarshal marshal,
-                                   gpointer           data,
-                                   GtkDestroyNotify   destroy);
-void      gtk_input_remove        (guint              input_handler_id);
-#endif /* !GTK_DISABLE_DEPRECATED || GTK_COMPILATION */
-
-guint     gtk_key_snooper_install (GtkKeySnoopFunc snooper,
-                                   gpointer        func_data);
-void      gtk_key_snooper_remove  (guint           snooper_handler_id);
-
-GdkEvent*       gtk_get_current_event       (void);
-guint32         gtk_get_current_event_time  (void);
-gboolean        gtk_get_current_event_state (GdkModifierType *state);
-
-GtkWidget* gtk_get_event_widget           (GdkEvent       *event);
-
-
-/* Private routines internal to GTK+ 
- */
-void       gtk_propagate_event     (GtkWidget         *widget,
-                                   GdkEvent          *event);
+void       gtk_main_do_event       (GdkEvent           *event);
+void       gtk_main                (void);
+guint      gtk_main_level          (void);
+void       gtk_main_quit           (void);
+gboolean   gtk_main_iteration      (void);
+gboolean   gtk_main_iteration_do   (gboolean            blocking);
+
+gboolean   gtk_true                (void) G_GNUC_CONST;
+gboolean   gtk_false               (void) G_GNUC_CONST;
+
+void       gtk_grab_add            (GtkWidget          *widget);
+GtkWidget* gtk_grab_get_current    (void);
+void       gtk_grab_remove         (GtkWidget          *widget);
+
+void       gtk_device_grab_add     (GtkWidget          *widget,
+                                    GdkDevice          *device,
+                                    gboolean            block_others);
+void       gtk_device_grab_remove  (GtkWidget          *widget,
+                                    GdkDevice          *device);
+
+GDK_DEPRECATED_IN_3_4
+guint      gtk_key_snooper_install (GtkKeySnoopFunc snooper,
+                                    gpointer        func_data);
+GDK_DEPRECATED_IN_3_4
+void       gtk_key_snooper_remove  (guint           snooper_handler_id);
+
+GdkEvent * gtk_get_current_event        (void);
+guint32    gtk_get_current_event_time   (void);
+gboolean   gtk_get_current_event_state  (GdkModifierType *state);
+GdkDevice *gtk_get_current_event_device (void);
 
-gboolean _gtk_boolean_handled_accumulator (GSignalInvocationHint *ihint,
-                                   GValue                *return_accu,
-                                   const GValue          *handler_return,
-                                   gpointer               dummy);
+GtkWidget *gtk_get_event_widget         (GdkEvent        *event);
 
-gchar * _gtk_find_module     (const gchar *name,
-                             const gchar *type);
-gchar **_gtk_get_module_path (const gchar *type);
+void       gtk_propagate_event          (GtkWidget       *widget,
+                                         GdkEvent        *event);
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
 
+G_END_DECLS
 
 #endif /* __GTK_MAIN_H__ */