X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkmain.h;h=549989afb5a6c81dafbea1d321aa6183f5a71d78;hb=fa4878979e0a72890ca577a210ccd7cf6291dbf0;hp=2f07e6cb093d6a3911e6ff10269317bd08e182a0;hpb=25cdbd356057a4e8d3a654487a739a279fa96068;p=~andy%2Fgtk diff --git a/gtk/gtkmain.h b/gtk/gtkmain.h index 2f07e6cb0..549989afb 100644 --- a/gtk/gtkmain.h +++ b/gtk/gtkmain.h @@ -2,153 +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., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, 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 -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* 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_REDRAW (G_PRIORITY_HIGH_IDLE + 20) -#define GTK_PRIORITY_RESIZE (G_PRIORITY_HIGH_IDLE + 10) +#define GTK_PRIORITY_RESIZE (G_PRIORITY_HIGH_IDLE + 10) -/* 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 - -typedef void (*GtkModuleInitFunc) (gint *argc, - gchar ***argv); -typedef gint (*GtkKeySnoopFunc) (GtkWidget *grab_widget, - GdkEventKey *event, - gpointer func_data); - -/* Gtk version. +typedef gint (*GtkKeySnoopFunc) (GtkWidget *grab_widget, + GdkEventKey *event, + gpointer func_data); + +/* GTK+ version */ -extern const guint gtk_major_version; -extern const guint gtk_minor_version; -extern const guint gtk_micro_version; -extern const guint gtk_binary_age; -extern const guint gtk_interface_age; -gchar* gtk_check_version (guint required_major, - guint required_minor, - guint required_micro); +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 () + +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); -gboolean gtk_init_check (int *argc, - char ***argv); -void gtk_exit (gint error_code); -gchar* gtk_set_locale (void); -gint 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); -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); -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); -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); - - -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); -GtkWidget* gtk_get_event_widget (GdkEvent *event); - - -/* Private routines internal to GTK+ - */ -void gtk_propagate_event (GtkWidget *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__ */