X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkmain.h;h=549989afb5a6c81dafbea1d321aa6183f5a71d78;hb=cade42d5094ceaa7799aa8e2135959573646a4b6;hp=0dbd4cc43cb2ac367be46351f7938b89df9373af;hpb=a3034938827c6b66ac536a19f737d64d94d60309;p=~andy%2Fgtk diff --git a/gtk/gtkmain.h b/gtk/gtkmain.h index 0dbd4cc43..549989afb 100644 --- a/gtk/gtkmain.h +++ b/gtk/gtkmain.h @@ -2,114 +2,171 @@ * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public + * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * 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 - * Library General Public License for more details. + * 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 Library General Public - * License along with this library; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see . */ + +/* + * 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/. + */ + #ifndef __GTK_MAIN_H__ #define __GTK_MAIN_H__ +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only can be included directly." +#endif + #include #include +#ifdef G_PLATFORM_WIN32 +#include +#include +#endif + +G_BEGIN_DECLS +/** + * 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) + +/** + * 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. + */ +typedef gint (*GtkKeySnoopFunc) (GtkWidget *grab_widget, + GdkEventKey *event, + gpointer func_data); -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ +/* GTK+ version + */ +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_PRIORITY_HIGH -20 -#define GTK_PRIORITY_INTERNAL -10 -#define GTK_PRIORITY_DEFAULT 0 -#define GTK_PRIORITY_LOW 10 +#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 () -typedef gint (*GtkKeySnoopFunc) (GtkWidget *grab_widget, - GdkEventKey *event, - gpointer func_data); +const gchar* gtk_check_version (guint required_major, + guint required_minor, + guint required_micro); /* Initialization, exit, mainloop and miscellaneous routines */ -void gtk_init (int *argc, - char ***argv); -void gtk_exit (gint error_code); -gchar* gtk_set_locale (void); -gint gtk_events_pending (void); -void gtk_main (void); -guint gtk_main_level (void); -void gtk_main_quit (void); -gint gtk_main_iteration (void); -/* gtk_main_iteration() calls gtk_main_iteration_do(TRUE) */ -gint gtk_main_iteration_do (gboolean blocking); - -gint gtk_true (void); -gint gtk_false (void); - -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); - -gint gtk_timeout_add_full (guint32 interval, - GtkFunction function, - GtkCallbackMarshal marshal, - gpointer data, - GtkDestroyNotify destroy); -gint gtk_timeout_add (guint32 interval, - GtkFunction function, - gpointer data); -gint gtk_timeout_add_interp (guint32 interval, - GtkCallbackMarshal function, - gpointer data, - GtkDestroyNotify notify); -void gtk_timeout_remove (gint tag); - -gint gtk_idle_add (GtkFunction function, - gpointer data); -gint gtk_idle_add_priority (gint priority, - GtkFunction function, - gpointer data); -gint gtk_idle_add_full (gint priority, - GtkFunction function, - GtkCallbackMarshal marshal, - gpointer data, - GtkDestroyNotify destroy); -gint gtk_idle_add_interp (GtkCallbackMarshal marshal, - gpointer data, - GtkDestroyNotify destroy); -void gtk_idle_remove (gint tag); -void gtk_idle_remove_by_data (gpointer data); -gint gtk_input_add_full (gint source, - GdkInputCondition condition, - GdkInputFunction function, - GtkCallbackMarshal marshal, - gpointer data, - GtkDestroyNotify destroy); -void gtk_input_remove (gint tag); - - -gint gtk_key_snooper_install (GtkKeySnoopFunc snooper, - gpointer func_data); -void gtk_key_snooper_remove (gint snooper_id); - -GdkEvent* gtk_get_current_event (void); -GtkWidget* gtk_get_event_widget (GdkEvent *event); - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ +gboolean gtk_parse_args (int *argc, + char ***argv); + +void gtk_init (int *argc, + char ***argv); + +gboolean gtk_init_check (int *argc, + char ***argv); + +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); + +#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 + +void gtk_disable_setlocale (void); +PangoLanguage *gtk_get_default_language (void); +gboolean gtk_events_pending (void); + +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); + +GtkWidget *gtk_get_event_widget (GdkEvent *event); + +void gtk_propagate_event (GtkWidget *widget, + GdkEvent *event); + + +G_END_DECLS #endif /* __GTK_MAIN_H__ */