home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 568b.lha / PowerSource_v3.0 / source.lzh / source / idreq.c < prev    next >
Text File  |  1991-09-15  |  16KB  |  422 lines

  1. /*----------------------------------------------------------------------*
  2.    idreq.c Version 3.0 -  © Copyright 1990-91 Jaba Development
  3.  
  4.    Author  : Jan van den Baard
  5.    Purpose : Set window IDCMP e.c.t
  6.  *----------------------------------------------------------------------*/
  7.  
  8. static UBYTE UNDOBUFFER[80];
  9.  
  10. static SHORT MainPairs2[] =
  11.  { 0,0,314,0 };
  12. static struct Border MainBorder2 =
  13.  { 2,12,0,0,JAM1,2,MainPairs2,NULL };
  14. static SHORT MainPairs1[] =
  15.  { 0,0,315,0,315,197,0,197,0,0 };
  16. static struct Border MainBorder1 =
  17.  { 2,1,0,0,JAM1,5,MainPairs1,&MainBorder2 };
  18.  
  19. static SHORT OCPairs[] =
  20.  { 0,0,56,0,56,23,0,23,0,0 };
  21. static struct Border OCBorder =
  22.  { -1,-1,0,0,JAM1,5,OCPairs,NULL };
  23.  
  24. static struct IntuiText CNCText =
  25.  { 0,0,JAM1,4,7,NULL,(UBYTE *)"CANCEL",NULL };
  26. static struct Gadget CNC =
  27.  { NULL,253,173,55,22,NULL,RELVERIFY,BOOLGADGET,
  28.    (APTR)&OCBorder,NULL,&CNCText,NULL,NULL,34,NULL };
  29.  
  30. static struct IntuiText OKIDOKIText =
  31.  { 0,0,JAM1,20,7,NULL,(UBYTE *)"OK",NULL };
  32. static struct Gadget OKIDOKI =
  33.  { &CNC,253,147,55,22,NULL,RELVERIFY,BOOLGADGET,
  34.    (APTR)&OCBorder,NULL,&OKIDOKIText,NULL,NULL,33,NULL };
  35.  
  36. static SHORT VALPairs[] =
  37.  { 0,0,57,0,57,9,0,9,0,0 };
  38. static struct Border VALBorder =
  39.  { -1,-1,2,0,JAM1,5,VALPairs,NULL };
  40.  
  41. static UBYTE MAYBuff[4];
  42. static struct StringInfo MAYInfo =
  43.  { MAYBuff,UNDOBUFFER,0,4,0,0,0,0,0,0,0,0,NULL };
  44. static struct IntuiText MAYText =
  45.  { 0,0,JAM1,12,-10,NULL,(UBYTE *)"MaxY",NULL };
  46. static struct Gadget MAY =
  47.  { &OKIDOKI,253,131,56,8,NULL,RELVERIFY+STRINGCENTER+LONGINT,STRGADGET,
  48.    (APTR)&VALBorder,NULL,&MAYText,NULL,(APTR)&MAYInfo,32,NULL };
  49.  
  50. static UBYTE MAXBuff[4];
  51. static struct StringInfo MAXInfo =
  52.  { MAXBuff,UNDOBUFFER,0,4,0,0,0,0,0,0,0,0,NULL };
  53. static struct IntuiText MAXText =
  54.  { 0,0,JAM1,12,-10,NULL,(UBYTE *)"MaxX",NULL };
  55. static struct Gadget MAX =
  56.  { &MAY,253,110,56,8,NULL,RELVERIFY+STRINGCENTER+LONGINT,STRGADGET,
  57.    (APTR)&VALBorder,NULL,&MAXText,NULL,(APTR)&MAXInfo,31,NULL };
  58.  
  59. static UBYTE MIYBuff[4];
  60. static struct StringInfo MIYInfo =
  61.  { MIYBuff,UNDOBUFFER,0,4,0,0,0,0,0,0,0,0,NULL };
  62. static struct IntuiText MIYText =
  63.  { 0,0,JAM1,12,-10,NULL,(UBYTE *)"MinY",NULL };
  64. static struct Gadget MIY =
  65.  { &MAX,253,89,56,8,NULL,RELVERIFY+STRINGCENTER+LONGINT,STRGADGET,
  66.    (APTR)&VALBorder,NULL,&MIYText,NULL,(APTR)&MIYInfo,30,NULL };
  67.  
  68. static UBYTE MIXBuff[4];
  69. static struct StringInfo MIXInfo =
  70.  { MIXBuff,UNDOBUFFER,0,4,0,0,0,0,0,0,0,0,NULL };
  71. static struct IntuiText MIXText =
  72.  { 0,0,JAM1,12,-10,NULL,(UBYTE *)"MinX",NULL };
  73. static struct Gadget MIX =
  74.  { &MIY,253,68,56,8,NULL,RELVERIFY+STRINGCENTER+LONGINT,STRGADGET,
  75.    (APTR)&VALBorder,NULL,&MIXText,NULL,(APTR)&MIXInfo,29,NULL };
  76.  
  77. static UBYTE BPBuff[3];
  78. static struct StringInfo BPInfo =
  79.  { BPBuff,UNDOBUFFER,0,3,0,0,0,0,0,0,0,0,NULL };
  80. static struct IntuiText BPText =
  81.  { 0,0,JAM1,9,-10,NULL,(UBYTE *)"Block",NULL };
  82. static struct Gadget BP =
  83.  { &MIX,252,47,56,8,NULL,RELVERIFY+STRINGCENTER+LONGINT,STRGADGET,
  84.    (APTR)&VALBorder,NULL,&BPText,NULL,(APTR)&BPInfo,28,NULL };
  85.  
  86. static UBYTE DPBuff[3];
  87. static struct StringInfo DPInfo =
  88.  { DPBuff,UNDOBUFFER,0,3,0,0,0,0,0,0,0,0,NULL };
  89. static struct IntuiText DPText =
  90.  { 0,0,JAM1,5,-10,NULL,(UBYTE *)"Detail",NULL };
  91. static struct Gadget DP =
  92.  { &BP,252,26,56,8,NULL,RELVERIFY+STRINGCENTER+LONGINT,STRGADGET,
  93.    (APTR)&VALBorder,NULL,&DPText,NULL,(APTR)&DPInfo,27,NULL };
  94.  
  95. static SHORT TLPairs[] =
  96.  { 0,0,169,0,169,9,0,9,0,0 };
  97. static struct Border TLBorder =
  98.  { -1,-1,2,0,JAM1,5,TLPairs,NULL };
  99.  
  100. static UBYTE SLBuff[MAXLABEL] = "nw";
  101. static struct StringInfo SLInfo =
  102.  { SLBuff,UNDOBUFFER,0,MAXLABEL,0,0,0,0,0,0,0,0,NULL };
  103. static struct IntuiText SLText =
  104.  { 0,0,JAM1,-67,0,NULL,(UBYTE *)"Label",NULL };
  105. static struct Gadget SL =
  106.  { &DP,75,187,168,8,NULL,RELVERIFY+STRINGCENTER,STRGADGET,
  107.    (APTR)&TLBorder,NULL,&SLText,NULL,(APTR)&SLInfo,26,NULL };
  108.  
  109. static UBYTE TIBuff[80] = "Work Window";
  110. static struct StringInfo TIInfo =
  111.  { TIBuff,UNDOBUFFER,0,80,0,0,0,0,0,0,0,0,NULL };
  112. static struct IntuiText TIText =
  113.  { 0,0,JAM1,-67,0,NULL,(UBYTE *)"Title",NULL };
  114. static struct Gadget TI =
  115.  { &SL,75,173,168,8,NULL,RELVERIFY+STRINGCENTER,STRGADGET,
  116.    (APTR)&TLBorder,NULL,&TIText,NULL,(APTR)&TIInfo,25,NULL };
  117.  
  118. static SHORT FLPairs[] =
  119.  { 0,0,115,0,115,10,0,10,0,0 };
  120. static struct Border FLBorder =
  121.  { -1,-1,0,0,JAM1,5,FLPairs,NULL };
  122.  
  123. static struct IntuiText LMText =
  124.  { 0,0,JAM1,5,1,NULL,(UBYTE *)"LONELYMESSAGE",NULL };
  125. static struct Gadget LM =
  126.  { &TI,129,160,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  127.    (APTR)&FLBorder,NULL,&LMText,NULL,NULL,23,NULL };
  128.  
  129. static struct IntuiText WMText =
  130.  { 0,0,JAM1,5,1,NULL,(UBYTE *)"WBENCHMESSAGE",NULL };
  131. static struct Gadget WM =
  132.  { &LM,129,147,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  133.    (APTR)&FLBorder,NULL,&WMText,NULL,NULL,22,NULL };
  134.  
  135. static struct IntuiText VKText =
  136.  { 0,0,JAM1,17,1,NULL,(UBYTE *)"VANILLAKEY",NULL };
  137. static struct Gadget VK =
  138.  { &WM,129,134,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  139.    (APTR)&FLBorder,NULL,&VKText,NULL,NULL,21,NULL };
  140.  
  141. static struct IntuiText RKText =
  142.  { 0,0,JAM1,31,1,NULL,(UBYTE *)"RAWKEY",NULL };
  143. static struct Gadget RK =
  144.  { &VK,129,121,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  145.    (APTR)&FLBorder,NULL,&RKText,NULL,NULL,20,NULL };
  146.  
  147. static struct IntuiText DRText =
  148.  { 0,0,JAM1,14,1,NULL,(UBYTE *)"DISKREMOVED",NULL };
  149. static struct Gadget DR =
  150.  { &RK,129,108,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  151.    (APTR)&FLBorder,NULL,&DRText,NULL,NULL,19,NULL };
  152.  
  153. static struct IntuiText DIText =
  154.  { 0,0,JAM1,9,1,NULL,(UBYTE *)"DISKINSERTED",NULL };
  155. static struct Gadget DI =
  156.  { &DR,129,95,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  157.    (APTR)&FLBorder,NULL,&DIText,NULL,NULL,18,NULL };
  158.  
  159. static struct IntuiText NPText =
  160.  { 0,0,JAM1,25,1,NULL,(UBYTE *)"NEWPREFS",NULL };
  161. static struct Gadget NP =
  162.  { &DI,129,82,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  163.    (APTR)&FLBorder,NULL,&NPText,NULL,NULL,17,NULL };
  164.  
  165. static struct IntuiText ITText =
  166.  { 0,0,JAM1,15,1,NULL,(UBYTE *)"INTUITICKS",NULL };
  167. static struct Gadget IT =
  168.  { &NP,129,69,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  169.    (APTR)&FLBorder,NULL,&ITText,NULL,NULL,16,NULL };
  170.  
  171. static struct IntuiText DMText =
  172.  { 0,0,JAM1,21,1,NULL,(UBYTE *)"DELTAMOVE",NULL };
  173. static struct Gadget DM =
  174.  { &IT,129,56,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  175.    (APTR)&FLBorder,NULL,&DMText,NULL,NULL,15,NULL };
  176.  
  177. static struct IntuiText MMText =
  178.  { 0,0,JAM1,21,1,NULL,(UBYTE *)"MOUSEMOVE",NULL };
  179. static struct Gadget MM =
  180.  { &DM,129,43,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  181.    (APTR)&FLBorder,NULL,&MMText,NULL,NULL,14,NULL };
  182.  
  183. static struct IntuiText MBText =
  184.  { 0,0,JAM1,9,1,NULL,(UBYTE *)"MOUSEBUTTONS",NULL };
  185. static struct Gadget MB =
  186.  { &MM,129,30,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  187.    (APTR)&FLBorder,NULL,&MBText,NULL,NULL,13,NULL };
  188.  
  189. static struct IntuiText MVText =
  190.  { 0,0,JAM1,16,1,NULL,(UBYTE *)"MENUVERIFY",NULL };
  191. static struct Gadget MV =
  192.  { &MB,129,17,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  193.    (APTR)&FLBorder,NULL,&MVText,NULL,NULL,12,NULL };
  194.  
  195. static struct IntuiText MPText =
  196.  { 0,0,JAM1,26,1,NULL,(UBYTE *)"MENUPICK",NULL };
  197. static struct Gadget MP =
  198.  { &MV,10,160,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  199.    (APTR)&FLBorder,NULL,&MPText,NULL,NULL,11,NULL };
  200.  
  201. static struct IntuiText RVText =
  202.  { 0,0,JAM1,22,1,NULL,(UBYTE *)"REQVERIFY",NULL };
  203. static struct Gadget RV =
  204.  { &MP,9,147,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  205.    (APTR)&FLBorder,NULL,&RVText,NULL,NULL,10,NULL };
  206.  
  207. static struct IntuiText RCText =
  208.  { 0,0,JAM1,27,1,NULL,(UBYTE *)"REQCLEAR",NULL };
  209. static struct Gadget RC =
  210.  { &RV,9,134,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  211.    (APTR)&FLBorder,NULL,&RCText,NULL,NULL,9,NULL };
  212.  
  213. static struct IntuiText RSText =
  214.  { 0,0,JAM1,32,1,NULL,(UBYTE *)"REQSET",NULL };
  215. static struct Gadget RS =
  216.  { &RC,9,121,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  217.    (APTR)&FLBorder,NULL,&RSText,NULL,NULL,8,NULL };
  218.  
  219. static struct IntuiText CWText =
  220.  { 0,0,JAM1,12,1,NULL,(UBYTE *)"CLOSEWINDOW",NULL };
  221. static struct Gadget CW =
  222.  { &RS,9,108,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  223.    (APTR)&FLBorder,NULL,&CWText,NULL,NULL,7,NULL };
  224.  
  225. static struct IntuiText GUText =
  226.  { 0,0,JAM1,25,1,NULL,(UBYTE *)"GADGETUP",NULL };
  227. static struct Gadget GU =
  228.  { &CW,9,95,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  229.    (APTR)&FLBorder,NULL,&GUText,NULL,NULL,6,NULL };
  230.  
  231. static struct IntuiText GDText =
  232.  { 0,0,JAM1,15,1,NULL,(UBYTE *)"GADGETDOWN",NULL };
  233. static struct Gadget GD =
  234.  { &GU,9,82,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  235.    (APTR)&FLBorder,NULL,&GDText,NULL,NULL,5,NULL };
  236.  
  237. static struct IntuiText IWText =
  238.  { 0,0,JAM1,1,1,NULL,(UBYTE *)"INACTIVEWINDOW",NULL };
  239. static struct Gadget IW =
  240.  { &GD,9,69,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  241.    (APTR)&FLBorder,NULL,&IWText,NULL,NULL,4,NULL };
  242.  
  243. static struct IntuiText AWText =
  244.  { 0,0,JAM1,9,1,NULL,(UBYTE *)"ACTIVEWINDOW",NULL };
  245. static struct Gadget AW =
  246.  { &IW,9,56,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  247.    (APTR)&FLBorder,NULL,&AWText,NULL,NULL,3,NULL };
  248.  
  249. static struct IntuiText RWText =
  250.  { 0,0,JAM1,5,1,NULL,(UBYTE *)"REFRESHWINDOW",NULL };
  251. static struct Gadget RW =
  252.  { &AW,9,43,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  253.    (APTR)&FLBorder,NULL,&RWText,NULL,NULL,2,NULL };
  254.  
  255. static struct IntuiText NSText =
  256.  { 0,0,JAM1,28,1,NULL,(UBYTE *)"NEWSIZE",NULL };
  257. static struct Gadget NS =
  258.  { &RW,9,30,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  259.    (APTR)&FLBorder,NULL,&NSText,NULL,NULL,1,NULL };
  260.  
  261. static struct IntuiText SVYText =
  262.  { 0,0,JAM1,16,1,NULL,(UBYTE *)"SIZEVERIFY",NULL };
  263. static struct Gadget SVY =
  264.  { &NS,9,17,114,9,NULL,GADGIMMEDIATE+TOGGLESELECT,BOOLGADGET,
  265.    (APTR)&FLBorder,NULL,&SVYText,NULL,NULL,0,NULL };
  266.  
  267. static struct IntuiText TText =
  268.  { 0,0,JAM1,92,3,NULL,(UBYTE *)"Edit Window IDCMP",NULL };
  269.  
  270. static struct NewWindow id_req =
  271.  { 0,0,320,200,0,1,GADGETDOWN+GADGETUP,
  272.    ACTIVATE+RMBTRAP+NOCAREREFRESH+BORDERLESS,
  273.    NULL,NULL,NULL,NULL,NULL,
  274.    0,0,0,0,CUSTOMSCREEN };
  275.  
  276. extern struct Window *MainWindow;
  277. extern struct Screen *MainScreen;
  278. extern struct Gadget *Gadget;
  279. extern ULONG          IDCMPFlags;
  280. extern UBYTE          wdt[80];
  281. extern UBYTE          wlb[MAXLABEL];
  282. extern BOOL           Saved;
  283.  
  284. /*
  285.  * reset all control gadgets
  286.  */
  287. void re_set( void )
  288. {
  289.     register struct Gadget *g;
  290.  
  291.     g = &SVY;
  292.  
  293.     while(1) {
  294.         if(g == &TI) break;
  295.         g->Flags = NULL;
  296.         g = g->NextGadget;
  297.     }
  298.  
  299.     strcpy((char *)&TIBuff,(char *)&wdt);
  300.     strcpy((char *)&SLBuff,(char *)&wlb);
  301.  
  302.     StringFormat((char *)&MAYBuff,"%ld",MainWindow->MaxHeight);
  303.     MAYInfo.LongInt = MainWindow->MaxHeight;
  304.     StringFormat((char *)&MAXBuff,"%ld",MainWindow->MaxWidth);
  305.     MAXInfo.LongInt = MainWindow->MaxWidth;
  306.  
  307.     StringFormat((char *)&MIYBuff,"%ld",MainWindow->MinHeight);
  308.     MIYInfo.LongInt = MainWindow->MinHeight;
  309.     StringFormat((char *)&MIXBuff,"%ld",MainWindow->MinWidth);
  310.     MIXInfo.LongInt = MainWindow->MinWidth;
  311.  
  312.     StringFormat((char *)&BPBuff,"%ld",MainWindow->BlockPen);
  313.     BPInfo.LongInt = MainWindow->BlockPen;
  314.     StringFormat((char *)&DPBuff,"%ld",MainWindow->DetailPen);
  315.     DPInfo.LongInt = MainWindow->DetailPen;
  316.  
  317.     redisplay(&SL);
  318.     redisplay(&TI);
  319. }
  320.  
  321. /*
  322.  * open the IDCMP window
  323.  */
  324. void idcmp( void )
  325. {
  326.     struct Window *idw;
  327.     USHORT         i;
  328.  
  329.     id_req.Screen = MainScreen;
  330.     re_set();
  331.  
  332.     if(NOT(idw = OpenWindow(&id_req))) return;
  333.  
  334.     disable_window();
  335.     draw(idw,&SVY,&MainBorder1,&TText);
  336.  
  337.     if(TestBits(IDCMPFlags,SIZEVERIFY))      SelectGadget(idw,&SVY,NULL);
  338.     if(TestBits(IDCMPFlags,NEWSIZE))         SelectGadget(idw,&NS ,NULL);
  339.     if(TestBits(IDCMPFlags,REFRESHWINDOW))   SelectGadget(idw,&RW,NULL);
  340.     if(TestBits(IDCMPFlags,ACTIVEWINDOW))    SelectGadget(idw,&AW,NULL);
  341.     if(TestBits(IDCMPFlags,INACTIVEWINDOW))  SelectGadget(idw,&IW,NULL);
  342.     if(TestBits(IDCMPFlags,GADGETDOWN))      SelectGadget(idw,&GD,NULL);
  343.     if(TestBits(IDCMPFlags,GADGETUP))        SelectGadget(idw,&GU,NULL);
  344.     if(TestBits(IDCMPFlags,CLOSEWINDOW))     SelectGadget(idw,&CW,NULL);
  345.     if(TestBits(IDCMPFlags,REQSET))          SelectGadget(idw,&RS,NULL);
  346.     if(TestBits(IDCMPFlags,REQCLEAR))        SelectGadget(idw,&RC,NULL);
  347.     if(TestBits(IDCMPFlags,REQVERIFY))       SelectGadget(idw,&RV,NULL);
  348.     if(TestBits(IDCMPFlags,MENUPICK))        SelectGadget(idw,&MP,NULL);
  349.     if(TestBits(IDCMPFlags,MENUVERIFY))      SelectGadget(idw,&MV,NULL);
  350.     if(TestBits(IDCMPFlags,MOUSEBUTTONS))    SelectGadget(idw,&MB,NULL);
  351.     if(TestBits(IDCMPFlags,MOUSEMOVE))       SelectGadget(idw,&MM,NULL);
  352.     if(TestBits(IDCMPFlags,DELTAMOVE))       SelectGadget(idw,&DM,NULL);
  353.     if(TestBits(IDCMPFlags,INTUITICKS))      SelectGadget(idw,&IT,NULL);
  354.     if(TestBits(IDCMPFlags,NEWPREFS))        SelectGadget(idw,&NP,NULL);
  355.     if(TestBits(IDCMPFlags,DISKINSERTED))    SelectGadget(idw,&DI,NULL);
  356.     if(TestBits(IDCMPFlags,DISKREMOVED))     SelectGadget(idw,&DR,NULL);
  357.     if(TestBits(IDCMPFlags,RAWKEY))          SelectGadget(idw,&RK,NULL);
  358.     if(TestBits(IDCMPFlags,VANILLAKEY))      SelectGadget(idw,&VK,NULL);
  359.     if(TestBits(IDCMPFlags,WBENCHMESSAGE))   SelectGadget(idw,&WM,NULL);
  360.     if(TestBits(IDCMPFlags,LONELYMESSAGE))   SelectGadget(idw,&LM,NULL);
  361.  
  362.     do {
  363.         Wait(1 << idw->UserPort->mp_SigBit);
  364.         while(read_msg(idw));
  365.     } while(Gadget->GadgetID < 33);
  366.  
  367.     CloseWindow(idw);
  368.     if(Gadget->GadgetID == 33) {
  369.         IDCMPFlags = NULL;
  370.         if(SelectTest(&SVY)) IDCMPFlags |= SIZEVERIFY;
  371.         if(SelectTest(&NS))  IDCMPFlags |= NEWSIZE;
  372.         if(SelectTest(&RW))  IDCMPFlags |= REFRESHWINDOW;
  373.         if(SelectTest(&AW))  IDCMPFlags |= ACTIVEWINDOW;
  374.         if(SelectTest(&IW))  IDCMPFlags |= INACTIVEWINDOW;
  375.         if(SelectTest(&GD))  IDCMPFlags |= GADGETDOWN;
  376.         if(SelectTest(&GU))  IDCMPFlags |= GADGETUP;
  377.         if(SelectTest(&CW))  IDCMPFlags |= CLOSEWINDOW;
  378.         if(SelectTest(&RS))  IDCMPFlags |= REQSET;
  379.         if(SelectTest(&RC))  IDCMPFlags |= REQCLEAR;
  380.         if(SelectTest(&RV))  IDCMPFlags |= REQVERIFY;
  381.         if(SelectTest(&MP))  IDCMPFlags |= MENUPICK;
  382.         if(SelectTest(&MV))  IDCMPFlags |= MENUVERIFY;
  383.         if(SelectTest(&MB))  IDCMPFlags |= MOUSEBUTTONS;
  384.         if(SelectTest(&MM))  IDCMPFlags |= MOUSEMOVE;
  385.         if(SelectTest(&DM))  IDCMPFlags |= DELTAMOVE;
  386.         if(SelectTest(&IT))  IDCMPFlags |= INTUITICKS;
  387.         if(SelectTest(&NP))  IDCMPFlags |= NEWPREFS;
  388.         if(SelectTest(&DI))  IDCMPFlags |= DISKINSERTED;
  389.         if(SelectTest(&DR))  IDCMPFlags |= DISKREMOVED;
  390.         if(SelectTest(&RK))  IDCMPFlags |= RAWKEY;
  391.         if(SelectTest(&VK))  IDCMPFlags |= VANILLAKEY;
  392.         if(SelectTest(&WM))  IDCMPFlags |= WBENCHMESSAGE;
  393.         if(SelectTest(&LM))  IDCMPFlags |= LONELYMESSAGE;
  394.  
  395.         strcpy((char *)&wdt,(char *)&TIBuff);
  396.         strcpy((char *)&wlb,(char *)&SLBuff);
  397.  
  398.         if(NOT strlen((char *)&wdt))
  399.              MainWindow->Title = NULL;
  400.         else
  401.              MainWindow->Title = (UBYTE *)&wdt;
  402.  
  403.         for(i = 0; i < strlen((char *)&wlb); i++) {
  404.             if(wlb[i] == 0x20) wlb[i] = '_';
  405.         }
  406.  
  407.         if(TestBits(MainWindow->Flags,WINDOWSIZING)) {
  408.             WindowLimits(MainWindow,MIXInfo.LongInt,
  409.                                     MIYInfo.LongInt,
  410.                                     MAXInfo.LongInt,
  411.                                     MAYInfo.LongInt);
  412.         }
  413.  
  414.         MainWindow->DetailPen = DPInfo.LongInt;
  415.         MainWindow->BlockPen  = BPInfo.LongInt;
  416.  
  417.         Saved = FALSE;
  418.     }
  419.     enable_window();
  420.     refresh();
  421. }
  422.