home *** CD-ROM | disk | FTP | other *** search
- /*
- ** $Id: TerminalPanel.c,v 1.9 92/08/15 20:14:23 olsen Sta Locker: olsen $
- ** $Revision: 1.9 $
- ** $Date: 92/08/15 20:14:23 $
- **
- ** Editing panel for terminal configuration
- **
- ** Copyright ⌐ 1990-1992 by Olaf `Olsen' Barthel & MXM
- ** All Rights Reserved
- */
-
- #include "termGlobal.h"
-
- enum { GAD_FILTER,GAD_DESTRBS,GAD_SWAP,GAD_STRIP,GAD_DISABLE,
- GAD_FASTER,GAD_TITLEBAR,GAD_PRINTER,GAD_STATUSLINE,GAD_ANSWERBACK,GAD_FONT,GAD_TEXT_FONT,GAD_NEWFONT,
- GAD_CR,GAD_LF,GAD_RECEIVECR,GAD_RECEIVELF,GAD_BELL,GAD_ALERT,
- GAD_COLOUR,GAD_SIZE,GAD_EMULATIONCTRL,GAD_EMUNAME,GAD_NEWEMU,GAD_KEYMAP,
- GAD_USE,GAD_CANCEL };
-
- STATIC STRPTR DisplaySizeType[4] =
- {
- NULL,
- NULL,
- NULL,
- NULL
- };
-
- STATIC STRPTR BellType[6] =
- {
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- };
-
- STATIC STRPTR AlertType[5] =
- {
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- };
-
- STATIC STRPTR CRType[4] =
- {
- NULL,
- NULL,
- NULL,
- NULL
- };
-
- STATIC STRPTR LFType[4] =
- {
- NULL,
- NULL,
- NULL,
- NULL
- };
-
- STATIC STRPTR Emulation[5] =
- {
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- };
-
- STATIC STRPTR ColourMode[5] =
- {
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- };
-
- STATIC STRPTR Fonts[3] =
- {
- NULL,
- NULL,
- NULL
- };
-
- STATIC STRPTR StatusLine[4] =
- {
- NULL,
- NULL,
- NULL,
- NULL
- };
-
- /* Which item to select for current combination of bell modes. */
-
- STATIC BYTE BellMode;
-
- STATIC struct Gadget *
- CreateAllGadgets(struct Configuration *ConfigPtr,struct Gadget *GadgetArray[],struct Gadget **GadgetList,APTR VisualInfo,UWORD TopEdge)
- {
- struct Gadget *Gadget;
- struct NewGadget NewGadget;
- UWORD Counter = 0;
-
- SZ_SizeSetup(Screen,&UserFont,TRUE);
-
- LocalizeString(DisplaySizeType,MSG_TERMINALPANEL_SCREEN_SIZE_TXT,MSG_TERMINALPANEL_80_X_25_TXT);
- LocalizeString(BellType,MSG_TERMINALPANEL_IGNORE_BELL_TXT,MSG_TERMINALPANEL_SYSTEM_DEFAULT_TXT);
- LocalizeString(AlertType,MSG_TERMINALPANEL_ALERT_NONE_TXT,MSG_TERMINALPANEL_ALERT_SIGNAL_SCREEN_TXT);
- LocalizeString(CRType,MSG_TERMINALPANEL_IGNORE_CR_TXT,MSG_TERMINALPANEL_AS_CR_LF_TXT);
- LocalizeString(LFType,MSG_TERMINALPANEL_IGNORE_LF_TXT,MSG_TERMINALPANEL_AS_LF_CR_TXT);
- LocalizeString(Emulation,MSG_TERMINALPANEL_ANSI_VT102_TXT,MSG_TERMINALPANEL_EXTERNAL_TXT);
- LocalizeString(ColourMode,MSG_TERMINALPANEL_AMIGA_TXT,MSG_TERMINALPANEL_MONO_TXT);
- LocalizeString(Fonts,MSG_TERMINALPANEL_TOPAZ_TXT,MSG_TERMINALPANEL_IBM_PC_STYLE_TXT);
- LocalizeString(StatusLine,MSG_TERMINALPANEL_STATUS_DISABLED_TXT,MSG_TERMINALPANEL_STATUS_COMPACT_TXT);
-
- memset(&NewGadget,0,sizeof(struct NewGadget));
-
- if(Gadget = CreateContext(GadgetList))
- {
- BYTE ChangeFont;
-
- SZ_AddLeftOffset(SZ_LeftOffsetDelta(MSG_TERMINALPANEL_CAPTURE_FILTER_GAD,MSG_TERMINALPANEL_TEXT_FONT_GAD));
-
- SZ_ResetMaxWidth();
-
- SZ_UpdateMaxWidth(STRING_KIND,NULL,15,NULL);
- SZ_UpdateMaxWidth(TEXT_KIND,NULL,20,NULL);
- SZ_UpdateMaxWidth(BUTTON_KIND,LocaleString(MSG_TERMINALPANEL_SELECT_NEW_TEXT_GAD),0,NULL);
- SZ_UpdateMaxWidth(CYCLE_KIND,NULL,0,StatusLine);
- SZ_UpdateMaxWidth(CYCLE_KIND,NULL,0,Fonts);
- SZ_UpdateMaxWidth(CYCLE_KIND,NULL,0,BellType);
-
- SZ_SetWidth(SZ_ResetMaxWidth());
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_CAPTURE_FILTER_GAD);
- NewGadget . ng_TextAttr = &UserFont;
- NewGadget . ng_VisualInfo = VisualInfo;
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(CHECKBOX_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GTCB_Checked, ConfigPtr -> CaptureFilter,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_DESTRUCTIVE_BS_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(CHECKBOX_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GTCB_Checked, ConfigPtr -> DestructiveBackspace,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_SWAP_DEL_BS_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(CHECKBOX_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GTCB_Checked, ConfigPtr -> SwapBSDelete,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_STRIP_BIT_8_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(CHECKBOX_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GTCB_Checked, ConfigPtr -> StripBit8,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_STOP_BLINKING_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(CHECKBOX_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GTCB_Checked, ConfigPtr -> DisableBlinking & ~TERMINAL_FASTER,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_FASTER_LAYOUT_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(CHECKBOX_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GTCB_Checked, ConfigPtr -> DisableBlinking & TERMINAL_FASTER,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_SCREEN_TITLE_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(CHECKBOX_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GTCB_Checked, ConfigPtr -> TitleBar,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_PRINTER_ENABLED_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(CHECKBOX_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GTCB_Checked, ConfigPtr -> PrinterEnabled,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_STATUS_LINE_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(CYCLE_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GTCY_Labels, StatusLine,
- GTCY_Active, ConfigPtr -> StatusLine,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_ANSWERBACK_MESSAGE_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GTST_MaxChars, 40,
- GTST_String, ConfigPtr -> AnswerBack,
- GTST_EditHook, &CommandHook,
- GA_Immediate, TRUE,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_FONT_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- if(ConfigPtr == &Config && ConfigPtr -> Emulation == EMULATION_EXTERNAL)
- ChangeFont = TRUE;
- else
- ChangeFont = FALSE;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(CYCLE_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GTCY_Labels, Fonts,
- GTCY_Active, ConfigPtr -> Font,
- GA_Disabled, ChangeFont,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_TEXT_FONT_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- SPrintf(SharedBuffer,"%s %ld",ConfigPtr -> TextFontName,ConfigPtr -> TextFontHeight);
-
- GadgetArray[Counter++] = Gadget = CreateGadget(TEXT_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GTTX_Text, SharedBuffer,
- GTTX_Border, TRUE,
- GTTX_CopyText, TRUE,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_SELECT_NEW_TEXT_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- TAG_DONE);
-
- SZ_AddLeftOffset(SZ_LeftOffsetDelta(MSG_TERMINALPANEL_DISPLAY_SIZE_GAD,MSG_TERMINALPANEL_EMU__NAME_GAD));
-
- SZ_UpdateMaxWidth(STRING_KIND,NULL,15,NULL);
- SZ_UpdateMaxWidth(CYCLE_KIND,NULL,0,DisplaySizeType);
- SZ_UpdateMaxWidth(CYCLE_KIND,NULL,0,AlertType);
- SZ_UpdateMaxWidth(CYCLE_KIND,NULL,0,CRType);
- SZ_UpdateMaxWidth(CYCLE_KIND,NULL,0,LFType);
- SZ_UpdateMaxWidth(CYCLE_KIND,NULL,0,Emulation);
- SZ_UpdateMaxWidth(CYCLE_KIND,NULL,0,ColourMode);
- SZ_UpdateMaxWidth(BUTTON_KIND,LocaleString(MSG_TERMINALPANEL_SELECT_NEW_EMULATION_GAD),0,NULL);
-
- SZ_SetWidth(SZ_ResetMaxWidth());
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_SEND_CR_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(CYCLE_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
- SZ_NewColumn, TRUE,
-
- GT_Underscore, '_',
- GTCY_Labels, CRType,
- GTCY_Active, ConfigPtr -> SendCR,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_SEND_LF_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(CYCLE_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GTCY_Labels, LFType,
- GTCY_Active, ConfigPtr -> SendLF,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_RECEIVE_CR_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(CYCLE_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GTCY_Labels, CRType,
- GTCY_Active, ConfigPtr -> ReceiveCR,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_RECEIVE_LF_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(CYCLE_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GTCY_Labels, LFType,
- GTCY_Active, ConfigPtr -> ReceiveLF,
- TAG_DONE);
-
- if(ConfigPtr -> SystemBeep)
- BellMode = 4;
- else
- {
- if(ConfigPtr -> AudibleBell)
- {
- if(ConfigPtr -> VisibleBell)
- BellMode = 3;
- else
- BellMode = 2;
- }
- else
- {
- if(ConfigPtr -> VisibleBell)
- BellMode = 1;
- else
- BellMode = 0;
- }
- }
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_BELL_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(CYCLE_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GTCY_Labels, BellType,
- GTCY_Active, BellMode,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_ALERT_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(CYCLE_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GTCY_Labels, AlertType,
- GTCY_Active, ConfigPtr -> Alert,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_COLOUR_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(CYCLE_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GTCY_Labels, ColourMode,
- GTCY_Active, ConfigPtr -> ColourMode,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_DISPLAY_SIZE_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(CYCLE_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GTCY_Labels, DisplaySizeType,
- GTCY_Active, ConfigPtr -> EightyColumns,
- GA_Disabled, Window -> Height / TextFontHeight < 25,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_EMULATION_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(CYCLE_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GTCY_Labels, Emulation,
- GTCY_Active, ConfigPtr -> Emulation,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_EMU__NAME_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GTST_MaxChars, 255,
- GTST_String, ConfigPtr -> EmulationName,
- GA_Disabled, ConfigPtr -> Emulation != EMULATION_EXTERNAL,
- GTST_EditHook, &CommandHook,
- GA_Immediate, TRUE,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_SELECT_NEW_EMULATION_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GA_Disabled, ConfigPtr -> Emulation != EMULATION_EXTERNAL,
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_TERMINALPANEL_KEYMAP_NAME_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(STRING_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
-
- GT_Underscore, '_',
- GTST_MaxChars, 39,
- GTST_String, ConfigPtr -> KeyMapName,
- GTST_EditHook, &CommandHook,
- GA_Immediate, TRUE,
- TAG_DONE);
-
- SZ_UpdateMaxWidth(BUTTON_KIND,LocaleString(MSG_GLOBAL_USE_GAD),0,NULL);
- SZ_UpdateMaxWidth(BUTTON_KIND,LocaleString(MSG_GLOBAL_CANCEL_GAD),0,NULL);
-
- SZ_SetWidth(SZ_ResetMaxWidth());
-
- NewGadget . ng_GadgetText = LocaleString(MSG_GLOBAL_USE_GAD);
- NewGadget . ng_GadgetID = Counter;
- NewGadget . ng_Flags = 0;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
- SZ_AlignExtra, TRUE,
- SZ_AlignLeft, TRUE,
- SZ_AlignBottom, TRUE,
-
- GT_Underscore, '_',
- TAG_DONE);
-
- NewGadget . ng_GadgetText = LocaleString(MSG_GLOBAL_CANCEL_GAD);
- NewGadget . ng_GadgetID = Counter;
-
- GadgetArray[Counter++] = Gadget = CreateGadget(BUTTON_KIND,Gadget,&NewGadget,
- SZ_Adjust, TRUE,
- SZ_AutoWidth, TRUE,
- SZ_AlignRight, TRUE,
-
- GT_Underscore, '_',
- TAG_DONE);
- }
-
- return(Gadget);
- }
-
- /* SelectEmulator(UBYTE *Name,struct Window *ParentWindow):
- *
- * Select a new emulator driver using the
- * asl.library file requester.
- */
-
- STATIC BYTE
- SelectEmulator(UBYTE *Name,struct Window *ParentWindow)
- {
- struct FileRequester *AslFileRequest;
- UBYTE *File,*Temp;
- BYTE NewDriver = FALSE;
-
- File = Name;
-
- strcpy(SharedBuffer,File);
-
- Temp = PathPart(SharedBuffer);
-
- Temp[0] = 0;
-
- if(!SharedBuffer[0])
- strcpy(SharedBuffer,"Libs:");
-
- File = FilePart(File);
-
- if(AslFileRequest = (struct FileRequester *)AllocAslRequestTags(ASL_FileRequest,
- ASL_Window, ParentWindow,
- ASL_File, File,
- ASL_Dir, SharedBuffer,
- ASL_Hail, LocaleString(MSG_TERMINALPANEL_SELECT_EMULATOR_TXT),
- ASL_FuncFlags, FILF_NEWIDCMP,
- ASL_Pattern, "xem#?.library",
- ASL_OKText, LocaleString(MSG_GLOBAL_SELECT_TXT),
- TAG_END))
- {
- if(AslRequestTags(AslFileRequest,TAG_DONE))
- {
- if(AslFileRequest -> rf_File[0])
- {
- if(Stricmp(AslFileRequest -> rf_Dir,"Libs:"))
- strcpy(SharedBuffer,AslFileRequest -> rf_Dir);
- else
- SharedBuffer[0] = 0;
-
- if(!AddPart(SharedBuffer,AslFileRequest -> rf_File,256))
- strcpy(SharedBuffer,AslFileRequest -> rf_File);
-
- if(Stricmp(SharedBuffer,Name))
- {
- strcpy(Name,SharedBuffer);
-
- NewDriver = TRUE;
- }
- }
- }
-
- FreeAslRequest(AslFileRequest);
- }
-
- return(NewDriver);
- }
-
- VOID
- TerminalPanel(struct Configuration *Config)
- {
- struct Window *PanelWindow;
- struct Gadget *GadgetList = NULL;
- struct Gadget *GadgetArray[GAD_CANCEL + 1];
- UBYTE DummyBuffer[256];
-
- CopyMem(Config,&PrivateConfig,sizeof(struct Configuration));
-
- if(CreateAllGadgets(Config,&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_CLOSEWINDOW | IDCMP_VANILLAKEY | IDCMP_GADGETDOWN | BUTTONIDCMP | CHECKBOXIDCMP | CYCLEIDCMP | STRINGIDCMP,
-
- WA_Title, LocaleString(MSG_TERMINALPANEL_TERMINAL_PREFERENCES_TXT),
- TAG_DONE))
- {
- struct IntuiMessage *Massage;
- ULONG Class,Code;
- struct Gadget *Gadget;
- BYTE Terminated = FALSE,
- TheLine = Config -> StatusLine;
-
- PushWindow(PanelWindow);
-
- AddGList(PanelWindow,GadgetList,(UWORD)-1,(UWORD)-1,NULL);
- RefreshGList(GadgetList,PanelWindow,NULL,(UWORD)-1);
- GT_RefreshWindow(PanelWindow,NULL);
-
- ActiveGadget = NULL;
-
- 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)
- KeySelect(GadgetArray,GAD_CANCEL,Code,PanelWindow,&Gadget,&Class,&Code);
-
- 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)
- Terminated = TRUE;
-
- GadCheck: if(Class == IDCMP_GADGETUP && !GT_DISABLED(Gadget))
- {
- switch(Gadget -> GadgetID)
- {
- case GAD_CR: Config -> SendCR = Code;
- break;
-
- case GAD_LF: Config -> SendLF = Code;
- break;
-
- case GAD_RECEIVECR: Config -> ReceiveCR = Code;
- break;
-
- case GAD_RECEIVELF: Config -> ReceiveLF = Code;
- break;
-
- case GAD_BELL: BellMode = Code;
-
- switch(BellMode)
- {
- case 0: Config -> VisibleBell = FALSE;
- Config -> AudibleBell = FALSE;
- Config -> SystemBeep = FALSE;
- break;
-
- case 1: Config -> VisibleBell = TRUE;
- Config -> AudibleBell = FALSE;
- Config -> SystemBeep = FALSE;
- break;
-
- case 2: Config -> VisibleBell = FALSE;
- Config -> AudibleBell = TRUE;
- Config -> SystemBeep = FALSE;
- break;
-
- case 3: Config -> VisibleBell = TRUE;
- Config -> AudibleBell = TRUE;
- Config -> SystemBeep = FALSE;
- break;
-
- case 4: Config -> VisibleBell = FALSE;
- Config -> AudibleBell = FALSE;
- Config -> SystemBeep = TRUE;
- break;
- }
-
- break;
-
- case GAD_SIZE: Config -> EightyColumns = Code;
- break;
-
- case GAD_ALERT: Config -> Alert = Code;
- break;
-
- case GAD_COLOUR: if(Code && !ModeOkay(Config -> DisplayMode))
- {
- Code = COLOUR_MONO;
-
- GT_SetGadgetAttrs(GadgetArray[GAD_COLOUR],PanelWindow,NULL,
- GTCY_Active, Code,
- TAG_DONE);
- }
-
- Config -> ColourMode = Code;
-
- break;
-
- case GAD_EMULATIONCTRL: Config -> Emulation = Code;
-
- if(Code == EMULATION_ATOMIC && Config -> ColourMode != COLOUR_AMIGA && Config -> ColourMode != COLOUR_MONO)
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_COLOUR],PanelWindow,NULL,
- GTCY_Active,COLOUR_MONO,
- TAG_DONE);
-
- Config -> ColourMode = COLOUR_MONO;
- }
-
- GT_SetGadgetAttrs(GadgetArray[GAD_EMUNAME],PanelWindow,NULL,
- GA_Disabled, Config -> Emulation != EMULATION_EXTERNAL,
- TAG_DONE);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_NEWEMU],PanelWindow,NULL,
- GA_Disabled, Config -> Emulation != EMULATION_EXTERNAL,
- TAG_DONE);
-
- if((Window -> Height / TextFontHeight) > 24)
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_SIZE],PanelWindow,NULL,
- GA_Disabled, Config -> Emulation == EMULATION_EXTERNAL,
- TAG_DONE);
- }
-
- GT_SetGadgetAttrs(GadgetArray[GAD_FONT],PanelWindow,NULL,
- GA_Disabled, Config -> Emulation == EMULATION_EXTERNAL,
- TAG_DONE);
-
- break;
-
- case GAD_FONT: Config -> Font = Code;
- break;
-
- case GAD_STATUSLINE: TheLine = Code;
- break;
-
- case GAD_USE: Terminated = TRUE;
-
- Config -> CaptureFilter = GT_CHECKED(GadgetArray[GAD_FILTER]);
- Config -> DestructiveBackspace = GT_CHECKED(GadgetArray[GAD_DESTRBS]);
- Config -> SwapBSDelete = GT_CHECKED(GadgetArray[GAD_SWAP]);
- Config -> StripBit8 = GT_CHECKED(GadgetArray[GAD_STRIP]);
- Config -> DisableBlinking = GT_CHECKED(GadgetArray[GAD_DISABLE]);
- Config -> TitleBar = GT_CHECKED(GadgetArray[GAD_TITLEBAR]);
- Config -> PrinterEnabled = GT_CHECKED(GadgetArray[GAD_PRINTER]);
-
- if(GT_CHECKED(GadgetArray[GAD_FASTER]))
- Config -> DisableBlinking |= TERMINAL_FASTER;
-
- strcpy(Config -> EmulationName, GT_STRING(GadgetArray[GAD_EMUNAME]));
- strcpy(Config -> KeyMapName, GT_STRING(GadgetArray[GAD_KEYMAP]));
- strcpy(Config -> AnswerBack, GT_STRING(GadgetArray[GAD_ANSWERBACK]));
-
- Config -> StatusLine = TheLine;
-
- switch(Config -> ColourMode)
- {
- case COLOUR_EIGHT: CopyMem(&ANSIColours[0],&Config -> Colours[0],16 * sizeof(UWORD));
- break;
-
- case COLOUR_SIXTEEN: CopyMem(&EGAColours[0],&Config -> Colours[0],16 * sizeof(UWORD));
- break;
-
- case COLOUR_AMIGA: CopyMem(&DefaultColours[0],&Config -> Colours[0],16 * sizeof(UWORD));
- break;
-
- case COLOUR_MONO: CopyMem(&AtomicColours[0],&Config -> Colours[0],16 * sizeof(UWORD));
- break;
- }
-
- break;
-
- case GAD_NEWEMU: strcpy(DummyBuffer,GT_STRING(GadgetArray[GAD_EMUNAME]));
-
- BlockWindow(PanelWindow);
-
- if(SelectEmulator(DummyBuffer,PanelWindow))
- {
- GT_SetGadgetAttrs(GadgetArray[GAD_EMUNAME],PanelWindow,NULL,
- GTST_String,DummyBuffer,
- TAG_DONE);
- }
-
- ReleaseWindow(PanelWindow);
-
- break;
-
- case GAD_NEWFONT: BlockWindow(PanelWindow);
-
- if(PickFont(PanelWindow,Config -> TextFontName,&Config -> TextFontHeight,TRUE))
- {
- SPrintf(SharedBuffer,"%s %ld",Config -> TextFontName,Config -> TextFontHeight);
-
- GT_SetGadgetAttrs(GadgetArray[GAD_TEXT_FONT],PanelWindow,NULL,
- GTTX_Text, SharedBuffer,
- TAG_DONE);
- }
-
- ReleaseWindow(PanelWindow);
-
- break;
-
- case GAD_CANCEL: Terminated = TRUE;
-
- CopyMem(&PrivateConfig,Config,sizeof(struct Configuration));
-
- break;
-
- default: break;
- }
- }
- }
- }
-
- RemoveGList(PanelWindow,GadgetList,(UWORD)-1);
-
- PopWindow();
-
- CloseWindow(PanelWindow);
- }
- }
-
- FreeGadgets(GadgetList);
- }
-