module Xsessionselect names = case_sensitive version = "v1.2" ! User interface for xsessionselect value !***VUIT_Generate_Callback_Tags *** local_font: font('-*-lucida-bold-r-normal-sans-34-*'); cf: font('-*-courier-bold-r-normal--34-*'); hf: font('-*-helvetica-bold-o-normal--34-*'); tf: font('-*-terminal-normal-r-normal--18-*'); lf: font('-*-lucida-medium-r-normal-sans-18-*'); af: font('-*-application-medium-r-normal-serif-18-*'); string_direction: XmSTRING_DIRECTION_L_TO_R; lightblue: color('lightblue', foreground); object Main: XmMainWindow { arguments { XmNx = 50; XmNy = 100; XmNborderWidth = 8; XmNborderColor = rgb(65535,1285,0); XmNmappedWhenManaged = true; XmNvisualPolicy = XmVARIABLE; }; controls { XmMenuBar mSelect; XmRowColumn Choose; }; }; object Choose: XmRowColumn { arguments { XmNstringDirection = string_direction; XmNbackground = lightblue; XmNx = 0; XmNy = 0; }; controls { XmLabel i_label; XmPushButton DECW; XmPushButton CDE; XmPushButton Term; XmPushButton Default; XmPushButton Cancel; }; }; object i_label: XmLabel { arguments { XmNfontList = font_table(lf, af); XmNlabelString = compound_string(" X session type selector:",separate=true) & compound_string(" Select one of the session types below or Cancel to exit session,",separate=true); }; }; object !(tradional DECWindows session) DECW: XmPushButton { arguments { XmNfontList = font_table(local_font, cf, hf, tf, lf, af); XmNbackground = color('green', background); XmNlabelString = compound_string("DECW (Classic DECWindows desktop)"); }; callbacks { XmNactivateCallback = procedures { SelectXsession(1); }; }; }; !"New Desktop" CDE: XmPushButton { arguments { XmNfontList = font_table(local_font, cf, hf, tf, lf, af); XmNbackground = color('green', background); XmNlabelString = compound_string("CDE (New desktop)"); }; callbacks { XmNactivateCallback = procedures { SelectXsession(3); }; }; }; Term: XmPushButton { arguments { XmNfontList = font_table(local_font, cf, hf, tf, lf, af); XmNbackground = color('green', background); XmNlabelString = compound_string("DECTerm terminal window (Failsafe session)"); }; callbacks { XmNactivateCallback = procedures { SelectXsession(5); }; }; }; !Sytem default session Default: XmPushButton { arguments { XmNfontList = font_table(local_font, cf, hf, tf, lf, af); XmNbackground = color('grey', background); XmNlabelString = compound_string("Default: system default session"); }; callbacks { XmNactivateCallback = procedures { SelectXsession(9); }; }; }; !Do not start a session Cancel: XmPushButton { arguments { XmNfontList = font_table(local_font, cf, hf, tf, lf, af); XmNbackground = color('yellow', background); XmNlabelString = compound_string("Cancel/Exit"); }; callbacks { XmNactivateCallback = procedures { SelectXsession(7); }; }; }; object mSelect: exported XmMenuBar { arguments { XmNmenuHelpWidget = XmCascadeButton Help; }; controls { XmCascadeButton Select; XmCascadeButton Help; }; }; object Select: XmCascadeButton { arguments { XmNmarginWidth = 5; }; controls { XmPulldownMenu { controls { XmPushButton _DECW; XmPushButton _CDE; XmPushButton _DECTerm; XmPushButton _Default; XmPushButton _Cancel; }; }; }; }; object Help: XmCascadeButton { arguments { XmNmarginWidth = 5; XmNlabelString = compound_string("Help"); }; ! XmNmnemonic = keysym(helpCascadeMnem); controls { ! XmNmnemonic = keysym(helpCascadeMnem); XmPulldownMenu { controls { XmPushButton About; XmPushButton XDM; }; }; }; }; object About: XmPushButton { arguments { XmNlabelString = compound_string(" X session type selector:",separate=true) & compound_string(" DECW: traditional DECWindows session manager",separate=true) & compound_string(" CDE: Common Desktop Environment, HPVue like desktop",separate=true) & compound_string(" DECTerm: just DECTerm window, no session manager.",separate=true) & compound_string(" This program is usually called by XDM login (SYS$LOGIN:XDM_XSESSION.COM).",separate=true) & compound_string(" Exit codes ($STATUS) and DCL symbol XSESSIONTYPE will be defined:",separate=true) & compound_string(" 1=DECW , 3=CDE , 5=DECTerm, 7=Exit, 9=Default , default is DECW",separate=true) & compound_string(" Use pointer device (mouse button 1).",separate=true); }; }; object XDM: XmPushButton { arguments { XmNlabelString = compound_string(" SYS$LOGIN:XDM_XSESSION.COM could look like this:",separate=true) & compound_string("$ run dcl$path:xsessionselect",separate=true) & compound_string("$ goto \'xsessiontype\'",separate=true) & compound_string("$ EXIT",separate=true) & compound_string("$ DECW: @sys$manager:decw$startsm.com",separate=true) & compound_string("$ EXIT",separate=true) & compound_string("$ DEFAULT:",separate=true) & compound_string("$ CDE: @cde$path:xsession.com",separate=true) & compound_string("$ EXIT",separate=true) & compound_string("$ DECTerm: create/term/wait/wind=(icon=\"\'\'nodename\'\",title=\"\'\'nodename\'\")"); }; }; _DECW: XmPushButton { arguments { XmNlabelString = "DECW"; }; callbacks { XmNactivateCallback = procedures { SelectXsession(1); }; }; }; _CDE: XmPushButton { arguments { XmNlabelString = "CDE"; }; callbacks { XmNactivateCallback = procedures { SelectXsession(3); }; }; }; _DECTerm: XmPushButton { arguments { XmNlabelString = "DECTerm"; }; callbacks { XmNactivateCallback = procedures { SelectXsession(5); }; }; }; _Cancel: XmPushButton { arguments { XmNlabelString = "Cancel"; }; callbacks { XmNactivateCallback = procedures { SelectXsession(7); }; }; }; _Default: XmPushButton { arguments { XmNlabelString = "Default"; }; callbacks { XmNactivateCallback = procedures { SelectXsession(0); }; }; }; procedure SelectXsession(integer); end module;