1 /* GTK - The GIMP Toolkit
2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free
16 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
21 * file for a list of people on the GTK+ Team. See the ChangeLog
22 * files for a list of changes. These files are distributed with
23 * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
26 #ifndef __GTK_PLUG_PRIVATE_H__
27 #define __GTK_PLUG_PRIVATE_H__
29 struct _GtkPlugPrivate
31 GtkWidget *modality_window;
32 GtkWindowGroup *modality_group;
34 GdkWindow *socket_window;
36 GHashTable *grabbed_keys;
42 void _gtk_plug_send_delete_event (GtkWidget *widget);
43 void _gtk_plug_add_all_grabbed_keys (GtkPlug *plug);
44 void _gtk_plug_focus_first_last (GtkPlug *plug,
45 GtkDirectionType direction);
46 void _gtk_plug_handle_modality_on (GtkPlug *plug);
47 void _gtk_plug_handle_modality_off (GtkPlug *plug);
49 /* In backend-specific file: */
52 * _gtk_plug_windowing_get_id:
56 * Returns the native window system identifier for the plug's window.
58 GdkNativeWindow _gtk_plug_windowing_get_id (GtkPlug *plug);
61 * _gtk_plug_windowing_realize_toplevel:
63 * @plug_window: a #GtkPlug's #GdkWindow
65 * Called from GtkPlug's realize method. Should tell the corresponding
66 * socket that the plug has been realized.
68 void _gtk_plug_windowing_realize_toplevel (GtkPlug *plug);
71 * _gtk_plug_windowing_map_toplevel:
75 * Called from GtkPlug's map method. Should tell the corresponding
76 * #GtkSocket that the plug has been mapped.
78 void _gtk_plug_windowing_map_toplevel (GtkPlug *plug);
81 * _gtk_plug_windowing_map_toplevel:
85 * Called from GtkPlug's unmap method. Should tell the corresponding
86 * #GtkSocket that the plug has been unmapped.
88 void _gtk_plug_windowing_unmap_toplevel (GtkPlug *plug);
91 * _gtk_plug_windowing_set_focus:
95 * Called from GtkPlug's set_focus method. Should tell the corresponding
96 * #GtkSocket to request focus.
98 void _gtk_plug_windowing_set_focus (GtkPlug *plug);
101 * _gtk_plug_windowing_add_grabbed_key:
104 * @accelerator_key: a key
105 * @accelerator_mods: modifiers for it
107 * Called from GtkPlug's keys_changed method. Should tell the
108 * corresponding #GtkSocket to grab the key.
110 void _gtk_plug_windowing_add_grabbed_key (GtkPlug *plug,
111 guint accelerator_key,
112 GdkModifierType accelerator_mods);
115 * _gtk_plug_windowing_remove_grabbed_key:
118 * @accelerator_key: a key
119 * @accelerator_mods: modifiers for it
121 * Called from GtkPlug's keys_changed method. Should tell the
122 * corresponding #GtkSocket to remove the key grab.
124 void _gtk_plug_windowing_remove_grabbed_key (GtkPlug *plug,
125 guint accelerator_key,
126 GdkModifierType accelerator_mods);
129 * _gtk_plug_windowing_focus_to_parent:
132 * @direction: a direction
134 * Called from GtkPlug's focus method. Should tell the corresponding
135 * #GtkSocket to move the focus.
137 void _gtk_plug_windowing_focus_to_parent (GtkPlug *plug,
138 GtkDirectionType direction);
141 * _gtk_plug_windowing_filter_func:
143 * @gdk_xevent: a windowing system native event
144 * @event: a pre-allocated empty GdkEvent
145 * @data: the #GtkPlug
147 * Event filter function installed on plug windows.
149 GdkFilterReturn _gtk_plug_windowing_filter_func (GdkXEvent *gdk_xevent,
153 #endif /* __GTK_PLUG_PRIVATE_H__ */