home *** CD-ROM | disk | FTP | other *** search
-
-
- #include <exec/types.h>
- #include <exec/memory.h>
- #include <intuition/intuition.h>
- #include <intuition/classes.h>
- #include <intuition/classusr.h>
- #include <intuition/imageclass.h>
- #include <intuition/gadgetclass.h>
- #include <intuition/intuitionbase.h>
- #include <libraries/gadtools.h>
-
- #include <proto/exec.h>
- #include <proto/intuition.h>
- #include <proto/gadtools.h>
- #include <proto/graphics.h>
- #include <proto/wb.h>
- #include <string.h>
-
- #include "code.h"
- #include "version.h"
- #include "hotkey_types.h"
- #include "yak.h"
- #include "gui.h"
- #include "Options_window.h"
-
- #include "yak_locale_strings.h"
-
- #ifdef _DCC
- # include <lists.h>
- #else
- # include "sas_lists.h"
- #endif
-
-
- IMPORT LONG (*HandleIDCMP)(VOID);
- IMPORT YakHotKey *curhk;
- IMPORT UWORD curtype;
-
- struct Window *OptionsWnd = NULL;
- struct Gadget *OptionsGList = NULL;
- struct Gadget *OptionsGadgets[Options_CNT];
- UWORD OptionsWidth = 500;
- UWORD OptionsHeight;
- UBYTE *OptionsWdt = NULL;
- BOOL OptionsWdi = FALSE;
-
- struct AppWindow *OptionsAppWin; /* AppWindow pointer */
- IMPORT struct MsgPort *AppMsgPort;
-
- UWORD CurPage = 0;
- struct GadgetData *PageNGad;
- struct Gadget *PageGList = NULL;
- STRPTR *PageLabels;
- UWORD PageGNum;
-
- UWORD OptGadNum;
-
-
- /* Online help system */
- IMPORT void ShowYakHelp(char *, char *);
- IMPORT void CloseYakHelp(void);
- IMPORT char *PrefsHelp;
-
-
- #define CHECKBOX_HEIGHT 11
- #define CHECKBOX_WIDTH 26
- static struct TagItem CHECKBOX_GTAGS[] = { (GTCB_Scaled),TRUE,(TAG_DONE) };
- #define STRING_HEIGHT 14
- #define STRING_WIDTH 244
- static struct TagItem STRING_GTAGS[] = { (GTST_MaxChars),99,(TAG_DONE) };
- #define INTEGER_HEIGHT 14
- #define INTEGER_WIDTH 120
- static struct TagItem INTEGER_GTAGS[] = {(GTIN_MaxChars),11,(STRINGA_Justification),STRINGRIGHT,(TAG_DONE)};
-
-
- #define Margin 6
- #define PageOffY 21
- #define BottomBoxHeight 19
-
-
- UWORD OptionsGTypes[] =
- {
- CYCLE_KIND,
- BUTTON_KIND,
- BUTTON_KIND,
- BUTTON_KIND
- };
-
-
- struct NewGadget OptionsNGad[] =
- {
- 6, 4, 488, 13, NULL, NULL, GD_Page_Opts, 0, NULL, NULL,
- 6, 0, 100, 13, NULL, NULL, GD_OK_Opts, PLACETEXT_IN, NULL, OK_STRING,
- 150, 0, 200, 13, NULL, NULL, GD_Default_Opts,PLACETEXT_IN, NULL, MENU_DEFAULT_STRING,
- 394, 0, 100, 13, NULL, NULL, GD_Cancel_Opts, PLACETEXT_IN, NULL, CANCEL_STRING
- };
-
-
- ULONG OptionsGTags[] =
- {
- (GTCY_Labels), NULL, (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE),
- (TAG_DONE)
- };
-
-
-
- VOID
- GetYakOption(VOID)
- {
- UWORD ol, optslist=YHK_Takes_Opt(curhk);
- UWORD NGad=0;
-
- for (ol=0; ol<optslist; ol++)
- {
- OptDescription *curdesc=yhktypes[curhk->yhk_Type].yhkt_OptsList[ol].Desc;
- UWORD as=0; /* ArgStr number */
- UWORD an=0; /* ArgNum number */
- UWORD dn=0; /* Desc. number */
- UWORD oldflags=curhk->yhk_Option[ol].Flags;
-
- curhk->yhk_Option[ol].Flags = 0;
-
- while (curdesc->Type != NO_OPT)
- {
- UWORD gad;
- STRPTR argstr=NULL;
-
- gad = NGad + curdesc->DisplayID;
-
- switch(curdesc->Type)
- {
- case TOGGLE_OPT:
- curhk->yhk_Option[ol].Flags |= PageNGad[gad].gd_Flag;
- break;
-
- case STRING_OPT:
- if (PageNGad[gad].gd_Flag)
- argstr = DupStr(PageNGad[gad].gd_ArgStr);
- if (oldflags & curdesc->LocalID)
- FreeVec(curhk->yhk_Option[ol].ArgStr[as]);
- if (argstr)
- curhk->yhk_Option[ol].Flags |= PageNGad[gad].gd_Flag;
- curhk->yhk_Option[ol].ArgStr[as] = argstr;
- as++;
- break;
-
- case INTEGER_OPT:
- if (PageNGad[gad].gd_Flag)
- curhk->yhk_Option[ol].Flags |= PageNGad[gad].gd_Flag;
- curhk->yhk_Option[ol].ArgNum[an] = PageNGad[gad].gd_ArgNum;
- an++;
- break;
- }
-
- curdesc++;
- dn++;
- }
- NGad += dn;
- }
- }
-
-
- static void
- DisableOptionsGadgets(UWORD listID, UWORD IDs, BOOL state)
- {
- UWORD gad;
-
- for (gad=0; gad<OptGadNum; gad++)
- {
- if ((PageNGad[gad].gd_ListID == listID) &&
- (PageNGad[gad].gd_Desc->LocalID & IDs))
- PageNGad[gad].gd_Disabled = state;
- }
- }
-
-
- static void
- MutualExcludeOptionsGadgets(UWORD listID, UWORD ID, UWORD excludeIDs)
- {
- UWORD gad;
-
- for (gad=0; gad<OptGadNum; gad++)
- {
- if (PageNGad[gad].gd_ListID == listID)
- {
- if (PageNGad[gad].gd_Desc->LocalID & ID)
- PageNGad[gad].gd_Flag = PageNGad[gad].gd_Desc->LocalID;
-
- if (PageNGad[gad].gd_Flag & excludeIDs)
- PageNGad[gad].gd_Flag = 0;
- }
- }
- }
-
-
-
- VOID
- InitOptionsGadgets(VOID)
- {
- UWORD gad;
-
- for (gad=0; gad<OptGadNum; gad++)
- {
- if (PageNGad[gad].gd_Desc->ActivateIDs)
- DisableOptionsGadgets(PageNGad[gad].gd_ListID,
- PageNGad[gad].gd_Desc->ActivateIDs,
- (PageNGad[gad].gd_Flag ? FALSE: TRUE));
- }
-
- GT_SetGadgetAttrs(OptionsGadgets[GDX_Page_Opts], OptionsWnd, NULL,
- GTCY_Active, CurPage, TAG_DONE);
-
- for(gad=0; gad<OptGadNum; gad++)
- {
- if (PageNGad[gad].gd_ListID == CurPage)
- {
- switch(PageNGad[gad].gd_Type)
- {
- case CHECKBOX_KIND:
- GT_SetGadgetAttrs(PageNGad[gad].gd_Gadget, OptionsWnd, NULL,
- GTCB_Checked, (BOOL)PageNGad[gad].gd_Flag, TAG_DONE);
- break;
-
- case STRING_KIND:
- GT_SetGadgetAttrs(PageNGad[gad].gd_Gadget, OptionsWnd, NULL,
- GTST_String, (LONG)PageNGad[gad].gd_ArgStr, TAG_DONE);
- break;
-
- case INTEGER_KIND:
- GT_SetGadgetAttrs(PageNGad[gad].gd_Gadget, OptionsWnd, NULL,
- GTIN_Number, (LONG)PageNGad[gad].gd_ArgNum, TAG_DONE);
- break;
- }
-
- GT_SetGadgetAttrs(PageNGad[gad].gd_Gadget, OptionsWnd, NULL,
- GA_Disabled, (BOOL)PageNGad[gad].gd_Disabled, TAG_DONE);
- }
- }
- }
-
-
-
- static void
- SetDefaultOptionsGadgets(void)
- {
- UWORD gad;
-
- for (gad=0; gad<OptGadNum; gad++)
- {
- OptDescription *curdesc=PageNGad[gad].gd_Desc;
-
- PageNGad[gad].gd_Flag = curdesc->DefFlag;
-
- switch (curdesc->Type)
- {
- case STRING_OPT:
- PageNGad[gad].gd_ArgStr = curdesc->DefArgStr;
- break;
-
- case INTEGER_OPT:
- PageNGad[gad].gd_ArgNum = curdesc->DefArgNum;
- break;
- }
- }
- InitOptionsGadgets();
- }
-
-
-
- static void
- BuildGadgetArray( void )
- {
- UWORD NGad,gad;
- UWORD ol, optslist;
- OptDescription *curdesc;
- UWORD BoxHeight=0;
- UWORD GadX, GadY;
-
- optslist = YHK_Takes_Opt(curhk);
-
- /* Find number of gadgets */
- OptGadNum = 0;
- for (ol=0; ol<optslist; ol++)
- {
- curdesc = yhktypes[curhk->yhk_Type].yhkt_OptsList[ol].Desc;
-
- while (curdesc->Type != NO_OPT)
- {
- OptGadNum++;
- curdesc++;
- }
- }
-
-
- /* Allocate some memory */
- PageNGad = (struct GadgetData *)AllocVec(OptGadNum*sizeof(struct GadgetData), MEMF_PUBLIC|MEMF_CLEAR);
- PageLabels = (STRPTR *)AllocVec((optslist+1)*sizeof(STRPTR), MEMF_PUBLIC|MEMF_CLEAR);
-
- /* Now fill the arrays */
- GadX = OptionsWidth-Margin-STRING_WIDTH;
-
- NGad = 0;
-
- for (ol=0; ol<optslist; ol++)
- {
- UWORD as=0; /* ArgStr number */
- UWORD an=0; /* ArgNum number */
- UWORD dn=0; /* Desc. number */
-
- curdesc = yhktypes[curhk->yhk_Type].yhkt_OptsList[ol].Desc;
-
- PageLabels[ol] = getString(yhktypes[curhk->yhk_Type].yhkt_OptsList[ol].LabelID);
-
- while (curdesc->Type != NO_OPT)
- {
- gad = NGad + curdesc->DisplayID;
-
- switch(curdesc->Type)
- {
- case TOGGLE_OPT:
- PageNGad[gad].gd_Width = CHECKBOX_WIDTH;
- PageNGad[gad].gd_Height = CHECKBOX_HEIGHT;
- PageNGad[gad].gd_Type = CHECKBOX_KIND;
- PageNGad[gad].gd_Tags = CHECKBOX_GTAGS;
- PageNGad[gad].gd_Flag = (curhk->yhk_Option[ol].Flags & curdesc->LocalID);
- break;
-
- case STRING_OPT:
- PageNGad[gad].gd_Width = STRING_WIDTH;
- PageNGad[gad].gd_Height = STRING_HEIGHT;
- PageNGad[gad].gd_Type = STRING_KIND;
- PageNGad[gad].gd_Tags = STRING_GTAGS;
- if (PageNGad[gad].gd_Flag = (curhk->yhk_Option[ol].Flags & curdesc->LocalID))
- {
- PageNGad[gad].gd_ArgStr = curhk->yhk_Option[ol].ArgStr[as];
- }
- as++;
- break;
-
- case INTEGER_OPT:
- PageNGad[gad].gd_Width = INTEGER_WIDTH;
- PageNGad[gad].gd_Height = INTEGER_HEIGHT;
- PageNGad[gad].gd_Type = INTEGER_KIND;
- PageNGad[gad].gd_Tags = INTEGER_GTAGS;
- if (PageNGad[gad].gd_Flag = (curhk->yhk_Option[ol].Flags & curdesc->LocalID))
- {
- PageNGad[gad].gd_ArgNum = curhk->yhk_Option[ol].ArgNum[an];
- }
- an++;
- break;
-
- }
-
- PageNGad[gad].gd_ListID = ol;
- PageNGad[gad].gd_Desc = curdesc;
- PageNGad[gad].gd_Flags = PLACETEXT_LEFT;
- PageNGad[gad].gd_Text = getString(curdesc->LabelID);
- PageNGad[gad].gd_ReturnID = GD_FirstOption + gad;
-
- curdesc++;
- dn++;
- }
-
- GadY = PageOffY;
-
- for (gad=NGad; dn; dn--, gad++)
- {
- PageNGad[gad].gd_LeftEdge = GadX;
- PageNGad[gad].gd_TopEdge = GadY;
-
- GadY += PageNGad[gad].gd_Height + 1;
- }
- GadY += 3;
-
- NGad = gad;
-
- if (GadY > BoxHeight)
- BoxHeight = GadY;
- }
-
-
- /* Ok & Cancel Gadgets */
- OptionsNGad[GDX_OK_Opts].ng_TopEdge = BoxHeight+3;
- OptionsNGad[GDX_Default_Opts].ng_TopEdge = BoxHeight+3;
- OptionsNGad[GDX_Cancel_Opts].ng_TopEdge = BoxHeight+3;
-
- OptionsHeight = BoxHeight + BottomBoxHeight;
- }
-
-
- static BOOL
- CreatePage(void)
- {
-
- struct NewGadget ng;
- struct Gadget *g;
- UWORD lc;
-
- if (! (g = CreateContext(&PageGList)))
- {
- return(FALSE);
- }
-
- PageGNum = 0;
- for(lc = 0; lc < OptGadNum; lc++)
- {
- if (PageNGad[lc].gd_ListID == CurPage)
- {
- ng.ng_VisualInfo = VisualInfo;
- ng.ng_TextAttr = Font;
- ng.ng_LeftEdge = OffX + ComputeX(PageNGad[lc].gd_LeftEdge);
- ng.ng_TopEdge = OffY + ComputeY(PageNGad[lc].gd_TopEdge);
- ng.ng_Width = ComputeX(PageNGad[lc].gd_Width);
- ng.ng_Height = ComputeY(PageNGad[lc].gd_Height);
- ng.ng_Flags = PageNGad[lc].gd_Flags;
- ng.ng_GadgetText = PageNGad[lc].gd_Text;
- ng.ng_GadgetID = PageNGad[lc].gd_ReturnID;
-
- PageNGad[lc].gd_Gadget = g = CreateGadgetA((ULONG)PageNGad[lc].gd_Type, g, &ng, PageNGad[lc].gd_Tags);
- PageGNum++;
-
- if (NOT g)
- return(FALSE);
- }
- }
- return TRUE;
-
- }
-
-
- static VOID
- FreePage(void)
- {
- struct IntuiMessage *msg;
-
- /* We forbid here to keep out of race conditions with Intuition */
- Forbid();
-
- msg = GetHead(&OptionsWnd->UserPort->mp_MsgList);
-
- while (msg)
- {
- struct IntuiMessage *nextmsg=GetSucc(msg), *imsg;
-
- if (imsg = GT_FilterIMsg(msg))
- {
- UWORD ID=((struct Gadget *)imsg->IAddress)->GadgetID;
- ULONG class = imsg->Class;
-
- /* Revert to the original message */
- msg = GT_PostFilterIMsg(imsg);
-
- if ((class == GADGETUP) && (ID >= GD_FirstOption))
- {
- /* Yes: Remove this message from port */
- Remove((struct Node *) msg);
- ReplyMsg((struct Message *) msg);
- }
- }
-
- /* Get pointer to next message */
- msg = nextmsg;
- }
-
- /* Turn multitasking back on */
- Permit();
-
- /* Free gadgets of the previous page */
- FreeGadgets(PageGList);
- }
-
-
- VOID
- OptionsRender(VOID)
- {
- UWORD Width, Height;
-
- ComputeFont( OptionsWidth, OptionsHeight );
-
- Width = ComputeX(OptionsWidth);
- Height= ComputeY(OptionsHeight) - ComputeY(BottomBoxHeight);
-
- DrawThinBevelBox( Scr, OptionsWnd->RPort,
- OffX, OffY,
- Width, Height,
- FALSE );
-
- DrawThinBevelBox( Scr, OptionsWnd->RPort,
- OffX, OffY + Height,
- Width, ComputeY(BottomBoxHeight),
- FALSE );
-
- }
-
-
- int
- OpenOptionsWindow(VOID)
- {
- struct NewGadget ng;
- struct Gadget *g;
- UWORD lc,tc;
- WORD wleft=WindowLeft, wtop=WindowTop;
- UWORD ww, wh;
-
- ComputeFont(OptionsWidth, OptionsHeight);
-
- ww = OffX + ComputeX(OptionsWidth) + Scr->WBorRight;
- wh = OffY + ComputeY(OptionsHeight) + Scr->WBorBottom;
-
- if ((ww > Scr->Width) || (wh > Scr->Height))
- return(5L);
-
- SetUpWindowCoordinates(ww, wh, &wleft, &wtop);
-
- if (! (g = CreateContext(&OptionsGList)))
- {
- return(1L);
- }
-
- for(lc = 0,tc = 0; lc < Options_CNT; lc++)
- {
-
- CopyMem((char *)&OptionsNGad[ lc ],(char *)&ng,(long)sizeof(struct NewGadget));
-
- ng.ng_VisualInfo = VisualInfo;
- ng.ng_TextAttr = Font;
- ng.ng_LeftEdge = OffX +ComputeX(ng.ng_LeftEdge);
- ng.ng_TopEdge = OffY +ComputeY(ng.ng_TopEdge);
- ng.ng_Width = ComputeX(ng.ng_Width);
- ng.ng_Height = ComputeY(ng.ng_Height);
-
- if ( lc == GDX_Page_Opts )
- OptionsGTags[ tc+1 ] = (ULONG)&PageLabels[0];
-
- OptionsGadgets[ lc ] = g = CreateGadgetA((ULONG)OptionsGTypes[ lc ],g,&ng,(struct TagItem *) &OptionsGTags[ tc ]);
-
- while(OptionsGTags[ tc ])
- tc += 2;
-
- tc++;
-
- if (NOT g)
- return(2L);
- }
-
- if (NOT (OptionsWnd = OpenWindowTags(NULL,
- WA_Left, wleft,
- WA_Top, wtop,
- WA_Width, ww,
- WA_Height, wh,
- WA_IDCMP, BUTTONIDCMP|CHECKBOXIDCMP|CYCLEIDCMP|STRINGIDCMP|INTEGERIDCMP|IDCMP_REFRESHWINDOW|IDCMP_RAWKEY,
- WA_Flags, WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_SMART_REFRESH,
- WA_Gadgets, OptionsGList,
- WA_Title, OptionsWdt,
- WA_ScreenTitle, getString(COPYRIGHT_STRING),
- WA_PubScreen, Scr,
- WA_PubScreenName,PubScreenName,
- TAG_DONE)))
- return(4L);
-
- OptionsAppWin = AddAppWindowA(0, 0, OptionsWnd, AppMsgPort, NULL);
-
- GT_RefreshWindow(OptionsWnd,NULL);
-
- OptionsRender();
-
- return(0L);
- }
-
-
-
- VOID
- CloseOptionsWindow(VOID)
- {
- FreeVec(PageNGad);
- FreeVec(PageLabels);
-
- CloseOneWindow(OptionsWnd,NULL,OptionsGList,OptionsAppWin);
- OptionsWnd = NULL;
- }
-
-
-
-
- /* handle Options window events */
- LONG
- HandleOptionsIDCMP(VOID)
- {
- struct IntuiMessage *msg;
- struct Gadget *gadget;
- ULONG class;
- UWORD code;
- UWORD ID;
- BOOL close=FALSE;
- LONG ret=RET_OKAY;
-
- while (!close && (msg = GT_GetIMsg(OptionsWnd->UserPort)))
- {
- class = msg->Class;
- code = msg->Code;
- gadget = (struct Gadget *)msg->IAddress;
- GT_ReplyIMsg(msg);
-
- switch (class)
- {
- case GADGETUP:
- case GADGETDOWN:
- switch (ID=gadget->GadgetID)
- {
- case GD_Page_Opts:
- if (code != CurPage)
- {
- /* New page index */
- CurPage = code;
-
- /* Remove and free the previous page */
- RemoveGList(OptionsWnd, PageGList, PageGNum+1);
- FreePage();
-
- /* Wipe out the inner area of the page */
- SetBPen(OptionsWnd->RPort, 0);
- SetAPen(OptionsWnd->RPort, 0);
- RectFill(OptionsWnd->RPort, OffX+1,
- OffY+ComputeY(PageOffY),
- OffX+ComputeX(OptionsWidth)-2,
- OffY+ComputeY(OptionsHeight)-ComputeY(BottomBoxHeight)-2);
-
- /* Create and add the new page */
- CreatePage();
- AddGList(OptionsWnd, PageGList, ~0, PageGNum+1, NULL);
-
- /* Refresh display */
- RefreshGadgets(PageGList, OptionsWnd, NULL);
- GT_RefreshWindow(OptionsWnd,NULL);
- InitOptionsGadgets();
- }
- break;
-
- case GD_Default_Opts:
- SetDefaultOptionsGadgets();
- break;
-
- case GD_OK_Opts:
- GetYakOption();
- CloseOptionsWindow();
- if (!ShowWindowID(HOTKEY_WINDOW))
- ret = RET_QUIT;
- close = TRUE;
- CurPage = 0;
- break;
-
- case GD_Cancel_Opts:
- CloseOptionsWindow();
- if (!ShowWindowID(HOTKEY_WINDOW))
- ret = RET_QUIT;
- close = TRUE;
- CurPage = 0;
- break;
-
-
- default:
- ID = ID - GD_FirstOption;
- if (PageNGad[ID].gd_ListID == CurPage)
- {
- switch(PageNGad[ID].gd_Type)
- {
- case CHECKBOX_KIND:
- PageNGad[ID].gd_Flag ^= PageNGad[ID].gd_Desc->LocalID;
-
- if (PageNGad[ID].gd_Desc->ExcludeIDs)
- MutualExcludeOptionsGadgets(PageNGad[ID].gd_ListID,
- PageNGad[ID].gd_Desc->LocalID,
- PageNGad[ID].gd_Desc->ExcludeIDs);
- InitOptionsGadgets();
- break;
-
- case STRING_KIND:
- PageNGad[ID].gd_ArgStr = GetString(gadget);
- if (*PageNGad[ID].gd_ArgStr)
- PageNGad[ID].gd_Flag = PageNGad[ID].gd_Desc->LocalID;
- else
- PageNGad[ID].gd_Flag = 0;
- InitOptionsGadgets();
- break;
-
- case INTEGER_KIND:
- PageNGad[ID].gd_ArgNum = GetNumber(gadget);
- PageNGad[ID].gd_Flag = PageNGad[ID].gd_Desc->LocalID;
- InitOptionsGadgets();
- break;
- }
- }
- break;
- }
- break;
-
- case IDCMP_RAWKEY:
- /* Help key pressed */
- if (code == 95)
- {
- /* Display the node */
- ShowYakHelp(PrefsHelp, yhktypes[curtype].yhkt_HelpNode);
- }
- break;
-
- case REFRESHWINDOW:
- GT_BeginRefresh(OptionsWnd);
- GT_EndRefresh(OptionsWnd, TRUE);
- break;
-
- } /* switch (class) */
-
- } /* while more messages */
-
- return ret;
- }
-
-
-
- /* show our Options window */
- BOOL
- ShowOptionsWindow(VOID)
- {
- static char title[80];
-
- BuildGadgetArray();
-
- strcpy(title, getString(Options_Window_TITLE));
- strcat(title, " ");
- if (curhk->yhk_Name)
- {
- strcat(title, curhk->yhk_Name);
- }
- else
- {
- strcat(title, "<<unnamed>>");
- }
- OptionsWdt = title;
-
- if (!OptionsWdi)
- {
- OptionsWdi = TRUE;
-
- LocalizeNGadLabels (Options_CNT, OptionsNGad);
- }
-
- if (!OpenOptionsWindow()) /* like the name says... */
- {
- CreatePage();
- AddGList(OptionsWnd, PageGList, ~0, PageGNum+1, NULL);
- RefreshGadgets(PageGList, OptionsWnd, NULL);
- GT_RefreshWindow(OptionsWnd, NULL);
-
- InitOptionsGadgets();
- wndsigflag = 1 << OptionsWnd->UserPort->mp_SigBit;
- curwin = OptionsWnd;
- curwinID = OPTIONS_WINDOW;
- HandleIDCMP = HandleOptionsIDCMP;
- return TRUE;
- }
-
- FreeVec(PageNGad);
- FreeVec(PageLabels);
-
- FreeGadgets(OptionsGList);
- CloseDownScreen();
- curwin = NULL;
- wndsigflag = 0L;
- return FALSE;
- }
-
-
- /* switch from Root window to Options window */
- BOOL
- SwitchToOptionsWindow(VOID)
- {
- CloseWindowID(HOTKEY_WINDOW);
- return ShowOptionsWindow();
- }
-
-