2008-07-01 22:57:50 +00:00
|
|
|
/* GTK - The GIMP Toolkit
|
1997-11-24 22:37:52 +00:00
|
|
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
2000-07-26 11:33:08 +00:00
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
1997-11-24 22:37:52 +00:00
|
|
|
* 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
|
2011-01-04 22:32:12 +00:00
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
2000-07-26 11:33:08 +00:00
|
|
|
* Lesser General Public License for more details.
|
1997-11-24 22:37:52 +00:00
|
|
|
*
|
2000-07-26 11:33:08 +00:00
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
2012-02-27 13:01:10 +00:00
|
|
|
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
1997-11-24 22:37:52 +00:00
|
|
|
*/
|
1999-02-24 07:37:18 +00:00
|
|
|
|
|
|
|
/*
|
2000-07-26 11:33:08 +00:00
|
|
|
* Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
|
1999-02-24 07:37:18 +00:00
|
|
|
* file for a list of people on the GTK+ Team. See the ChangeLog
|
|
|
|
* files for a list of changes. These files are distributed with
|
2008-05-28 15:35:43 +00:00
|
|
|
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
|
1999-02-24 07:37:18 +00:00
|
|
|
*/
|
|
|
|
|
1997-11-24 22:37:52 +00:00
|
|
|
#ifndef __GTK_MAIN_H__
|
|
|
|
#define __GTK_MAIN_H__
|
|
|
|
|
|
|
|
|
2012-12-28 14:57:34 +00:00
|
|
|
#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
|
|
|
|
#error "Only <gtk/gtk.h> can be included directly."
|
|
|
|
#endif
|
|
|
|
|
1997-11-24 22:37:52 +00:00
|
|
|
#include <gdk/gdk.h>
|
|
|
|
#include <gtk/gtkwidget.h>
|
2002-08-24 23:06:16 +00:00
|
|
|
#ifdef G_PLATFORM_WIN32
|
|
|
|
#include <gtk/gtkbox.h>
|
|
|
|
#include <gtk/gtkwindow.h>
|
|
|
|
#endif
|
1997-11-24 22:37:52 +00:00
|
|
|
|
2005-03-20 07:01:23 +00:00
|
|
|
G_BEGIN_DECLS
|
1997-11-24 22:37:52 +00:00
|
|
|
|
2011-01-04 22:32:12 +00:00
|
|
|
/**
|
|
|
|
* 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.
|
1998-12-19 22:27:03 +00:00
|
|
|
*/
|
2011-01-04 22:32:12 +00:00
|
|
|
#define GTK_PRIORITY_RESIZE (G_PRIORITY_HIGH_IDLE + 10)
|
1998-12-19 22:27:03 +00:00
|
|
|
|
2011-01-04 22:32:12 +00:00
|
|
|
/* GTK+ version
|
1998-03-08 02:04:26 +00:00
|
|
|
*/
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2010-09-09 08:03:22 +00:00
|
|
|
guint gtk_get_major_version (void) G_GNUC_CONST;
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2010-09-09 08:03:22 +00:00
|
|
|
guint gtk_get_minor_version (void) G_GNUC_CONST;
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2010-09-09 08:03:22 +00:00
|
|
|
guint gtk_get_micro_version (void) G_GNUC_CONST;
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2010-09-09 08:03:22 +00:00
|
|
|
guint gtk_get_binary_age (void) G_GNUC_CONST;
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2010-09-09 08:03:22 +00:00
|
|
|
guint gtk_get_interface_age (void) G_GNUC_CONST;
|
|
|
|
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2011-01-04 22:32:12 +00:00
|
|
|
const gchar* gtk_check_version (guint required_major,
|
|
|
|
guint required_minor,
|
|
|
|
guint required_micro);
|
1998-07-19 19:09:27 +00:00
|
|
|
|
1998-01-18 18:17:23 +00:00
|
|
|
|
1997-11-24 22:37:52 +00:00
|
|
|
/* Initialization, exit, mainloop and miscellaneous routines
|
|
|
|
*/
|
2000-06-21 20:41:15 +00:00
|
|
|
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2016-12-28 13:49:37 +00:00
|
|
|
void gtk_init (void);
|
2000-08-19 21:46:05 +00:00
|
|
|
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2016-12-28 13:49:37 +00:00
|
|
|
gboolean gtk_init_check (void);
|
2010-06-09 17:12:27 +00:00
|
|
|
|
2018-06-08 17:03:22 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
|
|
|
gboolean gtk_is_initialized (void);
|
|
|
|
|
2018-06-08 17:10:59 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
|
|
|
GThread * gtk_get_main_thread (void);
|
|
|
|
|
2011-01-11 15:13:34 +00:00
|
|
|
#ifdef G_OS_WIN32
|
2000-08-19 21:46:05 +00:00
|
|
|
|
|
|
|
/* Variants that are used to check for correct struct packing
|
|
|
|
* when building GTK+-using code.
|
|
|
|
*/
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2017-01-20 10:38:53 +00:00
|
|
|
void gtk_init_abi_check (int num_checks,
|
2011-01-04 22:32:12 +00:00
|
|
|
size_t sizeof_GtkWindow,
|
|
|
|
size_t sizeof_GtkBox);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2017-01-20 10:38:53 +00:00
|
|
|
gboolean gtk_init_check_abi_check (int num_checks,
|
2011-01-04 22:32:12 +00:00
|
|
|
size_t sizeof_GtkWindow,
|
|
|
|
size_t sizeof_GtkBox);
|
2000-08-19 21:46:05 +00:00
|
|
|
|
2017-01-20 10:38:53 +00:00
|
|
|
#define gtk_init() gtk_init_abi_check (2, sizeof (GtkWindow), sizeof (GtkBox))
|
|
|
|
#define gtk_init_check() gtk_init_check_abi_check (2, sizeof (GtkWindow), sizeof (GtkBox))
|
2000-08-19 21:46:05 +00:00
|
|
|
|
|
|
|
#endif
|
|
|
|
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2001-10-19 15:27:43 +00:00
|
|
|
void gtk_disable_setlocale (void);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2001-06-14 20:41:44 +00:00
|
|
|
PangoLanguage *gtk_get_default_language (void);
|
2018-02-05 19:13:20 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2013-12-10 21:27:24 +00:00
|
|
|
GtkTextDirection gtk_get_locale_direction (void);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2004-01-07 22:06:07 +00:00
|
|
|
gboolean gtk_events_pending (void);
|
1998-12-15 07:32:11 +00:00
|
|
|
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2011-01-04 22:32:12 +00:00
|
|
|
void gtk_main_do_event (GdkEvent *event);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2011-01-04 22:32:12 +00:00
|
|
|
void gtk_main (void);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2011-01-04 22:32:12 +00:00
|
|
|
guint gtk_main_level (void);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2011-01-04 22:32:12 +00:00
|
|
|
void gtk_main_quit (void);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2011-01-04 22:32:12 +00:00
|
|
|
gboolean gtk_main_iteration (void);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2011-01-04 22:32:12 +00:00
|
|
|
gboolean gtk_main_iteration_do (gboolean blocking);
|
1997-11-24 22:37:52 +00:00
|
|
|
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2011-01-04 22:32:12 +00:00
|
|
|
void gtk_grab_add (GtkWidget *widget);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2011-01-04 22:32:12 +00:00
|
|
|
GtkWidget* gtk_grab_get_current (void);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2011-01-04 22:32:12 +00:00
|
|
|
void gtk_grab_remove (GtkWidget *widget);
|
1998-03-12 18:00:45 +00:00
|
|
|
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2010-05-25 22:38:44 +00:00
|
|
|
void gtk_device_grab_add (GtkWidget *widget,
|
|
|
|
GdkDevice *device,
|
|
|
|
gboolean block_others);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2010-05-25 22:38:44 +00:00
|
|
|
void gtk_device_grab_remove (GtkWidget *widget,
|
|
|
|
GdkDevice *device);
|
|
|
|
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2011-01-04 22:32:12 +00:00
|
|
|
GdkEvent * gtk_get_current_event (void);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2011-01-04 22:32:12 +00:00
|
|
|
guint32 gtk_get_current_event_time (void);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2011-01-04 22:32:12 +00:00
|
|
|
gboolean gtk_get_current_event_state (GdkModifierType *state);
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2011-01-04 22:32:12 +00:00
|
|
|
GdkDevice *gtk_get_current_event_device (void);
|
Remove g_convert (moved to glib) and now useless utf_to_latin1()
Thu Sep 14 12:21:12 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtktexttypes.[ch]: Remove g_convert (moved to
glib) and now useless utf_to_latin1() latin1_to_utf()
* gtk/gtktextview.[ch]: Change ::move_insert and
::delete_text action signals to ::move and ::delete;
create the signals with the right enumeration type,
not GTK_TYPE_ENUM so that bindings work. Add C-d, M-d,
C-v bindings, change Home, End to move to beginning/end
of line, Add C-Home C-End to move to beginning/end
of buffer. Change ::cut_text to ::cut_clipboard, etc;
combine ::scroll_text into ::move; use new GtkSelectionData
functions to simplify DND text handling.
* gtk/gtkenums.h gtk/gtktextview.h: Move movement,
deletion enumerations here, rename enumeration values to
be consistently plural.
* gtk/gtktextbuffer.c: Use new clipboard interfaces
for cut/copy/paste and primary selection.
* gtk/gtktextbuffer.[ch]: Remove excess time and
'interactive' arguments from cut/copy/paste;
rename cut to cut_clipboard, etc; remove
gtk_text_buffer_get_clipboard_contents().
* gtk/gtktextlayout.[ch]: Add
gtk_text_layout_move_iter_to_line_end() to move the iter to
line ends.
* gtk/gtkselection.[ch] (gtk_selection_data_set/get_text):
Functions to set or get a UTF-8 string on the selection
data.
* gtk/gtkclipboard.[ch]: New, simplified selection handling
interfaces.
* gtk/gtkinvisible.c (gtk_invisible_new): Realize newly
created widgets - one of these is useless if we don't.
* gtk/gtkselection.[ch] (gtk_selection_clear_targets): Export
a public function clear all targets registered for the
widget.
* gtk/gtkselection.c (gtk_selection_owner_set) docs/Changes-2.0.txt:
Never call gtk_widget_realize() - that was just asking
for bizarre side-effects.
* gtk/gtkselection.c (gtk_selection_owner_set): Call
gdk_selection_owner_set even if the widget is the
same so that we reliably update the timestamp on
the server.
* gdk/x11/gdkevents-x11.c gdk/x11/gdkx.h: Add a
gdk_x11_get_server_time() function.
* gdk/x11/gdkevents-x11.c gdk/x11/gdkprivate-x11.h
gdk/x11/gdkselection-x11.c gdk/x11/gdkwindow-x11.h:
Add some tricky filtering on serial numbers for
selection clear events to fix up long-standard
race condition FIXME's in gtkselection.c.
* gdk/gdkproperty.h gdk/x11/gdkselection-x11.h: Add
routines to convert from utf8 to compound text or
STRING and from a text property to UTF-8.
* gtk/gtkmain.[ch] (gtk_get_current_event_time): Add
a convenience function gdk_get_current_event_time().
* gtk/gtkselection.c (gtk_selection_data_copy/free): Copy
and free selection_data->data properly
2000-09-14 16:41:20 +00:00
|
|
|
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2017-05-10 16:03:10 +00:00
|
|
|
GtkWidget *gtk_get_event_widget (const GdkEvent *event);
|
1999-01-05 23:45:21 +00:00
|
|
|
|
2018-02-05 19:13:20 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2017-05-10 16:03:10 +00:00
|
|
|
GtkWidget *gtk_get_event_target (const GdkEvent *event);
|
2017-05-04 11:49:34 +00:00
|
|
|
|
2018-02-05 19:13:20 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2017-05-04 11:49:34 +00:00
|
|
|
GtkWidget *gtk_get_event_target_with_type (GdkEvent *event,
|
|
|
|
GType type);
|
|
|
|
|
2013-03-20 22:17:32 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2011-01-04 22:32:12 +00:00
|
|
|
void gtk_propagate_event (GtkWidget *widget,
|
|
|
|
GdkEvent *event);
|
2001-04-02 22:45:19 +00:00
|
|
|
|
2003-09-20 23:52:16 +00:00
|
|
|
|
2005-03-20 07:01:23 +00:00
|
|
|
G_END_DECLS
|
1997-11-24 22:37:52 +00:00
|
|
|
|
|
|
|
#endif /* __GTK_MAIN_H__ */
|