summaryrefslogtreecommitdiff
path: root/libnautilus/nautilus-view-component.idl
blob: d5552fb26c9984924cf8ff65b3b5af08f989ac69 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: 8; c-basic-offset: 8 -*- */

#ifndef _NAUTILUS_VIEW_COMPONENT_IDL_INCLUDED_
#define _NAUTILUS_VIEW_COMPONENT_IDL_INCLUDED_

#include <gnome-factory.idl>
#include <Bonobo.idl>

module Nautilus {
	struct NavigationRequestInfo {
		string requested_uri;
		boolean new_window_requested;
	};
	
	struct NavigationInfo {
		string requested_uri, actual_uri, content_type;
		string referring_uri, actual_referring_uri, referring_content_type;
		
		Object content_view;
		boolean self_originated;
	};
	
	struct SelectionInfo {
		sequence<string> selected_uris;
		
		Object content_view;
		boolean self_originated;
	};
	
	struct SelectionRequestInfo {
		sequence<string> selected_uris;
	};
	
	struct StatusRequestInfo {
		string status_string;
	};
	
	enum ProgressType { PROGRESS_DONE_OK, PROGRESS_DONE_ERROR, PROGRESS_UNDERWAY };
	
	struct ProgressRequestInfo {
		ProgressType type;
		double amount;
	};
	
	interface View : ::Bonobo::Unknown {
		void save_state (in string config_path);
		void load_state (in string config_path);
		oneway void notify_location_change (in NavigationInfo navinfo);
		oneway void stop_location_change ();
		oneway void notify_selection_change (in SelectionInfo selinfo);
		
		oneway void show_properties (); // Requests that the client show its properties
	};
	
	interface MetaView : View {
	};
	
	interface ContentView : View {
	};
	
	interface ViewWindow;
	
	interface ViewFrame : ::Bonobo::Unknown {
		readonly attribute ViewWindow main_window;
		oneway void request_status_change (in StatusRequestInfo statinfo);
		oneway void request_location_change (in NavigationRequestInfo navinfo);
		oneway void request_selection_change (in SelectionRequestInfo selinfo);
		oneway void request_progress_change (in ProgressRequestInfo proginfo);
	};
	
	interface MetaViewFrame : ViewFrame {
	};
	
	interface ContentViewFrame : ViewFrame {
		oneway void request_title_change (in string new_title);
	};
	
	// typedef sequence<double> ZoomLevelList;
	
	interface Zoomable : ::Bonobo::Unknown {
		attribute double zoom_level;
		readonly attribute double min_zoom_level;
		readonly attribute double max_zoom_level;
		readonly attribute boolean is_continuous;
		// readonly attribute ZoomLevelList preferred_zoom_levels;
		
		oneway void zoom_in ();
		oneway void zoom_out ();
		oneway void zoom_to_fit ();
	};
	
	interface ZoomableFrame : ::Bonobo::Unknown {
		oneway void notify_zoom_level (in double zoom_level);
	};
	
	interface Application;
	
	interface ViewWindow : ::Bonobo::Unknown {
		readonly attribute string current_uri;
		readonly attribute Application application;
		void open_uri (in string uri);
		void close ();
	};
	
	typedef sequence<ViewWindow> ViewWindowList;
	
	interface Application : ::Bonobo::GenericFactory, ::Bonobo::Unknown {
		readonly attribute ViewWindowList view_windows;
		ViewWindow new_view_window ();
	};
};

#endif /* _NAUTILUS_VIEW_COMPONENT_IDL_INCLUDED_ */