home *** CD-ROM | disk | FTP | other *** search
- /*
- ** $Id: PhonePanel.c,v 1.12 92/08/15 20:13:04 olsen Sta Locker: olsen $
- ** $Revision: 1.12 $
- ** $Date: 92/08/15 20:13:04 $
- **
- ** The phonebook and support routines
- **
- ** Copyright © 1990-1992 by Olaf `Olsen' Barthel & MXM
- ** All Rights Reserved
- */
-
- #include "termGlobal.h"
-
- enum { GAD_NAMELIST,GAD_NAME,GAD_PHONENUMBER,
- GAD_NEWENTRY,GAD_DIALLIST,GAD_LOADLIST,
- GAD_CLONEENTRY,GAD_CLEARLIST,GAD_SORTLIST,
- GAD_REMOVEENTRY,GAD_PLAYNUMBER,GAD_SAVELIST,
- GAD_COPYCONFIG,GAD_USEIT,GAD_PASSWORD,GAD_EDIT };
-
- enum { EDIT_SERIAL,EDIT_MODEM,EDIT_TRANSFER,EDIT_SCREEN,EDIT_TERMINAL,
- EDIT_COMMANDS,EDIT_UNITS,EDIT_MISC,EDIT_PATHS,EDIT_KEYMACROS,
- EDIT_FASTMACROS,EDIT_PASSWORD,EDIT_COPY };
-
- STATIC struct List EditList;
- STATIC struct Node EditNode[13];
-
- STATIC UBYTE *EditName[13] =
- {
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- };
-
- STATIC struct Gadget *
- CreateAllGadgets(struct Gadget **GadgetArray,struct Gadget **GadgetList,APTR VisualInfo,UWORD TopEdge)
- {
- struct Gadget *Gadget;
- struct NewGadget NewGadget;
- UWORD Counter = 0;
-
- LocalizeString(EditName,MSG_PHONEPANEL_SERIAL_TXT,MSG_PHONEPANEL_PASSWORD_USER_TXT);
-
- memset(&NewGadget,0,sizeof(struct NewGadget));
-
- SZ_SizeSetup(Screen,&UserFont,TRUE);
-
- if(Gadget = CreateContext(GadgetList))
- {
- WORD i,Max,Len,ButtonWidth,MaxWidth,LeftEdge;
-
- NewList(&EditList);
-
- for(i = 0 ; i < 12 ; i++)
- {
- EditNode[i] . ln_Name = EditName[i];
-
- AddTail(&EditList,&EditNode[i]);
- }
-
- SZ_ResetMaxWidth();
-
- for(i = MSG_PHONEPANEL_PLAY_NUMBER_GAD ; i <= MSG_PHONEPANEL_SET_PASSWORT_GAD ; i++)
- SZ_UpdateMaxWidth(BUTTON_KIND,LocaleString(i),0,NULL);
-
- ButtonWidth = SZ_ResetMaxWidth();
-
- MaxWidth = 3 * ButtonWidth + 2 * INTERWIDTH;
-
- Max = SZ_TextWidth(LocaleString(MSG_PHONEPANEL_PHONE_NUMBER_GAD));
-
- if((Len = SZ_TextWidth(LocaleString(MSG_PHONEPANEL_BBS_NAME_GAD))) > Max)
- Max = Len;
-
- if((Len = SZ_TextWidth(LocaleString(MSG_GLOBAL_NAME_LIST_GAD))) > Max)
- Max = Len;
-
- SZ_AddLeftOffset(Max + INTERWIDTH);
-
- LeftEdge = SZ_GetLeftEdge();
-
- if(SZ_Width(LISTVIEW_KIND,NULL,35,NULL) > MaxWidth)
- MaxWidth = SZ_Width(LISTVIEW_KIND,NULL,35,NULL);
-
- SZ_SetWidth(MaxWidth);
-
- NewGadget . ng_TextAttr = &UserFont;
- NewGadget . ng_VisualInfo = VisualInfo;
- NewGadget . ng_Flags = PLACETEXT_LEFT;
- NewGadget . ng_GadgetText = LocaleString(MSG_GLOBAL_NAME_LIST_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(LISTVIEW_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
- SZ_Lines, 10,
-
- GT_Underscore, '_',
- TAG_DONE);
-
- SZ_SetTopEdge(SZ_GetTopEdge() - 2 * InterHeight);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_PHONEPANEL_BBS_NAME_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GTST_MaxChars, 29,
- GTST_EditHook, &CommandHook,
- GA_Disabled, TRUE,
- GA_Immediate, TRUE,
- GT_Underscore, '_',
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_PHONEPANEL_PHONE_NUMBER_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GTST_MaxChars, 49,
- GTST_EditHook, &CommandHook,
- GA_Disabled, TRUE,
- GA_Immediate, TRUE,
- GT_Underscore, '_',
- TAG_DONE);
-
-
- SZ_SetWidth(ButtonWidth);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_PHONEPANEL_NEW_ENTRY_GAD);
- NewGadget . ng_GadgetID = Counter;
- NewGadget . ng_Flags = PLACETEXT_IN;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
- SZ_AlignBottom, TRUE,
- SZ_GroupCount, 3,
- SZ_UseLeft, LeftEdge,
-
- GT_Underscore, '_',
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_PHONEPANEL_DIAL_LIST_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
- SZ_GroupNext, TRUE,
-
- GT_Underscore, '_',
- GA_Disabled, TRUE,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_PHONEPANEL_LOAD_LIST_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
- SZ_GroupNext, TRUE,
-
- GT_Underscore, '_',
- GA_Disabled, (Online && ChosenEntry),
- TAG_DONE);
-
-
- NewGadget . ng_GadgetText = LocaleString(MSG_PHONEPANEL_CLONE_ENTRY_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
- SZ_AlignBottom, TRUE,
- SZ_GroupCount, 3,
- SZ_UseLeft, LeftEdge,
-
- GT_Underscore, '_',
- GA_Disabled, TRUE,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_PHONEPANEL_CLEAR_LIST_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
- SZ_GroupNext, TRUE,
-
- GT_Underscore, '_',
- GA_Disabled, TRUE,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_PHONEPANEL_SORT_LIST_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
- SZ_GroupNext, TRUE,
-
- GT_Underscore, '_',
- GA_Disabled, TRUE,
- TAG_DONE);
-
-
- NewGadget . ng_GadgetText = LocaleString(MSG_PHONEPANEL_REMOVE_ENTRY_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
- SZ_AlignBottom, TRUE,
- SZ_GroupCount, 3,
- SZ_UseLeft, LeftEdge,
-
- GT_Underscore, '_',
- GA_Disabled, TRUE,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_PHONEPANEL_PLAY_NUMBER_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
- SZ_GroupNext, TRUE,
-
- GT_Underscore, '_',
- GA_Disabled, TRUE,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_PHONEPANEL_SAVE_LIST_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
- SZ_GroupNext, TRUE,
-
- GT_Underscore, '_',
- GA_Disabled, TRUE,
- TAG_DONE);
-
-
- NewGadget . ng_GadgetText = LocaleString(MSG_PHONEPANEL_COPY_CONFIG_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
- SZ_AlignBottom, TRUE,
- SZ_GroupCount, 3,
- SZ_UseLeft, LeftEdge,
-
- GT_Underscore, '_',
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_PHONEPANEL_USE_ENTRY_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
- SZ_GroupNext, TRUE,
-
- GT_Underscore, '_',
- GA_Disabled, TRUE,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_PHONEPANEL_SET_PASSWORT_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
- SZ_GroupNext, TRUE,
-
- GT_Underscore, '_',
- GA_Disabled, TRUE,
- TAG_DONE);
-
-
- NewGadget . ng_GadgetText = "";
- NewGadget . ng_GadgetID = Counter;
- NewGadget . ng_Flags = 0;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(LISTVIEW_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_NewColumn, TRUE,
- SZ_FullHeight, TRUE,
-
- /* GA_Disabled, TRUE,*/
- GTLV_Labels, &EditList,
- TAG_DONE);
- }
-
- return(Gadget);
- }
-
- BYTE
- PhonePanel()
- {
- STATIC WORD OffsetX = -1,OffsetY = -1;
-
- struct Window *PanelWindow;
- struct Gadget *GadgetList = NULL;
- struct Gadget *GadgetArray[GAD_EDIT + 1];
-
- ULONG Sec1,Mic1,Sec2,Mic2;
- LONG HitItem = -1;
-
- if(CreateAllGadgets(&GadgetArray[0],&GadgetList,VisualInfo,Screen -> WBorTop + Screen -> Font -> ta_YSize + 1))
- {
- if(PanelWindow = OpenWindowTags(NULL,
- WA_Left, (Screen -> Width - SZ_GetWindowWidth()) / 2,
- WA_Top, (Screen -> Height - SZ_GetWindowHeight()) / 2,
- WA_Width, SZ_GetWindowWidth(),
- WA_Height, SZ_GetWindowHeight(),
-
- WA_Activate, TRUE,
- WA_DragBar, TRUE,
- WA_DepthGadget, TRUE,
- WA_RMBTrap, TRUE,
- WA_DepthGadget, TRUE,
- WA_CloseGadget, TRUE,
- WA_CustomScreen,Screen,
-
- WA_IDCMP, IDCMP_GADGETDOWN | IDCMP_ACTIVEWINDOW | IDCMP_CLOSEWINDOW | IDCMP_VANILLAKEY | STRINGIDCMP | BUTTONIDCMP | LISTVIEWIDCMP,
-
- WA_Title, LocaleString(MSG_PHONEPANEL_PHONEBOOK_TXT),
- TAG_DONE))
- {
- struct IntuiMessage *Massage;
- ULONG Class,Code;
- struct Gadget *Gadget;
- BYTE Terminated = FALSE;
-
- UBYTE DummyBuffer[256],*DummyChar;
-
- LONG Selected = ~0,
- Count = -1,i;
- struct List *PhoneList = NULL;
- struct PhoneNode *TempNode;
-
- struct FileRequest *FileRequest;
-
- PushWindow(PanelWindow);
-
- AddGList(PanelWindow,GadgetList,(UWORD)-1,(UWORD)-1,NULL);
- RefreshGList(GadgetList,PanelWindow,NULL,(UWORD)-1);
- GT_RefreshWindow(PanelWindow,NULL);
-
- if(Phonebook && NumPhoneEntries)
- {
- if(PhoneList = CreatePhoneList())
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_NAMELIST],PanelWindow,NULL,
- GTLV_Labels,PhoneList,
- TAG_DONE);
-
- if(PhoneList -> lh_Head -> ln_Succ)
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_SAVELIST],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_PASSWORD],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
-
- if(PhoneList -> lh_Head -> ln_Succ -> ln_Succ)
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_SORTLIST],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
- }
- }
- }
- }
-
- ActiveGadget = NULL;
-
- FreeDialList();
-
- for(i = 0 ; i < NumPhoneEntries ; i++)
- {
- if(Phonebook[i] -> Count > Count)
- Count = Phonebook[i] -> Count;
- }
-
- Count++;
-
- if(Count)
- {
- if(!Online)
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_DIALLIST],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
- }
-
- GT_SetGadgetAttrs(GadgetArray[GAD_CLEARLIST],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
- }
-
- while(!Terminated)
- {
- WaitPort(PanelWindow -> UserPort);
-
- while(!Terminated && (Massage = (struct IntuiMessage *)GT_GetIMsg(PanelWindow -> UserPort)))
- {
- Class = Massage -> Class;
- Code = Massage -> Code;
- Gadget = (struct Gadget *)Massage -> IAddress;
-
- GT_ReplyIMsg(Massage);
-
- if(Class == IDCMP_VANILLAKEY)
- {
- switch(Code)
- {
- case ' ': if(Selected != -1)
- {
- HitItem = -1;
-
- GT_SetGadgetAttrs(GadgetArray[GAD_NAMELIST],PanelWindow,NULL,
- GTLV_Labels, ~0,
- TAG_DONE);
-
- if(Phonebook[Selected] -> Count == -1)
- {
- if(!Count)
- {
- if(!Online)
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_DIALLIST],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
- }
-
- GT_SetGadgetAttrs(GadgetArray[GAD_CLEARLIST],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
- }
-
- Phonebook[Selected] -> Count = Count++;
-
- SPrintf(Phonebook[Selected] -> Node -> LocalName,"%3ld - %s",Count,Phonebook[Selected] -> Name);
- }
- else
- {
- RemoveDialEntry(Selected);
-
- if(!(--Count))
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_DIALLIST],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_CLEARLIST],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
- }
- }
-
- GT_SetGadgetAttrs(GadgetArray[GAD_NAMELIST],PanelWindow,NULL,
- GTLV_Labels, PhoneList,
- TAG_DONE);
- }
-
- break;
-
- default: KeySelect(GadgetArray,GAD_PASSWORD,Code,PanelWindow,&Gadget,&Class,&Code);
- break;
- }
- }
-
- if(Class == IDCMP_GADGETDOWN)
- {
- if((Gadget -> GadgetType & GTYP_GTYPEMASK) == GTYP_STRGADGET)
- ActiveGadget = Gadget;
- }
-
- if(Class == IDCMP_ACTIVEWINDOW && ActiveGadget)
- ActivateGadget(ActiveGadget,PanelWindow,NULL);
-
- if(Class == IDCMP_CLOSEWINDOW)
- {
- FreeDialList();
-
- Terminated = TRUE;
- }
-
- if(Class == IDCMP_GADGETUP)
- {
- switch(Gadget -> GadgetID)
- {
- case GAD_NAMELIST:
-
- if(HitItem != Code)
- {
- HitItem = Code;
-
- CurrentTime(&Sec1,&Mic1);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_NAME],PanelWindow,NULL,
- GTST_String, Phonebook[Code] -> Name,
- GA_Disabled, FALSE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_PHONENUMBER],PanelWindow,NULL,
- GTST_String, Phonebook[Code] -> Number,
- GA_Disabled, FALSE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_PLAYNUMBER],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_USEIT],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_REMOVEENTRY],PanelWindow,NULL,
- GA_Disabled, (Phonebook[Code] == ChosenEntry && Online),
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_CLONEENTRY],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
-
- /* GT_SetGadgetAttrs(GadgetArray[GAD_EDIT],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);*/
-
- Selected = Code;
- }
- else
- {
- CurrentTime(&Sec2,&Mic2);
-
- if(DoubleClick(Sec1,Mic1,Sec2,Mic2))
- {
- HitItem = -1;
-
- GT_SetGadgetAttrs(GadgetArray[GAD_NAMELIST],PanelWindow,NULL,
- GTLV_Labels, ~0,
- TAG_DONE);
-
- if(Phonebook[Selected] -> Count == -1)
- {
- if(!Count)
- {
- if(!Online)
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_DIALLIST],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
- }
-
- GT_SetGadgetAttrs(GadgetArray[GAD_CLEARLIST],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
- }
-
- Phonebook[Selected] -> Count = Count++;
-
- SPrintf(Phonebook[Selected] -> Node -> LocalName,"%3ld - %s",Count,Phonebook[Selected] -> Name);
- }
- else
- {
- RemoveDialEntry(Selected);
-
- if(!(--Count))
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_DIALLIST],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_CLEARLIST],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
- }
- }
-
- GT_SetGadgetAttrs(GadgetArray[GAD_NAMELIST],PanelWindow,NULL,
- GTLV_Labels, PhoneList,
- TAG_DONE);
- }
-
- Sec1 = Sec2;
- Mic1 = Mic2;
- }
-
- break;
-
- case GAD_CLEARLIST:
-
- GT_SetGadgetAttrs(GadgetArray[GAD_NAMELIST],PanelWindow,NULL,
- GTLV_Labels, ~0,
- TAG_DONE);
-
- Count = 0;
-
- for(i = 0 ; i < NumPhoneEntries ; i++)
- {
- SPrintf(Phonebook[i] -> Node -> LocalName," %s",Phonebook[i] -> Name);
-
- Phonebook[i] -> Count = -1;
- }
-
- GT_SetGadgetAttrs(GadgetArray[GAD_NAMELIST],PanelWindow,NULL,
- GTLV_Labels, PhoneList,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_DIALLIST],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_CLEARLIST],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- break;
-
- case GAD_PLAYNUMBER:
-
- if(Selected != ~0)
- {
- UBYTE *String = Phonebook[Selected] -> Number;
-
- ExtractString(String,DummyBuffer,FALSE);
-
- BlockWindow(PanelWindow);
-
- if(!ToneDial(DummyBuffer))
- MyEasyRequest(NULL,LocaleString(MSG_GLOBAL_TERM_HAS_A_PROBLEM_TXT),LocaleString(MSG_GLOBAL_CONTINUE_TXT),LocaleString(MSG_GLOBAL_FAILED_TO_ALLOCATE_RESOURCES_FOR_PLAYING_TXT));
-
- ReleaseWindow(PanelWindow);
- }
-
- break;
-
- case GAD_USEIT:
-
- if(Selected != ~0)
- {
- CopyMem(&Config,&PrivateConfig,sizeof(struct Configuration));
-
- CopyMem(&Phonebook[Selected] -> Config,&Config,sizeof(struct Configuration));
-
- ConfigSetup();
-
- Terminated = TRUE;
- }
-
- break;
-
- case GAD_NEWENTRY:
-
- GT_SetGadgetAttrs(GadgetArray[GAD_NAMELIST],PanelWindow,NULL,
- GTLV_Labels, ~0,
- TAG_DONE);
-
- if(PhoneList)
- {
- DeletePhoneList(PhoneList);
-
- PhoneList = NULL;
- }
-
- if(NewPhoneEntry())
- {
- if(PhoneList = CreatePhoneList())
- {
- Selected = NumPhoneEntries - 1;
-
- GT_SetGadgetAttrs(GadgetArray[GAD_NAMELIST],PanelWindow,NULL,
- GTLV_Labels, PhoneList,
- GTLV_Selected, Selected,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_NAME],PanelWindow,NULL,
- GTST_String, Phonebook[Selected] -> Name,
- GA_Disabled, FALSE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_PHONENUMBER],PanelWindow,NULL,
- GTST_String, Phonebook[Selected] -> Number,
- GA_Disabled, FALSE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_PLAYNUMBER],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_USEIT],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_REMOVEENTRY],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_CLONEENTRY],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
-
- /* GT_SetGadgetAttrs(GadgetArray[GAD_EDIT],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);*/
-
- if(NumPhoneEntries == 1)
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_SAVELIST],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_PASSWORD],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
- }
-
- if(NumPhoneEntries == 2)
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_SORTLIST],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
- }
-
- ActivateGadget(GadgetArray[GAD_NAME],PanelWindow,NULL);
-
- ActiveGadget = GadgetArray[GAD_NAME];
- }
- else
- goto ClearList;
- }
- else
- goto ClearList;
-
- break;
-
- case GAD_CLONEENTRY:
-
- if(Selected != ~0)
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_NAMELIST],PanelWindow,NULL,
- GTLV_Labels, ~0,
- TAG_DONE);
-
- if(PhoneList)
- {
- DeletePhoneList(PhoneList);
-
- PhoneList = NULL;
- }
-
- if(NewPhoneEntry())
- {
- if(PhoneList = CreatePhoneList())
- {
- LONG Tmp = Selected;
-
- Selected = NumPhoneEntries - 1;
-
- CopyMem(Phonebook[Tmp] -> Name,Phonebook[Selected] -> Name,sizeof(struct PhoneEntry) - (sizeof(struct PhoneNode) + sizeof(LONG)));
-
- SPrintf(Phonebook[Selected] -> Node -> LocalName," %s",Phonebook[Selected] -> Name);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_NAMELIST],PanelWindow,NULL,
- GTLV_Labels, PhoneList,
- GTLV_Selected, Selected,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_NAME],PanelWindow,NULL,
- GTST_String, Phonebook[Selected] -> Name,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_PHONENUMBER],PanelWindow,NULL,
- GTST_String, Phonebook[Selected] -> Number,
- TAG_DONE);
- }
- else
- goto ClearList;
- }
- else
- goto ClearList;
- }
-
- break;
-
- case GAD_REMOVEENTRY:
-
- if(Selected != ~0)
- {
- if(Phonebook[Selected] == ChosenEntry)
- MyEasyRequest(Window,LocaleString(MSG_PHONEPANEL_PHONE_ENTRY_IN_USE_TXT),LocaleString(MSG_GLOBAL_CONTINUE_TXT));
- else
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_NAMELIST],PanelWindow,NULL,
- GTLV_Labels,~0,
- TAG_DONE);
-
- if(PhoneList)
- {
- DeletePhoneList(PhoneList);
-
- PhoneList = NULL;
- }
-
- if(Phonebook[Selected] -> Count != -1)
- {
- RemoveDialEntry(Selected);
-
- if(!(--Count))
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_DIALLIST],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_CLEARLIST],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
- }
- }
-
- RemPhoneEntry(Selected);
-
- if(NumPhoneEntries > 0)
- {
- if(PhoneList = CreatePhoneList())
- {
- if(Selected == NumPhoneEntries)
- Selected--;
-
- GT_SetGadgetAttrs(GadgetArray[GAD_NAMELIST],PanelWindow,NULL,
- GTLV_Labels, PhoneList,
- GTLV_Selected, Selected,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_NAME],PanelWindow,NULL,
- GTST_String, Phonebook[Selected] -> Name,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_PHONENUMBER],PanelWindow,NULL,
- GTST_String, Phonebook[Selected] -> Number,
- TAG_DONE);
- }
- else
- goto ClearList;
-
- if(NumPhoneEntries == 1)
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_SORTLIST],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
- }
- }
- else
- {
- ClearList: GT_SetGadgetAttrs(GadgetArray[GAD_NAMELIST],PanelWindow,NULL,
- GTLV_Labels, &EmptyList,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_NAME],PanelWindow,NULL,
- GTST_String, "",
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_PHONENUMBER],PanelWindow,NULL,
- GTST_String, "",
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_PLAYNUMBER],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_USEIT],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_REMOVEENTRY],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_CLONEENTRY],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_SAVELIST],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_PASSWORD],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_SORTLIST],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- /* GT_SetGadgetAttrs(GadgetArray[GAD_EDIT],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);*/
-
- ActiveGadget = NULL;
-
- Selected = ~0;
- HitItem = -1;
- }
- }
- }
-
- break;
-
- case GAD_NAME:
-
- if(Selected != ~0)
- {
- strcpy(Phonebook[Selected] -> Name,GT_STRING(GadgetArray[GAD_NAME]));
-
- GT_SetGadgetAttrs(GadgetArray[GAD_NAMELIST],PanelWindow,NULL,
- GTLV_Labels,~0,
- TAG_DONE);
-
- if(PhoneList)
- DeletePhoneList(PhoneList);
-
- if(PhoneList = CreatePhoneList())
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_NAMELIST],PanelWindow,NULL,
- GTLV_Labels, PhoneList,
- GTLV_Selected, Selected,
- TAG_DONE);
- }
- }
-
- break;
-
- case GAD_PHONENUMBER:
-
- if(Selected != ~0)
- strcpy(Phonebook[Selected] -> Number,GT_STRING(GadgetArray[GAD_PHONENUMBER]));
-
- break;
-
- case GAD_LOADLIST:
-
- BlockWindow(PanelWindow);
-
- if(ChosenEntry)
- MyEasyRequest(Window,LocaleString(MSG_PHONEPANEL_PHONE_ENTRY_IN_USE_LOAD_TXT),LocaleString(MSG_GLOBAL_CONTINUE_TXT));
- else
- {
- strcpy(DummyBuffer,LastPhone);
-
- DummyChar = PathPart(DummyBuffer);
-
- *DummyChar = 0;
-
- if(FileRequest = GetFile(LocaleString(MSG_PHONEPANEL_LOAD_PHONEBOOK_TXT),DummyBuffer,FilePart(LastPhone),DummyBuffer,"#?.prefs",FALSE,FALSE,FALSE,LocaleString(MSG_GLOBAL_LOAD_TXT)))
- {
- if(PhoneList)
- DeletePhoneList(PhoneList);
-
- PhoneList = NULL;
-
- if(!LoadPhonebook(DummyBuffer))
- MyEasyRequest(Window,LocaleString(MSG_PHONEPANEL_COULD_NOT_LOAD_PHONEBOOK_TXT),LocaleString(MSG_GLOBAL_CONTINUE_TXT),DummyBuffer);
- else
- strcpy(LastPhone,DummyBuffer);
-
- if(PhoneList = CreatePhoneList())
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_NAMELIST],PanelWindow,NULL,
- GTLV_Labels, PhoneList,
- TAG_DONE);
-
- FreeDialList();
- }
-
- Count = 0;
-
- GT_SetGadgetAttrs(GadgetArray[GAD_NAME],PanelWindow,NULL,
- GTST_String, "",
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_PHONENUMBER],PanelWindow,NULL,
- GTST_String, "",
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_PLAYNUMBER],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_USEIT],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_REMOVEENTRY],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_CLONEENTRY],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_DIALLIST],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_CLEARLIST],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- /* GT_SetGadgetAttrs(GadgetArray[GAD_EDIT],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);*/
-
- ActiveGadget = NULL;
-
- if(PhoneList)
- {
- if(!PhoneList -> lh_Head -> ln_Succ)
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_SAVELIST],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_PASSWORD],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_SORTLIST],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
- }
- else
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_SAVELIST],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_PASSWORD],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
-
- if(PhoneList -> lh_Head -> ln_Succ -> ln_Succ)
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_SORTLIST],PanelWindow,NULL,
- GA_Disabled, FALSE,
- TAG_DONE);
- }
- else
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_SORTLIST],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
- }
- }
- }
-
- Selected = ~0;
- HitItem = -1;
-
- FreeAslRequest(FileRequest);
- }
- }
-
- ReleaseWindow(PanelWindow);
-
- break;
-
- case GAD_SORTLIST:
-
- if(NumPhoneEntries > 1)
- {
- BlockWindow(PanelWindow);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_NAMELIST],PanelWindow,NULL,
- GTLV_Labels, ~0,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_NAME],PanelWindow,NULL,
- GTST_String, "",
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_PHONENUMBER],PanelWindow,NULL,
- GTST_String, "",
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_PLAYNUMBER],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_USEIT],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_REMOVEENTRY],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_CLONEENTRY],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);
- /*
- GT_SetGadgetAttrs(GadgetArray[GAD_EDIT],PanelWindow,NULL,
- GA_Disabled, TRUE,
- TAG_DONE);*/
-
- ActiveGadget = NULL;
-
- if(PhoneList)
- DeletePhoneList(PhoneList);
-
- SortPhoneEntries();
-
- if(PhoneList = CreatePhoneList())
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_NAMELIST],PanelWindow,NULL,
- GTLV_Labels, PhoneList,
- GTLV_Selected, ~0,
- TAG_DONE);
- }
-
- Selected = ~0;
- HitItem = -1;
-
- ReleaseWindow(PanelWindow);
- }
-
- break;
-
- case GAD_SAVELIST:
-
- if(NumPhoneEntries)
- {
- strcpy(DummyBuffer,LastPhone);
-
- DummyChar = PathPart(DummyBuffer);
-
- *DummyChar = 0;
-
- BlockWindow(PanelWindow);
-
- if(FileRequest = GetFile(LocaleString(MSG_PHONEPANEL_SAVE_PHONEBOOK_TXT),DummyBuffer,FilePart(LastPhone),DummyBuffer,"#?.prefs",TRUE,FALSE,FALSE,LocaleString(MSG_GLOBAL_SAVE_TXT)))
- {
- if(!SavePhonebook(DummyBuffer))
- MyEasyRequest(Window,LocaleString(MSG_PHONEPANEL_COULD_NOT_CREATE_TXT),LocaleString(MSG_GLOBAL_CONTINUE_TXT),DummyBuffer);
- else
- strcpy(LastPhone,DummyBuffer);
-
- FreeAslRequest(FileRequest);
- }
-
- ReleaseWindow(PanelWindow);
- }
-
- break;
-
- case GAD_COPYCONFIG:
-
- BlockWindow(PanelWindow);
-
- if(Selected == ~0)
- CopyPanel(NULL);
- else
- CopyPanel(&Phonebook[Selected] -> Config);
-
- ReleaseWindow(PanelWindow);
- break;
-
- case GAD_PASSWORD:
-
- BlockWindow(PanelWindow);
-
- {
- struct Gadget *OldActiveGadget = ActiveGadget;
-
- memset(SharedBuffer,0,20);
-
- PhonePasswordUsed = FALSE;
-
- if(xpr_gets(LocaleString(MSG_PHONEPANEL_PLEASE_ENTER_PASSWORD_TXT),SharedBuffer))
- {
- if(SharedBuffer[0])
- {
- SharedBuffer[20] = 0;
-
- Encrypt(SharedBuffer,20,PhonePassword,SharedBuffer,strlen(SharedBuffer),TRUE);
-
- PhonePasswordUsed = TRUE;
- }
- }
-
- ActiveGadget = OldActiveGadget;
- }
-
- ReleaseWindow(PanelWindow);
- break;
-
- case GAD_EDIT:
-
- if(Selected != ~0)
- {
- BlockWindow(PanelWindow);
-
- switch(Code)
- {
- case EDIT_SERIAL: SerialPanel(&Phonebook[Selected] -> Config);
- break;
-
- case EDIT_MODEM: ModemPanel(&Phonebook[Selected] -> Config);
- break;
-
- case EDIT_TRANSFER: strcpy(DummyBuffer,LastXprLibrary);
-
- if(SelectProtocol(Phonebook[Selected] -> Config . Protocol,PanelWindow))
- strcpy(Phonebook[Selected] -> Config . Protocol,LastXprLibrary);
-
- strcpy(LastXprLibrary,DummyBuffer);
- break;
-
- case EDIT_SCREEN: ScreenPanel(&Phonebook[Selected] -> Config);
- break;
-
- case EDIT_TERMINAL: TerminalPanel(&Phonebook[Selected] -> Config);
- break;
-
- case EDIT_COMMANDS: CommandPanel(&Phonebook[Selected] -> Config);
- break;
-
- case EDIT_MISC: MiscPanel(&Phonebook[Selected] -> Config);
- break;
-
- case EDIT_PATHS: PathPanel(&Phonebook[Selected] -> Config);
- break;
-
- case EDIT_UNITS: if(Phonebook[Selected] == ChosenEntry)
- MyEasyRequest(Window,LocaleString(MSG_PHONEPANEL_PHONE_ENTRY_IN_USE_EDIT_TXT),LocaleString(MSG_GLOBAL_CONTINUE_TXT),DummyBuffer);
- else
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_NAMELIST],PanelWindow,NULL,
- GTLV_Labels, ~0,
- TAG_DONE);
-
- RatePanel(PhoneList,Phonebook[Selected]);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_NAMELIST],PanelWindow,NULL,
- GTLV_Labels, PhoneList,
- GTLV_Selected, Selected,
- TAG_DONE);
- }
-
- break;
-
- case EDIT_KEYMACROS: strcpy(DummyBuffer,Phonebook[Selected] -> Config . MacroFile);
-
- DummyChar = PathPart(DummyBuffer);
-
- *DummyChar = 0;
-
- if(FileRequest = GetFile(LocaleString(MSG_PHONEPANEL_SELECT_KEYBOARD_MACROS_TXT),DummyBuffer,FilePart(Phonebook[Selected] -> Config . MacroFile),DummyBuffer,"#?.prefs",FALSE,FALSE,FALSE,LocaleString(MSG_GLOBAL_SELECT_TXT)))
- {
- strcpy(Phonebook[Selected] -> Config . MacroFile,DummyBuffer);
-
- FreeAslRequest(FileRequest);
- }
-
- break;
-
- case EDIT_FASTMACROS: strcpy(DummyBuffer,Phonebook[Selected] -> Config . FastMacroFile);
-
- DummyChar = PathPart(DummyBuffer);
-
- *DummyChar = 0;
-
- if(FileRequest = GetFile(LocaleString(MSG_PHONEPANEL_SELECT_FAST_MACROS_TXT),DummyBuffer,FilePart(Phonebook[Selected] -> Config . FastMacroFile),DummyBuffer,"#?.prefs",FALSE,FALSE,FALSE,LocaleString(MSG_GLOBAL_SELECT_TXT)))
- {
- strcpy(Phonebook[Selected] -> Config . FastMacroFile,DummyBuffer);
-
- FreeAslRequest(FileRequest);
- }
-
- break;
-
- case EDIT_PASSWORD: PasswordUserPanel(Phonebook[Selected]);
-
- break;
- }
-
- ActiveGadget = GadgetArray[GAD_NAME];
-
- ReleaseWindow(PanelWindow);
- }
- else
- {
- if(Code == EDIT_COPY)
- {
- BlockWindow(PanelWindow);
-
- CopyPanel(NULL);
-
- if(!GT_DISABLED(GadgetArray[GAD_NAME]))
- ActiveGadget = GadgetArray[GAD_NAME];
- else
- ActiveGadget = NULL;
-
- ReleaseWindow(PanelWindow);
- }
- }
-
- break;
-
- case GAD_DIALLIST:
-
- if(Count)
- {
- FreeDialList();
-
- TempNode = (struct PhoneNode *)PhoneList -> lh_Head;
-
- while(TempNode -> VanillaNode . ln_Succ)
- {
- if(TempNode -> Entry -> Count != -1)
- SortToList(TempNode);
-
- TempNode = (struct PhoneNode *)TempNode -> VanillaNode . ln_Succ;
- }
-
- Terminated = TRUE;
- }
-
- break;
-
- default: break;
- }
- }
- }
- }
-
- DeleteTone();
-
- if(PhoneList)
- DeletePhoneList(PhoneList);
-
- RemoveGList(PanelWindow,GadgetList,(UWORD)-1);
-
- PopWindow();
-
- OffsetX = PanelWindow -> LeftEdge;
- OffsetY = PanelWindow -> TopEdge;
-
- CloseWindow(PanelWindow);
- }
- }
-
- FreeGadgets(GadgetList);
-
- if(DialList)
- return(TRUE);
- else
- return(FALSE);
- }
-