1997-11-24 22:37:52 +00:00
|
|
|
/* GDK - The GIMP Drawing Kit
|
|
|
|
* 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
|
|
|
|
* 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
|
1998-02-28 14:35:55 +00:00
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
1997-11-24 22:37:52 +00:00
|
|
|
* Library General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Library General Public
|
1998-04-13 02:02:47 +00:00
|
|
|
* License along with this library; if not, write to the
|
|
|
|
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
|
|
* Boston, MA 02111-1307, USA.
|
1997-11-24 22:37:52 +00:00
|
|
|
*/
|
1999-02-24 07:37:18 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Modified by the GTK+ Team and others 1997-1999. 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/.
|
|
|
|
*/
|
|
|
|
|
1997-11-24 22:37:52 +00:00
|
|
|
#ifndef __GDK_H__
|
|
|
|
#define __GDK_H__
|
|
|
|
|
1999-10-01 23:18:30 +00:00
|
|
|
#include <gdk/gdkcc.h>
|
|
|
|
#include <gdk/gdkcolor.h>
|
|
|
|
#include <gdk/gdkcursor.h>
|
|
|
|
#include <gdk/gdkdnd.h>
|
|
|
|
#include <gdk/gdkdrawable.h>
|
|
|
|
#include <gdk/gdkevents.h>
|
|
|
|
#include <gdk/gdkfont.h>
|
|
|
|
#include <gdk/gdkgc.h>
|
|
|
|
#include <gdk/gdkim.h>
|
|
|
|
#include <gdk/gdkimage.h>
|
|
|
|
#include <gdk/gdkinput.h>
|
|
|
|
#include <gdk/gdkpixmap.h>
|
|
|
|
#include <gdk/gdkproperty.h>
|
|
|
|
#include <gdk/gdkregion.h>
|
|
|
|
#include <gdk/gdkrgb.h>
|
|
|
|
#include <gdk/gdkselection.h>
|
1997-11-24 22:37:52 +00:00
|
|
|
#include <gdk/gdktypes.h>
|
1999-10-01 23:18:30 +00:00
|
|
|
#include <gdk/gdkvisual.h>
|
|
|
|
#include <gdk/gdkwindow.h>
|
1997-11-27 04:16:39 +00:00
|
|
|
|
1999-10-03 22:12:41 +00:00
|
|
|
#include <gdk/gdkcompat.h>
|
|
|
|
|
1997-11-24 22:37:52 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif /* __cplusplus */
|
|
|
|
|
|
|
|
|
|
|
|
/* Initialization, exit and events
|
|
|
|
*/
|
1999-01-02 22:19:15 +00:00
|
|
|
#define GDK_PRIORITY_EVENTS (G_PRIORITY_DEFAULT)
|
1998-12-20 05:47:28 +00:00
|
|
|
void gdk_init (gint *argc,
|
|
|
|
gchar ***argv);
|
1999-02-21 20:55:04 +00:00
|
|
|
gboolean gdk_init_check (gint *argc,
|
|
|
|
gchar ***argv);
|
1998-12-20 05:47:28 +00:00
|
|
|
void gdk_exit (gint error_code);
|
|
|
|
gchar* gdk_set_locale (void);
|
1997-11-24 22:37:52 +00:00
|
|
|
|
1999-02-21 19:25:53 +00:00
|
|
|
/* Push and pop error handlers for X errors
|
|
|
|
*/
|
|
|
|
void gdk_error_trap_push (void);
|
|
|
|
gint gdk_error_trap_pop (void);
|
|
|
|
|
|
|
|
|
1998-12-20 05:47:28 +00:00
|
|
|
void gdk_set_use_xshm (gint use_xshm);
|
1997-11-24 22:37:52 +00:00
|
|
|
|
1998-12-20 05:47:28 +00:00
|
|
|
gint gdk_get_use_xshm (void);
|
|
|
|
gchar* gdk_get_display (void);
|
1997-11-24 22:37:52 +00:00
|
|
|
|
1998-02-28 14:35:55 +00:00
|
|
|
gint gdk_input_add_full (gint source,
|
1997-12-18 02:17:14 +00:00
|
|
|
GdkInputCondition condition,
|
|
|
|
GdkInputFunction function,
|
1998-02-28 14:35:55 +00:00
|
|
|
gpointer data,
|
1997-12-18 02:17:14 +00:00
|
|
|
GdkDestroyNotify destroy);
|
1998-02-28 14:35:55 +00:00
|
|
|
gint gdk_input_add (gint source,
|
1997-12-18 02:17:14 +00:00
|
|
|
GdkInputCondition condition,
|
|
|
|
GdkInputFunction function,
|
1998-02-28 14:35:55 +00:00
|
|
|
gpointer data);
|
|
|
|
void gdk_input_remove (gint tag);
|
|
|
|
|
|
|
|
gint gdk_pointer_grab (GdkWindow * window,
|
|
|
|
gint owner_events,
|
|
|
|
GdkEventMask event_mask,
|
|
|
|
GdkWindow * confine_to,
|
|
|
|
GdkCursor * cursor,
|
|
|
|
guint32 time);
|
|
|
|
void gdk_pointer_ungrab (guint32 time);
|
|
|
|
|
|
|
|
gint gdk_keyboard_grab (GdkWindow * window,
|
|
|
|
gint owner_events,
|
|
|
|
guint32 time);
|
|
|
|
void gdk_keyboard_ungrab (guint32 time);
|
1997-11-24 22:37:52 +00:00
|
|
|
|
1998-01-21 08:35:37 +00:00
|
|
|
gint gdk_pointer_is_grabbed (void);
|
|
|
|
|
1997-11-24 22:37:52 +00:00
|
|
|
gint gdk_screen_width (void);
|
|
|
|
gint gdk_screen_height (void);
|
|
|
|
|
1998-05-23 21:55:40 +00:00
|
|
|
gint gdk_screen_width_mm (void);
|
|
|
|
gint gdk_screen_height_mm (void);
|
|
|
|
|
1997-11-24 22:37:52 +00:00
|
|
|
void gdk_flush (void);
|
|
|
|
void gdk_beep (void);
|
|
|
|
|
|
|
|
void gdk_key_repeat_disable (void);
|
|
|
|
void gdk_key_repeat_restore (void);
|
|
|
|
|
|
|
|
/* Rectangle utilities
|
|
|
|
*/
|
|
|
|
gint gdk_rectangle_intersect (GdkRectangle *src1,
|
|
|
|
GdkRectangle *src2,
|
|
|
|
GdkRectangle *dest);
|
1998-11-06 22:05:02 +00:00
|
|
|
void gdk_rectangle_union (GdkRectangle *src1,
|
|
|
|
GdkRectangle *src2,
|
|
|
|
GdkRectangle *dest);
|
1997-11-24 22:37:52 +00:00
|
|
|
|
Destroy widgets _after_ propagating unrealize signals through the widget
Mon Dec 7 10:27:09 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c: Destroy widgets _after_ propagating unrealize
signals through the widget heirarchy. This is unpleasant, as it
causes more X traffic, but is necessary, because we have to clean
up our Input Contexts before destroying the X windows.
(from matsu-981109-0.patch)
Mon Dec 7 10:18:18 1998 Owen Taylor <otaylor@redhat.com>
Applied gtk-a-higuti-981202-0 :
[ a-higuti@math.sci.hokudai.ac.jp (Akira Higuchi) ]
* gdk/gdk.h gdk/gdk.c
(gdk_mbstowcs): New function. Nearly equals to mbstowcs, but
implemented by a combination of Xlib functions, so
it works even with X_LOCALE.
(gdk_wcstombs): New function.
(g_mbtowc): Removed. No longer needed.
* gdk/gdk.h gdk/gdkfont.c gdk/gdkdraw.c:
Added _wc() variants to gdk_text_width(),
gdk_char_width(), gdk_draw_text(),
* gdk/gdki18n.h
(mblen, mbtowc, wctomb, mbstowcs, wcstombs,
wcslen, wcscpy, wcsncpy):
Removed. No longer needed.
(iswalnum): Removed.
(gdk_iswalnum): New macro.
(gdk_iswspace): New macro.
* gdk/gdktype.h
(GdkWChar): New typedef.
* gtk/gtkentry.h, gtk/gtkentry.c
There are many changes according to the change of the
internal representation of text, from multibyte string
to wide characters.
* gtk/gtkprivate.h, gtk/gtkmain.c
Removed the variable gtk_use_mb and related codes.
* gtk/gtkspinbutton.c
Some changes according to the change of type of entry->text.
* gtk/gtktext.h, gtk/gtktext.c
Changed the internal representation of text. We use GdkWchar
if a fontset is supplied. If not, we use guchar to save
memory.
1998-12-09 06:36:57 +00:00
|
|
|
/* Conversion functions between wide char and multibyte strings.
|
|
|
|
*/
|
|
|
|
gchar *gdk_wcstombs (const GdkWChar *src);
|
|
|
|
gint gdk_mbstowcs (GdkWChar *dest,
|
|
|
|
const gchar *src,
|
|
|
|
gint dest_max);
|
|
|
|
|
fixed an assertment.
Sat Jun 6 06:01:24 1998 Tim Janik <timj@gtk.org>
* gtk/gtksignal.c (gtk_signal_emitv): fixed an assertment.
* gtk/makeenums.awk: a script to generate the GtkEnumValue arrays from,
this should eventually be done by gentypeinfo.el somewhen.
* gtk/gtkenumvalues.c: new generated file to hold GtkEnumValue arrays.
* gtk/gtktypeutils.h: new function gtk_enum_values() to retrive all the
enum values of an enum type.
* gtk/gtk.defs:
* gtk/gtkcurve.h:
* gtk/gtkobject.h:
* gtk/gtkprivate.h:
* gtk/gtkwidget.h:
* gtk/gtkenums.h:
brought enum/flags definitions in sync, added a few more enum
definitions for bindings and pattern matching.
* some more macro and GtkType fixups in various places.
* gdk/gdktypes.h (enum): added a new value GDK_AFTER_MASK, which is used
as a key-release modifier for the binding system.
Fri Jun 5 06:06:06 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmenu.h (struct _GtkMenu): removed GList*children, since it
was a stale list pointer that is already present in GtkMenuShell.
* gtk/gtkmenushell.h (struct _GtkMenuShellClass): added a signal
GtkMenuShell::selection_done which is emitted after the menu shell
poped down again and all possible menu items have been activated.
Thu Jun 4 02:20:42 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmenushell.c (gtk_menu_shell_button_release): flush the x-queue
before activation of the menuitem, so the menu is actually taken off the
screen prior to any menu item activation.
* gtk/gtkctree.c (gtk_ctree_get_row_data): allow function invokation
for NULL nodes.
* gtk/gtkwidget.h:
* gtk/gtkwidget.c: new function gtk_widget_stop_accelerator to stop
the emission of the "add-accelerator" signal on a widget. this is
usefull to prevent accelerator installation on certain widgets.
* gtk/gtknotebook.c (gtk_notebook_menu_item_create): keep the menu
labels left justified, by setting their alignment. stop accelerator
installation for the menu items, since we use dynamic menus.
Wed Jun 3 06:41:22 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmenufactory.c: adaptions to use the new accel groups. people
should *really* use GtkItemFactory. this is only for preserving source
compatibility where possible, use of GtkMenuFactory is deprecated as of
now.
* gtk/gtkobject.h (gtk_object_class_add_user_signal): new function
to create user signals of type GTK_RUN_NO_RECURSE. don't know why i
missed this possibility when i added gtk_object_class_add_user_signal
in late january.
* gtk/gtkmain.c (gtk_init): ignore subsequent function calls.
Sun May 31 07:31:09 1998 Tim Janik <timj@gtk.org>
* gtk/gtkaccelgroup.h:
* gtk/gtkaccelgroup.c: new implementation of the accelerator concept.
* gtk/gtkaccellabel.h:
* gtk/gtkaccellabel.c: new widget derived from GtkLabel whitch features
display of the accelerators associated with a certain widget.
* gtk/gtkitemfactory.h:
* gtk/gtkitemfactory.c: new widget, item factory with automatic rc
parsing and accelerator handling.
* gtk/gtkmenu.c (gtk_menu_reposition): new function to care for
positioning a menu.
(gtk_menu_map): removed the allocation code.
(gtk_menu_size_allocate): care for redrawing of children and resize
our widget->window correctly.
(gtk_menu_key_press): feature the new accelerator groups.
* gtk/gtkmenuitem.c (gtk_menu_item_size_allocate): reposition the
submenu if neccessary.
* gtk/gtkmenuitem.c:
* gtk/gtkcheckmenuitem.c:
* gtk/gtkradiomenuitem.c: use GtkAccelLabel in the *_new_with_label()
function variants.
* gdk/gdk.c:
(gdk_keyval_from_name):
(gdk_keyval_name): new functions for keyval<->key-name associations.
(gdk_keyval_to_upper):
(gdk_keyval_to_lower):
(gdk_keyval_is_upper):
(gdk_keyval_is_lower): new functions to check/translate keyvalues with
regards to their cases.
Wed May 27 00:48:10 1998 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c (gtk_widget_class_path): new function to calculate a
widget's class path.
(gtk_widget_path): new function to calculate a widget's name path.
* gtk/gtkrc.c: newly introduced GtkPatternSpec structures to speed up
pattern matching, features reversed pattern matches.
1998-06-07 06:48:56 +00:00
|
|
|
/* Miscellaneous */
|
|
|
|
void gdk_event_send_clientmessage_toall (GdkEvent *event);
|
1998-11-06 22:05:02 +00:00
|
|
|
gboolean gdk_event_send_client_message (GdkEvent *event,
|
|
|
|
guint32 xid);
|
fixed an assertment.
Sat Jun 6 06:01:24 1998 Tim Janik <timj@gtk.org>
* gtk/gtksignal.c (gtk_signal_emitv): fixed an assertment.
* gtk/makeenums.awk: a script to generate the GtkEnumValue arrays from,
this should eventually be done by gentypeinfo.el somewhen.
* gtk/gtkenumvalues.c: new generated file to hold GtkEnumValue arrays.
* gtk/gtktypeutils.h: new function gtk_enum_values() to retrive all the
enum values of an enum type.
* gtk/gtk.defs:
* gtk/gtkcurve.h:
* gtk/gtkobject.h:
* gtk/gtkprivate.h:
* gtk/gtkwidget.h:
* gtk/gtkenums.h:
brought enum/flags definitions in sync, added a few more enum
definitions for bindings and pattern matching.
* some more macro and GtkType fixups in various places.
* gdk/gdktypes.h (enum): added a new value GDK_AFTER_MASK, which is used
as a key-release modifier for the binding system.
Fri Jun 5 06:06:06 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmenu.h (struct _GtkMenu): removed GList*children, since it
was a stale list pointer that is already present in GtkMenuShell.
* gtk/gtkmenushell.h (struct _GtkMenuShellClass): added a signal
GtkMenuShell::selection_done which is emitted after the menu shell
poped down again and all possible menu items have been activated.
Thu Jun 4 02:20:42 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmenushell.c (gtk_menu_shell_button_release): flush the x-queue
before activation of the menuitem, so the menu is actually taken off the
screen prior to any menu item activation.
* gtk/gtkctree.c (gtk_ctree_get_row_data): allow function invokation
for NULL nodes.
* gtk/gtkwidget.h:
* gtk/gtkwidget.c: new function gtk_widget_stop_accelerator to stop
the emission of the "add-accelerator" signal on a widget. this is
usefull to prevent accelerator installation on certain widgets.
* gtk/gtknotebook.c (gtk_notebook_menu_item_create): keep the menu
labels left justified, by setting their alignment. stop accelerator
installation for the menu items, since we use dynamic menus.
Wed Jun 3 06:41:22 1998 Tim Janik <timj@gtk.org>
* gtk/gtkmenufactory.c: adaptions to use the new accel groups. people
should *really* use GtkItemFactory. this is only for preserving source
compatibility where possible, use of GtkMenuFactory is deprecated as of
now.
* gtk/gtkobject.h (gtk_object_class_add_user_signal): new function
to create user signals of type GTK_RUN_NO_RECURSE. don't know why i
missed this possibility when i added gtk_object_class_add_user_signal
in late january.
* gtk/gtkmain.c (gtk_init): ignore subsequent function calls.
Sun May 31 07:31:09 1998 Tim Janik <timj@gtk.org>
* gtk/gtkaccelgroup.h:
* gtk/gtkaccelgroup.c: new implementation of the accelerator concept.
* gtk/gtkaccellabel.h:
* gtk/gtkaccellabel.c: new widget derived from GtkLabel whitch features
display of the accelerators associated with a certain widget.
* gtk/gtkitemfactory.h:
* gtk/gtkitemfactory.c: new widget, item factory with automatic rc
parsing and accelerator handling.
* gtk/gtkmenu.c (gtk_menu_reposition): new function to care for
positioning a menu.
(gtk_menu_map): removed the allocation code.
(gtk_menu_size_allocate): care for redrawing of children and resize
our widget->window correctly.
(gtk_menu_key_press): feature the new accelerator groups.
* gtk/gtkmenuitem.c (gtk_menu_item_size_allocate): reposition the
submenu if neccessary.
* gtk/gtkmenuitem.c:
* gtk/gtkcheckmenuitem.c:
* gtk/gtkradiomenuitem.c: use GtkAccelLabel in the *_new_with_label()
function variants.
* gdk/gdk.c:
(gdk_keyval_from_name):
(gdk_keyval_name): new functions for keyval<->key-name associations.
(gdk_keyval_to_upper):
(gdk_keyval_to_lower):
(gdk_keyval_is_upper):
(gdk_keyval_is_lower): new functions to check/translate keyvalues with
regards to their cases.
Wed May 27 00:48:10 1998 Tim Janik <timj@gtk.org>
* gtk/gtkwidget.c (gtk_widget_class_path): new function to calculate a
widget's class path.
(gtk_widget_path): new function to calculate a widget's name path.
* gtk/gtkrc.c: newly introduced GtkPatternSpec structures to speed up
pattern matching, features reversed pattern matches.
1998-06-07 06:48:56 +00:00
|
|
|
|
|
|
|
/* Key values
|
|
|
|
*/
|
|
|
|
gchar* gdk_keyval_name (guint keyval);
|
|
|
|
guint gdk_keyval_from_name (const gchar *keyval_name);
|
|
|
|
guint gdk_keyval_to_upper (guint keyval);
|
|
|
|
guint gdk_keyval_to_lower (guint keyval);
|
|
|
|
gboolean gdk_keyval_is_upper (guint keyval);
|
|
|
|
gboolean gdk_keyval_is_lower (guint keyval);
|
|
|
|
|
1998-12-16 20:09:30 +00:00
|
|
|
/* Threading
|
|
|
|
*/
|
|
|
|
|
Merge in Win32 version: Define macro GDKVAR for declaring gdk variables
* gdk/gdktypes.h: Merge in Win32 version: Define macro GDKVAR for
declaring gdk variables exported/imported from the DLL. New image
type enum, GDK_IMAGE_SHARED_PIXMAP, for gdk_imlib. New drag and
drop protocol enums, GDK_DRAG_PROTO_WIN32_DROPFILES and
GDK_DRAG_PROTO_OLE2.
* gdk/gdk.h: Merge in Win32 version: Two new functions,
gdk_pixmap_create_on_shared_image and gdk_image_bitmap_new. So far
declared only for the Win32 version, but could be in the X11
version as well. (Needed for a Xlib-less gdk_imlib.)
gdk_color_hash should have only one parameter. Declare
gdk_threads_mutex with GDKVAR.
* gdk/gdkcolor.c (gdk_color_hash): As a hash function should have
just one parameter.
* gdk/gdkimage.c (gdk_image_get): Initialize bpp correctly. Bytes
per pixel, not bits.
* gdk/gdkrgb.c: Mingle includes somewhat. (gdk_rgb_select_conv):
Fetch bpp (which means bits-per-pixel here) from another place on
Win32. Accept also depth==32 (which we might get on Win32) with
bpp==32.
* gtk/{gtkclist,gtkctree,gtkdnd,gtkditable,gtkfontsel,
gtkhandlebox,gtklayout,gtkmain,gtkplug,gtkpreview,gtkrc,
gtkselection,gtksocket,gtkstyle,gtkwidget,gtkwindow}.c:
Include gdx.h from "gdkx.h", not "gdk/gdkx.h", as gdkx.h will be
in the backend-dependent directory, not in the common gdk
directory.
* gtk/testgtk.c: Ditto. Also, don't use ../gdk patchs to gdk
headers.
1999-03-17 23:02:10 +00:00
|
|
|
GDKVAR GMutex *gdk_threads_mutex;
|
1998-12-16 20:09:30 +00:00
|
|
|
|
|
|
|
void gdk_threads_enter (void);
|
|
|
|
void gdk_threads_leave (void);
|
|
|
|
|
|
|
|
#ifdef G_THREADS_ENABLED
|
|
|
|
# define GDK_THREADS_ENTER() G_STMT_START { \
|
|
|
|
if (gdk_threads_mutex) \
|
|
|
|
g_mutex_lock (gdk_threads_mutex); \
|
|
|
|
} G_STMT_END
|
|
|
|
# define GDK_THREADS_LEAVE() G_STMT_START { \
|
|
|
|
if (gdk_threads_mutex) \
|
|
|
|
g_mutex_unlock (gdk_threads_mutex); \
|
|
|
|
} G_STMT_END
|
|
|
|
#else /* !G_THREADS_ENABLED */
|
|
|
|
# define GDK_THREADS_ENTER()
|
|
|
|
# define GDK_THREADS_LEAVE()
|
|
|
|
#endif /* !G_THREADS_ENABLED */
|
1998-08-25 00:06:38 +00:00
|
|
|
|
1997-11-24 22:37:52 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif /* __cplusplus */
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* __GDK_H__ */
|