summaryrefslogtreecommitdiff
path: root/libnautilus-private/nautilus-bonobo-extensions.h
blob: 57ed6db2f33a176f26a176ab27e6d75a60515be2 (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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */

/* nautilus-bonobo-extensions.h - interface for new functions that conceptually
                                  belong in bonobo. Perhaps some of these will be
                                  actually rolled into bonobo someday.

   Copyright (C) 2000 Eazel, Inc.

   The Gnome Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Library General Public License as
   published by the Free Software Foundation; either version 2 of the
   License, or (at your option) any later version.

   The Gnome 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
   Library General Public License for more details.

   You should have received a copy of the GNU Library General Public
   License along with the Gnome Library; see the file COPYING.LIB.  If not,
   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
   Boston, MA 02111-1307, USA.

   Author: John Sullivan <sullivan@eazel.com>
*/

#ifndef NAUTILUS_BONOBO_EXTENSIONS_H
#define NAUTILUS_BONOBO_EXTENSIONS_H

#include <bonobo/bonobo-ui-component.h>
#include <bonobo/bonobo-xobject.h>
#include <gdk-pixbuf/gdk-pixbuf.h>

typedef struct NautilusBonoboActivationHandle NautilusBonoboActivationHandle;

typedef void (*NautilusBonoboActivationCallback) (NautilusBonoboActivationHandle *handle,
						  Bonobo_Unknown activated_object,
						  gpointer callback_data);

void                            nautilus_bonobo_set_accelerator                     (BonoboUIComponent                *ui,
										     const char                       *path,
										     const char                       *accelerator);
char *                          nautilus_bonobo_get_label                           (BonoboUIComponent                *ui,
										     const char                       *path);
void                            nautilus_bonobo_set_label                           (BonoboUIComponent                *ui,
										     const char                       *path,
										     const char                       *label);
void                            nautilus_bonobo_set_tip                             (BonoboUIComponent                *ui,
										     const char                       *path,
										     const char                       *tip);
void                            nautilus_bonobo_set_sensitive                       (BonoboUIComponent                *ui,
										     const char                       *path,
										     gboolean                          sensitive);
void                            nautilus_bonobo_set_toggle_state                    (BonoboUIComponent                *ui,
										     const char                       *path,
										     gboolean                          state);
void                            nautilus_bonobo_set_hidden                          (BonoboUIComponent                *ui,
										     const char                       *path,
										     gboolean                          hidden);
gboolean                        nautilus_bonobo_get_hidden                          (BonoboUIComponent                *ui,
										     const char                       *path);
void                            nautilus_bonobo_add_numbered_menu_item              (BonoboUIComponent                *ui,
										     const char                       *container_path,
										     guint                             index,
										     const char                       *label,
										     GdkPixbuf                        *pixbuf);
void                            nautilus_bonobo_add_numbered_toggle_menu_item       (BonoboUIComponent                *ui,
										     const char                       *container_path,
										     guint                             index,
										     const char                       *label);
char *                          nautilus_bonobo_get_numbered_menu_item_command      (BonoboUIComponent                *ui,
										     const char                       *container_path,
										     guint                             index);
char *                          nautilus_bonobo_get_numbered_menu_item_path         (BonoboUIComponent                *ui,
										     const char                       *container_path,
										     guint                             index);
void                            nautilus_bonobo_add_submenu                         (BonoboUIComponent                *ui,
										     const char                       *container_path,
										     const char                       *label);
void                            nautilus_bonobo_add_menu_separator                  (BonoboUIComponent                *ui,
										     const char                       *path);
void                            nautilus_bonobo_remove_menu_items_and_commands      (BonoboUIComponent                *ui,
										     const char                       *container_path);
void                            nautilus_bonobo_set_label_for_menu_item_and_command (BonoboUIComponent                *ui,
										     const char                       *menu_item_path,
										     const char                       *command_path,
										     const char                       *label_with_underscore);
void                            nautilus_bonobo_set_icon                            (BonoboUIComponent                *ui,
										     const char                       *path,
										     const char                       *icon_relative_path);

NautilusBonoboActivationHandle *nautilus_bonobo_activate_from_id                    (const char                       *iid,
										     NautilusBonoboActivationCallback  callback,
										     gpointer                          callback_data);
void                            nautilus_bonobo_activate_cancel                     (NautilusBonoboActivationHandle   *handle);


/* This macro is a copy of BONOBO_X_TYPE_FUNC_FULL (from bonobo-xobject.h)
 * with the addition of support for the parent_class which is defined by
 * NAUTILUS_DEFINE_CLASS_BOILERPLATE and used by NAUTILUS_CALL_PARENT.
 * 
 * Note: the argument order matches BONOBO_X_TYPE_FUNC_FULL which is different
 * than NAUTILUS_DEFINE_CLASS_BOILERPLATE.
 */
#define NAUTILUS_BONOBO_X_BOILERPLATE(class_name, corba_name, parent, prefix) \
static gpointer parent_class;                          /* Nautilus change */  \
GtkType                                                                       \
prefix##_get_type (void)                                                      \
{                                                                             \
	GtkType ptype;                                                        \
	static GtkType type = 0;                                              \
                                                                              \
	if (type == 0) {                                                      \
		static GtkTypeInfo info = {                                   \
			#class_name,                                          \
			sizeof (class_name),                                  \
			sizeof (class_name##Class),                           \
			(GtkClassInitFunc)prefix##_class_init,                \
			(GtkObjectInitFunc)prefix##_init,                     \
			NULL, NULL, (GtkClassInitFunc) NULL                   \
		};                                                            \
		ptype = (parent);                                             \
		type = bonobo_x_type_unique (ptype,                           \
			POA_##corba_name##__init, POA_##corba_name##__fini,   \
			GTK_STRUCT_OFFSET (class_name##Class, epv),           \
			&info);                                               \
		parent_class = gtk_type_class (ptype); /* Nautilus change */  \
	}                                                                     \
	return type;                                                          \
}


#endif /* NAUTILUS_BONOBO_EXTENSIONS_H */