/*******************************************
 * Hilfslinien für FW-97+                  *
 * $VER: 1.1 © Heiko Schröder   (09.01.98) *
 *******************************************/

/* Hilfslinien gehen nicht über das Dok hinaus; FW-BUG 
   kompakte Oberfläche
   bei Falscheingabe Aktivierung der Felder*/

Parse ARG FW

if ~show('L',"rexxreqtools.library") then
   if ~addlib('rexxreqtools.library',0,-30,0) then do
      'ShowMessage 1 1 "Fehler...." "Benötige Libs:rexxreqtools.library" " A B B R U C H ! !" "Okay" "" ""'
      exit
   end
IF ~show('L','tritonrexx.library') then
   IF ~ADDLIB('tritonrexx.library',10,-30,0) THEN DO
      'ShowMessage 2 1 "Fehler...." "Benötige Libs:tritonrexx.library" "" "Abbruch" "" ""'
      exit
   END

R='0A'X

If FW='' then do
   Address='FinalW'
   Options results

   STATUS PORTNAME
   FW = result
End
   address=FW

SIGNAL ON SYNTAX

If open('Hilfe',"S:FW_Paket.prefs","R") then do
   HilfeVerz=readln('Hilfe')
   Call Close('Hilfe')
End
else HilfeVerz=''

mxlist.0 = 2
mxlist.1 = 'horizontal'
mxlist.2 = 'vertikal'

apptags =      'TRCA_Name     HLinien',
               'TRCA_LongName "Hilfslinien"',
               'TRCA_Info     "Makro für Finalwriter"',
               'TRCA_Version  "1.1 registered"',
               'TRCA_Release  "3"',
               'TRCA_Date     "09.01.98"',
               'TAG_END'

windowtags =   WindowID(1),
               WindowPosition('TRWP_CENTERDISPLAY'),
               WindowFlags('TRWF_NOSIZEGADGET|TRWF_NOMINTEXTWIDTH|TRWF_ACTIVATESTRGAD'),
               PubScreenName('FinalWriterPubScreen'),
               WindowTitle('Hilfslinien'),
               BeginMenu('Projekt'),
                  MenuItem('Q_Verlassen...',104),
               BeginMenu('?'),
                  MenuItem('?_Info',101),
                  MenuItem('H_Hilfe',103),
                  'HorizGroupAC',
                     'SpaceS',
                     'VertGroupAC',
                        'SpaceS',
                        'HorizGroupEC SpaceS',
                           TextID('Aus_richtung: ',1),
                           'SpaceS',
                           MXGadget('mxlist',0,1) 'TRAT_Flags TRCY_RIGHTLABELS',
                        'SpaceS EndGroup',
                        'SpaceS',
                        'HorizGroupEC SpaceS',
                        'LineArray',
                           'BeginLine',
                              TextID('An_zahl: ',2),
                              'SpaceS',
                              StringGadget('1',2),
                           'EndLine',
                           'BeginLine',
                              TextID('Off_set: ',3),
                              'SpaceS',
                              StringGadget('',3),
                              TextN(' cm'),
                           'EndLine',
                           'BeginLine',
                              TextID('Abs_tand: ',4),
                              'SpaceS',
                              StringGadget('',4),
                              TextN(' cm'),
                           'EndLine',
                        'EndArray',
                        'SpaceS EndGroup',
                        'SpaceS',
                        'HorizgroupEC',
                           Button('_Anwenden',7),
                           'SpaceS',
                           Button('Ab_bruch',8),
                        'EndGroup',
                        'SpaceS',
                     'EndGroup',
                     'SpaceS',
                  'EndGroup',
               'EndProject'

app = TR_CREATEAPP('TRCA_Name MEinfügen')

richt=1

IF app ~= '00000000'x THEN DO
   window1 = TR_OPENPROJECT(app,windowtags)
   IF window1 ~= '00000000'x THEN DO
      ende = 0

      DO WHILE ende ~= 1
         CALL TR_WAIT(app,'')

         DO WHILE TR_HANDLEMSG(app,'event')
            IF event.trm_class = 'TRMS_NEWVALUE' THEN DO
               SELECT
                  WHEN event.trm_id = 1 THEN richt = event.trm_data+1

                  OTHERWISE
                     NOP
               END
            END

            IF event.trm_class = 'TRMS_ACTION' THEN DO
               SELECT
                  WHEN event.trm_id = 7 THEN Call program

                  WHEN event.trm_id = 8 THEN ende = 1

                  WHEN event.trm_id = 101 THEN Call rtezrequest("Aus dem Makro-Paket:"||R||R||"Hilfslinien V1.1 für FW"||R||"© 1998 Heiko Schröder","Danke für Ihre Registrierung.","Info","rt_pubscrname=FinalWriterPubScreen")
                  WHEN event.trm_id = 103 THEN address command "run Multiview PUBSCREEN=FinalWriterPubScreen "||d2c(34)||HilfeVerz||"Hilfslinien.guide"||d2c(34)
                  WHEN event.trm_id = 104 THEN ende=1

                  OTHERWISE NOP
               END
            END

            IF event.trm_class = 'TRMS_CLOSEWINDOW' THEN ende=1

         END
      END

      CALL TR_CLOSEPROJECT(window1)
   END

   CALL TR_DELETEAPP(app)
END
ELSE
   CALL quit('Kann das Fenster nicht öffnen',10)

Exit

program:
   GetDocItemPrefs Decimal
   Punkt=Result
   If Punkt="Comma" then DocItemPrefs Decimal Period

   Anzahl = TR_GETATTRIBUTE(window1,2,'TROB_String')
   If Datatype(Anzahl,'W')=0 then do
      x=rtezrequest("Bei ANZAHL bitte ganzzahligen Wert","_Achso","Eingabe-Fehler","rt_pubscrname=FinalWriterPubScreen")
      Call TR_SendMessage(window1,2,'TROM_ACTIVATE',0)
      return
   end

   Offset = TR_GETATTRIBUTE(window1,3,'TROB_String')
   If Datatype(Offset,'N')=0 then do
      x=rtezrequest("Bei OFFSET bitte numerische Angabe mit (.)","_Achso","Eingabe-Fehler","rt_pubscrname=FinalWriterPubScreen")
      Call TR_SendMessage(window1,3,'TROM_ACTIVATE',0)
      return
   end

   Weite=TR_GETATTRIBUTE(window1,4,'TROB_String')
   If Weite='' then Weite=0
   If Datatype(Weite,'N')=0 then do
      x=rtezrequest("Bei WEITE bitte numerische Angabe mit (.)","_Achso","Eingabe-Fehler","rt_pubscrname=FinalWriterPubScreen")
      Call TR_SendMessage(window1,4,'TROM_ACTIVATE',0)
      return
   end

   address(FW)
   GetPageSetup Width Height
   Parse Var result DokBreite DokHoehe

   do i=0 to Anzahl-1
      Stelle=Offset+i*Weite
      if richt=1 then 
         If Stelle<=DokHoehe then SetSnapToGuide HORIZONTAL Stelle
      if richt=2 then 
         If Stelle<=DokBreite then SetSnapToGuide Vertical Stelle
   End
   redraw
   If Punkt="Comma" then DocItemPrefs DECIMAL Comma

return

/*******************************************************************************
** Routine, die bei einer Unterbrechung des Scripts aufgerufen wird
*******************************************************************************/

SYNTAX:
   CALL quit('Fehler' rc 'in Zeile' sigl '-' ERRORTEXT(rc)||R||SOURCELINE(sigl)||R||'Bitte informieren Sie den Autor...',20)


/*******************************************************************************
** Script beenden
*******************************************************************************/

quit:
   PARSE ARG message,rcode

   IF app ~= '00000000'x THEN DO
      IF message ~= '' THEN
         ret=rtezrequest(message,"_Okay","ACHTUNG!","rt_pubscrname=FinalWriterPubScreen")

      CALL TR_DELETEAPP(app)
   END
   ELSE DO
      IF message ~= '' THEN DO
         SAY message
         SAY
         OPTIONS PROMPT 'Bitte <RETURN> drücken'
         PULL taste
      END
   END

   address command "flushtrx all"
   EXIT(rcode)
