2008-04-30 Cosimo Cecchi <cosimoc@gnome.org>
[nautilus.git] / src / nautilus-application.h
blob29e7edd6d9bd848c099d95a31394d01e05e59ce7
1 /* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
3 /*
4 * Nautilus
6 * Copyright (C) 2000 Red Hat, Inc.
8 * Nautilus is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License as
10 * published by the Free Software Foundation; either version 2 of the
11 * License, or (at your option) any later version.
13 * Nautilus is distributed in the hope that it will be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * General Public License for more details.
18 * You should have received a copy of the GNU General Public
19 * License along with this program; if not, write to the
20 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 * Boston, MA 02111-1307, USA.
24 /* nautilus-application.h
27 #ifndef NAUTILUS_APPLICATION_H
28 #define NAUTILUS_APPLICATION_H
30 #include <gdk/gdk.h>
31 #include <gio/gio.h>
32 #include <bonobo/bonobo-generic-factory.h>
33 #include <libnautilus-private/nautilus-undo-manager.h>
35 #define NAUTILUS_DESKTOP_ICON_VIEW_IID "OAFIID:Nautilus_File_Manager_Desktop_Icon_View"
37 #define NAUTILUS_TYPE_APPLICATION (nautilus_application_get_type ())
38 #define NAUTILUS_APPLICATION(obj) (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_APPLICATION, NautilusApplication))
39 #define NAUTILUS_APPLICATION_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_APPLICATION, NautilusApplicationClass))
40 #define NAUTILUS_IS_APPLICATION(obj) (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_APPLICATION))
41 #define NAUTILUS_IS_APPLICATION_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_APPLICATION))
43 #ifndef NAUTILUS_WINDOW_DEFINED
44 #define NAUTILUS_WINDOW_DEFINED
45 typedef struct NautilusWindow NautilusWindow;
46 #endif
48 #ifndef NAUTILUS_SPATIAL_WINDOW_DEFINED
49 #define NAUTILUS_SPATIAL_WINDOW_DEFINED
50 typedef struct _NautilusSpatialWindow NautilusSpatialWindow;
51 #endif
53 typedef struct NautilusShell NautilusShell;
55 typedef struct {
56 BonoboGenericFactory parent;
57 NautilusUndoManager *undo_manager;
58 NautilusShell *shell;
59 gboolean shell_registered;
60 GVolumeMonitor *volume_monitor;
61 unsigned int automount_idle_id;
62 } NautilusApplication;
64 typedef struct {
65 BonoboGenericFactoryClass parent_class;
66 } NautilusApplicationClass;
68 GType nautilus_application_get_type (void);
69 NautilusApplication *nautilus_application_new (void);
70 void nautilus_application_startup (NautilusApplication *application,
71 gboolean kill_shell,
72 gboolean restart_shell,
73 gboolean no_default_window,
74 gboolean no_desktop,
75 gboolean browser_window,
76 const char *startup_id,
77 const char *default_geometry,
78 const char *session_to_load,
79 const char *urls[]);
80 GList * nautilus_application_get_window_list (void);
81 GList * nautilus_application_get_spatial_window_list (void);
82 unsigned int nautilus_application_get_n_windows (void);
84 NautilusWindow * nautilus_application_present_spatial_window (NautilusApplication *application,
85 NautilusWindow *requesting_window,
86 const char *startup_id,
87 GFile *location,
88 GdkScreen *screen);
89 NautilusWindow * nautilus_application_present_spatial_window_with_selection (NautilusApplication *application,
90 NautilusWindow *requesting_window,
91 const char *startup_id,
92 GFile *location,
93 GList *new_selection,
94 GdkScreen *screen);
96 NautilusWindow * nautilus_application_create_navigation_window (NautilusApplication *application,
97 const char *startup_id,
98 GdkScreen *screen);
100 void nautilus_application_close_all_navigation_windows (void);
101 void nautilus_application_close_parent_windows (NautilusSpatialWindow *window);
102 void nautilus_application_close_all_spatial_windows (void);
103 void nautilus_application_open_desktop (NautilusApplication *application);
104 void nautilus_application_close_desktop (void);
105 void nautilus_application_load_session (NautilusApplication *application,
106 const char *filename);
107 char * nautilus_application_save_session_to_file (void);
108 #endif /* NAUTILUS_APPLICATION_H */