home *** CD-ROM | disk | FTP | other *** search
- /***************************************************************************
- * *
- * Filename : TeXPrtArexx.c *
- * *
- * Description : Rountines for Arexx support. *
- * *
- ***************************************************************************
- * *
- * Modification History *
- * *
- * Date Author Comments *
- * ---------------------------------------------------------------------- *
- * 27.2.94 R.Bödi Created. *
- * 2.3.94 R.Bödi Added commands SCREENTOFRONT, SCREENTOBACK. *
- * *
- ***************************************************************************
- * *
- * Copyright © 1994 Richard Bödi, All rights reserved. *
- * *
- ***************************************************************************/
-
- /*----------------------------- INCLUDES ----------------------------------*/
-
- #include "TeXPrt.h"
- #include "TexPrt_protos.h"
- #include "TexPrt_globals.h"
-
- /*----------------------------- DEFINES -----------------------------------*/
-
- #define REXXERROR (APTR)1
-
- /*---------------------------- PROTOTYPES ---------------------------------*/
-
- static APTR __saveds __asm RxConfig (register __a0 struct Hook *, register __a2 APTR *, register __a1 ULONG *);
- static APTR __saveds __asm RxCopies (register __a0 struct Hook *, register __a2 APTR *, register __a1 ULONG *);
- static APTR __saveds __asm RxDriver (register __a0 struct Hook *, register __a2 APTR *, register __a1 ULONG *);
- static APTR __saveds __asm RxDVIFile (register __a0 struct Hook *, register __a2 APTR *, register __a1 ULONG *);
- static APTR __saveds __asm RxFrom_To (register __a0 struct Hook *, register __a2 APTR *, register __a1 ULONG *);
- static APTR __saveds __asm RxHOffset (register __a0 struct Hook *, register __a2 APTR *, register __a1 ULONG *);
- static APTR __saveds __asm RxOption (register __a0 struct Hook *, register __a2 APTR *, register __a1 ULONG *);
- static APTR __saveds __asm RxOrientation (register __a0 struct Hook *, register __a2 APTR *, register __a1 ULONG *);
- static APTR __saveds __asm RxOutFile (register __a0 struct Hook *, register __a2 APTR *, register __a1 ULONG *);
- static APTR __saveds __asm RxPages (register __a0 struct Hook *, register __a2 APTR *, register __a1 ULONG *);
- static APTR __saveds __asm RxVOffset (register __a0 struct Hook *, register __a2 APTR *, register __a1 ULONG *);
-
- /*---------------------------- GLOBAL DATA --------------------------------*/
-
- static struct Hook
- ConfigHook = { {NULL}, (APTR)RxConfig, NULL, (APTR)&StructPointers },
- CopiesHook = { {NULL}, (APTR)RxCopies, NULL, (APTR)&StructPointers },
- DriverHook = { {NULL}, (APTR)RxDriver, NULL, (APTR)&StructPointers },
- DVIFileHook = { {NULL}, (APTR)RxDVIFile, NULL, (APTR)&StructPointers },
- From_ToHook = { {NULL}, (APTR)RxFrom_To, NULL, (APTR)&StructPointers },
- HOffsetHook = { {NULL}, (APTR)RxHOffset, NULL, (APTR)&StructPointers },
- OptionHook = { {NULL}, (APTR)RxOption, NULL, (APTR)&StructPointers },
- OrientationHook= { {NULL}, (APTR)RxOrientation, NULL, (APTR)&StructPointers },
- OutFileHook = { {NULL}, (APTR)RxOutFile, NULL, (APTR)&StructPointers },
- PagesHook = { {NULL}, (APTR)RxPages, NULL, (APTR)&StructPointers },
- VOffsetHook = { {NULL}, (APTR)RxVOffset, NULL, (APTR)&StructPointers };
-
- struct MUI_Command ARexxCommandList[] =
- {
- { "CONFIG", "SAVE/S,SAVEAS/K", 2, &ConfigHook },
- { "COPIES", "NUMBER/A/N", 1, &CopiesHook },
- { "DRIVER", "NAME/A", 1, &DriverHook },
- { "DVIFILE", "FILE/A", 1, &DVIFileHook },
- { "FROM_TO", "DOCUMENT/S,FROM/N/K,TO/N/K", 3, &From_ToHook },
- { "HOFFSET", "MM/A/N", 1, &HOffsetHook },
- { "OPTION", "NUMBER/A/N,ON/S,OFF/S", 3, &OptionHook },
- { "ORIENTATION", "PORTRAIT/S,LANDSCAPE/S", 2, &OrientationHook },
- { "OUTFILE", "FILE/A", 1, &OutFileHook },
- { "PAGES", "ALL/S,ODD/S,EVEN/S", 3, &PagesHook },
- { "PRINT", (char *)MC_TEMPLATE_ID, ID_PRINTAREXX, NULL },
- { "TOBACK", (char *)MC_TEMPLATE_ID, ID_TOBACK, NULL },
- { "TOFRONT", (char *)MC_TEMPLATE_ID, ID_TOFRONT, NULL },
- { "SCREENTOBACK", (char *)MC_TEMPLATE_ID, ID_SCREENTOBACK, NULL },
- { "SCREENTOFRONT", (char *)MC_TEMPLATE_ID, ID_SCREENTOFRONT, NULL },
- { "VOFFSET", "MM/A/N", 1, &VOffsetHook },
- { NULL, NULL, NULL, NULL },
- };
-
-
- /*------------------------------- CODE ------------------------------------*/
-
- static APTR __saveds __asm RxConfig (register __a0 struct Hook *Hook, register __a2 APTR *Object, register __a1 ULONG *Parms)
-
- {
- struct StructPointers *SP = (struct StructPointers *)Hook->h_Data;
-
- if (Parms[0])
- {
- if (SaveDriverSpec (SP->AvailDrivers->DriverFiles + SP->DriverNumber * NAMELENGTH,
- SP->TeXDriver, SP->RawSettings, SP->DefaultSettings, SP->MUIPointers))
- return (NULL);
- else
- return (REXXERROR);
- }
-
- if (Parms[1])
- {
- if (SaveDriverSpec ((char *)Parms[1], SP->TeXDriver, SP->RawSettings, SP->DefaultSettings, SP->MUIPointers))
- return (NULL);
- else
- return (REXXERROR);
- }
-
- return (REXXERROR);
- }
-
- /*-------------------------------------------------------------------------*/
-
- static APTR __saveds __asm RxCopies (register __a0 struct Hook *Hook, register __a2 APTR *Object, register __a1 ULONG *Parms)
-
- {
- return ((APTR)SetAttrs (((struct StructPointers *)Hook->h_Data)->MUIPointers->STR_Copies,
- MUIA_String_Integer, abs(*((long *)Parms[0])), TAG_DONE));
- }
-
- /*-------------------------------------------------------------------------*/
-
- static APTR __saveds __asm RxDriver (register __a0 struct Hook *Hook, register __a2 APTR *Object, register __a1 ULONG *Parms)
-
- {
- int DriverNo;
- struct StructPointers *SP = (struct StructPointers *)Hook->h_Data;
-
- for (DriverNo = 0; DriverNo < SP->AvailDrivers->NoOfDrivers; DriverNo++)
- if (!strcmp (SP->AvailDrivers->DriverNames + DriverNo * NAMELENGTH, (char *)Parms[0]))
- {
- DoMethod (SP->MUIPointers->app, MUIM_Application_SetMenuCheck, ID_DRIVER + SP->DriverNumber, FALSE);
- DoMethod (SP->MUIPointers->app, MUIM_Application_SetMenuCheck, ID_DRIVER + DriverNo, TRUE);
- if (LoadDriverSpec (SP, DriverNo))
- {
- UpdateGUI (SP->MUIPointers, SP->DefaultSettings, SP->ParsedSettings);
- return (NULL);
- }
- break;
- }
-
- return (REXXERROR);
- }
-
- /*-------------------------------------------------------------------------*/
-
- static APTR __saveds __asm RxDVIFile (register __a0 struct Hook *Hook, register __a2 APTR *Object, register __a1 ULONG *Parms)
-
- {
- return ((APTR)SetAttrs (((struct StructPointers *)Hook->h_Data)->MUIPointers->STR_DVIFile,
- MUIA_String_Contents, (char *)Parms[0], TAG_DONE));
- }
-
- /*-------------------------------------------------------------------------*/
-
- static APTR __saveds __asm RxFrom_To (register __a0 struct Hook *Hook, register __a2 APTR *Object, register __a1 ULONG *Parms)
-
- {
- ULONG Error;
- enum PageSel PageSel = FROMTO;
-
- if (Parms[0])
- PageSel = DOCUMENT;
-
- if (Parms[1])
- Error = SetAttrs (((struct StructPointers *)Hook->h_Data)->MUIPointers->STR_From,
- MUIA_String_Integer, *((long *)Parms[1]), TAG_DONE);
-
- if (Parms[2])
- Error |= SetAttrs (((struct StructPointers *)Hook->h_Data)->MUIPointers->STR_To,
- MUIA_String_Integer, *((long *)Parms[2]), TAG_DONE);
-
- Error |= SetAttrs (((struct StructPointers *)Hook->h_Data)->MUIPointers->RAD_FromTo,
- MUIA_Radio_Active, PageSel, TAG_DONE);
-
- return ((APTR)Error);
- }
-
- /*-------------------------------------------------------------------------*/
-
- static APTR __saveds __asm RxHOffset (register __a0 struct Hook *Hook, register __a2 APTR *Object, register __a1 ULONG *Parms)
-
- {
- return ((APTR)SetAttrs (((struct StructPointers *)Hook->h_Data)->MUIPointers->STR_X,
- MUIA_String_Integer, *((long *)Parms[0]), TAG_DONE));
- }
-
- /*-------------------------------------------------------------------------*/
-
- static APTR __saveds __asm RxOption (register __a0 struct Hook *Hook, register __a2 APTR *Object, register __a1 ULONG *Parms)
-
- {
- BOOL On = FALSE;
- long OptionNo = *((long *)Parms[0]) - 1;
-
- if (Parms[1]) On = TRUE;
-
- if ((OptionNo >= 0) && (OptionNo < OPTIONS))
- return ((APTR)SetAttrs (((struct StructPointers *)Hook->h_Data)->MUIPointers->CHM_Option[OptionNo], MUIA_Selected, On, TAG_DONE));
- else
- return (REXXERROR);
- }
-
- /*-------------------------------------------------------------------------*/
-
- static APTR __saveds __asm RxOrientation (register __a0 struct Hook *Hook, register __a2 APTR *Object, register __a1 ULONG *Parms)
-
- {
- enum Orientation Orientation = PORTRAIT;
-
- if (Parms[1]) Orientation = LANDSCAPE;
-
- return ((APTR)SetAttrs (((struct StructPointers *)Hook->h_Data)->MUIPointers->RAD_Orientation,
- MUIA_Radio_Active, Orientation, TAG_DONE));
- }
-
- /*-------------------------------------------------------------------------*/
-
- static APTR __saveds __asm RxOutFile (register __a0 struct Hook *Hook, register __a2 APTR *Object, register __a1 ULONG *Parms)
-
- {
- return ((APTR)SetAttrs (((struct StructPointers *)Hook->h_Data)->MUIPointers->STR_OutFile,
- MUIA_String_Contents, (char *)Parms[0], TAG_DONE));
- }
-
- /*-------------------------------------------------------------------------*/
-
- static APTR __saveds __asm RxPages (register __a0 struct Hook *Hook, register __a2 APTR *Object, register __a1 ULONG *Parms)
-
- {
- enum PageType PageType = ALL;
-
- if (Parms[1]) PageType = ODD;
- if (Parms[2]) PageType = EVEN;
-
- return ((APTR)SetAttrs (((struct StructPointers *)Hook->h_Data)->MUIPointers->RAD_OddEven,
- MUIA_Radio_Active, PageType, TAG_DONE));
- }
-
- /*-------------------------------------------------------------------------*/
-
- static APTR __saveds __asm RxVOffset (register __a0 struct Hook *Hook, register __a2 APTR *Object, register __a1 ULONG *Parms)
-
- {
- return ((APTR)SetAttrs (((struct StructPointers *)Hook->h_Data)->MUIPointers->STR_Y,
- MUIA_String_Integer, *((long *)Parms[0]), TAG_DONE));
- }
-
- /*---------------------------- END OF FILE --------------------------------*/
-