session.h revision 645f5050
1645f5050Syouri/*
2645f5050Syouri *  [ ctwm ]
3645f5050Syouri *
4645f5050Syouri *  Copyright 2004 Richard Levitte
5645f5050Syouri *
6645f5050Syouri * Permission to use, copy, modify  and distribute this software  [ctwm] and
7645f5050Syouri * its documentation for any purpose is hereby granted without fee, provided
8645f5050Syouri * that the above  copyright notice appear  in all copies and that both that
9645f5050Syouri * copyright notice and this permission notice appear in supporting documen-
10645f5050Syouri * tation, and that the name of  Claude Lecommandeur not be used in adverti-
11645f5050Syouri * sing or  publicity  pertaining to  distribution of  the software  without
12645f5050Syouri * specific, written prior permission. Claude Lecommandeur make no represen-
13645f5050Syouri * tations  about the suitability  of this software  for any purpose.  It is
14645f5050Syouri * provided "as is" without express or implied warranty.
15645f5050Syouri *
16645f5050Syouri * Claude Lecommandeur DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
17645f5050Syouri * INCLUDING ALL  IMPLIED WARRANTIES OF  MERCHANTABILITY AND FITNESS.  IN NO
18645f5050Syouri * EVENT SHALL  Claude Lecommandeur  BE LIABLE FOR ANY SPECIAL,  INDIRECT OR
19645f5050Syouri * CONSEQUENTIAL  DAMAGES OR ANY  DAMAGES WHATSOEVER  RESULTING FROM LOSS OF
20645f5050Syouri * USE, DATA  OR PROFITS,  WHETHER IN AN ACTION  OF CONTRACT,  NEGLIGENCE OR
21645f5050Syouri * OTHER  TORTIOUS ACTION,  ARISING OUT OF OR IN  CONNECTION WITH THE USE OR
22645f5050Syouri * PERFORMANCE OF THIS SOFTWARE.
23645f5050Syouri *
24645f5050Syouri * Author:  Richard Levitte [ richard@levitte.org ][ June 2004 ]
25645f5050Syouri */
26645f5050Syouri
27645f5050Syouri#include <stdio.h>
28645f5050Syouri#ifdef VMS
29645f5050Syouri#  include <X11SM/SMlib.h>
30645f5050Syouri#else
31645f5050Syouri#  include <X11/SM/SMlib.h>
32645f5050Syouri#endif
33645f5050Syouri#include "types.h"
34645f5050Syouri
35645f5050Syouri#ifndef _SESSION_
36645f5050Syouri#define _SESSION_
37645f5050Syouri
38645f5050Syouriextern SmcConn smcConn;
39645f5050Syouriextern XtInputId iceInputId;
40645f5050Syouriextern char *twm_clientId;
41645f5050Syouriextern TWMWinConfigEntry *winConfigHead;
42645f5050Syouriextern Bool gotFirstSave;
43645f5050Syouriextern Bool sent_save_done;
44645f5050Syouri
45645f5050Syourichar *GetClientID (Window window);
46645f5050Syourichar *GetWindowRole (Window window);
47645f5050Syouriint WriteWinConfigEntry (FILE *configFile, TwmWindow *theWindow,
48645f5050Syouri			 char *clientId, char *windowRole);
49645f5050Syouriint ReadWinConfigEntry (FILE *configFile, unsigned short version,
50645f5050Syouri			TWMWinConfigEntry **pentry);
51645f5050Syourivoid ReadWinConfigFile (char *filename);
52645f5050Syouriint GetWindowConfig (TwmWindow *theWindow,
53645f5050Syouri		     short *x, short *y,
54645f5050Syouri		     unsigned short *width, unsigned short *height,
55645f5050Syouri		     Bool *iconified,
56645f5050Syouri		     Bool *icon_info_present,
57645f5050Syouri		     short *icon_x, short *icon_y,
58645f5050Syouri		     Bool *width_ever_changed_by_user,
59645f5050Syouri		     Bool *height_ever_changed_by_user,
60645f5050Syouri		     int *occupation /* <== [ Matthew McNeill Feb 1997 ] == */
61645f5050Syouri		     );
62645f5050Syourivoid SaveYourselfPhase2CB (SmcConn smcCon, SmPointer clientData);
63645f5050Syourivoid SaveYourselfCB (SmcConn smcCon, SmPointer clientData,
64645f5050Syouri		     int saveType, Bool shutdown,
65645f5050Syouri		     int interactStyle, Bool fast);
66645f5050Syourivoid DieCB (SmcConn smcCon, SmPointer clientData);
67645f5050Syourivoid SaveCompleteCB (SmcConn smcCon, SmPointer clientData);
68645f5050Syourivoid ShutdownCancelledCB (SmcConn smcCon, SmPointer clientData);
69645f5050Syourivoid ProcessIceMsgProc (XtPointer client_data, int *source, XtInputId *id);
70645f5050Syourivoid ConnectToSessionManager (char *previous_id);
71645f5050Syouri
72645f5050Syouri#endif /* _SESSION_ */
73645f5050Syouri
74