r1566: Do double buffering manually. This has no advantage at the moment, but
[rox-filer.git] / ROX-Filer / src / sc.h
blob91cc4d4234ccc23186132326ed66b7b71cfb5137
1 /*
2 * $Id$
4 * ROX-Filer, filer for the ROX desktop project
5 * By Thomas Leonard, <tal197@users.sourceforge.net>.
6 */
8 /* sc.h - XSMP client support */
10 #ifndef _SC_ALU_H_
11 #define _SC_ALU_H_
13 #include <gtk/gtk.h>
14 #include <X11/SM/SMlib.h>
16 typedef struct _SmProperty {
17 SmProp prop;
18 gboolean set;
19 } SmProperty;
21 typedef struct _SmClient SmClient;
23 struct _SmClient {
24 gchar *id;
25 GSList *props;
26 gboolean (*save_yourself_fn)(SmClient *client);
27 void (*shutdown_cancelled_fn)(SmClient *client);
28 void (*save_complete_fn)(SmClient *client);
29 void (*die_fn)(SmClient *client);
30 SmcConn conn;
31 IceConn ice_conn;
32 gint fd;
33 gint input_tag;
36 gboolean sc_session_up();
37 SmClient *sc_new(gchar *client_id);
38 gboolean sc_connect(SmClient *client);
39 void sc_get_prop_value(SmClient *client, const gchar *name,
40 SmPropValue **val_ret, gint *nvals_ret);
41 void sc_set_list_of_array_prop(SmClient *client, const gchar *name,
42 const gchar *vals[], gint nvals);
43 void sc_set_array_prop(SmClient *client, const gchar *name, const gchar *vals);
44 void sc_set_card_prop(SmClient *client, const gchar *name, gchar val);
45 void sc_register_properties(SmClient *client);
46 void sc_destroy(SmClient *client);
48 #endif /* _SC_ALU_H */