1
2/* GTK - The GIMP Toolkit
3 * Copyright (C) 2010 Red Hat, Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19#ifndef __GTK_WINDOW_PRIVATE_H__
20#define __GTK_WINDOW_PRIVATE_H__
21
22#include <gdk/gdk.h>
23
24#include "gtkwindow.h"
25#include "gtkpointerfocusprivate.h"
26
27G_BEGIN_DECLS
28
29void _gtk_window_group_add_grab (GtkWindowGroup *window_group,
30 GtkWidget *widget);
31void _gtk_window_group_remove_grab (GtkWindowGroup *window_group,
32 GtkWidget *widget);
33
34void _gtk_window_unset_focus_and_default (GtkWindow *window,
35 GtkWidget *widget);
36
37void _gtk_window_update_focus_visible (GtkWindow *window,
38 guint keyval,
39 GdkModifierType state,
40 gboolean visible);
41
42void _gtk_window_set_allocation (GtkWindow *window,
43 int width,
44 int height,
45 GtkAllocation *allocation_out);
46
47typedef void (*GtkWindowKeysForeachFunc) (GtkWindow *window,
48 guint keyval,
49 GdkModifierType modifiers,
50 gpointer data);
51
52gboolean gtk_window_emit_close_request (GtkWindow *window);
53
54/* --- internal (GtkAcceleratable) --- */
55void _gtk_window_schedule_mnemonics_visible (GtkWindow *window);
56
57void _gtk_window_notify_keys_changed (GtkWindow *window);
58
59void _gtk_window_toggle_maximized (GtkWindow *window);
60
61void _gtk_window_request_csd (GtkWindow *window);
62
63/* Window groups */
64
65GtkWindowGroup *_gtk_window_get_window_group (GtkWindow *window);
66
67void _gtk_window_set_window_group (GtkWindow *window,
68 GtkWindowGroup *group);
69
70
71GdkPaintable * gtk_window_get_icon_for_size (GtkWindow *window,
72 int size);
73
74/* Exported handles */
75
76typedef void (*GtkWindowHandleExported) (GtkWindow *window,
77 const char *handle,
78 gpointer user_data);
79
80gboolean gtk_window_export_handle (GtkWindow *window,
81 GtkWindowHandleExported callback,
82 gpointer user_data);
83void gtk_window_unexport_handle (GtkWindow *window);
84
85GtkWidget * gtk_window_lookup_pointer_focus_widget (GtkWindow *window,
86 GdkDevice *device,
87 GdkEventSequence *sequence);
88GtkWidget * gtk_window_lookup_effective_pointer_focus_widget (GtkWindow *window,
89 GdkDevice *device,
90 GdkEventSequence *sequence);
91GtkWidget * gtk_window_lookup_pointer_focus_implicit_grab (GtkWindow *window,
92 GdkDevice *device,
93 GdkEventSequence *sequence);
94
95void gtk_window_update_pointer_focus (GtkWindow *window,
96 GdkDevice *device,
97 GdkEventSequence *sequence,
98 GtkWidget *target,
99 double x,
100 double y);
101void gtk_window_set_pointer_focus_grab (GtkWindow *window,
102 GdkDevice *device,
103 GdkEventSequence *sequence,
104 GtkWidget *grab_widget);
105
106void gtk_window_update_pointer_focus_on_state_change (GtkWindow *window,
107 GtkWidget *widget);
108
109void gtk_window_maybe_revoke_implicit_grab (GtkWindow *window,
110 GdkDevice *device,
111 GtkWidget *grab_widget);
112void gtk_window_maybe_update_cursor (GtkWindow *window,
113 GtkWidget *widget,
114 GdkDevice *device);
115GtkWidget * gtk_window_pick_popover (GtkWindow *window,
116 double x,
117 double y,
118 GtkPickFlags flags);
119GdkDevice** gtk_window_get_foci_on_widget (GtkWindow *window,
120 GtkWidget *widget,
121 guint *n_devices);
122void gtk_window_grab_notify (GtkWindow *window,
123 GtkWidget *old_grab_widget,
124 GtkWidget *new_grab_widget,
125 gboolean from_grab);
126
127G_END_DECLS
128
129#endif /* __GTK_WINDOW_PRIVATE_H__ */
130

source code of gtk/gtk/gtkwindowprivate.h