X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkmain.h;h=549989afb5a6c81dafbea1d321aa6183f5a71d78;hb=HEAD;hp=fb262c77889bcbb2f3194d284c40aae63678405f;hpb=443e8c395e9f45d89f669c944366055eead5d021;p=~andy%2Fgtk diff --git a/gtk/gtkmain.h b/gtk/gtkmain.h index fb262c778..549989afb 100644 --- a/gtk/gtkmain.h +++ b/gtk/gtkmain.h @@ -2,175 +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-1999. See the AUTHORS + * 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 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 */ -#ifdef G_OS_WIN32 -#ifdef GTK_COMPILATION -#define GTKMAIN_C_VAR __declspec(dllexport) -#else -#define GTKMAIN_C_VAR __declspec(dllimport) extern -#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; -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); +#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 */ +gboolean gtk_parse_args (int *argc, + char ***argv); + 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); -gchar* gtk_get_default_language (void); -gint gtk_events_pending (void); +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); -/* 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+ +#ifdef G_OS_WIN32 + +/* Variants that are used to check for correct struct packing + * when building GTK+-using code. */ -void gtk_propagate_event (GtkWidget *widget, - GdkEvent *event); +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); -#ifdef __cplusplus -} -#endif /* __cplusplus */ +G_END_DECLS #endif /* __GTK_MAIN_H__ */