This commit does three thing: 1. Sets appropriate bits on source files 2. Tells imake to build them as script files, not data files 3. Remove broken examples based on unused code
138 lines
4.2 KiB
Plaintext
138 lines
4.2 KiB
Plaintext
XCOMM! CDE_INSTALLATION_TOP/bin/dtksh
|
|
XCOMM $XConsortium: SessionTest.src /main/6 1996/04/23 20:18:46 drk $
|
|
|
|
XCOMM #########################################################################
|
|
XCOMM (c) Copyright 1993, 1994 Hewlett-Packard Company
|
|
XCOMM (c) Copyright 1993, 1994 International Business Machines Corp.
|
|
XCOMM (c) Copyright 1993, 1994 Sun Microsystems, Inc.
|
|
XCOMM (c) Copyright 1993, 1994 Unix System Labs, Inc., a subsidiary of
|
|
XCOMM Novell, Inc.
|
|
XCOMM #########################################################################
|
|
|
|
|
|
XCOMM
|
|
XCOMM This sample shell script demonstrates the steps necessary for tying into
|
|
XCOMM session management. To run, simply run this script, and then save the
|
|
XCOMM current session. When the session is restored, this script should again
|
|
XCOMM restore to its previous state.
|
|
XCOMM
|
|
|
|
|
|
XCOMM This function is invoked when the user attempts to save the current session.
|
|
XCOMM It will save off its state information (whether it is iconified, and the
|
|
XCOMM list of workspaces it occupies) into a session file, and then tell the
|
|
XCOMM session manager how to reinvoke it when the session is restored.
|
|
SessionCallback()
|
|
{
|
|
XCOMM Get the name of our session file
|
|
if DtSessionSavePath $TOPLEVEL PATH SAVEFILE; then
|
|
exec 9>$PATH
|
|
|
|
XCOMM Save our iconification state
|
|
if DtShellIsIconified $TOPLEVEL ; then
|
|
print -u9 'Iconified'
|
|
else
|
|
print -u9 'Deiconified'
|
|
fi
|
|
|
|
XCOMM Save the list of workspace we occupy
|
|
if DtWsmGetWorkspacesOccupied $(XtDisplay "-" $TOPLEVEL) \
|
|
$(XtWindow "-" $TOPLEVEL) \
|
|
CURRENT_WS_LIST ;
|
|
then
|
|
oldIFS=$IFS
|
|
IFS=","
|
|
for item in $CURRENT_WS_LIST;
|
|
do
|
|
XmGetAtomName NAME $(XtDisplay "-" $TOPLEVEL) $item
|
|
print -u9 $NAME
|
|
done
|
|
IFS=$oldIFS
|
|
fi
|
|
|
|
exec 9<&-
|
|
|
|
XCOMM Tell the session manager how to restart us
|
|
DtSetStartupCommand $TOPLEVEL \
|
|
"/usr/dt/share/examples/dtksh/SessionTest $SAVEFILE"
|
|
else
|
|
echo "DtSessionSavePath FAILED!!"
|
|
exit -3
|
|
fi
|
|
}
|
|
|
|
|
|
XCOMM This function is invoked when we are restarted at session restore time.
|
|
XCOMM It is passed the name of the session file as $1. It will extract our
|
|
XCOMM session information from the session file, and will restore our state
|
|
XCOMM accordingly.
|
|
RestoreSession()
|
|
{
|
|
XCOMM Get the full path of our session file
|
|
if DtSessionRestorePath $TOPLEVEL PATH $1; then
|
|
exec 9<$PATH
|
|
read -u9 ICONIFY
|
|
|
|
XCOMM Restore our iconification state
|
|
case $ICONIFY in
|
|
Iconified) DtSetIconifyHint $TOPLEVEL True;;
|
|
*) DtSetIconifyHint $TOPLEVEL False;;
|
|
esac
|
|
|
|
XCOMM Place us into the indicated set of workspaces
|
|
WS_LIST=""
|
|
while read -u9 NAME
|
|
do
|
|
XmInternAtom ATOM $(XtDisplay "-" $TOPLEVEL) $NAME False
|
|
if [ ${#WS_LIST} -gt 0 ]; then
|
|
WS_LIST=$WS_LIST,$ATOM
|
|
else
|
|
WS_LIST=$ATOM
|
|
fi
|
|
done
|
|
|
|
DtWsmSetWorkspacesOccupied $(XtDisplay "-" $TOPLEVEL) \
|
|
$(XtWindow "-" $TOPLEVEL) \
|
|
$WS_LIST
|
|
|
|
exec 9<&-
|
|
else
|
|
echo "DtSessionRestorePath FAILED!!"
|
|
exit -3
|
|
fi
|
|
}
|
|
|
|
|
|
|
|
XCOMM ###################### Create the Main UI ###############################
|
|
|
|
XtInitialize TOPLEVEL wmProtTest WmProtTest "$0" "$@"
|
|
|
|
XtCreateManagedWidget DA da XmDrawingArea $TOPLEVEL
|
|
XtSetValues $DA height:200 width:200
|
|
|
|
XmInternAtom SAVE_SESSION_ATOM $(XtDisplay "-" $TOPLEVEL) "WM_SAVE_YOURSELF" False
|
|
|
|
|
|
XCOMM If we are invoked with any command line parameters, then we will assume
|
|
XCOMM that it is the name of our session file, and will restore to the indicated
|
|
XCOMM state.
|
|
if (( $# > 0))
|
|
then
|
|
XtSetValues $TOPLEVEL mappedWhenManaged:False
|
|
XtRealizeWidget $TOPLEVEL
|
|
XSync $(XtDisplay "-" $TOPLEVEL) False
|
|
RestoreSession $1
|
|
XtSetValues $TOPLEVEL mappedWhenManaged:True
|
|
XtPopup $TOPLEVEL GrabNone
|
|
else
|
|
XtRealizeWidget $TOPLEVEL
|
|
XSync $(XtDisplay "-" $TOPLEVEL) False
|
|
fi
|
|
|
|
XCOMM Register our interest in participating in session management.
|
|
XmAddWMProtocols $TOPLEVEL $SAVE_SESSION_ATOM
|
|
XmAddWMProtocolCallback $TOPLEVEL $SAVE_SESSION_ATOM SessionCallback
|
|
|
|
XtMainLoop
|