#! /usr/dt/bin/dtksh ## Stacey Marshall 22 January 2007 ## For further reference see dtksh(1), ksh93(1) and the dtksh file: ## /usr/dt/lib/dtksh/DtFuncs.dtsh xorg=/etc/X11/xorg.conf single=${xorg}.single double=${xorg}.double btnCB() # Button Call back { typeset ARG=$1 if [[ -n $DEBUG ]]; then print "CB Widget = "$CB_WIDGET print "CallData = "$CB_CALL_DATA print "CallData.Value = "${CB_CALL_DATA.VALUE} print "CallData.Event = "${CB_CALL_DATA.EVENT} print "CallData.Event.Xany.Type = "${CB_CALL_DATA.EVENT.XANY.TYPE} print "CallData.Event.Type = "${CB_CALL_DATA.EVENT.TYPE} print "CallData.Reason = "${CB_CALL_DATA.REASON} fi case $ARG in (ONE) # Single screen install $single ;; (TWO) # Dual screen install $double ;; esac } install() { if [[ $file != $1 ]]; then if [[ $file != $single && $file != $double ]]; then if [[ -w ${xorg%*/} ]]; then cp $xorg $xorg.$(date +'%d%h%y%H%M') else cp $xorg /var/tmp/xorg.conf.$(date +'%d%h%y%H%M') fi fi cat $1 > ${xorg} pkill Xorg fi exit } # Discover current config. unset sb db if [[ ! -f $xorg ]]; then file="None" elif [[ -f $single ]] && cmp -s $single $xorg; then file=$single sb=" (current)" # until I learn how to color a button. elif [[ -f $double ]] && cmp -s $double $xorg; then file=$double db=" (current)" else # An xorg file exists but its not one I recognize file="Unknown" fi Cancel() { exit } ######################### Create the Main UI ################################# XtInitialize TOPLEVEL selectionBox SelectionBox "X Choice" XtCreateManagedWidget FORM form XmForm $TOPLEVEL XtCreateManagedWidget RC rc XmRowColumn $FORM \ topWidget:$RC1 topAttachment:ATTACH_WIDGET topOffset:0 \ leftAttachment:ATTACH_FORM \ leftOffset:10 \ rightAttachment:ATTACH_FORM \ rightOffset:10 \ orientation:HORIZONTAL \ numColumns:1 # packing:PACK_COLUMN # make Buttons equal size. XtCreateManagedWidget ONE one XmPushButton $RC \ labelString:"Single Screen$sb" \ activateCallback:"btnCB ONE" XtCreateManagedWidget CANCEL cancel XmPushButton $RC \ labelString:"-- Cancel --" \ activateCallback:Cancel XtCreateManagedWidget TWO two XmPushButton $RC \ labelString:"Dual Screen$db" \ activateCallback:"btnCB TWO" XtGetValues $TOPLEVEL width:WIDTH height:HEIGHT # Place window at the bottom, centred. (( finalX=($(XWidthOfScreen "-" $(XtScreen "-" $TOPLEVEL) )-$WIDTH)/2 )) (( finalY=($(XHeightOfScreen "-" $(XtScreen "-" $TOPLEVEL) )-($HEIGHT)) )) XtSetValues $TOPLEVEL x:$finalX y:$finalY XtRealizeWidget $TOPLEVEL XtMainLoop