gtkwindow.h 20.7 KB
Newer Older
Cody Russell's avatar
Cody Russell committed
1
/* GTK - The GIMP Toolkit
Elliot Lee's avatar
Elliot Lee committed
2 3 4
 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
 *
 * This library is free software; you can redistribute it and/or
5
 * modify it under the terms of the GNU Lesser General Public
Elliot Lee's avatar
Elliot Lee committed
6 7 8 9 10 11
 * 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
12
 * Lesser General Public License for more details.
Elliot Lee's avatar
Elliot Lee committed
13
 *
14
 * You should have received a copy of the GNU Lesser General Public
Javier Jardón's avatar
Javier Jardón committed
15
 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
Elliot Lee's avatar
Elliot Lee committed
16
 */
17 18

/*
19
 * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
20 21
 * file for a list of people on the GTK+ Team.  See the ChangeLog
 * files for a list of changes.  These files are distributed with
22
 * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
23 24
 */

Elliot Lee's avatar
Elliot Lee committed
25 26 27
#ifndef __GTK_WINDOW_H__
#define __GTK_WINDOW_H__

28

29 30 31 32
#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
#error "Only <gtk/gtk.h> can be included directly."
#endif

33
#include <gtk/gtkapplication.h>
Tim Janik's avatar
Tim Janik committed
34
#include <gtk/gtkaccelgroup.h>
Elliot Lee's avatar
Elliot Lee committed
35 36
#include <gtk/gtkbin.h>

37
G_BEGIN_DECLS
38 39

#define GTK_TYPE_WINDOW			(gtk_window_get_type ())
Manish Singh's avatar
Manish Singh committed
40 41 42 43 44
#define GTK_WINDOW(obj)			(G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_WINDOW, GtkWindow))
#define GTK_WINDOW_CLASS(klass)		(G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_WINDOW, GtkWindowClass))
#define GTK_IS_WINDOW(obj)		(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_WINDOW))
#define GTK_IS_WINDOW_CLASS(klass)	(G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_WINDOW))
#define GTK_WINDOW_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_WINDOW, GtkWindowClass))
Elliot Lee's avatar
Elliot Lee committed
45

46
typedef struct _GtkWindowPrivate      GtkWindowPrivate;
47 48
typedef struct _GtkWindowClass        GtkWindowClass;
typedef struct _GtkWindowGeometryInfo GtkWindowGeometryInfo;
49 50
typedef struct _GtkWindowGroup        GtkWindowGroup;
typedef struct _GtkWindowGroupClass   GtkWindowGroupClass;
51
typedef struct _GtkWindowGroupPrivate GtkWindowGroupPrivate;
Elliot Lee's avatar
Elliot Lee committed
52 53 54 55 56

struct _GtkWindow
{
  GtkBin bin;

57
  GtkWindowPrivate *priv;
Elliot Lee's avatar
Elliot Lee committed
58 59
};

60 61 62 63 64 65
/**
 * GtkWindowClass:
 * @parent_class: The parent class.
 * @set_focus: Sets child as the focus widget for the window.
 * @activate_focus: Activates the current focused widget within the window.
 * @activate_default: Activates the default widget for the window.
66 67
 * @keys_changed: Signal gets emitted when the set of accelerators or
 *   mnemonics that are associated with window changes.
68 69
 * @enable_debugging: Class handler for the #GtkWindow::enable-debugging
 *   keybinding signal. Since: 3.14
70
 */
Elliot Lee's avatar
Elliot Lee committed
71 72 73 74
struct _GtkWindowClass
{
  GtkBinClass parent_class;

75 76
  /*< public >*/

77
  void     (* set_focus)   (GtkWindow *window,
78
                            GtkWidget *focus);
79 80 81

  /* G_SIGNAL_ACTION signals for keybindings */

82 83 84
  void     (* activate_focus)   (GtkWindow *window);
  void     (* activate_default) (GtkWindow *window);
  void	   (* keys_changed)     (GtkWindow *window);
85
  gboolean (* enable_debugging) (GtkWindow *window,
86
                                 gboolean   toggle);
87

88 89
  /*< private >*/

90 91 92 93
  /* Padding for future expansion */
  void (*_gtk_reserved1) (void);
  void (*_gtk_reserved2) (void);
  void (*_gtk_reserved3) (void);
Elliot Lee's avatar
Elliot Lee committed
94 95
};

Matthias Clasen's avatar
Matthias Clasen committed
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
/**
 * GtkWindowType:
 * @GTK_WINDOW_TOPLEVEL: A regular window, such as a dialog.
 * @GTK_WINDOW_POPUP: A special window such as a tooltip.
 *
 * A #GtkWindow can be one of these types. Most things you’d consider a
 * “window” should have type #GTK_WINDOW_TOPLEVEL; windows with this type
 * are managed by the window manager and have a frame by default (call
 * gtk_window_set_decorated() to toggle the frame).  Windows with type
 * #GTK_WINDOW_POPUP are ignored by the window manager; window manager
 * keybindings won’t work on them, the window manager won’t decorate the
 * window with a frame, many GTK+ features that rely on the window
 * manager will not work (e.g. resize grips and
 * maximization/minimization). #GTK_WINDOW_POPUP is used to implement
 * widgets such as #GtkMenu or tooltips that you normally don’t think of
 * as windows per se. Nearly all windows should be #GTK_WINDOW_TOPLEVEL.
 * In particular, do not use #GTK_WINDOW_POPUP just to turn off
 * the window borders; use gtk_window_set_decorated() for that.
 */
typedef enum
{
  GTK_WINDOW_TOPLEVEL,
  GTK_WINDOW_POPUP
} GtkWindowType;

/**
 * GtkWindowPosition:
 * @GTK_WIN_POS_NONE: No influence is made on placement.
 * @GTK_WIN_POS_CENTER: Windows should be placed in the center of the screen.
 * @GTK_WIN_POS_MOUSE: Windows should be placed at the current mouse position.
 * @GTK_WIN_POS_CENTER_ALWAYS: Keep window centered as it changes size, etc.
 * @GTK_WIN_POS_CENTER_ON_PARENT: Center the window on its transient
 *  parent (see gtk_window_set_transient_for()).
 *
 * Window placement can be influenced using this enumeration. Note that
 * using #GTK_WIN_POS_CENTER_ALWAYS is almost always a bad idea.
 * It won’t necessarily work well with all window managers or on all windowing systems.
 */
typedef enum
{
  GTK_WIN_POS_NONE,
  GTK_WIN_POS_CENTER,
  GTK_WIN_POS_MOUSE,
  GTK_WIN_POS_CENTER_ALWAYS,
  GTK_WIN_POS_CENTER_ON_PARENT
} GtkWindowPosition;


144
GDK_AVAILABLE_IN_ALL
Manish Singh's avatar
Manish Singh committed
145
GType      gtk_window_get_type                 (void) G_GNUC_CONST;
146
GDK_AVAILABLE_IN_ALL
Elliot Lee's avatar
Elliot Lee committed
147
GtkWidget* gtk_window_new                      (GtkWindowType        type);
148
GDK_AVAILABLE_IN_ALL
Elliot Lee's avatar
Elliot Lee committed
149 150
void       gtk_window_set_title                (GtkWindow           *window,
						const gchar         *title);
151
GDK_AVAILABLE_IN_ALL
152
const gchar * gtk_window_get_title             (GtkWindow           *window);
153
GDK_DEPRECATED_IN_3_22
Elliot Lee's avatar
Elliot Lee committed
154
void       gtk_window_set_wmclass              (GtkWindow           *window,
155 156
						const gchar         *wmclass_name,
						const gchar         *wmclass_class);
157
GDK_AVAILABLE_IN_ALL
158 159
void       gtk_window_set_role                 (GtkWindow           *window,
                                                const gchar         *role);
160
GDK_AVAILABLE_IN_ALL
161 162
void       gtk_window_set_startup_id           (GtkWindow           *window,
                                                const gchar         *startup_id);
163
GDK_AVAILABLE_IN_ALL
164
const gchar * gtk_window_get_role              (GtkWindow           *window);
165
GDK_AVAILABLE_IN_ALL
Tim Janik's avatar
Tim Janik committed
166 167
void       gtk_window_add_accel_group          (GtkWindow           *window,
						GtkAccelGroup	    *accel_group);
168
GDK_AVAILABLE_IN_ALL
Tim Janik's avatar
Tim Janik committed
169 170
void       gtk_window_remove_accel_group       (GtkWindow           *window,
						GtkAccelGroup	    *accel_group);
171
GDK_AVAILABLE_IN_ALL
172
void       gtk_window_set_position             (GtkWindow           *window,
Elliot Lee's avatar
Elliot Lee committed
173
						GtkWindowPosition    position);
174
GDK_AVAILABLE_IN_ALL
175
gboolean   gtk_window_activate_focus	       (GtkWindow           *window);
176
GDK_AVAILABLE_IN_ALL
177 178
void       gtk_window_set_focus                (GtkWindow           *window,
						GtkWidget           *focus);
179
GDK_AVAILABLE_IN_ALL
180
GtkWidget *gtk_window_get_focus                (GtkWindow           *window);
181
GDK_AVAILABLE_IN_ALL
182 183
void       gtk_window_set_default              (GtkWindow           *window,
						GtkWidget           *default_widget);
184
GDK_AVAILABLE_IN_ALL
185
GtkWidget *gtk_window_get_default_widget       (GtkWindow           *window);
186
GDK_AVAILABLE_IN_ALL
187
gboolean   gtk_window_activate_default	       (GtkWindow           *window);
Elliot Lee's avatar
Elliot Lee committed
188

189
GDK_AVAILABLE_IN_ALL
190 191
void       gtk_window_set_transient_for        (GtkWindow           *window, 
						GtkWindow           *parent);
192
GDK_AVAILABLE_IN_ALL
193
GtkWindow *gtk_window_get_transient_for        (GtkWindow           *window);
194
GDK_AVAILABLE_IN_3_4
195 196
void       gtk_window_set_attached_to          (GtkWindow           *window, 
                                                GtkWidget           *attach_widget);
197
GDK_AVAILABLE_IN_3_4
198
GtkWidget *gtk_window_get_attached_to          (GtkWindow           *window);
199
GDK_DEPRECATED_IN_3_8_FOR(gtk_widget_set_opacity)
200 201
void       gtk_window_set_opacity              (GtkWindow           *window, 
						gdouble              opacity);
202
GDK_DEPRECATED_IN_3_8_FOR(gtk_widget_get_opacity)
203
gdouble    gtk_window_get_opacity              (GtkWindow           *window);
204
GDK_AVAILABLE_IN_ALL
205 206
void       gtk_window_set_type_hint            (GtkWindow           *window, 
						GdkWindowTypeHint    hint);
207
GDK_AVAILABLE_IN_ALL
208
GdkWindowTypeHint gtk_window_get_type_hint     (GtkWindow           *window);
209
GDK_AVAILABLE_IN_ALL
210 211
void       gtk_window_set_skip_taskbar_hint    (GtkWindow           *window,
                                                gboolean             setting);
212
GDK_AVAILABLE_IN_ALL
213
gboolean   gtk_window_get_skip_taskbar_hint    (GtkWindow           *window);
214
GDK_AVAILABLE_IN_ALL
215 216
void       gtk_window_set_skip_pager_hint      (GtkWindow           *window,
                                                gboolean             setting);
217
GDK_AVAILABLE_IN_ALL
218
gboolean   gtk_window_get_skip_pager_hint      (GtkWindow           *window);
219
GDK_AVAILABLE_IN_ALL
220 221
void       gtk_window_set_urgency_hint         (GtkWindow           *window,
                                                gboolean             setting);
222
GDK_AVAILABLE_IN_ALL
223
gboolean   gtk_window_get_urgency_hint         (GtkWindow           *window);
224
GDK_AVAILABLE_IN_ALL
225 226
void       gtk_window_set_accept_focus         (GtkWindow           *window,
                                                gboolean             setting);
227
GDK_AVAILABLE_IN_ALL
228
gboolean   gtk_window_get_accept_focus         (GtkWindow           *window);
229
GDK_AVAILABLE_IN_ALL
230 231
void       gtk_window_set_focus_on_map         (GtkWindow           *window,
                                                gboolean             setting);
232
GDK_AVAILABLE_IN_ALL
233
gboolean   gtk_window_get_focus_on_map         (GtkWindow           *window);
234
GDK_AVAILABLE_IN_ALL
235 236
void       gtk_window_set_destroy_with_parent  (GtkWindow           *window,
                                                gboolean             setting);
237
GDK_AVAILABLE_IN_ALL
238
gboolean   gtk_window_get_destroy_with_parent  (GtkWindow           *window);
239
GDK_AVAILABLE_IN_3_4
240 241
void       gtk_window_set_hide_titlebar_when_maximized (GtkWindow   *window,
                                                        gboolean     setting);
242
GDK_AVAILABLE_IN_3_4
243
gboolean   gtk_window_get_hide_titlebar_when_maximized (GtkWindow   *window);
244
GDK_AVAILABLE_IN_ALL
245 246
void       gtk_window_set_mnemonics_visible    (GtkWindow           *window,
                                                gboolean             setting);
247
GDK_AVAILABLE_IN_ALL
248
gboolean   gtk_window_get_mnemonics_visible    (GtkWindow           *window);
249
GDK_AVAILABLE_IN_3_2
250 251
void       gtk_window_set_focus_visible        (GtkWindow           *window,
                                                gboolean             setting);
252
GDK_AVAILABLE_IN_3_2
253
gboolean   gtk_window_get_focus_visible        (GtkWindow           *window);
254

255
GDK_AVAILABLE_IN_ALL
256 257
void       gtk_window_set_resizable            (GtkWindow           *window,
                                                gboolean             resizable);
258
GDK_AVAILABLE_IN_ALL
259
gboolean   gtk_window_get_resizable            (GtkWindow           *window);
260

261
GDK_AVAILABLE_IN_ALL
262 263
void       gtk_window_set_gravity              (GtkWindow           *window,
                                                GdkGravity           gravity);
264
GDK_AVAILABLE_IN_ALL
265 266 267
GdkGravity gtk_window_get_gravity              (GtkWindow           *window);


268
GDK_AVAILABLE_IN_ALL
269 270 271 272 273
void       gtk_window_set_geometry_hints       (GtkWindow           *window,
						GtkWidget           *geometry_widget,
						GdkGeometry         *geometry,
						GdkWindowHints       geom_mask);

274
GDK_AVAILABLE_IN_ALL
275 276
void	   gtk_window_set_screen	       (GtkWindow	    *window,
						GdkScreen	    *screen);
277
GDK_AVAILABLE_IN_ALL
278 279
GdkScreen* gtk_window_get_screen	       (GtkWindow	    *window);

280
GDK_AVAILABLE_IN_ALL
281
gboolean   gtk_window_is_active                (GtkWindow           *window);
282
GDK_AVAILABLE_IN_ALL
283 284
gboolean   gtk_window_has_toplevel_focus       (GtkWindow           *window);

285
GDK_AVAILABLE_IN_ALL
286 287
void       gtk_window_set_decorated            (GtkWindow *window,
                                                gboolean   setting);
288
GDK_AVAILABLE_IN_ALL
289
gboolean   gtk_window_get_decorated            (GtkWindow *window);
290
GDK_AVAILABLE_IN_ALL
291 292
void       gtk_window_set_deletable            (GtkWindow *window,
                                                gboolean   setting);
293
GDK_AVAILABLE_IN_ALL
294
gboolean   gtk_window_get_deletable            (GtkWindow *window);
Hans Breuer's avatar
Hans Breuer committed
295

296
GDK_AVAILABLE_IN_ALL
Havoc Pennington's avatar
Havoc Pennington committed
297 298
void       gtk_window_set_icon_list                (GtkWindow  *window,
                                                    GList      *list);
299
GDK_AVAILABLE_IN_ALL
Havoc Pennington's avatar
Havoc Pennington committed
300
GList*     gtk_window_get_icon_list                (GtkWindow  *window);
301
GDK_AVAILABLE_IN_ALL
Havoc Pennington's avatar
Havoc Pennington committed
302 303
void       gtk_window_set_icon                     (GtkWindow  *window,
                                                    GdkPixbuf  *icon);
304
GDK_AVAILABLE_IN_ALL
305 306
void       gtk_window_set_icon_name                (GtkWindow   *window,
						    const gchar *name);
307
GDK_AVAILABLE_IN_ALL
308 309 310
gboolean   gtk_window_set_icon_from_file           (GtkWindow   *window,
						    const gchar *filename,
						    GError     **err);
311
GDK_AVAILABLE_IN_ALL
Havoc Pennington's avatar
Havoc Pennington committed
312
GdkPixbuf* gtk_window_get_icon                     (GtkWindow  *window);
313
GDK_AVAILABLE_IN_ALL
314
const gchar * gtk_window_get_icon_name             (GtkWindow  *window);
315
GDK_AVAILABLE_IN_ALL
Havoc Pennington's avatar
Havoc Pennington committed
316
void       gtk_window_set_default_icon_list        (GList      *list);
317
GDK_AVAILABLE_IN_ALL
Havoc Pennington's avatar
Havoc Pennington committed
318
GList*     gtk_window_get_default_icon_list        (void);
319
GDK_AVAILABLE_IN_ALL
320
void       gtk_window_set_default_icon             (GdkPixbuf  *icon);
321
GDK_AVAILABLE_IN_ALL
322
void       gtk_window_set_default_icon_name        (const gchar *name);
323
GDK_AVAILABLE_IN_ALL
324
const gchar * gtk_window_get_default_icon_name     (void);
325
GDK_AVAILABLE_IN_ALL
326 327 328
gboolean   gtk_window_set_default_icon_from_file   (const gchar *filename,
						    GError     **err);

329
GDK_AVAILABLE_IN_ALL
330
void       gtk_window_set_auto_startup_notification (gboolean setting);
Havoc Pennington's avatar
Havoc Pennington committed
331

332
/* If window is set modal, input will be grabbed when show and released when hide */
333
GDK_AVAILABLE_IN_ALL
334 335
void       gtk_window_set_modal      (GtkWindow *window,
				      gboolean   modal);
336
GDK_AVAILABLE_IN_ALL
337
gboolean   gtk_window_get_modal      (GtkWindow *window);
338
GDK_AVAILABLE_IN_ALL
339
GList*     gtk_window_list_toplevels (void);
340
GDK_AVAILABLE_IN_ALL
341 342
void       gtk_window_set_has_user_ref_count (GtkWindow *window,
                                              gboolean   setting);
343

344
GDK_AVAILABLE_IN_ALL
345 346 347
void     gtk_window_add_mnemonic          (GtkWindow       *window,
					   guint            keyval,
					   GtkWidget       *target);
348
GDK_AVAILABLE_IN_ALL
349 350 351
void     gtk_window_remove_mnemonic       (GtkWindow       *window,
					   guint            keyval,
					   GtkWidget       *target);
352
GDK_AVAILABLE_IN_ALL
353
gboolean gtk_window_mnemonic_activate     (GtkWindow       *window,
354 355
					   guint            keyval,
					   GdkModifierType  modifier);
356
GDK_AVAILABLE_IN_ALL
357 358
void     gtk_window_set_mnemonic_modifier (GtkWindow       *window,
					   GdkModifierType  modifier);
359
GDK_AVAILABLE_IN_ALL
360
GdkModifierType gtk_window_get_mnemonic_modifier (GtkWindow *window);
361

362
GDK_AVAILABLE_IN_ALL
363 364
gboolean gtk_window_activate_key          (GtkWindow        *window,
					   GdkEventKey      *event);
365
GDK_AVAILABLE_IN_ALL
366 367
gboolean gtk_window_propagate_key_event   (GtkWindow        *window,
					   GdkEventKey      *event);
368

369
GDK_AVAILABLE_IN_ALL
370
void     gtk_window_present            (GtkWindow *window);
371
GDK_AVAILABLE_IN_ALL
372 373
void     gtk_window_present_with_time  (GtkWindow *window,
				        guint32    timestamp);
374
GDK_AVAILABLE_IN_ALL
375
void     gtk_window_iconify       (GtkWindow *window);
376
GDK_AVAILABLE_IN_ALL
377
void     gtk_window_deiconify     (GtkWindow *window);
378
GDK_AVAILABLE_IN_ALL
379
void     gtk_window_stick         (GtkWindow *window);
380
GDK_AVAILABLE_IN_ALL
381
void     gtk_window_unstick       (GtkWindow *window);
382
GDK_AVAILABLE_IN_ALL
383
void     gtk_window_maximize      (GtkWindow *window);
384
GDK_AVAILABLE_IN_ALL
385
void     gtk_window_unmaximize    (GtkWindow *window);
386
GDK_AVAILABLE_IN_ALL
387
void     gtk_window_fullscreen    (GtkWindow *window);
388
GDK_AVAILABLE_IN_ALL
389
void     gtk_window_unfullscreen  (GtkWindow *window);
390 391 392 393
GDK_AVAILABLE_IN_3_18
void     gtk_window_fullscreen_on_monitor(GtkWindow *window,
                                          GdkScreen *screen,
                                          gint monitor);
394 395
GDK_AVAILABLE_IN_3_10
void     gtk_window_close         (GtkWindow *window);
396
GDK_AVAILABLE_IN_ALL
397
void     gtk_window_set_keep_above    (GtkWindow *window, gboolean setting);
398
GDK_AVAILABLE_IN_ALL
399
void     gtk_window_set_keep_below    (GtkWindow *window, gboolean setting);
400

401
GDK_AVAILABLE_IN_ALL
Owen Taylor's avatar
Owen Taylor committed
402 403 404 405 406 407
void gtk_window_begin_resize_drag (GtkWindow     *window,
                                   GdkWindowEdge  edge,
                                   gint           button,
                                   gint           root_x,
                                   gint           root_y,
                                   guint32        timestamp);
408
GDK_AVAILABLE_IN_ALL
Owen Taylor's avatar
Owen Taylor committed
409 410 411 412 413 414
void gtk_window_begin_move_drag   (GtkWindow     *window,
                                   gint           button,
                                   gint           root_x,
                                   gint           root_y,
                                   guint32        timestamp);

Havoc Pennington's avatar
Havoc Pennington committed
415 416
/* Set initial default size of the window (does not constrain user
 * resize operations)
417
 */
418
GDK_AVAILABLE_IN_ALL
Havoc Pennington's avatar
Havoc Pennington committed
419 420 421
void     gtk_window_set_default_size (GtkWindow   *window,
                                      gint         width,
                                      gint         height);
422
GDK_AVAILABLE_IN_ALL
Havoc Pennington's avatar
Havoc Pennington committed
423 424 425
void     gtk_window_get_default_size (GtkWindow   *window,
                                      gint        *width,
                                      gint        *height);
426
GDK_AVAILABLE_IN_ALL
Havoc Pennington's avatar
Havoc Pennington committed
427 428 429
void     gtk_window_resize           (GtkWindow   *window,
                                      gint         width,
                                      gint         height);
430
GDK_AVAILABLE_IN_ALL
Havoc Pennington's avatar
Havoc Pennington committed
431 432 433
void     gtk_window_get_size         (GtkWindow   *window,
                                      gint        *width,
                                      gint        *height);
434
GDK_AVAILABLE_IN_ALL
Havoc Pennington's avatar
Havoc Pennington committed
435 436 437
void     gtk_window_move             (GtkWindow   *window,
                                      gint         x,
                                      gint         y);
438
GDK_AVAILABLE_IN_ALL
Havoc Pennington's avatar
Havoc Pennington committed
439
void     gtk_window_get_position     (GtkWindow   *window,
440 441
                                      gint        *root_x,
                                      gint        *root_y);
442
GDK_DEPRECATED_IN_3_20
Havoc Pennington's avatar
Havoc Pennington committed
443 444
gboolean gtk_window_parse_geometry   (GtkWindow   *window,
                                      const gchar *geometry);
445

446
GDK_DEPRECATED_IN_3_20_FOR(gtk_window_set_default_size)
447 448 449
void gtk_window_set_default_geometry (GtkWindow *window,
                                      gint       width,
                                      gint       height);
450
GDK_DEPRECATED_IN_3_20_FOR(gtk_window_resize)
451 452 453 454
void gtk_window_resize_to_geometry   (GtkWindow *window,
                                      gint       width,
                                      gint       height);

455
GDK_AVAILABLE_IN_ALL
456
GtkWindowGroup *gtk_window_get_group (GtkWindow   *window);
457
GDK_AVAILABLE_IN_ALL
458
gboolean gtk_window_has_group        (GtkWindow   *window);
Havoc Pennington's avatar
Havoc Pennington committed
459 460

/* Ignore this unless you are writing a GUI builder */
461
GDK_DEPRECATED_IN_3_10
Havoc Pennington's avatar
Havoc Pennington committed
462
void     gtk_window_reshow_with_initial_size (GtkWindow *window);
463

464
GDK_AVAILABLE_IN_ALL
465 466
GtkWindowType gtk_window_get_window_type     (GtkWindow     *window);

467

468
GDK_AVAILABLE_IN_ALL
469
GtkApplication *gtk_window_get_application      (GtkWindow          *window);
470
GDK_AVAILABLE_IN_ALL
471 472 473
void            gtk_window_set_application      (GtkWindow          *window,
                                                 GtkApplication     *application);

474

475 476
/* Window grips
 */
477
GDK_DEPRECATED_IN_3_14
478 479
void     gtk_window_set_has_resize_grip    (GtkWindow    *window,
                                            gboolean      value);
480
GDK_DEPRECATED_IN_3_14
481
gboolean gtk_window_get_has_resize_grip    (GtkWindow    *window);
482
GDK_DEPRECATED_IN_3_14
483
gboolean gtk_window_resize_grip_is_visible (GtkWindow    *window);
484
GDK_DEPRECATED_IN_3_14
485 486 487
gboolean gtk_window_get_resize_grip_area   (GtkWindow    *window,
                                            GdkRectangle *rect);

488
GDK_AVAILABLE_IN_3_10
489 490
void     gtk_window_set_titlebar           (GtkWindow    *window,
                                            GtkWidget    *titlebar);
491 492
GDK_AVAILABLE_IN_3_16
GtkWidget *gtk_window_get_titlebar         (GtkWindow    *window);
493

494 495 496
GDK_AVAILABLE_IN_3_12
gboolean gtk_window_is_maximized           (GtkWindow    *window);

497 498 499
GDK_AVAILABLE_IN_3_14
void     gtk_window_set_interactive_debugging (gboolean enable);

500 501 502
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkWindow, g_object_unref)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkWindowGroup, g_object_unref)

503
G_END_DECLS
Elliot Lee's avatar
Elliot Lee committed
504 505

#endif /* __GTK_WINDOW_H__ */